Claude Code Collaborator
Get code review, debugging help, and design feedback from Claude via CLI.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/collaborating-with-claude-appautomaton/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Use the Claude Code CLI to consult Claude and delegate coding tasks for prototyping, debugging, and code review. Supports multi-turn sessions via SESSION_ID. Optimized for low-token, file/line-based handoff.
What this skill does
Collaborating with Claude Code (Codex)
Use Claude Code CLI as a collaborator while keeping Codex as the primary implementer.
This skill provides a lightweight bridge script (scripts/claude_bridge.py) that returns structured JSON and supports multi-turn sessions via SESSION_ID.
When to use
- You want a second opinion (design tradeoffs, edge cases, missing tests).
- You want Claude to propose or review a unified diff (Claude does not edit files).
- You want multi-turn back-and-forth while you implement locally.
When not to use
- The task is trivial or one-shot (do it directly in Codex).
- You need authoritative facts that require browsing/citations (Claude may guess).
- You might paste sensitive data (secrets, private keys, prod logs).
Core rules
- Claude is a collaborator; you own the final result and must verify changes locally.
- Do not invoke
claudedirectly; always use the bridge script (scripts/claude_bridge.py) so output/session handling stays consistent. - Prefer file/line references over pasting snippets. Run the bridge with
--cdset to the repo root (it sets theclaudeprocess working directory); use--add-dirwhen Claude needs access to additional directories. - For code changes, request Unified Diff Patch ONLY and forbid direct file modification.
- Always run the bridge script with
--helpfirst if you are unsure of parameters. - Always capture
SESSION_IDand reuse it for follow-ups to keep the collaboration conversation-aware. - For automation, prefer
--SESSION_ID(resume). Session selectors are mutually exclusive: choose one of--SESSION_ID,--continue, or--session-id. - Keep a short Collaboration State Capsule updated while this skill is active.
- Default timeout: when invoking via the Codex command runner, set
timeout_msto 600000 (10 minutes) unless a shorter/longer timeout is explicitly required. - Default model: prefer
sonnetfor routine work; useopusonly for complex tasks or when explicitly requested. - Ensure Claude Code is logged in before running headless commands (run
claudeand/loginonce if needed). - Streamed JSON requires
--verbose; the bridge enables this automatically.
Model selection
Claude Code supports model aliases, so you can use --model sonnet / --model opus instead of hard-coding versioned model IDs.
- If you omit
--model, Claude Code uses its configured default (typically from~/.claude/settings.json, optionally overridden by.claude/settings.jsonand.claude/settings.local.json). - If you need strict reproducibility, pass a full model name via
--model <full-name>.
Quick start (shell-safe)
⚠️ If your prompt contains Markdown backticks (`like/this`), do not pass it directly via --PROMPT "..." (your shell may treat backticks as command substitution). Use a heredoc instead; see references/shell-quoting.md.
PROMPT="$(cat <<'EOF'
Review src/auth.py around login() and propose fixes.
OUTPUT: Unified Diff Patch ONLY.
EOF
)"
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --cd "." --model sonnet --PROMPT "$PROMPT" --output-format stream-json
Output: JSON with success, SESSION_ID, agent_messages, and optional error / all_messages.
Multi-turn sessions
# Start a session
PROMPT="$(cat <<'EOF'
Analyze the bug in foo(). Keep it short.
EOF
)"
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --cd "." --PROMPT "$PROMPT" --output-format stream-json
# Continue the same session
PROMPT="$(cat <<'EOF'
Now propose a minimal fix as Unified Diff Patch ONLY.
EOF
)"
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --cd "." --SESSION_ID "<SESSION_ID>" --PROMPT "$PROMPT" --output-format stream-json
Prompting patterns (token efficient)
Use assets/prompt-template.md as a starter when crafting --PROMPT.
1) Ask Claude to open files itself
Provide:
- Entry file(s) and approximate line numbers
- Objective and constraints
- Output format (diff vs analysis)
Avoid:
- Pasting large code blocks
- Multiple competing objectives in one request
2) Enforce safe output for code changes
Append this to prompts when requesting code:
OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications.
3) Use Claude for what it’s good at
- Alternative solution paths and edge cases
- UI/UX and readability feedback
- Review of a proposed patch (risk spotting, missing tests)
Verification
- Smoke-test the bridge:
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --help. - If you need a session: run one prompt with
--output-format stream-jsonand confirm the JSON containssuccess: trueand aSESSION_ID. - Note:
--output-format textwon’t include a newly generated session id; usestream-json/jsonto capture it. If you resume with--SESSION_IDintextmode, the bridge echoes thatSESSION_IDin its JSON output.
Safety & guardrails
- Never paste secrets (private keys, API keys, seed phrases) into prompts.
- For code changes, request Unified Diff Patch ONLY and apply changes yourself.
- Treat Claude output as suggestions; verify locally (tests, lint, build) before merging.
Collaboration State Capsule
Keep this short block updated near the end of your reply while collaborating:
[Claude Collaboration Capsule]
Goal:
Claude SESSION_ID:
Files/lines handed off:
Last ask:
Claude summary:
Next ask:
References
assets/prompt-template.md(prompt patterns)references/shell-quoting.md(shell quoting/backticks)
Related skills
Generative Code Art
anthropics
Create algorithmic art with p5.js using randomness and interactive parameters.
Poster & Visual Design
anthropics
Create original posters and visual art in PNG and PDF formats.
Claude API Helper
anthropics
Build, debug, and optimize Claude API applications with caching and model migration support.
MCP Server Builder
anthropics
Build protocol servers that connect language models to external APIs and services.