Главная/Документация/Сервер и удалённый доступ/CLI-клиент
Сервер и удалённый доступ

CLI-клиент

CLI-клиент craft-cli позволяет взаимодействовать с headless-сервером AIKraft Agents из терминала: управлять сессиями, отправлять сообщения с потоковой передачей ответов и проверять состояние сервера.

CLI-клиент craft-cli — это терминальный клиент для headless-сервера AIKraft Agents. Он подключается по WebSocket и позволяет управлять сессиями, отправлять сообщения с потоковой передачей ответов в реальном времени, а также проверять состояние сервера — всё из командной строки.

Установка

Из корня монорепозитория:

terminalbash
# Установить зависимости
bun install

# Вариант A: Запуск напрямую (без глобальной установки)
bun run apps/cli/src/index.ts <command>

# Вариант B: Глобальная связь (добавляет craft-cli в PATH)
cd apps/cli && bun link

После связывания craft-cli доступен в любой точке терминала.

Быстрый старт

1. Запустите сервер

terminalbash
CRAFT_SERVER_TOKEN=$(openssl rand -hex 32) bun run packages/server/src/index.ts

2. Настройте параметры подключения

terminalbash
export CRAFT_SERVER_URL=ws://127.0.0.1:9100
export CRAFT_SERVER_TOKEN=<your-token>

3. Проверьте подключение

terminalbash
craft-cli ping
# Connected: clientId=a1b2c3d4 latency=12ms

4. Начните работу

terminalbash
# Список сессий
craft-cli sessions

# Отправить сообщение и получить потоковый ответ
craft-cli send <session-id> "What files changed in the last commit?"

Распространённые сценарии использования

Выполнение однократной задачи (самодостаточно)

Команда run запускает headless-сервер, создаёт сессию, отправляет ваш запрос, передаёт ответ в потоковом режиме и завершается — отдельная настройка сервера не требуется:

terminalbash
# Простой запрос
craft-cli run "Summarize the project structure"

# С директорией workspace и источниками
craft-cli run --workspace-dir ./my-project --source github "List open PRs"

# Поддержка нескольких провайдеров
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"

# Потоковый вывод JSON для CI
craft-cli run --output-format stream-json "Run the test suite"

Ключ API извлекается из --api-key, $LLM_API_KEY или переменной окружения, специфичной для провайдера (например, $ANTHROPIC_API_KEY, $OPENAI_API_KEY). Полный список флагов run и параметров LLM доступен в справочнике CLI.

Проверка развёртывания сервера

После развёртывания или обновления сервера выполните встроенную проверку:

terminalbash
# Для работающего сервера
craft-cli --validate-server --url ws://127.0.0.1:9100 --token <token>

# Самодостаточно (автоматически запускает сервер, --url не нужен)
craft-cli --validate-server

Если --url не указан, --validate-server автоматически запускает локальный headless-сервер, выполняет проверку и завершает его работу.

Эта проверка охватывает 21 шаг, включая проверку подключения, состояния учётных данных, просмотр workspace, жизненный цикл сессий, создание и очистку источников и скиллов. Примечание: она изменяет состояние workspace (создаёт и удаляет временные ресурсы). Используйте --json для вывода, удобного для CI:

terminalbash
craft-cli --validate-server --json | jq '.failed'
# 0 = всё в порядке

Управление сессиями

terminalbash
# Создать сессию
craft-cli session create --name "Code Review" --mode safe

# Список сессий
craft-cli sessions

# Отправить сообщение и получить потоковый ответ ИИ
craft-cli send <id> "Review the changes in src/auth/"

# Отменить при необходимости
craft-cli cancel <id>

# Очистить
craft-cli session delete <id>

Потоковая передача ответов ИИ

Команда send подключается к потоку событий сессии и выводит ответ ИИ в стандартный вывод в реальном времени:

terminalbash
craft-cli send abc-123 "Explain the authentication flow"

Можно также передавать ввод через конвейер:

terminalbash
cat error.log | craft-cli send abc-123 "What's causing these errors?"
git diff HEAD~1 | craft-cli send abc-123 "Review this diff"

Работа с JSON-выводом в скриптах

Каждая команда поддерживает --json для вывода в машинночитаемом формате:

terminalbash
# Получить все идентификаторы workspace
craft-cli --json workspaces | jq -r '.[].id'

# Подсчёт сессий
craft-cli --json sessions | jq length

# Создать сессию и сохранить идентификатор
SESSION=$(craft-cli --json session create --name "CI" | jq -r '.id')

Интеграция с CI/CD

Используйте CLI для автоматизации задач в вашем конвейере:

terminalbash
#!/bin/bash
set -e

# Проверить состояние сервера
craft-cli --validate-server --json | jq -e '.failed == 0'

# Создать сессию для этого запуска CI
SESSION=$(craft-cli --json session create --name "CI-${CI_BUILD_ID}" | jq -r '.id')

# Выполнить задачу
craft-cli send "$SESSION" "Run the test suite and report any failures"

# Очистить
craft-cli session delete "$SESSION"

Прямой доступ к RPC

Для каналов, не охваченных именованными командами, используйте команду invoke:

terminalbash
# Вызов любого RPC-канала напрямую
craft-cli invoke system:homeDir
craft-cli invoke sessions:get '"workspace-123"'

# Подписка на события
craft-cli listen session:event

Параметры подключения

Полный список флагов, переменных окружения и решения проблем доступен в справочнике CLI.

Нужен такой агент в вашей компании?

Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →