Claude Subagent Quickstart
#CLI Basics
- Never invoke subagents through
./runner—launch them inside tmux directly so the session can persist and bypass the runner timeouts. Example:
``bash tmux new-session -d -s claude-haiku 'claude --model haiku' tmux attach -t claude-haiku ``
Once inside the session, run /model to confirm the active alias (haiku maps to Claude 3.5 Haiku) and switch models if needed.
- Need to queue instructions without attaching? Use
bun scripts/agent-send.ts --session <name> -- "your command"to inject text into a running agent session (single Enter is sent by default). - Run Claude through the repo wrapper when you just need help (
./runner claude --help), but for actual delegation launch Claude inside tmux so the work keeps running after you disconnect. - Two modes:
- Always switch to the fast Haiku model upfront (
claude --model haiku --dangerously-skip-permissions …or/model haikuin-session); it keeps turnaround under the runner’s limits. - Two modes:
- One-shot tasks (single summary, short answer): run
claude --model haiku --dangerously-skip-permissions --print …in a tmux session, wait withsleep 30, then read the output buffer. - Interactive tasks (multi-file edits, iterative prompts): start
claude --model haiku --dangerously-skip-permissionsin tmux, send prompts withtmux send-keys, and capture completed responses withtmux capture-pane. Expect to sleep between turns so Haiku can finish before you scrape the pane. - Ralph’s supervisor loop launches Claude the same way (
claude --dangerously-skip-permissions "<prompt>") to keep the tmux automation flowing.
#One-Shot Prompts
- The CLI accepts the prompt as a trailing argument in one-shot mode. Multi-line prompts can be piped:
echo "..." | ./runner claude --print. - Add
--output-format jsonwhen you need structured fields (e.g., summary + bullets) for post-processing. - Keep prompts explicit about reading full files: “Read docs/example.md in full and produce a 2–3 sentence summary covering all sections.”
#Bulk Markdown Conversion
- Produce the markdown inventory first (
pnpm run docs:list) and feed batches of filenames to your Claude session. - For each batch, issue a single instruction like “Rewrite these files with YAML front matter summaries, keep all other content verbatim.” Haiku can loop over multi-file edits when you provide the explicit list.
- After Claude reports success, diff each file locally (
./runner git diff docs/<file>.md) before moving to the next batch.
#Ralph Integration Notes
- Ralph (see
scripts/ralph.ts) spins up tmux sessions, auto-wakes the worker, and calls Claude as the supervisor viaclaude --dangerously-skip-permissions. - Supervisor responses must end with either
CONTINUE,SEND: <message>, orRESTART; Ralph parses these tokens to decide the next action. - To start Ralph manually:
bun scripts/ralph.ts start --goal "…" [--markdown path]. Progress is tracked in.ralph/progress.mdby default. - Send ad-hoc instructions to the worker session with
bun scripts/ralph.ts send-to-worker -- "your guidance".