I run both. Not as a bake-off — literally both, every day, picking tasks off the same to-do list. Claude Code and OpenAI’s Codex are the two most capable coding agents you can use right now, and they are more alike than either camp admits: both live in the terminal, both plan-edit-run-iterate, both can work headlessly. The differences are real but they’re at the edges — and the edges matter.
Where Claude Code is stronger
Extensibility. Claude Code is less a product than a platform: MCP servers connect it to external tools, hooks intercept and shape its behavior, skills teach it your team’s workflows, and subagents let it fan work out. If you want an agent that fits your setup, Claude Code bends further.
Long, messy tasks. On work that spans many files and many decisions — refactors, migrations, “make the tests pass” — I find Claude Code more persistent and more honest about what it did and didn’t finish.
Where Codex is stronger
Cloud-first delegation. Codex made “fire and forget” a core workflow early: kick a task to a sandboxed cloud environment from ChatGPT, your terminal, or GitHub, and come back to a PR. If your habit is assigning work from your phone, Codex feels native.
Bundled pricing. Codex usage rides on a ChatGPT subscription. If your team already pays for ChatGPT, the marginal cost of trying Codex is zero, and that matters.
The scoreboard question
Which writes better code? It genuinely trades month to month as models update, and anyone who tells you otherwise is quoting a benchmark from two releases ago. Both are past the bar where the model is your bottleneck. The differences that persist are workflow differences — extensibility vs. bundling, terminal-native vs. cloud-native.
Why I stopped choosing
My setup: tasks live in Lume, and both agents poll the list over MCP. I write a task, assign it to claude or codex, and whichever agent owns it claims the task, works it, and hands it back as “needs review.” Some tasks I even reassign from one to the other when the first attempt stalls — that’s the quiet advantage of making the task the unit of work instead of the chat session. The full setup is in the Mac mini loop post, and the short version is on the developers page.
Run both for a week on real tasks from your real backlog. You’ll keep both.