Справочник CLI
Полный справочник команд клиента командной строки AIKraft Agents (craft-cli), включая установку, параметры подключения, управление сессиями и проверку сервера.
craft-cli — это терминальный клиент, который подключается к запущенному headless-серверу AIKraft Agents по протоколу WebSocket. Он предоставляет команды для просмотра ресурсов, управления сессиями, отправки сообщений с потоковой передачей в реальном времени и проверки состояния сервера.
Установка
# Клонирование репозитория
git clone https://github.com/anthropics/craft-agents.git
cd craft-agents
# Установка зависимостей
bun install
# Вариант A: Запуск напрямую
bun run apps/cli/src/index.ts <command>
# Вариант B: Глобальная установка (добавляет craft-cli в PATH)
cd apps/cli && bun link
craft-cli <command>Быстрый старт
Самый быстрый способ попробовать — без настройки сервера:
# Самостоятельный запуск (автоматически запускает сервер)
ANTHROPIC_API_KEY=sk-... bun run apps/cli/src/index.ts run "Hello, world!"Параметры подключения
| Флаг | Переменная окружения | По умолчанию | Описание |
|---|---|---|---|
--url <ws[s]://...> |
CRAFT_SERVER_URL |
— | URL WebSocket-сервера |
--token <secret> |
CRAFT_SERVER_TOKEN |
— | Токен аутентификации |
--workspace <id> |
— | автоопределение | ID workspace |
--timeout <ms> |
— | 10000 |
Таймаут запроса |
--tls-ca <path> |
CRAFT_TLS_CA |
— | Пользовательский сертификат CA (для самоподписанного TLS) |
--json |
— | false |
Вывод JSON для скриптов |
--send-timeout <ms> |
— | 300000 |
Таймаут для команды send |
Флаги переопределяют переменные окружения. Если --workspace не указан, используется первый доступный workspace автоматически.
Команды
Информация и проверка состояния
| Команда | Канал | Описание |
|---|---|---|
ping |
только рукопожатие | Проверка соединения — выводит clientId и задержку |
health |
credentials:healthCheck |
Проверка состояния хранилища учётных данных |
versions |
system:versions |
Отображение версий сервера |
Просмотр ресурсов
| Команда | Канал | Описание |
|---|---|---|
workspaces |
workspaces:get |
Список всех workspace (id, name, path) |
sessions |
sessions:get |
Список сессий (id, name, preview, status) |
connections |
LLM_Connection:list |
Список LLM-подключений |
sources |
sources:get |
Список настроенных источников |
Операции с сессиями
| Команда | Канал | Описание |
|---|---|---|
session create [--name <n>] [--mode <m>] |
sessions:create |
Создание новой сессии |
session messages <id> |
sessions:getMessages |
Вывод истории сообщений |
session delete <id> |
sessions:delete |
Удаление сессии |
cancel <id> |
sessions:cancel |
Отмена текущей обработки |
Отправка сообщения (с потоковой передачей)
craft-cli send <session-id> <message>
echo "Summarize this" | craft-cli send <session-id>Команда send подписывается на session:event и потоково передаёт ответ ИИ в stdout в реальном времени:
| Тип события | Вывод |
|---|---|
text_delta |
Текст добавляется в строку |
tool_start |
Маркер [tool: name — intent] |
tool_result |
Вывод инструмента (усечён до 200 символов) |
error |
Ошибка в stderr, код завершения 1 |
complete |
Перевод строки, код завершения 0 |
interrupted |
[interrupted], код завершения 130 |
Сырой RPC
craft-cli invoke <channel> [json-args...] # Отправка любого RPC-канала
craft-cli listen <channel> # Подписка на push-событияinvoke отправляет запрос на любой канал и выводит ответ. listen подписывается на push-канал и выводит события по мере поступления (Ctrl+C для остановки).
Run (самостоятельный запуск)
craft-cli run <prompt>
craft-cli run --workspace-dir ./project --source github "List open PRs"Команда run полностью автономна — она запускает headless-сервер, создаёт сессию, отправляет запрос, потоково передаёт ответ и завершается. Не требуется отдельная настройка сервера. Ключ API определяется из --api-key, $LLM_API_KEY или переменной окружения конкретного провайдера (например, $ANTHROPIC_API_KEY, $OPENAI_API_KEY).
| Флаг | По умолчанию | Описание |
|---|---|---|
--workspace-dir <path> |
— | Регистрация директории workspace перед запуском |
--source <slug> |
— | Включение источника (можно повторять) |
--output-format <fmt> |
text |
Формат вывода: text или stream-json |
--mode <mode> |
allow-all |
Режим прав для сессии |
--no-cleanup |
false |
Пропустить удаление сессии при завершении |
--server-entry <path> |
— | Пользовательская точка входа сервера |
Настройка LLM:
| Флаг | Переменная окружения | По умолчанию | Описание |
|---|---|---|---|
--provider <name> |
LLM_PROVIDER |
anthropic |
Провайдер: anthropic, openai, google, openrouter, groq, mistral, xai и др. |
--model <id> |
LLM_MODEL |
(по умолчанию провайдера) | ID модели (например, claude-sonnet-4-5-20250929, gpt-4o, gemini-2.0-flash) |
--api-key <key> |
LLM_API_KEY |
(переменная окружения провайдера) | Ключ API — также проверяет переменные окружения конкретных провайдеров, таких как $OPENAI_API_KEY |
--base-url <url> |
LLM_BASE_URL |
— | Пользовательский конечный точка для прокси, OpenRouter или локальных моделей |
# Примеры с несколькими провайдерами
craft-cli run --provider openai --model gpt-4o "Summarize this repo"
GOOGLE_API_KEY=... craft-cli run --provider google --model gemini-2.0-flash "Hello"
craft-cli run --provider anthropic --base-url https://openrouter.ai/api/v1 --api-key $OR_KEY "Hello"Проверка сервера
# Против запущенного сервера
craft-cli --validate-server --url ws://127.0.0.1:9100 --token <token>
# Самостоятельный запуск (автоматически запускает сервер)
craft-cli --validate-serverЕсли --url не указан, --validate-server автоматически запускает локальный headless-сервер, выполняет проверку и завершает его работу.
Выполняет 21-этапный интеграционный тест, охватывающий полный жизненный цикл сервера, включая создание источников и скиллов:
- Подключение + рукопожатие
credentials:healthChecksystem:versionssystem:homeDirworkspaces:getsessions:getLLM_Connection:listsources:getsessions:create(временная сессия__cli-validate-*)sessions:getMessages- Отправка сообщения + поток (текстовый ответ)
- Отправка сообщения + использование инструмента (инструмент Bash)
sources:create(временный источник Cat Facts API)- Отправка + упоминание источника (использует созданный источник)
- Отправка + создание скилла (запись SKILL.md через Bash)
skills:get(проверка появления скилла)- Отправка + упоминание скилла (вызов созданного скилла)
skills:delete(очистка)sources:delete(очистка)sessions:delete(очистка)- Отключение
Примечание: Этот тест изменяет состояние workspace — создаёт и удаляет временную сессию, источник и скилл. Все ресурсы очищаются по завершении. В случае ошибки продолжает выполнение и выводит сводку.
Используйте --json для машинно-читаемого вывода:
craft-cli --validate-server --json | jq '.results[] | select(.status == "FAIL")'Устранение неполадок
| Симптом | Причина | Решение |
|---|---|---|
| Таймаут соединения | Сервер не запущен | Проверьте URL сервера и убедитесь, что он запущен |
AUTH_FAILED |
Неверный токен | Проверьте, что CRAFT_SERVER_TOKEN совпадает |
PROTOCOL_VERSION_UNSUPPORTED |
Несоответствие версий | Обновите CLI и сервер |
| Ошибка WebSocket | Проблемы с сетью/TLS | Используйте --tls-ca для самоподписанных сертификатов |
Нужен такой агент в вашей компании?
Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →