Use Claude from inside Codex for code reviews or to delegate tasks to Claude Code.
This repository is the source for the Codex-native Claude Companion plugin bundle. It is meant to be a reverse port of openai/codex-plugin-cc: the original brings Codex into Claude Code, while this project brings Claude-backed review and delegation workflows into Codex.
The installable plugin bundle lives under claude/README.md.
$claude-reviewfor a normal read-only Claude review from Codex$claude-adversarial-reviewfor a steerable challenge review$claude-delegate,$claude-status,$claude-result, and$claude-cancelto delegate and manage longer-running Claude tasks$claude-rescueas a backwards-compatible alias for$claude-delegate$claude-setupto verify Claude Code readiness and report the current review-gate limitation honestly
- Codex with plugin support and the
codexCLI available onPATH - Claude Code installed and available as
claude - Node.js 18.18 or later available as
node
codex plugin marketplace add pejmanjohn/cc-plugin-codex
codex plugin add claude-companion@cc-plugin-codex-marketplaceThis uses Codex's normal plugin marketplace flow directly from GitHub. No repo-local installer or machine-specific paths are required.
Open Codex:
codexIf you normally use the Codex Mac app and it is already open, restart it instead.
Then start a new thread and run:
$claude-setup
After install, you should see the bundled Claude Companion skills in Codex. The full bundle-level usage guide lives in claude/README.md.
codex plugin marketplace upgrade cc-plugin-codex-marketplace
codex plugin add claude-companion@cc-plugin-codex-marketplaceStart a new Codex thread after reinstalling so the updated skills are loaded.
codex plugin remove claude-companion@cc-plugin-codex-marketplace
codex plugin marketplace remove cc-plugin-codex-marketplaceThe first command removes the installed plugin. The second removes the GitHub marketplace source from Codex.
Runs a normal read-only Claude review on your current work or against a base ref. Supports --base <ref>, --model <alias>, and --effort <level>. Reviews cover uncommitted changes including untracked files; --base requires a clean worktree because it compares committed history.
Runs a more skeptical review that questions implementation choices, tradeoffs, and failure modes.
Delegates a foreground or background task to Claude and stores durable job state for follow-up.
By default, delegation uses Claude Code model opus with effort high.
$claude-delegate investigate the flaky checkout test
Override the model or effort level per task:
$claude-delegate --model sonnet --effort medium investigate the flaky checkout test
$claude-delegate --background --model opus --effort xhigh implement the retry fix
Persist new defaults with setup:
$claude-setup --model opus --effort high
Claude Code currently accepts effort levels such as low, medium, high, xhigh, and max. Model values can be aliases such as sonnet or opus, or full Claude model names supported by your Claude Code installation.
--resume continues the most recent delegate thread started from the same Codex conversation (Codex exposes a CODEX_THREAD_ID to plugin commands). When no thread id is available, it falls back to the workspace's most recent delegate thread.
$claude-rescue remains available as a backwards-compatible alias.
Shows running and recent jobs, returns the stored final output, or cancels an active background task.
Checks whether Claude Code is installed and signed in (via local claude auth status, no API call; older Claude Code versions fall back to a one-prompt live probe), and reports the current stop-time review-gate limitation.
The plugin is usable today, but it is not fully functionally equivalent to openai/codex-plugin-cc.
The missing piece is the automatic stop-time review gate. Codex supports repo-level and user-level hooks, but validated installed-plugin runs still did not execute bundled plugin hooks after official install, so this plugin reports that limitation honestly instead of pretending the gate works.
Codex may refuse to launch the delegate command with a message like "this delegates repository context to an external service". Two things to know:
- What data goes where. Delegation runs your locally installed Claude Code CLI under your own Anthropic account. Workspace context is sent to Anthropic's API exactly as if you ran
claudein your own terminal. There is no third-party or plugin-operated service involved (see PRIVACY.md). - Who decides. The approval layer belongs to Codex, not to this plugin. The plugin cannot and will not bypass it. If Codex denies the command after you approve it, that is a Codex-side policy decision to raise with OpenAI.
One known aggravator: Codex sometimes invents Claude Code CLI flags — most commonly --dangerously-skip-permissions — when composing the command, which makes an ordinary delegation look like a safety bypass to the approval layer. This plugin never uses that flag; the skill instructions now list the supported flags explicitly, and claude-companion.mjs rejects unknown flags with an error instead of passing them along. If you see a rejection quoting a flag not documented above, retry the skill — the corrected command usually passes review.
This repo uses simple tag-based releases.
- Keep
package.jsonandclaude/.codex-plugin/plugin.jsonon the same semantic version. - Create a tag like
v0.1.0. - Push the tag to GitHub.
The release workflow will verify the tag matches both version files, run the Claude plugin test suite, and publish a GitHub release with generated notes.
npm ci
npm run test:claudeHelpful files:
For local development, add this checkout as a local marketplace instead of using the GitHub source:
codex plugin marketplace add /path/to/cc-plugin-codex
codex plugin add claude-companion@cc-plugin-codex-marketplace