codex-subagents

Spawn background subagents for parallel or long-running tasks. Use when you need research threads, context isolation, or detached execution.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "codex-subagents" with this command: npx skills add obra/external-subagents/obra-external-subagents-codex-subagents

Codex Subagents

Overview

codex-subagent offloads work to background threads so your main context stays lean. Threads run detached by default; use wait/peek to check results.

Critical rules:

  1. You cannot send to a running thread. Always wait before sending follow-ups.
  2. Use --permissions read-only or --permissions workspace-write (not workspace-read)

For detailed workflow documentation, see reference/workflow.md.

When to Use

SituationWhy subagents help
Parallel research tasksMultiple threads run simultaneously
Context would bloatResearch stays in separate thread
Long-running workDetached execution, check later

Don't use for: Quick inline questions, tightly-coupled work needing your current state.

Core Workflow

1. start with --prompt    (inline text or stdin)
2. wait/peek → check result
3. send → resume with follow-up (ONLY after thread stops)
4. archive/clean → lifecycle management

The Running Thread Rule

You CANNOT send to a running thread. This is the #1 mistake.

# WRONG - thread might still be running
echo "followup" | codex-subagent send thread-abc --prompt -

# RIGHT - wait first, then send
codex-subagent wait --threads thread-abc
echo "followup" | codex-subagent send thread-abc --prompt -

Resumable statuses: completed, failed, stopped, waiting

Quick Reference

CommandPurposeKey flags
startLaunch new thread--role, --permissions, --prompt, --label, -w
sendResume stopped thread<thread-id>, --prompt, -w
peekRead newest unseen message<thread-id>, --save-response
logFull history<thread-id>, --tail, --json
statusThread summary<thread-id>
waitBlock until threads stop--threads, --labels, --all, --follow-last
listShow threads--status, --label, --role
archiveMove completed to archive--completed, --yes, --dry-run
cleanDelete old archives--older-than-days, --yes

Prompt input: --prompt "text" for simple prompts, --prompt - reads from stdin (for multi-line), -f/--prompt-file for files

Positional thread IDs: peek abc123 works like peek -t abc123

Common Patterns

Simple inline prompt

codex-subagent start --role researcher --permissions read-only \
  --label "quick-task" --prompt "List all exported functions in src/lib/"

Multi-line prompt (heredoc)

cat <<'EOF' | codex-subagent start --role researcher --permissions read-only --label "auth-research" --prompt -
Research authentication patterns in this codebase:
1. Find all auth-related files
2. Document the auth flow
3. Note any security concerns
EOF

Parallel research

# Launch multiple researchers
cat <<'EOF' | codex-subagent start --role researcher --permissions read-only --label "API: Stripe" --prompt -
Research Stripe API authentication methods and best practices
EOF

cat <<'EOF' | codex-subagent start --role researcher --permissions read-only --label "API: Twilio" --prompt -
Research Twilio API authentication methods and best practices
EOF

# Wait for all, see results
codex-subagent wait --labels "API:" --follow-last

Blocking task

# -w blocks until complete (may take minutes)
cat <<'EOF' | codex-subagent start --role researcher --permissions read-only --prompt - -w --save-response result.txt
Analyze error handling patterns in src/
EOF
cat result.txt

Warning: -w blocks for as long as the agent runs. For long tasks, prefer detached mode with wait --follow-last.

Cleanup old work

# Two-phase: archive completed, then clean old archives
codex-subagent archive --completed --yes
codex-subagent clean --older-than-days 30 --yes

Troubleshooting

ProblemCauseFix
"profile does not exist"Wrong permissionsUse read-only or workspace-write (not workspace-read)
"not resumable" errorThread still runningwait first, then send
"different controller"Wrong sessionUse --controller-id or check list
Thread disappearedWas archivedCheck archive dir or re-run task

Checklist

  • start has --role, --permissions, --prompt, and --label
  • Permissions are read-only or workspace-write
  • wait before send (never send to running thread)
  • Results captured with --save-response or peek

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

writing-plans

Use when you have a spec or requirements for a multi-step task, before touching code

Repository SourceNeeds Review
29.3K85.6Kobra
Coding

test-driven-development

Use when implementing any feature or bugfix, before writing implementation code

Repository Source
25.9K85.6Kobra
Coding

requesting-code-review

Use when completing tasks, implementing major features, or before merging to verify work meets requirements

Repository SourceNeeds Review
23.9K85.6Kobra
Coding

subagent-driven-development

Use when executing implementation plans with independent tasks in the current session

Repository SourceNeeds Review
20.2K85.6Kobra