Claude Code Delegation
Delegate coding work to Claude Code, Anthropic's autonomous coding agent CLI.
Setup (once): npm install -g @anthropic-ai/claude-code && claude auth login · verify with claude auth status / claude doctor. CI token: claude setup-token. Full auth/install variants → references/flags.md.
Platform check (before running anything): detect the OS first. All shell examples in this skill are POSIX (bash). Linux/macOS run them as-is. On Windows, run Claude Code natively in PowerShell/Git Bash for print and background modes, but interactive tmux orchestration requires WSL. Shell-syntax translation table (quoting, env vars, piping, paths) → references/platforms.md.
Mode Selection (decide FIRST)
| Task shape |
Mode |
Why |
| One-shot task: fix bug, add feature, review diff, extract data |
Print -p ← default |
No PTY, no dialogs, structured output |
| Multi-turn iterate: refactor → review → fix → test; needs slash commands |
Interactive tmux → references/interactive-tmux.md |
Full REPL, requires dialog handling |
| Long-running, shouldn't block; large fan-out supervision |
Background --bg |
Native supervision via claude agents |
| High-stakes PR review |
claude ultrareview [pr#] |
Cloud multi-agent, exit-code driven (uploads diff to cloud — never on branches with secrets) |
Do NOT hand-roll tmux fan-outs for parallel work — prefer --bg + claude agents --json --all.
Print Mode (the 90% path)
terminal(command="claude -p 'Fix the auth bug in src/auth.py' \
--allowedTools 'Read,Edit' --max-turns 10 --output-format json",
workdir="/path/to/project", timeout=180)
Always set: workdir · --max-turns (5–10; print-mode only) · --allowedTools (least privilege: Read,Edit,Write,Bash, patterns like Bash(git *)).
JSON result fields: result (text) · session_id (for resume) · subtype (success | error_max_turns | error_budget) · total_cost_usd · num_turns · structured_output (with --json-schema).
Common variants:
git diff main... | claude -p 'Review for bugs' --max-turns 1 # pipe input, cheapest review
claude -p 'Continue: add pooling' --resume <session_id> # resume; --continue = latest in cwd; --fork-session = branch
claude -p 'List functions' --output-format json --json-schema '<schema>' --max-turns 5 # structured extraction (needs turns to read files)
claude --bare -p 'task' --settings ci.json # CI: skips hooks/plugins/CLAUDE.md; auth = ANTHROPIC_API_KEY only
claude -p 'task' --max-budget-usd 0.50 --fallback-model haiku # cost cap (min ~$0.05) + overload fallback
Streaming, stream-json events, bidirectional input, cache-reuse (--exclude-dynamic-system-prompt-sections) → references/print-mode.md.
Background Mode
claude --bg 'investigate flaky test in tests/api.test.ts' # NOT compatible with -p
claude agents --json --all # list/inspect
claude attach <id> | logs <id> | stop <id> | respawn <id> | rm <id>
Guardrails & Gotchas (violations break agents)
-p auto-skips trust/permission dialogs (any non-TTY does) — only run in trusted directories.
- Interactive mode = tmux required (Windows: only inside WSL — never attempt tmux in PowerShell/cmd; fall back to
-p or --bg); two startup dialogs, and the --dangerously-skip-permissions dialog defaults to "No, exit" (must send Down then Enter). Full patterns → references/interactive-tmux.md.
- Session resume is per-directory —
--continue only finds sessions from the same cwd.
- Slash commands don't work in
-p — describe the task in natural language instead.
- Context >70% degrades quality — in interactive sessions monitor
/context, use /compact.
- Clean up: kill tmux sessions and
claude stop/rm background sessions when done.
- Don't kill slow sessions — capture progress first (
tmux capture-pane / claude logs).
- Report back: after completion, summarize what changed (use the JSON
result + git diff).
References (read on demand)
| File |
Read when |
references/print-mode.md |
Streaming output, stream-json events, piping, schemas, session mgmt, cache reuse |
references/interactive-tmux.md |
Any tmux/PTY session: dialogs, send-keys, monitoring, slash commands, shortcuts |
references/flags.md |
Full CLI flag & subcommand tables, auth variants, env vars, model/effort selection |
references/config.md |
CLAUDE.md/memory, settings hierarchy, custom agents, hooks, MCP, plugins, project purge |
references/platforms.md |
Running on Windows (PowerShell/Git Bash/WSL) or macOS: shell translation, paths, per-OS gotchas |
1---2name: claude-code3description: Operate Claude Code CLI (v2.1+) via the terminal only when the user explicitly requests Claude Code or names this skill. Covers print mode (-p), interactive tmux sessions, and background (--bg) orchestration.4license: MIT5---67# Claude Code Delegation89Delegate coding work to Claude Code, Anthropic's autonomous coding agent CLI.1011**Setup (once):** `npm install -g @anthropic-ai/claude-code && claude auth login` · verify with `claude auth status` / `claude doctor`. CI token: `claude setup-token`. Full auth/install variants → `references/flags.md`.1213**Platform check (before running anything):** detect the OS first. All shell examples in this skill are POSIX (bash). Linux/macOS run them as-is. On **Windows**, run Claude Code natively in PowerShell/Git Bash for print and background modes, but interactive tmux orchestration requires **WSL**. Shell-syntax translation table (quoting, env vars, piping, paths) → `references/platforms.md`.1415## Mode Selection (decide FIRST)1617| Task shape | Mode | Why |18|---|---|---|19| One-shot task: fix bug, add feature, review diff, extract data | **Print `-p`** ← default | No PTY, no dialogs, structured output |20| Multi-turn iterate: refactor → review → fix → test; needs slash commands | **Interactive tmux** → `references/interactive-tmux.md` | Full REPL, requires dialog handling |21| Long-running, shouldn't block; large fan-out supervision | **Background `--bg`** | Native supervision via `claude agents` |22| High-stakes PR review | **`claude ultrareview [pr#]`** | Cloud multi-agent, exit-code driven (uploads diff to cloud — never on branches with secrets) |2324Do NOT hand-roll tmux fan-outs for parallel work — prefer `--bg` + `claude agents --json --all`.2526## Print Mode (the 90% path)2728```29terminal(command="claude -p 'Fix the auth bug in src/auth.py' \30 --allowedTools 'Read,Edit' --max-turns 10 --output-format json",31 workdir="/path/to/project", timeout=180)32```3334**Always set:** `workdir` · `--max-turns` (5–10; print-mode only) · `--allowedTools` (least privilege: `Read,Edit,Write,Bash`, patterns like `Bash(git *)`).3536**JSON result fields:** `result` (text) · `session_id` (for resume) · `subtype` (`success` | `error_max_turns` | `error_budget`) · `total_cost_usd` · `num_turns` · `structured_output` (with `--json-schema`).3738**Common variants:**3940```bash41git diff main... | claude -p 'Review for bugs' --max-turns 1 # pipe input, cheapest review42claude -p 'Continue: add pooling' --resume <session_id> # resume; --continue = latest in cwd; --fork-session = branch43claude -p 'List functions' --output-format json --json-schema '<schema>' --max-turns 5 # structured extraction (needs turns to read files)44claude --bare -p 'task' --settings ci.json # CI: skips hooks/plugins/CLAUDE.md; auth = ANTHROPIC_API_KEY only45claude -p 'task' --max-budget-usd 0.50 --fallback-model haiku # cost cap (min ~$0.05) + overload fallback46```4748Streaming, stream-json events, bidirectional input, cache-reuse (`--exclude-dynamic-system-prompt-sections`) → `references/print-mode.md`.4950## Background Mode5152```bash53claude --bg 'investigate flaky test in tests/api.test.ts' # NOT compatible with -p54claude agents --json --all # list/inspect55claude attach <id> | logs <id> | stop <id> | respawn <id> | rm <id>56```5758## Guardrails & Gotchas (violations break agents)59601. **`-p` auto-skips trust/permission dialogs** (any non-TTY does) — only run in trusted directories.612. **Interactive mode = tmux required** (Windows: only inside WSL — never attempt tmux in PowerShell/cmd; fall back to `-p` or `--bg`); two startup dialogs, and the `--dangerously-skip-permissions` dialog defaults to **"No, exit"** (must send `Down` then `Enter`). Full patterns → `references/interactive-tmux.md`.623. **Session resume is per-directory** — `--continue` only finds sessions from the same cwd.634. **Slash commands don't work in `-p`** — describe the task in natural language instead.645. **Context >70% degrades quality** — in interactive sessions monitor `/context`, use `/compact`.656. **Clean up**: kill tmux sessions and `claude stop/rm` background sessions when done.667. **Don't kill slow sessions** — capture progress first (`tmux capture-pane` / `claude logs`).678. **Report back**: after completion, summarize what changed (use the JSON `result` + `git diff`).6869## References (read on demand)7071| File | Read when |72|---|---|73| `references/print-mode.md` | Streaming output, stream-json events, piping, schemas, session mgmt, cache reuse |74| `references/interactive-tmux.md` | Any tmux/PTY session: dialogs, send-keys, monitoring, slash commands, shortcuts |75| `references/flags.md` | Full CLI flag & subcommand tables, auth variants, env vars, model/effort selection |76| `references/config.md` | CLAUDE.md/memory, settings hierarchy, custom agents, hooks, MCP, plugins, project purge |77| `references/platforms.md` | Running on Windows (PowerShell/Git Bash/WSL) or macOS: shell translation, paths, per-OS gotchas |