Перейти к содержанию

CLI в скриптах

Получить JSON

В терминале ycli печатает таблицы, а при передаче по конвейеру — JSON. Формат можно задать явно глобальным флагом --format / -o (auto, json, yaml, pretty) до команды или после неё:

ycli tracker issues get TRACKER-1 | jq .        # JSON, потому что вывод передаётся по конвейеру
ycli -o yaml wiki pages get onboarding
ycli wiki pages get onboarding -o json

Ключи — это имена полей самого API (createdAt в Трекере, created_at в Вики), поэтому фильтры из документации Яндекса работают как есть.

Фильтрация без jq

--jq EXPR выполняет программу jq над JSON и печатает как jq -r: строку без кавычек, всё остальное — по одному компактному значению JSON в строке.

ycli --jq .summary tracker issues get TRACKER-1
ycli --jq '.[].key' tracker issues search 'Queue: TEST'

Сочетать его с -o yaml или -o pretty нельзя.

Для --jq нужен extra jq: uv tool install 'yandex-cli[jq]' или 'yandex-cli[mcp,jq]' вместе с MCP-сервером (в образе Docker он уже есть). Без него флаг завершается с кодом 2 и подсказывает команду установки; конвейер в программу jq работает в любом случае.

Удаление без запроса подтверждения

Команда, которая уничтожает данные, в терминале просит подтверждения. В скрипте спросить некого, поэтому она завершается с кодом 2, пока вы не передадите --yes / -y:

ycli tracker boards delete 7 --yes

Предпросмотр записи

--dry-run ничего не записывает, а печатает запрос (метод, URL, тело — но никогда не токен) в том же формате -o и с тем же --jq, и завершается с кодом 0. Чтения всё равно выполняются, поэтому команда, которая сначала читает, а потом пишет, покажет только свою первую запись.

ycli tracker boards delete 7 --dry-run

Ветвление по коду возврата

У каждого вида ошибки свой код возврата; они перечислены в справочнике по конфигурации.

ycli tracker issues get TRACKER-1 > issue.json
case $? in
  0) echo found ;;
  3) echo "no such issue" ;;
  6) echo "try again later" ;;
esac

Автодополнение команд по Tab

В ycli несколько сотен команд; пусть их дополняет оболочка. Сначала установите ycli как инструмент (uv tool install yandex-cli), чтобы команда оставалась в PATH, затем выполните:

ycli --install-completion    # для текущей оболочки: bash, zsh, fish или PowerShell

Перезапустите терминал. Автодополнение устанавливается для того имени, которым вы запускали команду: если вы пользуетесь длинным именем, выполните yandex-cli --install-completion ещё раз. ycli --show-completion печатает скрипт, а не устанавливает его.

О запуске ycli в конвейере см. Использование в CI.