Software Engineer's Blog

Supercharging Claude Code with Codex (What Actually Works)

Supercharging Claude Code with Codex (What Actually Works)

AI coding tools have been moving insanely fast lately.
I’ve been using Claude Code more seriously, and overall it’s been great—but in practice, it still gets things wrong.

Sometimes it over-engineers something simple.
Sometimes it misses edge cases that only show up in real systems.

After running into that a few times, I started using the Codex plugin alongside it. The combination turned out to be a lot more useful than I expected.

This post is just a quick breakdown of why I’m using both—and how to set it up.

Why add Codex at all?

At first, adding another LLM might feel unnecessary. But after trying it in a real workflow, there are a few clear benefits.

1. Different strengths

Claude is strong at structuring and generating code quickly.

Codex (GPT-5.4) tends to be better at digging into logic and catching subtle issues—especially in more complex or messy code.

Using both gives you better coverage than relying on one.

2. Cost matters (if you use it a lot)

If you’re working with large codebases or running frequent reviews, cost adds up.

Codex is noticeably cheaper for this kind of usage, so it’s a good option for heavy analysis or background reviews.

3. It works well as a reviewer

The most useful pattern I’ve found is simple:

  • Let Claude write the code
  • Let Codex review it

That alone catches a surprising number of issues—especially things like:

  • unnecessary complexity
  • missed edge cases
  • questionable design decisions

Setup (takes a few minutes)

If you’re using Claude Code, setup is pretty straightforward.

1. Add the OpenAI plugin marketplace

/plugin marketplace add openai/codex-plugin-cc

2. Install Codex

When prompted, choose user scope so it’s available across all projects.

/plugin install codex@openai-codex

3. Reload and initialize

/reload-plugins
/codex:setup

4. Login

! codex login

This opens a browser where you can sign in with your OpenAI account or API key.

Useful commands

Once it’s installed, you get a few new commands inside Claude Code:

  • /codex:review
    → basic review of your changes
  • /codex:adversarial-review
    → more aggressive; challenges your design decisions
  • /codex:rescue
    → helpful when you’re stuck on a bug
  • /codex:status
    → check background jobs

One important detail: these are read-only by default, so they won’t modify your code unless you explicitly ask.

/codex:review vs /codex:adversarial-review

These two commands look similar but serve very different purposes.

/codex:review/codex:adversarial-review
PurposeFind implementation defects and bugsChallenge the approach and design choices
Perspective”Does this code have bugs?""Is this the right approach? Is there a better way?”
Focus textNot supportedSupported ([focus ...] argument)
FramingStandard code reviewQuestions assumptions, tradeoffs, and real-world failure modes

In short:

  • /codex:review catches what’s broken
  • /codex:adversarial-review challenges whether the design is right

Common options (both commands)

--wait              # wait for results in foreground
--background        # run in background
--base <ref>        # compare against a base branch (e.g., --base main)
--scope auto|working-tree|branch  # review scope

Examples

# Standard review: find bugs, type errors, edge cases
/codex:review --scope working-tree

# Adversarial review: challenge design + focus on specific concern
/codex:adversarial-review is the race condition between emergency and feedback handled correctly?

# Branch-based review: compare against main
/codex:review --base main --scope branch

# Review just the last commit
/codex:review --scope auto

How I actually use it

The workflow that’s been working well for me:

1. Generate with Claude

Let Claude handle scaffolding or initial implementation.

2. Review with Codex

Run:

/codex:review --scope working-tree

For deeper design challenges:

/codex:adversarial-review

This usually surfaces things like:

  • logic gaps
  • unnecessary abstractions
  • edge cases you didn’t think about
  • questionable design decisions and tradeoffs

3. Fix with Claude

Take the feedback and feed it back into Claude:

“Update the implementation based on this review”

This loop is simple, but it improves code quality quite a bit.

4. Use background mode for big repos

If the repo is large, run Codex in the background and keep working.

/codex:review --background
/codex:status  # check progress later

It’s a good way to avoid blocking your workflow.

5. Phase-based workflow (bonus)

If you commit in logical phases, you can review each phase precisely:

# Commit phase work locally (no push)
git add <phase files> && git commit -m "feat: Phase 4 Carryforward UI"

# Review just that commit
/codex:review --scope auto

# Fix issues, commit the fix
git commit -m "fix: Phase 4 race condition (codex review)"

# Repeat for next phase...

This gives you clean, reviewable commits and catches issues early—before they compound.

Final thoughts

Codex doesn’t replace Claude. It just makes the workflow more reliable.

Using one model to generate and another to review turns out to be a practical way to reduce mistakes—especially on real-world code, not toy examples.

If you’re already using Claude Code, it’s worth trying this setup.

You’ll likely catch issues earlier and spend less time going back and fixing things later.