← Blog
·5 min read

Claude Code vs Codex: I run both. Here's how they differ.

The two leading coding agents compared honestly — extensibility vs bundled pricing, terminal-native vs cloud-native — by someone who dispatches real tasks to both every day.

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.

Want a list your agents can pull from?

Lume gives every task an API, an MCP server, and an assignee. Free to start.