| name | coding-agent |
| description | Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control. |
| metadata | {"emoji":"🧩","category":"development","tags":["codex","claude-code","pi","automation"],"requires":[{"name":"claude"},{"name":"codex"},{"name":"opencode"},{"name":"pi"}]} |
Coding Agent (bash-first)
Use bash (with optional background mode) for all coding agent work. Simple and effective.
PTY Mode Required
Coding agents (Codex, Claude Code, Pi) are interactive terminal applications that need a pseudo-terminal (PTY) to work correctly. Without PTY, you'll get broken output, missing colors, or the agent may hang.
Always use pty:true when running coding agents:
bash pty:true command:"codex exec 'Your prompt'"
bash command:"codex exec 'Your prompt'"
Bash Tool Parameters
| Parameter | Type | Description |
|---|
command | string | The shell command to run |
pty | boolean | Use for coding agents! Allocates a pseudo-terminal for interactive CLIs |
workdir | string | Working directory (agent sees only this folder's context) |
background | boolean | Run in background, returns sessionId for monitoring |
timeout | number | Timeout in seconds (kills process on expiry) |
elevated | boolean | Run on host instead of sandbox (if allowed) |
Process Tool Actions (for background sessions)
See references/process-actions.md for full action list.
Common: list, poll, log, write, submit, kill.
Quick Start: One-Shot Tasks
For quick prompts/chats, create a temp git repo and run:
SCRATCH=$(mktemp -d) && cd $SCRATCH && git init && codex exec "Your prompt here"
bash pty:true workdir:~/Projects/myproject command:"codex exec 'Add error handling to the API calls'"
The Pattern: workdir + background + pty
For longer tasks, use background mode with PTY:
bash pty:true workdir:~/project background:true command:"codex exec --full-auto 'Build a snake game'"
process action:log sessionId:XXX
process action:poll sessionId:XXX
process action:write sessionId:XXX data:"y"
process action:submit sessionId:XXX data:"yes"
process action:kill sessionId:XXX
Why workdir matters: Agent wakes up in a focused directory, doesn't wander off reading unrelated files.
Codex CLI
Model: gpt-5.2-codex is the default (set in ~/.codex/config.toml)
Flags
| Flag | Effect |
|---|
exec "prompt" | One-shot execution, exits when done |
--full-auto | Sandboxed but auto-approves in workspace |
--yolo | NO sandbox, NO approvals (fastest, most dangerous) |
Building/Creating
bash pty:true workdir:~/project command:"codex exec --full-auto 'Build a dark mode toggle'"
bash pty:true workdir:~/project background:true command:"codex --yolo 'Refactor the auth module'"
Reviewing PRs
CRITICAL: Never review PRs in your own project folder!
Clone to temp folder or use git worktree.
REVIEW_DIR=$(mktemp -d)
git clone https://github.com/user/repo.git $REVIEW_DIR
cd $REVIEW_DIR && gh pr checkout 130
bash pty:true workdir:$REVIEW_DIR command:"codex review --base origin/main"
git worktree add /tmp/pr-130-review pr-130-branch
bash pty:true workdir:/tmp/pr-130-review command:"codex review --base main"
Claude Code
bash pty:true workdir:~/project command:"claude 'Your task'"
bash pty:true workdir:~/project background:true command:"claude 'Your task'"
OpenCode
bash pty:true workdir:~/project command:"opencode run 'Your task'"
Pi Coding Agent
bash pty:true workdir:~/project command:"pi 'Your task'"
bash pty:true command:"pi -p 'Summarize src/'"
bash pty:true command:"pi --provider openai --model gpt-4o-mini -p 'Your task'"
Parallel Issue Fixing
Use git worktrees for parallel fixes. See references/parallel-worktrees.md.
Rules
- pty:true always - agents need a terminal
- Respect tool choice - use what user asks for
- Be patient - don't kill "slow" sessions
- --full-auto for building, vanilla for reviewing
- Parallel OK - run many agents at once
Progress Updates
For background agents: send 1 message on start, then update only on milestones, questions, errors, or completion. Always explain if you kill a session.
Key Points
- PTY required: Always use
pty:true - agents need a terminal
- Git required: Codex needs a git repo. Use
mktemp -d && git init for scratch
- exec for one-shots:
codex exec "prompt" runs and exits cleanly