Echolot
Командная строка и CI

Инструмент командной строки

Установите команду echolot и узнайте, что общего у всех команд: секреты, переменные окружения и коды выхода.

echolot запускает из терминала или задания CI то, что вы создаёте в приложении: отправляет запросы, прогоняет рабочее пространство вместе с проверками и пишет отчёты, импортирует и экспортирует коллекции, проверяет спецификации линтером, поднимает моки, запускает сценарии и обслуживает рабочее пространство для ИИ-агентов по MCP. Он читает те же файлы рабочего пространства, что и приложение, поэтому ничего не нужно конвертировать.

Установите инструмент командной строки

В версии с прямой загрузкой инструмент лежит внутри приложения. Чтобы добавить его в PATH:

  1. Выберите Echolot › Установить инструмент командной строки… или откройте Настройки › Основные и нажмите Установить инструмент командной строки… в разделе Инструмент командной строки.
  2. Echolot помещает в /opt/homebrew/bin или /usr/local/bin ссылку echolot на инструмент внутри приложения. Если ни одна из папок недоступна для записи, macOS просит пароль администратора.
  3. Откройте новое окно Терминала и введите echolot --help.

Настройки › Основные › Инструмент командной строки показывает, где лежит встроенный инструмент и ссылка в вашем PATH. Нажмите Переустановить, когда вы переместили приложение, и Удалить, чтобы убрать ссылку. Если на пути стоит файл echolot, который Echolot туда не клал, Echolot спрашивает, прежде чем его заменить, и файл попадает в Корзину.

Поскольку ссылка указывает внутрь приложения, инструмент обновляется вместе с приложением.

Версия из Mac App Store

В версии из App Store внутри нет инструмента и нет пункта Установить инструмент командной строки…. Вместо этого установите инструмент из zip на странице релизов. Он работает с теми же рабочими пространствами.

Сравнить версии

Срок действия инструмента командной строки не истекает, в том числе в бета-сборках приложения. Ему нужна macOS 15 или новее на Mac.

Команды

КомандаЧто делает
echolot sendОтправляет один запрос, URL или сохранённый файл запроса, и пишет тело в стандартный вывод.
echolot runПрогоняет рабочее пространство, некоторые его папки или запросы либо коллекцию Postman, с проверками и отчётами.
echolot validateПроверяет, что каждый файл рабочего пространства читается и каждый запрос разрешается.
echolot import, echolot exportЗагружает коллекции в рабочее пространство и записывает рабочее пространство как Postman, Insomnia, Bruno или Echolot.
echolot mcpПроверяет MCP-серверы, входит в них, обслуживает рабочее пространство для агентов и печатает настройки клиентов.
echolot specПроверяет документы OpenAPI линтером, а также проверяет и применяет изменения спецификации к папке, которая за ней следует.
echolot graphql diffСравнивает две схемы GraphQL и оценивает каждое изменение.
echolot grpcОписывает сервисы gRPC и вызывает их методы.
echolot mqttПодписывается на брокеры MQTT и публикует в них.
echolot mockПоднимает мок: маршруты мока рабочего пространства или документ OpenAPI.
echolot fakeСоздаёт тестовые данные по шаблону, для фикстур и начальных данных.
echolot flowПеречисляет, запускает, создаёт и обслуживает сценарии рабочего пространства.
echolot agentЗапускает встроенного агента на задачу, с политикой вместо одобрений.

echolot help <command> и echolot <command> --help печатают все параметры команды. Команды с подкомандами принимают их так же: echolot mcp serve --help.

Параметры, которые есть у каждой команды

ПараметрЗначение
--versionПечатает версию и сборку, например 0.5.0 (8).
-h, --helpПечатает параметры команды.

Рабочие пространства и окружения

Команды, которые работают с рабочим пространством, принимают его папку — ту, в которой лежит workspace.toml. Одни принимают её аргументом (echolot run Alpenglow.echolot), другие через -w или --workspace (echolot flow list -w Alpenglow.echolot); на странице каждой команды сказано, как именно. Если она необязательна, используется текущая папка.

--env выбирает окружение по имени файла без .toml (staging). run, validate и flow принимают и его имя (Staging). Без --env запросы разрешаются с переменными самого рабочего пространства. См. окружения.

Секреты

Секретные значения никогда не хранятся в файлах рабочего пространства: в файле указано имя секретной переменной и ничего больше. Инструмент командной строки ищет каждое значение в таком порядке:

  1. Переменная окружения ECHOLOT_SECRET_<NAME>. Имя — это имя переменной заглавными буквами, где каждый символ, не являющийся буквой или цифрой, заменён на _: token — это ECHOLOT_SECRET_TOKEN, me_password — ECHOLOT_SECRET_ME_PASSWORD.
  2. Для echolot run — файл, указанный в --secrets: по одной строке NAME=value, # для комментариев, кавычки вокруг значения снимаются. NAME — это имя переменной (token=…) или полное имя переменной окружения (ECHOLOT_SECRET_TOKEN=…). Значения из файла важнее переменных окружения.
  3. На Mac — элементы Связки ключей, которые ведёт приложение. Секрет, который вы задали в приложении, или MCP-сервер, в который вы вошли, работает и в Терминале.
export ECHOLOT_SECRET_PASSWORD="$(op read 'op://Shop/Alpenglow staging/password')"
echolot run Alpenglow.echolot --env staging

Связка ключей не используется, когда задана CI (любым значением, кроме пустого, 0 или false) или когда ECHOLOT_KEYCHAIN=0. Так задание CI не будет ждать запроса Связки ключей. См. секреты.

Переменные окружения

ПеременнаяКто используетЗначение
ECHOLOT_SECRET_<NAME>Каждая команда, разрешающая запросыЗначение секретной переменной <NAME>.
ECHOLOT_KEYCHAIN=0Каждая командаНе читать и не писать Связку ключей.
CIКаждая командаЕсли задана, Связка ключей выключена, как с ECHOLOT_KEYCHAIN=0.
HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, NO_PROXYsend, run, mqtt и другиеПрокси, читаются так же, как их читает curl. --proxy и --no-proxy их переопределяют; собственная настройка прокси рабочего пространства приоритетнее.
ECHOLOT_CERT_PASSPHRASEsend, run, mqttПарольная фраза ключа или файла PKCS#12, указанных в --cert или --key.
ECHOLOT_MQTT_PASSWORDmqttПароль брокера.
ECHOLOT_MCP_TOKENmcp serve --httpBearer-токен, который отправляют клиенты; иначе случайный.
ECHOLOT_WEBHOOK_TOKENflow serveТокен, который отправляют вызывающие вебхуки; иначе случайный.
ECHOLOT_BROWSERmcp sign-inКоманда, которая открывает страницу входа вместо браузера по умолчанию.
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEYagentAPI-ключ провайдера модели.
NO_COLORrunПростой вывод в консоль.

Вывод и коды выхода

Результаты идут в стандартный вывод: тело ответа, отчёт, строки, которые печатает подписка. Ход выполнения, предупреждения, результаты тестов и время идут в стандартный поток ошибок, так что вывод можно передавать дальше по конвейеру:

echolot send https://demo.echolot.dev/v1/products/TNT-MH-2P | jq .name
Код выходаЗначение
0Всё сработало, и все проверки прошли.
1Что-то не удалось: нет ответа, непройденная проверка или тест, найдены проблемы (validate, spec lint), несовместимые изменения (graphql diff), статус gRPC, отличный от OK, отклонённое подключение MQTT, агент, который не завершил работу.
22Только echolot send: статус ответа 400 или выше, как с curl --fail.
64Сама командная строка неверна: неизвестный параметр, отсутствующий файл, несуществующее окружение. Причина печатается.

Дальше

На этой странице