- Published
- Updated
Codex vs Claude Code: why I use both
In my own development work, I use both Codex and Claude Code. I want another way forward when an AI gets stuck, follows the wrong assumption, or produces a change that needs a closer look.
Choosing one is a reasonable business decision. There is a subscription to justify and a tool to learn. My position is that, for development work, access to a second tool is worth paying for when it helps avoid time spent going around in circles. That does not require using both on every task.

How they differ in my work now
These observations are from October 2026, using GPT-6.1 Sol in Codex and Claude Opus 5.5 in Claude Code. Both have improved a lot at coding, and the gap between them shifts with every release, but a few differences have held up in my own work.
Claude Code follows instructions closely. That is what I want when the instruction is right. When my instruction is wrong, it tends to carry it out anyway, so the instruction itself is what needs checking.
Codex is more likely to speak up when I give it a bad instruction. But even with a good instruction, it sometimes goes further than asked and changes things I did not request. With Codex, the diff needs checking for scope.
Both tools need their instructions checked and their diffs reviewed. These are the tendencies I watch most closely in each, based on my own work with those models, rather than a benchmark.
Claude does not have native photo or illustration generation. I make the article images on this site with Codex.
Why I still choose both
The second tool gives me an alternative when the first conversation stops being useful. If repeated corrections produce the same unwanted change, another attempt can start from the original requirement and the code, without inheriting the first conversation’s explanation.
It also gives me another assessment of a proposed solution. For a consequential change, I ask the second tool to inspect the requirement and the diff before showing it the first tool’s reasoning. That makes it easier to see whether the two approaches differ in their assumptions.
A disagreement can expose something worth investigating: one tool assumes an API response always includes a field; the other asks what happens when it is missing. That is an illustrative example. The next step is to check the API contract or reproduce the missing-field case. Agreement between two models still needs the same verification.
A PHP-to-Astro conversion that went off scope
Some time ago, with earlier models, I spent almost an hour during a PHP-to-Astro conversion asking an AI to preserve the layout, keep Tailwind CSS, and leave the styling alone. It rewrote parts of the layout, introduced custom CSS, and “improved” things I had not asked it to change.
The instruction already included the constraint. Repeating “do not change styling” was not a reliable solution. The result needed checking against the existing page.
Both tools have improved a lot since then, but the check for that kind of task is the same:
- Did the output preserve the HTML structure and Tailwind classes where required?
- Did the change stay within the requested files?
- Did the rendered page retain its layout at the relevant screen sizes?
- How much correction and checking did the result require?
A valid Astro component can still fail a layout-preservation task. The tool that needs less corrective work on that task is the more useful choice for it. The same tool should then be assessed separately on debugging or architecture work.
Today I can also let Claude Code open the page in a browser and compare the rendered result, which catches this kind of drift faster than reading the diff.
What newer models change
Observations like mine are tied to particular models and applications. A comparison needs to identify the model, the application, the available tools, and the task.
As checked on 17 October 2026:
- OpenAI’s model documentation points to GPT-6 Astra when a task needs the strongest capability across steps and tools, GPT-6.1 Sol for work across code, apps, and documents when cost matters, and GPT-6 Luna for specific, high-volume tasks.
- Anthropic’s model overview lists Claude Fable 5.1, Opus 5.5, Sonnet 5.5, and Haiku 5.5. It suggests Opus 5.5 as the starting point for most workloads and Fable for demanding reasoning and long-running agent work.
Those are vendor recommendations, not results from my own comparison. Check what your account actually offers before paying for a particular model.
New releases are my reason to re-test which tool I start with, so an old preference for one provider does not make that decision for me. They have not removed my reason for keeping both.
How I choose a primary tool
Even with both available, I keep one tool responsible for the implementation of a particular change. Moving the whole task back and forth adds work and makes it harder to track what has been checked.
To choose that primary tool, compare it on representative work from your own codebase. Useful examples include a small bug with a reproducible failure, a component conversion with strict layout constraints, and a review of an existing patch.
Give each attempt the same starting code, requirements, project instructions, and relevant evidence. Use separate branches or worktrees so one attempt does not inherit the other’s edits. Record the model and settings, then assess:
- Correctness: does the result satisfy the requirement?
- Scope: did it change anything unrelated?
- Verification: what actually ran, and what still needs checking?
- Effort: how much developer time went into corrections and review?
- Cost: what usage and subscription cost did that result require?
A fast first response means little if the patch takes longer to repair. A more expensive model may earn its place on difficult work without becoming the default for every edit.
The practical repository setup is covered in using Claude Code and Codex in an existing codebase. Shared expectations belong in AGENTS.md and CLAUDE.md project instructions, so switching tools does not mean explaining the project from scratch.
When to bring in the second tool
I bring in the second tool when progress stalls, when an architectural choice deserves another assessment, or when a change has consequences that justify an extra review.
Give it a bounded question. For a patch, ask it to compare the diff against the requirement and identify unintended behavior changes. For a failure, ask which evidence supports the proposed cause and what would disprove it.
The detailed workflows are in AI code review with Claude and Codex and debugging with Claude Code and Codex.
Keep one accepted patch and verify it. Two agents should not make competing edits in the same working directory.
What each subscription has to earn
Each subscription should earn its place through useful work. I judge that by the time it takes to reach a checked, maintainable result and the mistakes found along the way.
