Bridge Grok Build into Claude Code for review, critique, delegation, and session import.
This repository is a Claude Code marketplace plugin that shells out to the real grok CLI. Run status, results, and stop are owned by the plugin (PID + log files). There is no app-server broker.
- Node.js
>= 18.18 - Grok Build CLI (
grok) onPATH, or setGROK_BINARY - A logged-in Grok CLI session (
grok modelssucceeds)
Add the marketplace in Claude Code:
/plugin marketplace add xai-org/grok-build-plugin-ccInstall the plugin:
/plugin install grok-build@xai-grok-buildReload plugins:
/reload-pluginsFrom this repository root (path must be absolute):
# Resolve an absolute path to this clone, then add it as a local marketplace
claude plugin marketplace add "$(pwd)"
# example: claude plugin marketplace add /absolute/path/to/grok-build-plugin-cc
# Install the plugin from that marketplace
claude plugin install grok-build@xai-grok-buildOr, when Claude Code is already open, use /plugin and add the local marketplace path, then install grok-build@xai-grok-build.
/grok-build:check
Ready means: Node is available, grok is available, and soft auth via grok models succeeds.
Probe Node + Grok CLI availability and authentication.
Read-only review of local git state:
/grok-build:review --wait
/grok-build:review --background --scope working-tree
/grok-build:review --base main
/grok-build:review --wait --model grok-build --effort high
Runs:
grok -p <prompt> --agent explore --permission-mode plan --sandbox read-only --cwd <ws> --output-format plainOptional: pass --model / --effort (low|medium|high). If omitted, Grok chooses defaults.
Same target selection as review, with a design/risk critique prompt and structured JSON output when possible:
/grok-build:critique --wait
/grok-build:critique --base main challenge whether this was the right caching and retry design
/grok-build:critique --wait --model grok-build --effort high focus on failure modes
Optional: same --model / --effort flags as review.
Delegate investigation or implementation to Grok via the grok-build:grok-delegate subagent:
/grok-build:delegate investigate the flaky test in auth
/grok-build:delegate --resume apply the top fix
/grok-build:delegate --model grok-build --effort high fix the race
Write policy layering:
| Layer | Default |
|---|---|
Bridge run CLI |
Read-only (--permission-mode plan + --sandbox read-only) unless you pass --write |
| Delegate agent / skill | Adds --write by policy (write-capable delegate) unless the user asks for read-only |
- Direct
node …/grok-bridge.mjs run "…"is therefore read-only unless--writeis passed. --resume/--resume-lastcontinues the last stored Grok session id viagrok -r <id>.- Prefer bridge
--backgroundfor long work so runs record bothbridgePid(Node worker) andagentPid(grok child). /grok-build:stopterminates both process trees when present (agent then bridge/worker).- If you do not pass
--modelor--effort, Grok chooses its own defaults.
Import the current Claude transcript into Grok:
/grok-build:import
/grok-build:import --source ~/.claude/projects/.../session.jsonl
Uses grok import and prints a resume hint: grok -r <id>.
List active and recent plugin-owned runs:
/grok-build:runs
/grok-build:runs <run-id> --wait
Show stored output for a finished run:
/grok-build:show
/grok-build:show <run-id>
Stop an active run by terminating tracked process trees:
/grok-build:stop
/grok-build:stop <run-id>
Kills every distinct pid among agentPid (detached grok child) and bridgePid / legacy companionPid / legacy pid (bridge or run-worker). Terminal status is claimed under a locked CAS so a finishing worker cannot overwrite cancelled with completed.
| Variable | Purpose |
|---|---|
GROK_BINARY |
Optional override for the grok executable |
GROK_CC_SESSION_ID |
Claude session id (set by SessionStart hook) |
GROK_CC_TRANSCRIPT_PATH |
Claude transcript path (set by SessionStart hook) |
CLAUDE_PLUGIN_ROOT |
Plugin install root (host) |
CLAUDE_PLUGIN_DATA |
Plugin data root; state lives under .../state |
CLAUDE_ENV_FILE |
Host env file for session hooks |
CLAUDE_PROJECT_DIR |
Project directory from the host |
State fallback when CLAUDE_PLUGIN_DATA is unset: $TMPDIR/grok-cc-runs.
npm testTests use Node's built-in test runner and a fake grok binary on PATH. Runtime code uses Node stdlib only.
Version: 0.2.0.
Apache-2.0. See LICENSE and NOTICE.