Delegate substantial implementation, refactor, debug, and review work to OpenAI Codex through a hook-driven runtime. Use when the user says "have Codex…", "run this by Codex", asks for an adversarial review, or wants a plan→execute→review→merge loop. The plugin's hooks intercept native Agent spawns (Explore-class), auto-arm Monitor on background dispatches, isolate write-mode tasks in a per-task git worktree, and surface running-job state into context — so the orchestrator rarely has to teach itself how to drive the bridge.
How this skill is triggered — by the user, by Claude, or both
Slash command
/codex-bridge-v2-alpha:codex-bridgeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Codex is the executor; you are the orchestrator. Most of the wiring is in the runtime — your job is the **judgment**: when to delegate, what to surface as `specific_concerns`, when to merge, when to iterate.
Codex is the executor; you are the orchestrator. Most of the wiring is in the runtime — your job is the judgment: when to delegate, what to surface as specific_concerns, when to merge, when to iterate.
Trigger when the work is one of:
[QUESTION] or [PLAN] to respond to./codex-bridge:iterate currently returns the next manual action.Don't trigger when:
xcodebuild, npm test, …) — Monitor only understands .events files; use Bash --run-in-background instead.You almost never have to remember the wiring — the hooks do it:
task --write invocations missing --worktree-auto. Worktree isolation is the canonical write-mode contract.--json envelope and emits an additionalContext block with the literal Monitor invocation. You arm it on the next turn — no manual derivation.verdicts --pending; check and resolve them before exiting.When a hook misbehaves, set CODEX_BRIDGE_HOOK_DISABLE=<name> (or =all) and re-run.
For non-trivial work, prefer a brief over a free-text prompt. The brief is a small JSON object that travels with the task all the way through to the review prompt's {{OPUS_CONCERNS}} slot. See references/brief-composition.md.
Minimum useful brief — goal and worker_assignment are the only required keys:
{
"goal": "Add retry/backoff to the upstream fetcher",
"worker_assignment": "Implement exponential backoff with jitter, max 3 attempts; preserve the existing public API; cover with a unit test.",
"specific_concerns": [
"Don't swallow non-retryable 4xx upstream errors",
"Make the timeout configurable via the existing Config object"
]
}
Pass it to either subcommand:
node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-bridge.mjs" task --json --background --worktree-auto --brief @brief.json
node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-bridge.mjs" adversarial-review --brief @brief.json
specific_concerns flows into the adversarial-review prompt verbatim. Anything you'd say "watch out for X" about should go there — not in the prose worker_assignment.
Before assuming a feature exists, read it. Two surfaces tell you what the bridge can do:
node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-bridge.mjs" version --json | jq '.result.adapter_capabilities'
node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-bridge.mjs" status <task_id> --json | jq '.result.capabilities'
The active backend's capabilities object names the booleans you should branch on (supports_questions, supports_resume, supports_worktree, supports_artifact_registry, …). v2.0 ships only the codex backend; future adapters declare their own. Don't hard-code "codex behavior" in slash commands — branch on the capability you actually need.
Two IDs flow through every task. Use the right one or commands fail:
task_id (task-mo… / review-mo…) — canonical handle for status, result, wait, events, cancel, merge, verdict, iterate.threadId (UUID v7 019d…) — required by send and steer. Also accepted by jobId-side commands as a convenience.Don't pattern-match [codex] Thread ready (019d…) from stderr — that's a threadId, not a task_id. The --json envelope (result.jobId, result.threadId, result.eventsPath, result.monitor.tool_hint) is the only canonical source — result.jobId is the canonical task handle.
Write-mode tasks land in <repo>/../.codex-bridge-worktrees/<task_id> on a subagent/codex/<task_id> branch. The worktree is not auto-removed on completion — you must:
<jobs>/<task_id>/meta.json, then run adversarial-review --cwd <worktree.path> --base <worktree.base_ref> with the same brief./codex-bridge:verdict <task_id> or read <jobs>/<task_id>/verdict.json.verdict=approved: /codex-bridge:merge <task_id> (gated; refuses if verdict isn't approved). verdicts --pending shows approved-but-unmerged work.verdict=needs-attention or must-fix: re-brief and re-dispatch manually, use /codex-bridge:iterate <task_id> for the next-action stub, or /codex-bridge:verdict <task_id> --discard to abandon.Everything below is owned by another canonical surface. Read those when you need the detail; don't expect SKILL.md to mirror them.
node …/codex-bridge.mjs <sub> --help. The --json envelope's error.code, error.suggestion, and result.next_action.command are also self-documenting.events --help shows the supported filters. Treat unknown tags as forward-compat — pass them through, don't filter on assumed vocabulary.config show --json prints the merged config. Edit ~/.codex-bridge/config.yaml or <workspace>/.codex-bridge.yaml; the resolution order is documented there.references/error-recovery.md (decision tree by error.code + origin).references/brief-composition.md (full schema + when to use which field).references/orchestration-flows.md.references/notification-format.md (judgment-only; current CLI details are owned by events --help).references/monitor-patterns.md (Preset A only; everything else has been removed).references/AGENTS.md (read before adding a new reference file).When in doubt: ask the runtime first (<subcommand> --help, config show --json, version --json), then read prose. Prose ages; the runtime is canonical.
npx claudepluginhub yigitkonur/codex-bridge --plugin codex-bridgeProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.