Claude Code builds most of my projects now. Before I trust what it builds, I have a second AI check it.
That second AI is Codex, OpenAI's version of Claude Code. Claude Code runs on Anthropic's Claude models. Codex runs on OpenAI's GPT models, the same family of large language models behind ChatGPT. I use Codex as an editor, an adversarial reviewer, and a skeptic: on blog posts, on the code for dashboards I build, and on bigger tools, like one my promotion committee uses to draft letters.
The examples below use Claude Code in the Mac Claude desktop app.
Why a second AI
AI models keep changing. New versions of Claude and ChatGPT come out often, and each one has its own strengths and gaps. A model from a different company is another set of eyes, trained differently, that notices things the first one didn't.
Think of the Swiss cheese model from patient safety. Each AI is a slice with holes in different places, so a mistake that slips through one usually gets stopped by the next.
It isn't a fully independent opinion, though. When top AI models get something wrong, they're often wrong in the same way. So if both AIs agree, that's reassuring, but it isn't proof.
How to connect Codex to Claude Code
A plugin is an add-on that gives Claude Code new commands. OpenAI makes a free one that lets Claude Code send work to Codex without you leaving the window. You need a ChatGPT account to sign in.
To install it:
- In the Claude desktop app, click Customize in the left menu.
- Select Plugins and search for Codex.
- Install it.
Then start a new session and type /codex:setup. It checks whether Codex is ready and offers to install it if it's missing. Codex needs Node.jsNode.js is a free program many coding tools run on. If it's missing, Claude Code can walk you through installing it. on your Mac. If setup says you're not signed in, ask Claude Code to help you sign in to Codex with your ChatGPT account.
From then on, you can ask Claude Code to "have Codex review this," and it hands the work over.
How I use it
- Claude Code builds or writes. The draft, the code, or the design.
- Codex checks it. Claude Code hands it the work, and Codex sends back a list of problems. It can read the files but can't change themWhen you ask only for a review, the plugin starts Codex in a read-only mode. That's a setting the plugin enforces, not just a polite request..When you ask only for a review, the plugin starts Codex in a read-only mode. That's a setting the plugin enforces, not just a polite request.
- Claude Code weighs in. It goes through each of Codex's points, says whether it holds up, and proposes a fix.
- I decide what changes and what doesn't.
Give Codex a role
When an AI's answer seems off, it's tempting to ask Claude Code, "Are you sure?" AI answers with confidence, so you'll usually get the same answer back, maybe with an apology attached. It rarely adds anything new.
What works better for me is giving Codex a role. I ask it to review the work in one or more of these roles, depending on the project:
- An editor, checking whether it's clear and reads well
- An adversarial reviewer, trying to find what's wrong or what breaks
- A skeptic, questioning every claim and asking for the source
- An expert in the field, like "a promotion committee member from a different specialty" or "an engineer who'd pick this code apart"
The role sets the attitude. I also give it a job: what to check, and what to send back.
For code, the adversarial role is built in. The plugin comes with a command, /codex:adversarial-reviewA command that starts with a slash is a shortcut you type in the Claude Code message box. Type / to see the list. The "codex:" part means it comes from the Codex plugin., that already tells Codex to act as a skeptical reviewer: assume the code can fail, and look for the strongest reasons it isn't ready. You type it yourself in Claude Code, and you can add a focus after it, like /codex:adversarial-review check what happens when data is missing. Codex reviews the files that changed in your project and sends back its findings as is. Then I ask Claude Code to weigh in.
For non-code writing, I set the role myself. The built-in review looks for software failures and skips style feedback, so it isn't built for a blog post. For a post, I ask Claude Code to send Codex a request like this one:
Review this draft as an adversarial reviewer and a skeptic. Read it the way the harshest readers would: engineers, security experts, and physicians who are skeptical of AI.
Check every fact against a source. For each problem, quote the exact line, say how serious it is, and suggest a plain-English fix.
You don't need a second paid subscription to try this.Codex is included in the free ChatGPT plan, with lower usage limits than the paid plans.
Example: A promotion committee letter tool
I'm on a promotion committee, and I built an AI tool to help us write the first draft of the letter supporting a faculty member's application. It's a custom GPTA custom GPT is a version of ChatGPT set up with its own instructions and files for one job. on my institution's ChatGPT.
Claude Code built the tool's instructions and Python code files for me, and I had Codex review them. It found holes. Lots of them. Specifically, the original design didn't account for how varied our faculty are: their expertise, kinds of accomplishments, and how they present their portfolio.
That matters. A high-stakes letter like this can shape someone's career, and a tool built around one "typical" faculty member could undersell everyone who doesn't fit that mold.
The first AI built what I asked for. The second AI asked who I'd left out.
A person still makes the final call
This is always the final step. Even after two AIs have checked the tool, the human is ultimately accountable for the accuracy of the letter. Committee members review the AI draft, the audit file (built into the tool so anyone can see how the draft was made), and the full application, then revise the letter. The chair does the same and signs off.
I hold everything I build to the same rule. The second AI can be wrong too, and it sounds just as sure of itself as the first one. Sometimes it flags a problem that isn't there. Sometimes both AIs miss the same thing. And neither one knows my colleagues, my readers, or the decisions I've already made. So I:
- Double-check what both AIs say, especially when they disagree
- Ask them to explain anything I don't follow
- Push back on statements that sound confident but come without a source
- Make the final call
A second AI makes my work stronger and catches mistakes I'd miss on my own. It doesn't replace my judgment, or the committee's.
Where could a second set of eyes help your work?
