Claude Code
Делегирование кода CLI Claude Code (функции, PR).
Метаданные навыка
| Источник | Встроенный (установлен по умолчанию) |
| Путь | skills/autonomous-ai-agents/claude-code |
| Версия | 2.2.0 |
| Автор | VibeOS + Teknium |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | Coding-Agent, Claude, Anthropic, Code-Review, Refactoring, PTY, Automation |
| Связанные навыки | codex, vibeos-agent, opencode |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Это то, что агент видит в качестве инструкций, когда навык активен.
Claude Code — Руководство по оркестрации VibeOS
Делегируйте задачи по коду Claude Code (автономному агенту кода Anthropic через CLI) через терминал VibeOS. Claude Code v2.x может читать файлы, писать код, выполнять команды оболочки, порождать под-агентов и управлять git-рабочими процессами автономно.
Предварительные требования
- Установка:
npm install -g @anthropic-ai/claude-code - Аутентификация: выполните
claudeодин раз для входа (браузерный OAuth для Pro/Max или установитеANTHROPIC_API_KEY) - Консольная аутентификация:
claude auth login --consoleдля биллинга по API-ключу - SSO-аутентификация:
claude auth login --ssoдля Enterprise - Проверка статуса:
claude auth status(JSON) илиclaude auth status --text(человекочитаемый) - Проверка работоспособности:
claude doctor— проверяет автообновление и работоспособность установки - Проверка версии:
claude --version(требуется v2.x+) - Обновление:
claude updateилиclaude upgrade
Два режима оркестрации
VibeOS взаимодействует с Claude Code двумя принципиально разными способами. Выбирайте в зависимости от задачи.
Режим 1: Режим печати (-p) — Неинтерактивный (ПРЕДПОЧТИТЕЛЬНЫЙ для большинства задач)
Режим печати выполняет одноразовую задачу, возвращает результат и завершается. PTY не требуется. Никаких интерактивных запросов. Это самый чистый путь интеграции.
terminal(command="claude -p 'Добавь обработку ошибок во все API-вызовы в src/' --allowedTools 'Read,Edit' --max-turns 10", workdir="/path/to/project", timeout=120)
Когда использовать режим печати:
- Одноразовые задачи по коду (исправить баг, добавить функцию, рефакторинг)
- Автоматизация CI/CD и скриптинг
- Структурированное извлечение данных с помощью
--json-schema - Обработка конвейерного ввода (
cat file | claude -p "проанализируй это") - Любая задача, где не нужен многошаговый диалог
Режим печати пропускает ВСЕ интерактивные диалоги — никаких запросов доверия к рабочей области, никаких подтверждений разрешений. Это делает его идеальным для автоматизации.
Режим 2: Интерактивный PTY через tmux — Многошаговые сессии
Интерактивный режим предоставляет полноценный диалоговый REPL, где вы можете отправлять последующие запросы, использовать slash-команды и наблюдать за работой Claude в реальном времени. Требует оркестрации tmux.
# Запустить сессию tmux
terminal(command="tmux new-session -d -s claude-work -x 140 -y 40")
# Запустить Claude Code внутри неё
terminal(command="tmux send-keys -t claude-work 'cd /path/to/project && claude' Enter")
# Подождать запуска, затем отправить задачу
# (примерно через 3-5 секунд для экрана приветствия)
terminal(command="sleep 5 && tmux send-keys -t claude-work 'Выполни рефакторинг модуля аутентификации для использования JWT-токенов' Enter")
# Отслеживать прогресс, захватывая панель
terminal(command="sleep 15 && tmux capture-pane -t claude-work -p -S -50")
# Отправить последующие задачи
terminal(command="tmux send-keys -t claude-work 'Теперь добавь модульные тесты для нового JWT-кода' Enter")
# Завершить работу
terminal(command="tmux send-keys -t claude-work '/exit' Enter")
Когда использовать интерактивный режим:
- Многошаговая итеративная работа (цикл рефакторинг → ревью → исправление → тестирование)
- Задачи, требующие решений с участием человека
- Исследовательские сессии кодинга
- Когда нужно использовать slash-команды Claude (
/compact,/review,/model)
Обработка диалогов PTY (КРИТИЧЕСКИ ВАЖНО для интерактивного режима)
Claude Code отображает до двух диалогов подтверждения при первом запуске. Вы ОБЯЗАНЫ обработать их с помощью tmux send-keys:
Диалог 1: Доверие к рабочей области (первое посещение директории)
❯ 1. Да, я доверяю этой папке ← ПО УМОЛЧАНИЮ (просто нажмите Enter)
2. Нет, выйти
Обработка: tmux send-keys -t <session> Enter — выбор по умолчанию верен.
Диалог 2: Предупреждение об обходе разрешений (только с --dangerously-skip-permissions)
❯ 1. Нет, выйти ← ПО УМОЛЧАНИЮ (НЕВЕРНЫЙ выбор!)
2. Да, я принимаю
Обработка: Сначала нужно перейти вниз, затем Enter:
tmux send-keys -t <session> Down && sleep 0.3 && tmux send-keys -t <session> Enter
Надёжный шаблон обработки диалогов
# Запуск с обходом разрешений
terminal(command="tmux send-keys -t claude-work 'claude --dangerously-skip-permissions \"твоя задача\"' Enter")
# Обработка диалога доверия (Enter для выбора "Да" по умолчанию)
terminal(command="sleep 4 && tmux send-keys -t claude-work Enter")
# Обработка диалога разрешений (Down, затем Enter для выбора "Да, я принимаю")
terminal(command="sleep 3 && tmux send-keys -t claude-work Down && sleep 0.3 && tmux send-keys -t claude-work Enter")
# Теперь ждём, пока Claude работает
terminal(command="sleep 15 && tmux capture-pane -t claude-work -p -S -60")
Примечание: После первого принятия доверия для директории диалог доверия больше не появится. Только диалог разрешений повторяется каждый раз при использовании --dangerously-skip-permissions.
Подкоманды CLI
| Подкоманда | Назначение |
|---|---|
claude | Запустить интерактивный REPL |
claude "запрос" | Запустить REPL с начальным запросом |
claude -p "запрос" | Режим печати (неинтерактивный, завершается по окончании) |
cat file | claude -p "запрос" | Передать содержимое как контекст stdin |
claude -c | Продолжить последний разговор в этой директории |
claude -r "id" | Возобновить конкретную сессию по ID или имени |
claude auth login | Войти (добавьте --console для биллинга API, --sso для Enterprise) |
claude auth status | Проверить статус входа (возвращает JSON; --text для человекочитаемого) |
claude mcp add <имя> -- <команда> | Добавить MCP-сервер |
claude mcp list | Список настроенных MCP-серверов |
claude mcp remove <имя> | Удалить MCP-сервер |
claude agents | Список настроенных агентов |
claude doctor | Запустить проверки работоспособности установки и автообновления |
claude update / claude upgrade | Обновить Claude Code до последней версии |
claude remote-control | Запустить сервер для управления Claude из claude.ai или мобильного приложения |
claude install [цель] | Установить нативную сборку (стабильную, последнюю или конкретную версию) |
claude setup-token | Настроить долгоживущий токен аутентификации (требуется подписка) |
claude plugin / claude plugins | Управление плагинами Claude Code |
claude auto-mode | Просмотр конфигурации классификатора автоматического режима |
Углублённое изучение режима печати
Структурированный JSON-вывод
terminal(command="claude -p 'Проанализируй auth.py на предмет проблем безопасности' --output-format json --max-turns 5", workdir="/project", timeout=120)
Возвращает JSON-объект с:
{
"type": "result",
"subtype": "success",
"result": "Текст анализа...",
"session_id": "75e2167f-...",
"num_turns": 3,
"total_cost_usd": 0.0787,
"duration_ms": 10276,
"stop_reason": "end_turn",
"terminal_reason": "completed",
"usage": { "input_tokens": 5, "output_tokens": 603, ... },
"modelUsage": { "claude-sonnet-4-6": { "costUSD": 0.078, "contextWindow": 200000 } }
}
Ключевые поля: session_id для возобновления, num_turns для подсчёта циклов агента, total_cost_usd для отслеживания расходов, subtype для определения успеха/ошибки (success, error_max_turns, error_budget).
Потоковый JSON-вывод
Для потоковой передачи токенов в реальном времени используйте stream-json с --verbose:
terminal(command="claude -p 'Напиши краткое содержание' --output-format stream-json --verbose --include-partial-messages", timeout=60)
Возвращает события JSON, разделённые новой строкой. Фильтруйте с помощью jq для живого текста:
claude -p "Объясни X" --output-format stream-json --verbose --include-partial-messages | \
jq -rj 'select(.type == "stream_event" and .event.delta.type? == "text_delta") | .event.delta.text'
События потока включают system/api_retry с полями attempt, max_retries и error (например, rate_limit, billing_error).
Двунаправленная потоковая передача
Для потоковой передачи ввода И вывода в реальном времени:
claude -p "задача" --input-format stream-json --output-format stream-json --replay-user-messages
--replay-user-messages повторно отправляет сообщения пользователя в stdout для подтверждения.
Конвейерный ввод
# Передать файл для анализа
terminal(command="cat src/auth.py | claude -p 'Проверь этот код на наличие багов' --max-turns 1", timeout=60)
# Передать несколько файлов
terminal(command="cat src/*.py | claude -p 'Найди все TODO-комментарии' --max-turns 1", timeout=60)
# Передать вывод команды
terminal(command="git diff HEAD~3 | claude -p 'Обобщи эти изменения' --max-turns 1", timeout=60)
JSON-схема для структурированного извлечения
terminal(command="claude -p 'Перечисли все функции в src/' --output-format json --json-schema '{\"type\":\"object\",\"properties\":{\"functions\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"functions\"]}' --max-turns 5", workdir="/project", timeout=90)
Извлеките structured_output из JSON-результата. Claude проверяет вывод на соответствие схеме перед возвратом.
Продолжение сессии
# Начать задачу
terminal(command="claude -p 'Начни рефакторинг слоя базы данных' --output-format json --max-turns 10 > /tmp/session.json", workdir="/project", timeout=180)
# Возобновить с ID сессии
terminal(command="claude -p 'Продолжи и добавь пул соединений' --resume $(cat /tmp/session.json | python3 -c 'import json,sys; print(json.load(sys.stdin)[\"session_id\"])') --max-turns 5", workdir="/project", timeout=120)
# Или возобновить последнюю сессию в той же директории
terminal(command="claude -p 'Что ты делал в прошлый раз?' --continue --max-turns 1", workdir="/project", timeout=30)
# Разветвить сессию (новый ID, сохраняется история)
terminal(command="claude -p 'Попробуй другой подход' --resume <id> --fork-session --max-turns 10", workdir="/project", timeout=120)
Голый режим для CI/скриптов
terminal(command="claude --bare -p 'Запусти все тесты и сообщи о сбоях' --allowedTools 'Read,Bash' --max-turns 10", workdir="/project", timeout=180)
--bare пропускает хуки, плагины, обнаружение MCP и загрузку CLAUDE.md. Самый быстрый запуск. Требует ANTHROPIC_API_KEY (пропускает OAuth).
Для выборочной загрузки контекста в голом режиме:
| Чтобы загрузить | Флаг |
|---|---|
| Дополнения к системному запросу | --append-system-prompt "текст" или --append-system-prompt-file путь |
| Настройки | --settings <файл-или-json> |
| MCP-серверы | --mcp-config <файл-или-json> |
| Пользовательские агенты | --agents '<json>' |
Резервная модель при перегрузке
terminal(command="claude -p 'задача' --fallback-model haiku --max-turns 5", timeout=90)
Автоматически переключается на указанную модель, когда модель по умолчанию перегружена (только режим печати).
Полный справочник флагов CLI
Сессия и окружение
| Флаг | Действие |
|---|---|
-p, --print | Неинтерактивный одноразовый режим (завершается по окончании) |
-c, --continue | Возобновить последний разговор в текущей директории |
-r, --resume <id> | Возобновить конкретную сессию по ID или имени (интерактивный выбор, если ID не указан) |
--fork-session | При возобновлении создать новый ID сессии вместо повторного использования исходного |
--session-id <uuid> | Использовать конкретный UUID для разговора |
--no-session-persistence | Не сохранять сессию на диск (только режим печати) |
--add-dir <пути...> | Предоставить Claude доступ к дополнительным рабочим директориям |
-w, --worktree [имя] | Запустить в изолированном git worktree в .claude/worktrees/<имя> |
--tmux | Создать сессию tmux для worktree (требует --worktree) |
--ide | Автоматически подключиться к действующей IDE при запуске |
--chrome / --no-chrome | Включить/отключить интеграцию с браузером Chrome для веб-тестирования |
--from-pr [номер] | Возобновить сессию, связанную с конкретным GitHub PR |
--file <спецификации...> | Файловые ресурсы для загрузки при запуске (формат: file_id:относительный_путь) |
Модель и производительность
| Флаг | Действие |
|---|---|
--model <псевдоним> | Выбор модели: sonnet, opus, haiku или полное имя, например claude-sonnet-4-6 |
--effort <уровень> | Глубина рассуждений: low, medium, high, max, auto |
--max-turns <n> | Ограничить циклы агента (только режим печати; предотвращает бесконечный цикл) |
--max-budget-usd <n> | Ограничить расходы API в долларах (только режим печати) |
--fallback-model <модель> | Автоматический переход при перегрузке модели по умолчанию (только режим печати) |
--betas <бета-версии...> | Бета-заголовки для включения в API-запросы (только для пользователей API-ключа) |
Разрешения и безопасность
| Флаг | Действие |
|---|---|
--dangerously-skip-permissions | Автоматически одобрять ВСЕ использование инструментов (запись файлов, bash, сеть и т.д.) |
--allow-dangerously-skip-permissions | Включить обход как опцию, не включая его по умолчанию |
--permission-mode <режим> | default, acceptEdits, plan, auto, dontAsk, bypassPermissions |
--allowedTools <инструменты...> | Белый список конкретных инструментов (через запятую или пробел) |
--disallowedTools <инструменты...> | Чёрный список конкретных инструментов |
--tools <инструменты...> | Переопределить встроенный набор инструментов ("" = нет, "default" = все, или имена инструментов) |
Формат вывода и ввода
| Флаг | Действие |
|---|---|
--output-format <формат> | text (по умолчанию), json (один объект результата), stream-json (разделение новой строкой) |
--input-format <формат> | text (по умолчанию) или stream-json (потоковый ввод в реальном времени) |
--json-schema <схема> | Принудительный структурированный JSON-вывод, соответствующий схеме |
--verbose | Полный вывод пошагово |
--include-partial-messages | Включать частичные фрагменты сообщений по мере их поступления (stream-json + print) |
--replay-user-messages | Повторно отправлять сообщения пользователя в stdout (двунаправленный stream-json) |
Системный запрос и контекст
| Флаг | Действие |
|---|---|
--append-system-prompt <текст> | Добавить к системному запросу по умолчанию (сохраняет встроенные возможности) |
--append-system-prompt-file <путь> | Добавить содержимое файла к системному запросу по умолчанию |
--system-prompt <текст> | Заменить весь системный запрос (обычно используйте --append) |
--system-prompt-file <путь> | Заменить системный запрос содержимым файла |
--bare | Пропустить хуки, плагины, обнаружение MCP, CLAUDE.md, OAuth (самый быстрый запуск) |
--agents '<json>' | Динамически определить пользовательские под-агенты в формате JSON |
--mcp-config <путь> | Загрузить MCP-серверы из JSON-файла (можно повторять) |
--strict-mcp-config | Использовать только MCP-серверы из --mcp-config, игнорируя все остальные конфигурации MCP |
--settings <файл-или-json> | Загрузить дополнительные настройки из JSON-файла или встроенного JSON |
--setting-sources <источники> | Источники для загрузки через запятую: user, project, local |
--plugin-dir <пути...> | Загрузить плагины из директорий только для этой сессии |
--disable-slash-commands | Отключить все навыки/slash-команды |
Отладка
| Флаг | Действие |
|---|---|
-d, --debug [фильтр] | Включить отладочное логирование с опциональным фильтром категорий (например, "api,hooks", "!1p,!file") |
--debug-file <путь> | Записывать отладочные логи в файл (неявно включает режим отладки) |
Команды агентов
| Флаг | Действие |
|---|---|
--teammate-mode <режим> | Как отображаются команды агентов: auto, in-process или tmux |
--brief | Включить инструмент SendUserMessage для связи агента с пользователем |
Синтаксис имён инструментов для --allowedTools / --disallowedTools
Read # Всё чтение файлов
Edit # Редактирование файлов (существующие файлы)
Write # Создание файлов (новые файлы)
Bash # Все команды оболочки
Bash(git *) # Только git-команды
Bash(git commit *) # Только команды git commit
Bash(npm run lint:*) # Сопоставление с шаблоном с подстановочными знаками
WebSearch # Возможность веб-поиска
WebFetch # Получение веб-страниц
mcp__<сервер>__<инструмент> # Конкретный MCP-инструмент
Настройки и конфигурация
Иерархия настроек (от высшего к низшему приоритету)
- Флаги CLI — переопределяют всё
- Локальный проект:
.claude/settings.local.json(личные, в gitignore) - Проект:
.claude/settings.json(общие, отслеживаются git) - Пользователь:
~/.claude/settings.json(глобальные)
Разрешения в настройках
{
"permissions": {
"allow": ["Bash(npm run lint:*)", "WebSearch", "Read"],
"ask": ["Write(*.ts)", "Bash(git push*)"],
"deny": ["Read(.env)", "Bash(rm -rf *)"]
}
}
Иерархия файлов памяти (CLAUDE.md)
- Глобальный:
~/.claude/CLAUDE.md— применяется ко всем проектам - Проект:
./CLAUDE.md— контекст, специфичный для проекта (отслеживается git) - Локальный:
.claude/CLAUDE.local.md— личные переопределения проекта (в gitignore)
Используйте префикс # в интерактивном режиме для быстрого добавления в память: # Всегда используй отступ в 2 пробела.
Интерактивная сессия: Slash-команды
Сессия и контекст
| Команда | Назначение |
|---|---|
/help | Показать все команды (включая пользовательские и MCP-команды) |
/compact [фокус] | Сжать контекст для экономии токенов; CLAUDE.md сохраняется при сжатии. Например: /compact focus on auth logic |
/clear | Очистить историю разговора для свежего старта |
/context | Визуализировать использование контекста в виде цветной сетки с советами по оптимизации |
/cost | Просмотреть использование токенов с разбивкой по моделям и попаданиям в кэш |
/resume | Переключиться на другую сессию или возобновить её |
/rewind | Откатиться к предыдущей контрольной точке в разговоре или коде |
/btw <вопрос> | Задать побочный вопрос без увеличения стоимости контекста |
/status | Показать версию, подключение и информацию о сессии |
/todos | Список отслеживаемых пунктов действий из разговора |
/exit или Ctrl+D | Завершить сессию |
Разработка и ревью
| Команда | Назначение |
|---|---|
/review | Запросить ревью кода текущих изменений |
/security-review | Выполнить анализ безопасности текущих изменений |
/plan [описание] | Войти в режим планирования с автоматическим запуском для планирования задач |
/loop [интервал] | Запланировать повторяющиеся задачи в рамках сессии |
/batch | Автоматически создавать worktree для больших параллельных изменений (5-30 worktree) |
Конфигурация и инструменты
| Команда | Назначение |
|---|---|
/model [модель] | Переключить модели в середине сессии (используйте стрелки для настройки усилий) |
/effort [уровень] | Установить уровень усилий рассуждений: low, medium, high, max или auto |
/init | Создать файл CLAUDE.md для памяти проекта |
/memory | Открыть CLAUDE.md для редактирования |
/config | Открыть интерактивную конфигурацию настроек |
/permissions | Просмотреть/обновить разрешения инструментов |
/agents | Управлять специализированными под-агентами |
/mcp | Интерактивный интерфейс для управления MCP-серверами |
/add-dir | Добавить дополнительные рабочие директории (полезно для монорепозиториев) |
/usage | Показать лимиты плана и статус ограничения скорости |
/voice | Включить голосовой режим push-to-talk (20 языков; удерживайте Space для записи, отпустите для отправки) |
/release-notes | Интерактивный выбор примечаний к выпуску версии |
Пользовательские slash-команды
Создайте .claude/commands/<имя>.md (общие для проекта) или ~/.claude/commands/<имя>.md (личные):
# .claude/commands/deploy.md
Запустить конвейер развёртывания:
1. Запустить все тесты
2. Собрать Docker-образ
3. Отправить в реестр
4. Обновить окружение $ARGUMENTS (по умолчанию: staging)
Использование: /deploy production — $ARGUMENTS заменяется на ввод пользователя.
Навыки (вызов на естественном языке)
В отличие от slash-команд (вызываемых вручную), навыки в .claude/skills/ — это markdown-руководства, которые Claude вызывает автоматически через естественный язык, когда задача соответствует:
# .claude/skills/database-migration.md
Когда вас просят создать или изменить миграции базы данных:
1. Используйте Alembic для генерации миграций
2. Всегда создавайте функцию отката
3. Тестируйте миграции на локальной копии базы данных
Интерактивная сессия: Сочетания клавиш
Общие элементы управления
| Клавиша | Действие |
|---|---|
Ctrl+C | Отменить текущий ввод или генерацию |
Ctrl+D | Завершить сессию |
Ctrl+R | Обратный поиск по истории команд |
Ctrl+B | Отправить выполняющуюся задачу в фон |
Ctrl+V | Вставить изображение в разговор |
Ctrl+O | Режим транскрипта — увидеть мыслительный процесс Claude |
Ctrl+G или Ctrl+X Ctrl+E | Открыть запрос во внешнем редакторе |
Esc Esc | Откатить разговор или состояние кода / обобщить |
Переключение режимов
| Клавиша | Действие |
|---|---|
Shift+Tab | Циклическое переключение режимов разрешений (Normal → Auto-Accept → Plan) |
Alt+P | Переключить модель |
Alt+T | Переключить режим мышления |
Alt+O | Переключить быстрый режим |
Многострочный ввод
| Клавиша | Действие |
|---|---|
\ + Enter | Быстрый перевод строки |
Shift+Enter | Перевод строки (альтернатива) |
Ctrl+J | Перевод строки (альтернатива) |
Префиксы ввода
| Префикс | Действие |
|---|---|
! | Выполнить bash напрямую, минуя ИИ (например, !npm test). Используйте ! отдельно для переключения в режим оболочки. |
@ | Ссылаться на файлы/директории с автодополнением (например, @./src/api/) |
# | Быстрое добавление в память CLAUDE.md (например, # Используй отступ в 2 пробела) |
/ | Slash-команды |
Про-совет: «ultrathink»
Используйте ключевое слово «ultrathink» в вашем запросе для максимального усилия рассуждений на конкретном шаге. Это запускает самый глубокий режим мышления независимо от текущей настройки /effort.
Шаблон ревью PR
Быстрое ревью (режим печати)
terminal(command="cd /path/to/repo && git diff main...feature-branch | claude -p 'Проверь этот diff на наличие багов, проблем безопасности и проблем со стилем. Будь тщательным.' --max-turns 1", timeout=60)
Глубокое ревью (интерактивный + Worktree)
terminal(command="tmux new-session -d -s review -x 140 -y 40")
terminal(command="tmux send-keys -t review 'cd /path/to/repo && claude -w pr-review' Enter")
terminal(command="sleep 5 && tmux send-keys -t review Enter") # Диалог доверия
terminal(command="sleep 2 && tmux send-keys -t review 'Проверь все изменения относительно main. Ищи баги, проблемы безопасности, состояния гонки и отсутствующие тесты.' Enter")
terminal(command="sleep 30 && tmux capture-pane -t review -p -S -60")
Ревью PR по номеру
terminal(command="claude -p 'Проверь этот PR тщательно' --from-pr 42 --max-turns 10", workdir="/path/to/repo", timeout=120)
Claude Worktree с tmux
terminal(command="claude -w feature-x --tmux", workdir="/path/to/repo")
Создаёт изолированный git worktree в