Инструмент командной строки
Установите команду echolot и узнайте, что общего у всех команд: секреты, переменные окружения и коды выхода.
echolot запускает из терминала или задания CI то, что вы создаёте в приложении: отправляет запросы, прогоняет рабочее
пространство вместе с проверками и пишет отчёты, импортирует и экспортирует коллекции, проверяет спецификации линтером,
поднимает моки, запускает сценарии и обслуживает рабочее пространство для ИИ-агентов по MCP. Он читает те же файлы
рабочего пространства, что и приложение, поэтому ничего не нужно конвертировать.
Установите инструмент командной строки
В версии с прямой загрузкой инструмент лежит внутри приложения. Чтобы добавить его в PATH:
- Выберите Echolot › Установить инструмент командной строки… или откройте Настройки › Основные и нажмите Установить инструмент командной строки… в разделе Инструмент командной строки.
- Echolot помещает в
/opt/homebrew/binили/usr/local/binссылкуecholotна инструмент внутри приложения. Если ни одна из папок недоступна для записи, macOS просит пароль администратора. - Откройте новое окно Терминала и введите
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 запросы разрешаются с переменными самого рабочего пространства. См.
окружения.
Секреты
Секретные значения никогда не хранятся в файлах рабочего пространства: в файле указано имя секретной переменной и ничего больше. Инструмент командной строки ищет каждое значение в таком порядке:
- Переменная окружения
ECHOLOT_SECRET_<NAME>. Имя — это имя переменной заглавными буквами, где каждый символ, не являющийся буквой или цифрой, заменён на_:token— этоECHOLOT_SECRET_TOKEN,me_password—ECHOLOT_SECRET_ME_PASSWORD. - Для
echolot run— файл, указанный в--secrets: по одной строкеNAME=value,#для комментариев, кавычки вокруг значения снимаются.NAME— это имя переменной (token=…) или полное имя переменной окружения (ECHOLOT_SECRET_TOKEN=…). Значения из файла важнее переменных окружения. - На 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_PROXY | send, run, mqtt и другие | Прокси, читаются так же, как их читает curl. --proxy и --no-proxy их переопределяют; собственная настройка прокси рабочего пространства приоритетнее. |
ECHOLOT_CERT_PASSPHRASE | send, run, mqtt | Парольная фраза ключа или файла PKCS#12, указанных в --cert или --key. |
ECHOLOT_MQTT_PASSWORD | mqtt | Пароль брокера. |
ECHOLOT_MCP_TOKEN | mcp serve --http | Bearer-токен, который отправляют клиенты; иначе случайный. |
ECHOLOT_WEBHOOK_TOKEN | flow serve | Токен, который отправляют вызывающие вебхуки; иначе случайный. |
ECHOLOT_BROWSER | mcp sign-in | Команда, которая открывает страницу входа вместо браузера по умолчанию. |
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY | agent | API-ключ провайдера модели. |
NO_COLOR | run | Простой вывод в консоль. |
Вывод и коды выхода
Результаты идут в стандартный вывод: тело ответа, отчёт, строки, которые печатает подписка. Ход выполнения, предупреждения, результаты тестов и время идут в стандартный поток ошибок, так что вывод можно передавать дальше по конвейеру:
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 | Сама командная строка неверна: неизвестный параметр, отсутствующий файл, несуществующее окружение. Причина печатается. |