Флаги и скрипты

Глобальные флаги

Доступны для всех команд. Таблица генерируется из исходного определения флагов в CLI — всегда актуальна:

ФлагКороткийОписание
--output <value>-oФормат вывода: table, json, yaml, csv
--columns <value>-cКолонки для table-вывода (через запятую)
--no-headerСкрыть заголовок таблицы
--no-truncateНе обрезать длинные значения
--profile <value>-pПрофиль для этой команды
--token <value>Токен для этого вызова (без сохранения)
--quiet-qПодавить вывод (только exit code и ошибки)
--no-colorОтключить цвета
--verbose-vПоказывать HTTP-запросы и ответы
--no-inputОтключить интерактивные промпты
--dry-runПоказать запрос без отправки
--timeout <value>Таймаут запроса в секундах (по умолчанию 30)
--no-retryОтключить авто-retry при 429/503
--plainПлоский вывод: TSV без заголовка, ID первым, без цвета (для скриптов)

Флаг --force (пропуск подтверждения DELETE) задаётся не глобально, а у деструктивных команд — см. Деструктивные операции.

Сортировка

Команды списков поддерживают сортировку через --sort и --order:

# Сообщения по возрастанию IDpachca messages list --chat-id 123 --sort id --order asc # Чаты по дате последнего сообщенияpachca chats list --sort last-message-at --order desc

Доступные поля сортировки зависят от команды — подсказки встроены в --help. Если --order не указан, используется desc.

Имена флагов

Флаги CLI используют kebab-case (через дефис), а не snake_case как в API-документации — это стандартная конвенция для CLI-инструментов:

API-документация          CLI-флаг─────────────────         ────────────────first_name            →   --first-namephone_number          →   --phone-numberentity_id             →   --entity-idskip_email_notify     →   --skip-email-notifylist_tags             →   --list-tagscustom_properties     →   --custom-propertiesparent_message_id     →   --parent-message-id

При отправке запроса CLI автоматически конвертирует имена обратно в snake_case для API. Проверить можно через --dry-run:

pachca users update 123 --first-name "Иван" --phone-number "+7900" --dry-run # {"user": {"first_name": "Иван", "phone_number": "+7900"}}

Boolean-флаги

Для boolean-параметров API используйте флаг для установки true и --no- префикс для false:

# Деактивировать сотрудника (suspended: true)pachca users update 123 --suspended # Активировать обратно (suspended: false)pachca users update 123 --no-suspended # Создать публичный канал (channel: true, public: true)pachca chats create --name "Новости" --channel --public # Сделать канал приватным (public: false)pachca chats update 123 --no-public

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

Флаг --dry-run показывает HTTP-запрос без отправки — для отладки и проверки параметров:

pachca messages create --entity-id 123 --content "Привет" --dry-run # POST https://api.pachca.com/api/shared/v1/messages# Authorization: Bearer ••••••••# Content-Type: application/json## {"message": {"entity_id": 123, "content": "Привет"}}

Деструктивные операции

DELETE-команды требуют подтверждения в терминале. Флаг --force пропускает его:

# С подтверждением (TTY)pachca users delete 1234 # Без подтвержденияpachca users delete 1234 --force

Exit codes

КодЗначение
0Успех
1API или runtime ошибка
2Неверные флаги или аргументы
3Ошибка аутентификации (401 / 403)
4Ресурс не найден (404)
Использование exit codes
pachca users get 123 || case $? in    3) echo "Нет доступа" ;;    4) echo "Пользователь не найден" ;;  esac

Ошибки

При -o json (или в пайпе) ошибки выводятся в stderr как JSON. Формат единый для всех типов ошибок:

API-ошибка (422)
{  "error": "content: не может быть пустым",  "code": 422,  "type": "PACHCA_VALIDATION_ERROR",  "request_id": "abc123",  "field": "content"}
Множественная валидация (422)
{  "error": "Validation failed",  "code": 422,  "type": "PACHCA_VALIDATION_ERROR",  "request_id": "abc123",  "errors": [    { "field": "content", "message": "не может быть пустым" },    { "field": "entity_id", "message": "обязательное поле" }  ]}
Ошибка авторизации
{  "error": "Token not found",  "code": null,  "type": "PACHCA_AUTH_ERROR",  "hint": "pachca auth login --token <your-token>"}
ПолеТипОписание
errorstringСообщение об ошибке
codenumber | nullHTTP-код ответа (null для клиентских ошибок)
typestringТип ошибки (см. таблицу ниже)
request_idstring?ID запроса к API (для обращения в поддержку)
hintstring?Подсказка, как исправить ошибку
fieldstring?Поле, вызвавшее ошибку
errorsarray?Список ошибок при множественной валидации
ТипОписание
PACHCA_API_ERRORОшибка API (5xx, неожиданные ответы)
PACHCA_AUTH_ERRORОшибка аутентификации (401 / 403)
PACHCA_VALIDATION_ERRORОшибка валидации (422)
PACHCA_SCOPE_ERRORТокен не имеет нужного скоупа
PACHCA_NETWORK_ERRORСеть недоступна
PACHCA_TIMEOUT_ERRORТаймаут запроса
PACHCA_USAGE_ERRORНеверные флаги или аргументы
Обработка ошибок в скрипте
# Получить ошибку как JSONERROR=$(pachca users get 999 -o json 2>&1 >/dev/null)TYPE=$(echo "$ERROR" | jq -r '.type') case "$TYPE" in  PACHCA_AUTH_ERROR) echo "Нет доступа" ;;  PACHCA_VALIDATION_ERROR) echo "Неверные данные" ;;  *) echo "Ошибка: $ERROR" ;;esac

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

ПеременнаяОписание
PACHCA_TOKENBearer-токен (высший приоритет, удобно для CI)
PACHCA_PROFILEАктивный профиль для команды
PACHCA_HOMEПереопределить каталог конфига (по умолчанию ~/.config/pachca). Удобно для изоляции в CI/тестах/агентах
PACHCA_TIMEOUTТаймаут запроса в секундах (по умолчанию 30)
PACHCA_PROMPT_DISABLEDОтключить интерактивные промпты (для агентов)
CIАвтоматический неинтерактивный режим
NO_COLORОтключить цвет
FORCE_COLORПринудительно включить цвет
PACHCA_SKIP_NEW_VERSION_CHECKОтключить проверку обновлений

Неинтерактивный режим

CLI автоматически переходит в неинтерактивный режим при любом из условий: stdin или stdout — не TTY, установлена PACHCA_PROMPT_DISABLED или CI, передан флаг --no-input. В этом режиме нет промптов, спиннера, а при пропущенных обязательных флагах — ошибка вместо запроса.

PACHCA_TOKEN=YOUR_ACCESS_TOKEN pachca messages create --entity-id 123 --content "Деплой завершён" --no-input