Терминал и ИИ

Команда joppa

Установить команду joppa и управлять Joppa из терминала или скрипта: состояние, процессы, сервисы, логи, диагностика, базы данных и прокси, в виде текста или JSON.

joppa управляет запущенным приложением. Она делает то же, что и окно, но из терминала или скрипта.

Установка

Настройки › Командная строка › Установить joppa. Joppa создаёт ссылку на команду, которая поставляется вместе с приложением, — в /usr/local/bin, если возможно, иначе в ~/.local/bin. Если этой папки нет в вашем PATH, в настройках будет строка, которую нужно добавить в ~/.zshrc.

joppa version

Команды

joppa                         # приложение на весь экран в терминале (TUI)
joppa status                  # прокси, CA, проекты и домены, сервисы
joppa services                # сервисы и их состояние
joppa start postgres          # запускает сервис
joppa stop redis              # останавливает сервис
joppa logs postgres -n 200 -f # логи, непрерывно с -f
joppa procs                   # процессы проектов
joppa start acme              # запускает весь проект («Запустить всё»)
joppa restart acme web        # перезапускает процесс
joppa logs acme api --grep error # логи процесса с фильтром
joppa diagnose api.acme.test  # почему этот домен не отвечает
joppa share app.acme.test     # доступ в локальной сети, с QR-кодом
joppa dbs postgres            # базы данных и их URL подключения
joppa db export postgres acme # экспортирует базу (см. ниже)
joppa proxy start             # или stop
joppa open                    # показывает окно Joppa
joppa mcp                     # MCP-сервер (см. ниже)
joppa uninstall               # удаляет Joppa вместе с этой командой
Команда Псевдоним Назначение
joppa или joppa tui Открывает TUI
joppa status st Прокси, CA, проекты, домены и их состояние, сервисы
joppa services svc Сервисы и их состояние
joppa start <service> Запускает сервис
joppa stop <service> Останавливает сервис
joppa logs <service> log Логи: -n / --lines N (по умолчанию 100), -f / --follow, --grep
joppa procs [проект] ps, processes Процессы проекта или всех проектов, у которых они есть: состояние, порт, домены, время работы, перезапуски
joppa start <проект> [процесс] Запускает процесс (и те, от которых он зависит) или весь проект
joppa stop <проект> [процесс] Останавливает процесс или весь проект
joppa restart <проект> [процесс] Перезапускает процесс или все, которые работают или отмечены
joppa logs <проект> [процесс] log Вывод процесса или всех процессов (с их именем в начале строки): -n, -f, --grep
joppa diagnose <домен|проект> doctor Почему домен не отвечает: прокси, DNS, сертификат, порт, процесс, ответ
joppa share [домен|проект] partager Открывает доступ к домену в локальной сети; --public — через туннель (см. Открыть доступ к домену). Без аргумента: открытые доступы
joppa share stop <домен> Закрывает доступ (--public: только туннель)
joppa dbs <service> databases Базы данных сервера и их URL
joppa db <действие> <service> … Экспорт, импорт, копирование и снимки базы данных (см. Данные баз данных)
joppa proxy start|stop Запускает или останавливает прокси
joppa open Показывает окно
joppa mcp Запускает MCP-сервер на stdio
joppa uninstall Удаляет Joppa (см. Удаление)
joppa help, joppa version Справка и версия

Указать сервис

Сервис можно указать как угодно: postgres, pg18, "PostgreSQL 18", его порт 5432 или его идентификатор.

Указать проект и его процессы

Проект указывается по имени, идентификатору или одному из его доменов; процесс — по имени на вкладке Процессы (web, api, queue…). joppa start, stop и logs принимают сервис или проект: если указано одно слово, Joppa сначала ищет сервис. Если слово обозначает и сервис, и проект, команда об этом сообщит: укажите порт сервиса или домен проекта.

joppa start и joppa restart ждут, пока процессы ответят или упадут (не дольше 30 секунд), а затем показывают их состояние; для упавшего процесса выводятся последние строки его логов, и команда завершается с кодом 1.

joppa diagnose проверяет каждое звено между браузером и сервером разработки и подсказывает, как исправить то, чего не хватает (подробности выводятся на английском, как и у инструмента MCP diagnose). Команда завершается с кодом 1, если домен не отвечает.

Параметры

Параметр Действие
--json, -j Вывод в JSON, для скриптов (во всех командах)
--launch Запускает Joppa, если он не запущен, без вопросов
--grep <текст>, -g joppa logs: только строки, содержащие этот текст (без учёта регистра)
--public joppa share: публичная ссылка через туннель (Joppa Pro)
--tunnel <клиент> joppa share: cloudflared (по умолчанию), ngrok, localhost-run или pinggy; подразумевает --public
--install joppa share --public: скачивает cloudflared, если его нет (с проверкой контрольной суммы)
--theme nuit|jour|auto Тема TUI
--no-motion Отключает анимации (или JOPPA_NO_MOTION=1)
-h, -v Справка, версия

Открыть доступ к домену

joppa share делает из терминала то же, что окно Открыть доступ (см. Открыть доступ к сайту). Доступ живёт в приложении: он остаётся открытым после завершения команды — до joppa share stop или закрытия Joppa.

joppa share app.acme.test                    # http://192.168.1.20:41306 и его QR-код
joppa share acme                             # первый активный домен проекта
joppa share app.acme.test --public           # https://….trycloudflare.com (Joppa Pro)
joppa share app.acme.test --public --install # сначала скачивает cloudflared, если его нет
joppa share app.acme.test --tunnel pinggy    # или ngrok, localhost-run
joppa share                                  # домены с открытым доступом
joppa share stop app.acme.test               # закрывает локальную сеть и туннель
joppa share stop app.acme.test --public      # только туннель

В терминале адрес выводится вместе с QR-кодом для сканирования. С --public команда ждёт, пока туннель получит адрес (не дольше 50 секунд); если он закроется раньше, команда выводит его последние сообщения и завершается с кодом 1.

Данные баз данных

joppa db делает из терминала то же, что Экспортировать…, Импортировать…, Дублировать… и Снимки… на странице сервиса (см. Базы данных). Сервер должен быть запущен; относительные пути отсчитываются от текущей папки.

joppa db export postgres acme                       # ./acme-2026-10-23.sql.gz
joppa db export mysql boutique ~/boutique.sql       # .sql, .sql.gz или .dump (PostgreSQL)
joppa db import postgres ~/acme.sql.gz              # в базу acme (по имени файла)
joppa db import postgres ~/acme.dump --into acme_test
joppa db import postgres ~/joppa-postgres-17-2026-10-20.sql --replace   # целый сервер
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "перед миграцией"
joppa db snapshots postgres acme                    # идентификатор, дата, размер, имя
joppa db restore postgres acme 20261023-142501
Команда Назначение
joppa db export <service> <база> [файл] Экспортирует базу; формат определяется расширением (по умолчанию .sql.gz)
joppa db import <service> <файл> Импортирует .sql, .sql.gz, .dump или экспорт целого сервера; --into <база> выбирает базу, --replace заменяет существующую базу
joppa db clone <service> <база> <копия> Копирует базу на том же сервере
joppa db snapshot <service> <база> Делает снимок (Joppa Pro); --name <имя> задаёт ему имя
joppa db snapshots <service> <база> Снимки базы, от самого нового к самому старому
joppa db restore <service> <база> <снимок> Возвращает базу к снимку (Joppa Pro), предварительно сделав снимок её текущего содержимого

Без --replace импорт, который заменил бы базу, останавливается, ничего не тронув, и предлагает другое имя. Расширения PostgreSQL, которых нет на сервере, показываются до импорта.

Удаление

joppa uninstall делает то же, что Настройки › Удаление: показывает, что Joppa установил на компьютер, и после подтверждения удаляет это. Сама команда joppa удаляется вместе с остальным. По умолчанию удаляется всё найденное, кроме данных сервисов; папка Joppa и приложение удаляются после закрытия Joppa. См. Файлы › Удалить всё.

joppa uninstall --dry-run            # показывает, что будет удалено, ничего не удаляя
joppa uninstall                      # просит подтверждения (o/N)
joppa uninstall --yes --volumes      # без вопросов, включая данные сервисов
joppa uninstall -y --keep license,app
Параметр Действие
--dry-run Показывает список, ничего не удаляет
--yes, -y Не просит подтверждения (обязателен вне терминала)
--volumes Удаляет также данные сервисов (тома) и их контейнеры
--keep <элементы> Оставляет элементы: mcp, cli, shell, containers, volumes, ca, dns, license, data, app

Если какой-то шаг не удался (ввод пароля отменён, среда контейнеров остановлена…), остальные продолжаются, но папка Joppa и приложение сохраняются, а команда завершается с кодом 1: исправьте проблему и снова запустите joppa uninstall.

В скрипте

# Запустить Joppa при необходимости, затем PostgreSQL перед тестами
joppa start postgres --launch
joppa services --json | jq .

# Запустить проект и завершиться с ошибкой, если процесс упадёт
joppa start acme --json | jq '.processes[] | {name, status}'

Коды выхода

Код Значение
0 Успех
1 Ошибка; также процесс, упавший при запуске, или домен, который joppa diagnose считает неисправным
2 Неверная команда или параметр
3 Joppa не запущен

Как это работает

Приложение записывает в свою папку конфигурации файл control.json (порт и токен, доступный для чтения только вам). Команда использует его, чтобы обращаться к локальному API приложения. Если Joppa не запущен, joppa сообщает об этом и предлагает его запустить.

getjoppa.com › support

Загрузка

Не отправляется? Напишите на [email protected]. Просто вопрос: [email protected].