exec

A command for running a policy-controlled Codex execution job that may write to the workspace. It passes the request and selected options to a shared runtime.

In plain words
What is it for?
Use it to route coding tasks, searches, documentation lookups, tool calls, or parallel work through the configured execution runtime.
Why use it?
It provides a tracked way to run analysis or implementation work while enforcing execution rules and keeping incompatible options from being used together.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/gitguffaw/codex-router/exec
Clone the repo
git clone --depth 1 https://github.com/gitguffaw/codex-router
Per session 11 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 610 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00011 $0.00610
Opus 5 $0.00005 $0.00305
Sonnet 5 $0.00002 $0.00122
Haiku 4.5 $0.00001 $0.00061

Measured yesterday against content hash d94a0cac5787, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

exec scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/codex-router/commands/exec.md · 48 lines

What it actually says

Run a Codex Router exec job through the shared runtime.

Raw slash-command arguments: $ARGUMENTS

Core constraints:

  • This is the only policy-routed analyze/exec write-capable entrypoint (mode=exec, sandbox workspace-write).
  • /codex-router:rescue is a separate task path: it may write only when the rescue subagent forwards task --write (default for fix work; read-only when the user asks for diagnosis-only).
  • /codex-router:cli is a raw Codex CLI escape hatch and is not job-tracked write routing.
  • Keep all user prompt text inside the companion runtime arguments; do not reinterpret or implement it in Claude.
  • The companion runtime records the selected policy, mode, modifiers, and model controls in a context pack.
  • --search, --docs, --tool, and --parallel are Codex-side routing directives. Preserve them exactly; the companion runtime turns them into explicit inner-Codex instructions.
  • -c/--config, --enable, and --disable are Codex config controls. Preserve them exactly.
  • --wait and --background are mutually exclusive. If both are present, stop with an error and do not invoke the companion runtime.

Foreground flow (the default, and whenever --wait is present):

node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-companion.mjs" exec "$ARGUMENTS"

Return the command stdout verbatim, exactly as-is.

Background flow (only when --background is present):

  1. Run the same companion command in the foreground. It detaches the Codex worker and returns a launch stub containing the exact job id.
  2. Extract that exact job id from stdout.
  3. Launch the completion watcher as a Claude background Bash task:
Bash({
  command: `node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-companion.mjs" await-result "${jobId}"`,
  description: "Codex execution completion",
  run_in_background: true
})
  1. Do not call BashOutput or wait for the watcher. Return the original launch stdout verbatim.

The watcher emits one concise terminal-status notification. It does not inject the full Codex result; /codex-router:result <job-id> remains the full-output surface.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 48 lines · 11 tokens per session scan A d94a0cac5787

Subscribe to this mod's changes

exec is a command published in the GitHub repository gitguffaw/codex-router (2 stars, last pushed 4d ago), licensed Apache-2.0. It adds 11 tokens to every session and 610 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.