Files
superpowers/skills/using-superpowers/references/codex-tools.md
2026-04-27 15:16:10 -07:00

4.1 KiB

Codex Tool Mapping

Skills use Claude Code tool names. When you encounter these in a skill, use your platform equivalent:

Skill references Codex equivalent
Task tool (dispatch subagent) spawn_agent (see Named agent dispatch)
Multiple Task calls (parallel) Multiple spawn_agent calls
Task returns result wait
Task completes automatically close_agent to free slot
TodoWrite (task tracking) update_plan
Skill tool (invoke a skill) Skills load natively — just follow the instructions
Read, Write, Edit (files) Use your native file tools
Bash (run commands) Use your native shell tools

Subagent dispatch requires multi-agent support

Add to your Codex config (~/.codex/config.toml):

[features]
multi_agent = true

This enables spawn_agent, wait, and close_agent for skills like dispatching-parallel-agents and subagent-driven-development.

Named agent dispatch

Claude Code skills reference named agent types like superpowers:code-reviewer. Codex does not have a named agent registry — spawn_agent creates generic agents from built-in roles (default, explorer, worker).

When a skill says to dispatch a named agent type:

  1. Find the agent's prompt file (e.g., agents/code-reviewer.md or the skill's local prompt template like code-quality-reviewer-prompt.md)
  2. Read the prompt content
  3. Fill any template placeholders ({BASE_SHA}, {WHAT_WAS_IMPLEMENTED}, etc.)
  4. Spawn a worker agent with the filled content as the message
Skill instruction Codex equivalent
Task tool (superpowers:code-reviewer) spawn_agent(agent_type="worker", message=...) with code-reviewer.md content
Task tool (general-purpose) with inline prompt spawn_agent(message=...) with the same prompt

Message framing

The message parameter is user-level input, not a system prompt. Structure it for maximum instruction adherence:

Your task is to perform the following. Follow the instructions below exactly.

<agent-instructions>
[filled prompt content from the agent's .md file]
</agent-instructions>

Execute this now. Output ONLY the structured response following the format
specified in the instructions above.
  • Use task-delegation framing ("Your task is...") rather than persona framing ("You are...")
  • Wrap instructions in XML tags — the model treats tagged blocks as authoritative
  • End with an explicit execution directive to prevent summarization of the instructions

When this workaround can be removed

This approach compensates for Codex not yet exposing plugin-packaged custom agents as named spawn_agent targets. OpenAI plugin examples can include plugin-level agents/ directories, but skills still need to read those prompts and spawn a built-in agent role. When Codex exposes plugin agents as callable named agent types, this manual prompt-loading workaround can be removed.

Environment Detection

Skills that create worktrees or finish branches should detect their environment with read-only git commands before proceeding:

GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
BRANCH=$(git branch --show-current)
  • GIT_DIR != GIT_COMMON → already in a linked worktree (skip creation)
  • BRANCH empty → detached HEAD (cannot branch/push/PR from sandbox)

See using-git-worktrees Step 0 and finishing-a-development-branch Step 1 for how each skill uses these signals.

Codex App Finishing

When the sandbox blocks branch/push operations (detached HEAD in an externally managed worktree), the agent commits all work and informs the user to use the App's native controls:

  • "Create branch" — names the branch, then commit/push/PR via App UI
  • "Hand off to local" — transfers work to the user's local checkout

The agent can still run tests, stage files, and output suggested branch names, commit messages, and PR descriptions for the user to copy.