| name | codex-collab |
|---|---|
| description | Use when the user asks to invoke, delegate to, or collaborate with Codex on any task. Also use PROACTIVELY when an independent, non-Claude perspective from Codex would add value — second opinions on code, plans, architecture, or design decisions. |
codex-collab is a bridge between Claude and Codex. It communicates with Codex via the codex app-server JSON-RPC protocol, giving you structured, event-driven access to Codex's capabilities — prompting, code review, tool use, and file editing.
- Run — Single-command
runfor any prompted task (research, analysis, implementation). Starts a thread, sends prompt, waits for completion, returns output. - Code review — Single-command
reviewfor PR-style, uncommitted, or commit-level review. - Parallel work — You and Codex work on different parts simultaneously. Start multiple jobs.
- Research — Spin up a read-only Codex session to investigate something while you continue other work.
The run command handles prompted tasks in one call: starts a thread, sends the prompt, waits for the turn to complete, and prints output.
# Research task
codex-collab run "what does this project do?" -s read-only --content-only
# Implementation task
codex-collab run "add input validation to the login form" --content-only
# Resume an existing thread (preserves conversation context)
codex-collab run --resume <id> "now check the error handling" --content-only
# Specify working directory (omit -d if already in the project dir)
codex-collab run "investigate the auth module" -d /path/to/project --content-onlyIMPORTANT: Always use dangerouslyDisableSandbox=true for all codex-collab Bash commands — the tool writes to ~/.codex-collab/ which is outside the sandbox allowlist.
For run and review commands, also use run_in_background=true — these take minutes. You will be notified automatically when the command finishes. After launching, tell the user it's running and end your turn. Do NOT use TaskOutput, block, poll, wait, or spawn an agent to monitor the result — the background task notification handles this automatically. If other background tasks complete while a Codex task is still running, handle those completed tasks normally — do NOT proactively check on, wait for, or poll the still-running Codex task. It will notify you when it finishes.
For all other commands (kill, jobs, progress, output, approve, decline, clean, delete, models, health), run in the foreground — they complete in seconds.
If the user asks about progress mid-task, use progress to check the recent activity:
codex-collab progress <id>Or use TaskOutput(block=false) to check the current output stream without blocking.
The review command handles the entire review workflow in one call.
Note: When no --mode is specified, passing a prompt string switches from the default pr mode to custom mode, which sends custom instructions instead of using the built-in diff workflow. For a standard PR review, do not pass a prompt.
# PR-style review against main (default — no prompt)
codex-collab review -d /path/to/project --content-only
# Review uncommitted changes
codex-collab review --mode uncommitted -d /path/to/project --content-only
# Review a specific commit
codex-collab review --mode commit --ref abc1234 -d /path/to/project --content-only
# Custom review focus
codex-collab review "Focus on security issues" -d /path/to/project --content-only
# Resume an existing thread for follow-up review
codex-collab review --resume <id> -d /path/to/project --content-onlyReview modes: pr (default), uncommitted, commit
IMPORTANT: Use run_in_background=true and dangerouslyDisableSandbox=true — reviews typically take 5-20 minutes. You will be notified automatically when done. After launching, tell the user it's running and end your turn. Do NOT use TaskOutput, block, poll, wait, or spawn an agent to monitor the result — the background task notification handles this automatically. If other background tasks complete while a review is still running, handle those completed tasks normally — do NOT proactively check on or wait for the review.
- Use
--content-onlywhen reading output — prints only the result text, suppressing progress lines. runandreviewprint results on completion — no separateoutputcall needed.- Use
output <id>only to re-read the full log for a previously completed thread.
When consecutive tasks relate to the same project, resume the existing thread. Codex retains the conversation history, so follow-ups like "now fix what you found" or "check the tests too" work better when Codex already has context from the previous exchange. Start a fresh thread when the task is unrelated or targets a different project.
| Situation | Action |
|---|---|
| Same project, new prompt | codex-collab run --resume <id> "prompt" |
| Same project, want review | codex-collab review --resume <id> |
| Different project | Start new thread |
| Thread stuck / errored | codex-collab kill <id> then start new |
If you've lost track of the thread ID, use codex-collab jobs to find active threads.
If the user asks about a running task, use TaskOutput(block=false) to read the background command's output stream. The thread ID appears in the first progress line (e.g., [codex] Thread a1b2c3d4 started). If you need just the tail of the log without the full stream:
codex-collab progress <thread-id>Note: <thread-id> is the codex-collab thread short ID (8-char hex from the output), not the Claude Code background task ID. If you don't have it, run codex-collab jobs.
Progress lines stream in real-time during execution:
[codex] Thread a1b2c3d4 started (gpt-5.4, workspace-write)
[codex] Turn started
[codex] Running: npm test
[codex] Edited: src/auth.ts (update)
[codex] Turn completed (2m 14s, 1 file changed)
By default, Codex auto-approves all actions (--approval never). For stricter control:
# Require approval for Codex-initiated actions
codex-collab run "refactor the auth module" --approval on-request --content-onlyWhen an approval is needed, the progress output will show:
[codex] APPROVAL NEEDED
[codex] Command: rm -rf node_modules
[codex] Approve: codex-collab approve <approval-id>
[codex] Decline: codex-collab decline <approval-id>
Respond with approve or decline:
codex-collab approve <approval-id>
codex-collab decline <approval-id>codex-collab run "prompt" [options] # New thread, send prompt, wait, print output
codex-collab run --resume <id> "prompt" [options] # Resume existing thread
codex-collab run "prompt" -s read-only # Read-only sandboxcodex-collab review [options] # PR-style (default)
codex-collab review --mode uncommitted [options] # Uncommitted changes
codex-collab review --mode commit [options] # Latest commit
codex-collab review --mode commit --ref <hash> # Specific commit
codex-collab review "instructions" [options] # Custom review
codex-collab review --resume <id> [options] # Resume existing threadcodex-collab output <id> # Full log for thread
codex-collab progress <id> # Recent activity (tail of log)codex-collab jobs # List threads
codex-collab jobs --json # List threads (JSON)
codex-collab kill <id> # Stop a running thread
codex-collab delete <id> # Archive thread, delete local files
codex-collab clean # Delete old logs and stale mappingscodex-collab config # Show persistent defaults
codex-collab config model gpt-5.3-codex # Set default model
codex-collab config model --unset # Unset a key (return to auto)
codex-collab config --unset # Unset all keys (return to auto)
codex-collab models # List available models
codex-collab approve <id> # Approve a pending request
codex-collab decline <id> # Decline a pending request
codex-collab health # Check prerequisites| Flag | Description |
|---|---|
-m, --model <model> |
Model name (default: auto — latest available) |
-r, --reasoning <level> |
Reasoning effort: low, medium, high, xhigh (default: auto — highest for model) |
-s, --sandbox <mode> |
Sandbox: read-only, workspace-write, danger-full-access (default: workspace-write; review always uses read-only) |
-d, --dir <path> |
Working directory (default: cwd) |
--resume <id> |
Resume existing thread (run and review) |
--timeout <sec> |
Turn timeout in seconds (default: 1200) |
--approval <policy> |
Approval policy: never, on-request, on-failure, untrusted (default: never) |
--mode <mode> |
Review mode: pr, uncommitted, commit |
--ref <hash> |
Commit ref for --mode commit |
--json |
JSON output (jobs command) |
--content-only |
Print only result text (no progress lines) |
--limit <n> |
Limit items shown |
run --resumerequires a prompt.review --resumeworks without one (it uses the review workflow), butrun --resume <id>will error if no prompt is given.- Omit
-dif already in the project directory — it defaults to cwd. Only pass-dwhen the target project differs from your current directory. - Multiple concurrent threads are supported. Each gets its own Codex app-server process and thread ID.
- Validate Codex's findings. After reading Codex's review or analysis output, verify each finding against the actual source code before presenting to the user. Drop false positives, note which findings you verified.
| Symptom | Fix |
|---|---|
| "codex CLI not found" | Install: npm install -g @openai/codex |
| Turn timed out | Increase --timeout or check if the task is too large |
| Thread not found | Use codex-collab jobs to list active threads |
| Process crashed mid-task | Resume with --resume <id> — thread state is persisted |
| Approval request hanging | Run codex-collab approve <id> or codex-collab decline <id> |
Requires bun and codex CLI on PATH. Run codex-collab health to verify.