Grok
Делегирование кода xAI Grok Build CLI (функции, PR).
Метаданные навыка
| Источник | Опционально — установка с помощью vibeos skills install official/autonomous-ai-agents/grok |
| Путь | optional-skills/autonomous-ai-agents/grok |
| Версия | 0.1.0 |
| Автор | Matt Maximo (MattMaximo), VibeOS |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | Coding-Agent, Grok, xAI, Code-Review, Refactoring, Automation |
| Связанные навыки | codex, claude-code, vibeos-agent |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Агент видит эти инструкции, когда навык активен.
Grok Build CLI — Руководство по оркестрации VibeOS
Делегируйте задачи по написанию кода Grok Build (автономный CLI-агент xAI для написания кода, команда grok) через терминал VibeOS. Grok может читать файлы, писать код, выполнять команды оболочки, порождать под-агентов и управлять рабочими процессами git. Он работает тремя способами: интерактивный TUI, безголовый (-p) и как ACP-агент через JSON-RPC.
Это третий родственный навык для codex и claude-code. Шаблон оркестрации практически идентичен — для одноразовых задач предпочитайте безголовый режим -p, используйте PTY для интерактивных сессий.
Когда использовать
- Создание функций
- Рефакторинг
- Ревью пул-реквестов
- Пакетное исправление ошибок
- Любая задача, для которой вы обычно используете Codex / Claude Code, но хотите Grok
Предварительные требования
- Установка (рекомендуется):
npm install -g @xai-official/grok- Официальный установщик
curl -fsSL https://x.ai/cli/install.sh | bashтакже работает, но хостx.aiв некоторых средах заблокирован Cloudflare. Путь через npm полностью избегает этой зависимости.
- Официальный установщик
- Аутентификация — подписка SuperGrok / X Premium+ (основной путь):
- Запустите
grok loginодин раз → откроется браузер для OAuth → токен кэшируется в~/.grok/auth.json. Это использует вашу подписку SuperGrok или X Premium+ (без оплаты за токены). - Проверьте состояние входа, проверив наличие
~/.grok/auth.json, или запустите простой безголовый тест:grok --no-auto-update -p "Say ok." - В TUI команда
/logoutвыходит из системы, а/login(или перезапуск) снова входит.
- Запустите
- Репозиторий git не требуется — в отличие от Codex, Grok отлично работает вне git-директории (подходит для черновых/одноразовых задач).
- Совместимость с Claude Code / AGENTS.md без настройки — Grok автоматически читает
CLAUDE.md,.claude/(навыки, агенты, MCP, хуки, правила) и семействоAGENTS.md. Существующий контекст проекта работает «из коробки».
Запасной вариант с API-ключом (не по умолчанию для этого пользователя): Grok также поддерживает установку переменной окружения
XAI_API_KEYдля оплаты по мере использования черезapi.x.ai. Используйте это, только еслиgrok login/ аутентификация SuperGrok недоступна. Путь через подписку (grok login) является целевой настройкой здесь.
Два режима оркестрации
Режим 1: Безголовый (-p) — Неинтерактивный (РЕКОМЕНДУЕТСЯ)
Выполняет одноразовую задачу, выводит результат и завершается. Без PTY, без необходимости навигации по интерактивным диалогам. Это самый чистый путь интеграции — аналог claude -p и codex exec.
terminal(command="grok --no-auto-update -p 'Add a dark mode toggle to settings'", workdir="/path/to/project", timeout=180)
Всегда передавайте --no-auto-update в автоматизации, чтобы пропустить фоновые проверки обновлений.
Когда использовать безголовый режим:
- Одноразовые задачи по написанию кода (исправить ошибку, добавить функцию, рефакторинг)
- Автоматизация CI/CD и скриптинг
- Разбор структурированного вывода с помощью
--output-format json - Любая задача, не требующая многошагового диалога
Режим 2: Интерактивный PTY — Многошаговые TUI-сессии
TUI — это полноэкранное приложение с поддержкой мыши. Управляйте им с помощью pty=true. Для надежного мониторинга/ввода используйте tmux (тот же шаблон, что и в навыке claude-code).
# Запуск в сессии tmux для мониторинга через capture-pane
terminal(command="tmux new-session -d -s grok-work -x 140 -y 40")
terminal(command="tmux send-keys -t grok-work 'cd /path/to/project && grok' Enter")
# Ожидание запуска, затем отправка задачи
terminal(command="sleep 5 && tmux send-keys -t grok-work 'Refactor the auth module to use JWT' Enter")
# Мониторинг прогресса
terminal(command="sleep 15 && tmux capture-pane -t grok-work -p -S -50")
# Выход по завершении
terminal(command="tmux send-keys -t grok-work '/quit' Enter && sleep 1 && tmux kill-session -t grok-work")
Совет для безголового режима с встроенным выводом: если вы хотите вывод в стиле TUI без захвата полноэкранного альтернативного экрана (например, для более чистых логов), добавьте --no-alt-screen. Для чистой автоматизации безголовый режим -p все равно чище, чем TUI.
Подробное описание безголового режима
Распространенные флаги
| Флаг | Эффект |
|---|---|
-p, --single <PROMPT> | Отправить один промпт, запустить безголово, выйти |
-m, --model <MODEL> | Выбрать модель |
-s, --session-id <ID> | Создать или возобновить именованную безголовую сессию |
-r, --resume <ID> | Возобновить существующую сессию |
-c, --continue | Продолжить самую последнюю сессию в текущей директории |
--cwd <PATH> | Установить рабочую директорию |
--output-format <FMT> | plain (по умолчанию), json или streaming-json |
--always-approve | Автоматически одобрять все выполнения инструментов (эквивалент --full-auto / --yolo) |
--no-alt-screen | Запускать встроенно, без захвата полноэкранного TUI |
--no-auto-update | Пропустить фоновые проверки обновлений (использовать во всей автоматизации) |
Форматы вывода
plain— человекочитаемый текст (по умолчанию)json— один JSON-объект в конце выполнения (чистый разбор результата)streaming-json— события JSON, разделенные новой строкой, по мере их поступления
# Структурированный результат для разбора
terminal(command="grok --no-auto-update -p 'List all TODO comments in src/' --output-format json", workdir="/project", timeout=120)
# Автоодобрение для автономной сборки
terminal(command="grok --no-auto-update --always-approve -p 'Refactor the database layer and run the tests'", workdir="/project", timeout=300)
Фоновый режим (длительные задачи)
# Запуск безголово в фоне
terminal(command="grok --no-auto-update --always-approve -p 'Refactor the auth module'", workdir="/project", background=true, notify_on_complete=true)
# Возвращает session_id
# Мониторинг
process(action="poll", session_id="<id>")
process(action="log", session_id="<id>")
# Завершение при необходимости
process(action="kill", session_id="<id>")
Для интерактивной (TUI) фоновой сессии используйте pty=true + tmux и мониторинг с помощью tmux capture-pane, точно так же, как в навыках claude-code / codex.
Продолжение сессии
# Запуск именованной сессии
terminal(command="grok --no-auto-update -s refactor-db -p 'Start refactoring the database layer' --always-approve", workdir="/project", timeout=240)
# Возобновление позже
terminal(command="grok --no-auto-update -r refactor-db -p 'Now add connection pooling' --always-approve", workdir="/project", timeout=180)
# Или продолжить самую последнюю сессию в этой директории
terminal(command="grok --no-auto-update -c -p 'What did you change last time?'", workdir="/project", timeout=60)
Шаблон: Аудит только для чтения → Заметка в Markdown
Чтобы Grok просмотрел локальные артефакты и вернул чистую заметку в Markdown (для Obsidian или репозитория) без внесения изменений:
- Сначала подготовьте стабильные входные файлы с помощью инструментов VibeOS (
read_file,write_file). Сохраните только соответствующий контекст во временный файл, а не передавайте необработанные пути. - Запустите Grok безголово без
--always-approve, чтобы он не мог автоматически записывать, и требуйтеmarkdown only, no preamble. - Сохраните stdout Grok напрямую в целевую заметку с помощью
write_file().
grok --no-auto-update -p "Read /tmp/current.md and /tmp/inventory.md. Produce markdown only, no preamble. Output a clean note titled 'Cleanup Review'." --output-format plain
Подводный камень (тот же, что и в Claude Code): при перезаписи документов нечеткий промпт «перепиши это» может вернуть сводку изменений вместо полного файла. Вместо этого: передайте файл через конвейер и потребуйте Return ONLY the full revised markdown document. No intro, no explanation, no code fences. Start immediately with '# Title'. Проверьте первые строки с помощью read_file() перед перезаписью целевого файла.
Шаблоны ревью пул-реквестов
Быстрое ревью (безголово)
terminal(command="cd /path/to/repo && git diff main...feature-branch | grok --no-auto-update -p 'Review this diff for bugs, security issues, and style problems. Be thorough.'", timeout=120)
Ревью через клонирование во временную папку (безопасно, без изменения репозитория)
terminal(command="REVIEW=$(mktemp -d) && git clone https://github.com/user/repo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && grok --no-auto-update -p 'Review the changes vs origin/main. Check bugs, security, race conditions, missing tests.'", pty=true, timeout=300)
Публикация ревью
terminal(command="gh pr comment 42 --body '<review text>'", workdir="/path/to/repo")
Параллельное исправление ошибок с помощью Worktrees
# Создание worktree
terminal(command="git worktree add -b fix/issue-78 /tmp/issue-78 main", workdir="~/project")
terminal(command="git worktree add -b fix/issue-99 /tmp/issue-99 main", workdir="~/project")
# Запуск Grok безголово в каждом (фоново)
terminal(command="grok --no-auto-update --always-approve -p 'Fix issue #78: <description>. Commit when done.'", workdir="/tmp/issue-78", background=true, notify_on_complete=true)
terminal(command="grok --no-auto-update --always-approve -p 'Fix issue #99: <description>. Commit when done.'", workdir="/tmp/issue-99", background=true, notify_on_complete=true)
# Мониторинг
process(action="list")
# После завершения: пуш и открытие PR
terminal(command="cd /tmp/issue-78 && git push -u origin fix/issue-78")
terminal(command="gh pr create --repo user/repo --head fix/issue-78 --title 'fix: ...' --body '...'")
# Очистка
terminal(command="git worktree remove /tmp/issue-78", workdir="~/project")
Полезные подкоманды и команды TUI
| Команда | Назначение |
|---|---|
grok | Запустить интерактивный TUI |
grok -p "query" | Безголовый одноразовый запрос |
grok login / grok logout | Вход / выход (SuperGrok / X Premium+ OAuth) |
grok inspect | Показать, что Grok обнаружил в текущей рабочей директории: источники конфигурации, инструкции, навыки, плагины, хуки, MCP-серверы |
grok agent stdio | Запуск как ACP-агента через JSON-RPC (для интеграции с IDE/инструментами) |
grok update | Обновить CLI (требуется хост x.ai; пропускать в автоматизации) |
Слеш-команды TUI (только интерактивно): /model <name>, /always-approve, /plan, /context, /compact, /resume, /sessions, /fork, /usage, /quit. Shift+Tab переключает режимы сессии (включая режим Plan, который блокирует инструменты записи, кроме файла плана сессии).
Конфигурация (~/.grok/config.toml)
[cli]
auto_update = false # постоянно пропускать фоновые проверки обновлений
[ui]
permission_mode = "ask" # или "always-approve", чтобы пропускать запросы инструментов по умолчанию
[models]
default = "grok-build-0.1"
Помещайте глобальные настройки в ~/.grok/config.toml (не в .grok/config.toml на уровне проекта). permission_mode заменяет устаревшие ключи approval_mode / yolo = true.
Подводные камни и «Грабли»
- Аутентификация привязана к подписке.
grok loginтребует подписку SuperGrok или X Premium+. Если вход не удался или отсутствует~/.grok/auth.json, подтвердите активность подписки, прежде чем переходить кXAI_API_KEY. - Не путайте аутентификацию VibeOS xAI с аутентификацией CLI
grok.x_searchVibeOS работает на собственном OAuth xAI; отдельный CLIgrokимеет отдельный токен в~/.grok/auth.json. Работающийx_searchНЕ означает, чтоgrokвыполнил вход. - Всегда передавайте
--no-auto-updateв автоматизации — иначе Grok будет обращаться к серверу для проверки обновлений (аx.ai/storage.googleapis.comмогут быть недоступны). - Предпочитайте установку через npm установке через curl —
npm install -g @xai-official/grokпозволяет избежать заблокированного Cloudflare хостаx.ai. --always-approve— это переключатель автономной сборки. Без него безголовые запуски могут зависнуть в ожидании запросов на одобрение инструментов. Намеренно опускайте его для работы только на чтение/аудит, чтобы Grok не мог изменять файлы.- Безголовый режим
-pпропускает диалоги TUI; TUI требуетpty=true(+ tmux для мониторинга), как и Claude Code. - Используйте
--no-alt-screen, если вы запускаете TUI встроенно и захват полноэкранного альтернативного экрана искажает захваченный вывод. - Репозиторий git не требуется, но для рабочих процессов PR/коммитов он все равно нужен — используйте
mktemp -d && git initдля черновых задач с коммитами. - Очищайте сессии tmux с помощью
tmux kill-session -t <name>по завершении.
Правила для агентов VibeOS
- Для одиночных задач предпочитайте безголовый режим
-p— самая чистая интеграция, структурированный вывод через--output-format json. - Всегда устанавливайте
workdir(или--cwd), чтобы Grok работал в нужном проекте. - Передавайте
--no-auto-updateв каждом автоматизированном вызове. - Используйте
--always-approveтолько когда Grok должен писать автономно; опускайте его для ревью и аудитов только на чтение. - Запускайте длительные задачи в фоне с помощью
background=true, notify_on_complete=trueи мониторингом через инструментprocess. - Используйте tmux для многошаговой интерактивной работы и мониторинг с помощью
tmux capture-pane -t <session> -p -S -50. - Проверяйте аутентификацию перед тем, как полагаться на нее — проверьте
~/.grok/auth.jsonили запустите простой тестgrok -p "Say ok."; не предполагайте, что аутентификация VibeOS xAI переносится. - Сообщайте результаты пользователю — резюмируйте, что изменил Grok и что осталось.