Best for
- Building features
- Refactoring
- PR reviews
NousResearch/hermes-agent/optional-skills/autonomous-ai-agents/grok/SKILL.md
Delegate coding to xAI Grok Build CLI (features, PRs).
Decision brief
Delegate coding tasks to Grok Build (xAI's autonomous coding agent CLI, the grok command) via the Hermes terminal. Grok can read files, write code, run shell commands, spawn subagents, and manage git workflows. It runs three ways: an interactive TUI, headless (-p), and as an ACP…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/autonomous-ai-agents/grok"Inspect the Agent Skill "grok" from https://github.com/NousResearch/hermes-agent/blob/64a6f42cb38def7ad6524bdfe640a16997c88760/optional-skills/autonomous-ai-agents/grok/SKILL.md at commit 64a6f42cb38def7ad6524bdfe640a16997c88760. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Review the “PR Review Patterns” section in the pinned source before continuing.
Review the “Quick Review (Headless)” section in the pinned source before continuing.
Review the “Clone-to-temp Review (safe, no repo mutation)” section in the pinned source before continuing.
Review the “Post the review” section in the pinned source before continuing.
Building features
Permission review
The documentation asks the agent to run terminal commands or scripts.
can read files, write code, run shell commands, spawn subagents, and manage gitThe documentation includes network, browsing, or remote request actions.
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 teThe documentation asks the agent to create, modify, or delete local files.
terminal(command="gh pr create --repo user/repo --head fix/issue-78 --title 'fix: ...' --body '...'")The documentation asks the agent to create, modify, or delete local files.
write tools except the session plan file).Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 235,927 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Delegate coding tasks to Grok Build (xAI's
autonomous coding agent CLI, the grok command) via the Hermes terminal. Grok
can read files, write code, run shell commands, spawn subagents, and manage git
workflows. It runs three ways: an interactive TUI, headless (-p), and as
an ACP agent over JSON-RPC.
This is the third sibling to codex and claude-code. The orchestration
pattern is nearly identical — prefer headless -p for one-shots, use a PTY
for interactive sessions.
npm install -g @xai-official/grok
curl -fsSL https://x.ai/cli/install.sh | bash also
works, but the x.ai host is Cloudflare-walled in some environments. The
npm path avoids that dependency entirely.grok login once → opens a browser for OAuth → token cached in
~/.grok/auth.json. This uses your SuperGrok or X Premium+ subscription
(no per-token API billing).~/.grok/auth.json, or run a cheap
headless smoke test: grok --no-auto-update -p "Say ok."/logout signs out and /login (or relaunching) signs back in.CLAUDE.md, .claude/ (skills, agents, MCPs, hooks, rules), and the
AGENTS.md family. Existing project context just works.API-key fallback (not the default for this user): Grok also supports setting the
XAI_API_KEYenvironment variable for pay-as-you-go billing viaapi.x.ai. Only use this ifgrok login/ SuperGrok auth is unavailable. The subscription path (grok login) is the intended setup here.
-p) — Non-Interactive (PREFERRED)Runs a one-shot task, prints the result, and exits. No PTY, no interactive
dialogs to navigate. This is the cleanest integration path — the analog of
claude -p and codex exec.
terminal(command="grok --no-auto-update -p 'Add a dark mode toggle to settings'", workdir="/path/to/project", timeout=180)
Always pass --no-auto-update in automation to skip background update checks.
When to use headless:
--output-format jsonThe TUI is a fullscreen, mouse-interactive app. Drive it with pty=true. For
robust monitoring/input use tmux (same pattern as the claude-code skill).
# Launch in a tmux session for capture-pane monitoring
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")
# Wait for startup, then send a task
terminal(command="sleep 5 && tmux send-keys -t grok-work 'Refactor the auth module to use JWT' Enter")
# Monitor progress
terminal(command="sleep 15 && tmux capture-pane -t grok-work -p -S -50")
# Exit when done
terminal(command="tmux send-keys -t grok-work '/quit' Enter && sleep 1 && tmux kill-session -t grok-work")
Tip for headless-but-inline output: if you want TUI-style output without the
fullscreen alt-screen takeover (e.g. for cleaner logs), add --no-alt-screen.
For pure automation, headless -p is still cleaner than the TUI.
| Flag | Effect |
|---|---|
-p, --single <PROMPT> | Send one prompt, run headless, exit |
-m, --model <MODEL> | Choose a model |
-s, --session-id <UUID> | Assign a NEW valid UUID to a fresh conversation (must not already exist). Does not resume — use --resume/--continue for that. Only valid with --resume/--continue when paired with --fork-session |
-r, --resume [<UUID>] | Resume an existing session by its UUID (or the most recent if omitted) |
-c, --continue | Continue the most recent session in the current directory |
--fork-session | When resuming, create a new session ID instead of reusing the original |
--max-turns <N> | Cap the maximum number of agent turns |
--cwd <PATH> | Set the working directory |
--output-format <FMT> | plain (default), json, or streaming-json |
--always-approve | Auto-approve all tool executions (the --full-auto / --yolo equivalent) |
--no-alt-screen | Run inline, no fullscreen TUI takeover |
--no-auto-update | Skip background update checks (use in all automation; hidden from --help but still works) |
plain — human-readable text (default)json — one JSON object at the end of the run (parse the result cleanly)streaming-json — newline-delimited JSON events as they arrive# Structured result for parsing
terminal(command="grok --no-auto-update -p 'List all TODO comments in src/' --output-format json", workdir="/project", timeout=120)
# Auto-approve for autonomous building
terminal(command="grok --no-auto-update --always-approve -p 'Refactor the database layer and run the tests'", workdir="/project", timeout=300)
# Start headless in background
terminal(command="grok --no-auto-update --always-approve -p 'Refactor the auth module'", workdir="/project", background=true, notify_on_complete=true)
# Returns session_id
# Monitor
process(action="poll", session_id="<id>")
process(action="log", session_id="<id>")
# Kill if needed
process(action="kill", session_id="<id>")
For an interactive (TUI) background session, use pty=true + tmux and monitor
with tmux capture-pane, exactly like the claude-code / codex skills.
Sessions are keyed by UUID, not by name. --session-id assigns a new UUID
to a fresh run (it does not resume); --resume takes an existing session's
UUID (or omit the value to resume the most recent).
# Start a session with a self-assigned UUID (must be a valid, unused UUID)
SID=$(uuidgen)
terminal(command="grok --no-auto-update -s $SID -p 'Start refactoring the database layer' --always-approve", workdir="/project", timeout=240)
# Resume that exact session later by its UUID
terminal(command="grok --no-auto-update -r $SID -p 'Now add connection pooling' --always-approve", workdir="/project", timeout=180)
# Or just continue the most recent session in this directory (no UUID needed)
terminal(command="grok --no-auto-update -c -p 'What did you change last time?'", workdir="/project", timeout=60)
To have Grok review local artifacts and return a clean markdown note (for Obsidian or a repo) without mutating anything:
read_file,
write_file). Snapshot only the relevant context into a temp file rather
than dumping raw paths.--always-approve so it cannot auto-write, and
demand markdown only, no preamble.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
Pitfall (same as Claude Code): for document rewrites, a loose "rewrite this"
prompt may return a change summary instead of the full file. Instead: pipe the
file in, and demand Return ONLY the full revised markdown document. No intro, no explanation, no code fences. Start immediately with '# Title'. Verify the
first lines with read_file() before overwriting the destination.
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")
# Create worktrees
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")
# Launch Grok headless in each (background)
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)
# Monitor
process(action="list")
# After completion: push and open PRs
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 '...'")
# Cleanup
terminal(command="git worktree remove /tmp/issue-78", workdir="~/project")
| Command | Purpose |
|---|---|
grok | Start the interactive TUI |
grok -p "query" | Headless one-shot |
grok login / grok logout | Sign in / out (SuperGrok / X Premium+ OAuth) |
grok inspect | Show what Grok discovered in cwd: config sources, instructions, skills, plugins, hooks, MCP servers |
grok agent stdio | Run as an ACP agent over JSON-RPC (for IDE/tool integration) |
grok update | Update the CLI (needs the x.ai host; skip in automation) |
TUI slash commands (interactive only): /model <name>, /always-approve,
/plan, /context, /compact, /resume, /sessions, /fork, /usage,
/quit. Shift+Tab cycles session modes (including Plan mode, which blocks
write tools except the session plan file).
~/.grok/config.toml)[cli]
auto_update = false # skip background update checks persistently
[ui]
permission_mode = "ask" # or "always-approve" to skip tool prompts by default
[models]
default = "grok-build-0.1"
Put global preferences in ~/.grok/config.toml (not project-scoped
.grok/config.toml). permission_mode supersedes the legacy approval_mode /
yolo = true keys.
grok login requires a SuperGrok or X
Premium+ subscription. If login fails or there's no ~/.grok/auth.json,
confirm the subscription is active before falling back to XAI_API_KEY.grok CLI's auth. Hermes'
x_search runs on its own xAI OAuth; the standalone grok CLI has a
separate token in ~/.grok/auth.json. A working x_search does NOT mean
grok is logged in.--no-auto-update in automation — otherwise Grok phones home
for update checks (and x.ai/storage.googleapis.com may be unreachable).npm install -g @xai-official/grok avoids the Cloudflare-walled x.ai host.--always-approve is the autonomous-build switch. Without it, headless
runs may stall waiting on tool-approval prompts. Omit it deliberately for
read-only review/audit work so Grok can't mutate files.-p skips TUI dialogs; the TUI needs pty=true (+ tmux for
monitoring), just like Claude Code.--no-alt-screen if you run the TUI inline and the fullscreen
alt-screen takeover garbles captured output.mktemp -d && git init for scratch commit tasks.tmux kill-session -t <name> when done.-p for single tasks — cleanest integration, structured
output via --output-format json.workdir (or --cwd) so Grok targets the right project.--no-auto-update in every automated invocation.--always-approve only when Grok should write autonomously; omit it
for read-only reviews and audits.background=true, notify_on_complete=true and
monitor via the process tool.tmux capture-pane -t <session> -p -S -50.~/.grok/auth.json or run a
cheap grok -p "Say ok." smoke test; don't assume Hermes' xAI auth carries
over.Frequently asked questions
Delegate coding tasks to Grok Build (xAI's autonomous coding agent CLI, the grok command) via the Hermes terminal. Grok can read files, write code, run shell commands, spawn subagents, and manage git workflows. It runs three ways: an interactive TUI, headless (-p), and as an ACP…
The source record exposes this install command: npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/autonomous-ai-agents/grok". Inspect the command and pinned source before running it.
Static rules flagged exec-script, network, write-files in the source; the page lists the matching lines and excerpts.
Alternatives
simota/agent-skills
Designing regex, parsers, and DSLs for grammar authoring and ReDoS-safe regex. Not for REST APIs (Gateway) or DB schemas (Schema).
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing