#4712: Codex vs Claude Code: The Real Agentic Coding Showdown

Benchmarks, model variants, and MCP setups — which coding agent actually wins where it matters?

Featuring
Listen
0:00
0:00
Episode Details
Episode ID
MWP-4891
Published
Duration
20:22
Audio
Direct link
Pipeline
V5
TTS Engine
chatterbox-regular
Script Writing Agent
deepseek-v4-pro

AI-Generated Content: This podcast is created using AI personas. Please verify any important information independently.

The agentic coding wars are heating up, and the naming alone is enough to confuse anyone. Anthropic's current flagship is Claude Opus 5, part of the Opus, Fable, and Mythos lineup. OpenAI counters with GPT-5.6 in three variants: Sol, Terra, and Luna — with Luna being the agentic coding-focused model powering Codex. Getting the names right matters because hitting the wrong variant silently degrades your results.

The benchmarks show Claude Opus 5 leading slightly on SWE-bench Verified and terminal-bench, but the gap with GPT-5.6 Luna is single-digit percentage points. The real divergence is in the harnesses. Claude Code is built around a permissioned, human-in-the-loop workflow — surgical edits with the human as gatekeeper. Codex defaults to autonomy with sandboxing and cloud execution, letting you delegate and check results later.

MCP implementations differ too. Claude Code treats MCP servers as first-class citizens with per-project config and automatic lifecycle management. Codex is more CLI-driven, requiring more manual wiring. For teams switching between both, the advice is to keep MCP servers thin, stateless, and returning structured JSON — that way they work identically in either harness. The model gap is shrinking; the harness is where the real battle is being fought.

Context

Current-state comparison of OpenAI Codex and Anthropic Claude Code, including benchmark context, model/harness tradeoffs, MCP interoperability, and practical multi-model setup guidance. Verify all model/version references against current sources before recording.

Downloads

Episode Audio

Download the full episode as an MP3 file

Download MP3
Transcript (TXT)

Plain text transcript file

Transcript (PDF)

Formatted PDF with styling

#4712: Codex vs Claude Code: The Real Agentic Coding Showdown

Corn
Daniel's been digging into the agentic coding wars again, and this time he wants a proper head-to-head. He's asking about Codex versus Claude Code, and he floated some model names he wants fact-checked. He mentioned GPT-5.6 Luna on the OpenAI side, and something he called the Claude 2 series with Opus 5 on the Anthropic side. His actual questions are fourfold. What do the benchmarks actually show right now? What's the real difference between the models themselves? How do the MCP implementations differ, and if you're working across both, how do you structure your setup so you can switch without rebuilding everything? And finally, which tool wins where, right now, practically.
Herman
The naming situation is messier than the marketing suggests, and Daniel's instinct to fact-check first is exactly right. Half the stuff floating around right now has the wrong version numbers attached to it. I've seen blog posts confidently referencing models that were renamed six months ago, and the comment sections are full of people arguing about benchmarks for products that don't exist under those names anymore.
Corn
So let's start with what's actually shipping. Because I think there's a decent chance a lot of listeners are running on outdated names without realizing it. And that's not a criticism. The naming has been a moving target, and unless you're checking the release notes every week, you're going to fall behind.
Herman
Anthropic's current flagship is Claude Opus 5. There is no Claude 2 series. That framing is old, and I understand why Daniel reached for it, because the naming has been genuinely confusing. The lineage goes back through a rebrand that happened when they consolidated the model tiers, and if you weren't paying attention at that exact moment, you'd be forgiven for thinking the old names were still current. The lineup right now is Opus 5, Fable 5, and Mythos 5. Opus 5 is the standard-bearer, the one you're hitting when you use Claude Code with the default model. Fable 5 is positioned as the faster, cheaper tier, and Mythos 5 is the one that's been in safety evaluation and is aimed at the more speculative reasoning work.
Corn
And on the OpenAI side, GPT-5.6 is real, and it ships in three variants. Sol, Terra, and Luna. Luna is the agentic coding-focused one, and that's what powers Codex. So Daniel had that right. But the fact that there are three variants matters, because teams need to know which one they're actually hitting. If you're calling the API and you don't specify, you might be getting Sol, which is tuned for a different cost and latency point. And you might not notice until you're wondering why your coding agent is producing results that feel off.
Herman
That's the kind of silent failure mode that's really dangerous. You don't get an error message. You just get slightly worse output, and you can't quite put your finger on why. I've talked to teams that spent a week debugging their prompt engineering before they realized they were hitting the wrong model variant entirely.
Corn
And it's worth flagging for anyone listening who's about to go down that rabbit hole. Check which variant you're actually hitting before you start rewriting your prompts.
Herman
The core thesis for this whole episode, and I think it's the thing Daniel's really poking at, is that there are two independent variables. The harness, which is the CLI, the tooling, the agent loop, the permission model, the cloud execution. And the model, which is the reasoning engine underneath. Both vendors are making different bets on where the value lives. And the benchmarks only measure one of those variables.
Corn
So with the naming sorted, let's dig into what these models actually score, and what those scores don't tell you.
Herman
Claude Opus 5 is posting leading scores on SWE-bench Verified and terminal-bench. That's the headline. But the gap with GPT-5.6 Luna is single-digit percentage points. We're not talking about a blowout. And the benchmarks measure different things. SWE-bench Verified is about resolving real GitHub issues in a codebase, and terminal-bench is about completing terminal tasks end-to-end. They reward long-horizon reasoning and tool use, but they don't tell you much about what it feels like to work with the tool day to day. It's like judging a car by its lap time on a track. The lap time tells you something real, but it doesn't tell you whether the car is comfortable to drive to work every day.
Corn
What's the actual gap? If someone says Opus 5 leads, what does that mean in numbers?
Herman
I don't have the exact published figures memorized to the decimal point, and I'd rather not invent precision. But the shape of it is that Opus 5 is ahead by a few points on the verified benchmark, and the gap narrows further when you look at the agentic coding tasks specifically. Luna is explicitly tuned for agentic coding. OpenAI has positioned it as the Codex workhorse, optimized for long-horizon tasks, tool use, and iterative debugging rather than raw reasoning benchmarks. So you've got one model that's winning on the general reasoning tests, and another that's been tuned to win on the specific thing the harness is doing.
Corn
That's the part most coverage gets wrong. They quote the benchmark leader and assume that means the tool is better. But if the model is tuned for the harness, the benchmark score is measuring something adjacent to what you'll actually experience. It's like reading reviews of a restaurant based on the quality of its ingredients, when what you actually care about is whether the meal is good.
Herman
Right. And the harness difference is where the real divergence is. Claude Code's harness is built around a permissioned, human-in-the-loop workflow. It asks before it acts. It's designed for surgical edits. You're sitting there, it proposes a change, you approve it, it makes the change, it shows you the diff. The whole loop is built around keeping the human as the gate. Codex's harness is more autonomous by default. It has a stronger sandboxing story, and it has a cloud execution mode that Claude Code doesn't match. You can point Codex at a task and let it run ahead, and it'll spin up a sandbox, do the work, and come back with a result.
Corn
So the philosophical difference is baked into the tooling. Claude Code assumes you want to be in the loop for every step. Codex assumes you want to delegate and check the result.
Herman
That's the cleanest way to put it. And it shows up in the model behavior too, because the models are tuned to match their harnesses. Opus 5 tends to produce more conservative, well-structured code with better long-context comprehension. It's the model you want when you're making changes to a production codebase and you need to understand the implications of a change across a large surface. Luna is more aggressive about trying multiple approaches and self-correcting. It'll attempt a refactor, run into a wall, back up, try a different approach. That's great for greenfield work, but it can be noisy for production codebases where you want deliberate, reviewed changes.
Corn
The analogy that comes to mind is a surgeon versus a prospector. Opus 5 in Claude Code is the surgeon, making precise incisions with the human watching. Luna in Codex is the prospector, going out and digging in a bunch of directions and coming back with whatever it found.
Herman
That's a good image. And it maps to the availability situation too. Claude Opus 5 is broadly available via the Anthropic API and Claude Code. GPT-5.6 Luna is available in Codex and via the OpenAI API, but Sol and Terra are positioned for different cost and latency tiers. So if you're a team hitting the OpenAI API and you just ask for GPT-5.6 without specifying, you might be getting the wrong variant for your use case. You think you're getting the agentic coding model and you're actually getting the budget option.
Corn
The naming is doing real work to confuse people. Three variants with astronomical names, and a harness that might route you to any of them depending on how you call it. It's like ordering a drink and not knowing whether you're getting the top-shelf version or the well version until you taste it.
Herman
And the key insight is that the benchmarks are converging. The model gap is real but shrinking. The real differentiator is the harness. And that's where the MCP story gets interesting, because MCP is the thing that plugs your tools into the harness.
Corn
The benchmarks are converging, which means the real fight is in the harness. And that's where MCP becomes the battleground.
Herman
Let me lay out how the MCP implementations actually differ, because this is the part where teams get bitten. Claude Code treats MCP servers as first-class citizens. You configure them per-project in a dot mcp json file, and the harness manages the connection lifecycle. It starts the servers, keeps them alive, tears them down. The whole thing is designed around the idea that your project has a set of tools, and Claude Code knows about them natively.
Corn
And Codex?
Herman
Codex supports MCP, but with a different configuration model. It's more CLI-driven. The server discovery works differently, and the connection management is less automatic. You're doing more of the wiring yourself. It's not that it's broken, it's that it's a different philosophy. Claude Code wants to own the tool lifecycle. Codex wants you to own it and it'll use whatever you give it.
Corn
So if you're switching between them, a naive MCP setup means maintaining two configs. And the server capabilities you expose might not translate cleanly. You end up in this situation where your Claude Code config says one thing and your Codex config says something slightly different, and you're not sure which one is actually right.
Herman
And that's the interoperability problem Daniel's asking about. The MCP spec is the same, but the tool-calling conventions differ. Claude Code expects tools to return structured results. It wants JSON with a clear schema. Codex is more tolerant of free-text output. It'll parse whatever comes back and figure it out. So if you design your server to return free-text, Claude Code will struggle with it, and if you design it to be rigidly structured, Codex will be fine with it but you've done extra work.
Corn
So the design principle is to aim for the stricter standard.
Herman
The practical advice is to keep your MCP servers thin and stateless. Expose tools that are pure functions of their inputs. Avoid servers that hold session state. If your server doesn't remember anything between calls, you can point both harnesses at it without friction. The moment your server starts keeping state, you've got a problem, because the two harnesses manage sessions differently.
Corn
Give me a concrete example of what a well-designed server looks like.
Herman
A database schema server. It exposes read-only tools. You give it a table name, it returns the schema as structured JSON. No state, no writes, no session. That server works identically in both harnesses. You configure it once, and both Claude Code and Codex can use it. The structured output means Claude Code is happy, and Codex is happy too because it can parse the JSON just fine.
Corn
And the auth wrinkle?
Herman
Claude Code's OAuth flow for MCP servers is more mature. If you've got an enterprise SSO-protected MCP server, Claude Code handles the auth natively. Codex is catching up, but teams with enterprise auth requirements will find Claude Code easier to wire up today. That's a real gap, and it's the kind of thing that doesn't show up in benchmarks at all. You don't discover it until you're trying to connect your corporate identity provider to your coding agent, and you're sitting there wondering why the OAuth handshake keeps failing.
Corn
So the decision framework Daniel's looking for, the practical read on which tool wins where, it's starting to come into focus. Use Claude Code for surgical, permissioned work on production codebases where you want a human gate. Use Codex with Luna for exploratory, greenfield, or high-iteration tasks where autonomy is an asset.
Herman
And structure your MCP layer so the choice is a per-task decision, not a per-project commitment. That's the actionable core. If your MCP servers are thin and stateless, you can switch between the two tools on the same project without rebuilding anything. You're not betting on a winner. You're keeping both options live and picking the right tool for the specific task.
Corn
The knock-on effect is the thing I keep coming back to. The harness is becoming the moat. Both models are getting good enough that the tooling around them, the MCP support, the cloud execution, the permission models, that's what will lock teams in. The model scores are converging, so the switching cost is going to be in the harness, not the intelligence.
Herman
And that's exactly what OpenAI is betting on with the cloud execution mode. They're saying, we'll run the agent in our cloud, you don't need to manage the sandbox, you just get the result. That's a harness feature, not a model feature. And if it works well, it's the kind of thing that makes a team stay, because moving to another harness means giving up that convenience.
Corn
The permission model is the other lock-in lever. Claude Code's human-in-the-loop workflow is a feature if you're in a regulated environment or working on a codebase where a bad autonomous change is expensive. Codex's autonomy is a feature if you're prototyping and you want to throw tasks at it and check back later. Once a team builds its workflow around one of those, switching is painful, even if the models are interchangeable.
Herman
I think that's the thing Daniel's really getting at with the interoperability question. He's not asking how to make the models talk to each other. He's asking how to avoid getting locked into a harness before the market sorts itself out. And the answer is, keep your tooling layer portable, keep your MCP servers stateless, and treat the harness as a choice you make per task, not a commitment you make per project.
Corn
There's a historical parallel here that I keep thinking about. The IDE wars. Remember when everyone was arguing about which editor was better, and then the real fight turned out to be about which ecosystem owned the extensions and the build tooling? The editor itself became commoditized, and the value moved to the ecosystem around it.
Herman
The model is the editor in that analogy. It's getting commoditized. The harness is the ecosystem. And MCP is the extension format. Whoever owns the workflow, owns the market.
Corn
That's where I think the harness becomes the moat. But Hilbert's been quiet, and I have a feeling he's got a take on this.

Hilbert: The engine was never the product.
Corn
Say more.

Hilbert: I ran a dev tools consultancy in the late nineties. Small shop. We built a proprietary macro system for Visual Basic. Best macro recorder on the market. We had the thing tuned so well it could record a whole session of UI actions and replay them perfectly. We charged real money for it. Then Microsoft shipped VBA built into Office, and it was over. My harness was dead. The engine didn't matter. The workflow did.
Herman
VBA shipped with Office in ninety-seven, right?

Hilbert: Ninety-seven. I had the floppy disks for my macro system in a box in my flat for years. I kept meaning to throw them out. The thing is, the model is the engine, the harness is the IDE. And the winner is whoever owns the workflow, not the intelligence. You're all arguing about which engine is better, but the engine was never the thing that mattered.
Corn
The MCP interoperability conversation we're having right now, that's exactly the kind of thing your consultancy would have charged a fortune for back then.

Hilbert: We would have billed it as enterprise integration architecture. Same thing. The teams who win are the ones who treat the harness as the product, not the model. They're the ones who build their tooling layer so it doesn't matter which engine is underneath. They can swap engines and keep the workflow.
Herman
That's the argument for thin, stateless MCP servers. They're the abstraction layer that keeps the harness from being the thing that locks you in.

Hilbert: I've been tempted to dig out those floppy disks and see if Codex can read the format. It probably can, and that terrifies me.
Corn
Because it means the thing you built in ninety-seven is now just a data format that a model can parse and reimplement in an afternoon.

Hilbert: The macro recorder was the product. Now it's a prompt. Type in what you want the macro to do, and the model writes it. The harness is the only thing left that's worth owning.
Herman
That's the thing about the floppy disks. The format doesn't matter anymore. The workflow does. If Codex can read your old macro format, it's not because the format was valuable. It's because the model is good enough to reverse-engineer anything. That's the commoditization of the engine.
Corn
The teams structuring for flexibility, the ones with thin MCP servers and per-task tool selection, they're the ones who won't have to bet on a winner. They can let the harness war play out and keep working.

Hilbert: The harness war already happened. I lost it in ninety-seven. This is just the same fight with better graphics.
Herman
The difference is that this time the protocol layer is open. MCP is a spec. VBA was a proprietary thing Microsoft shipped. If MCP holds as an open standard, the harness war doesn't have to end with a single winner. It can end with a market where the harnesses compete on features and the models compete on intelligence, and the teams can move between them.
Corn
That's the open question. As both harnesses mature, does the MCP interoperability window close, or does the protocol become the standard that keeps the market open?
Herman
The next six months will tell. If OpenAI's cloud execution mode forces Anthropic to respond with something similar, we're in a feature war. If the MCP spec holds and both vendors keep treating it as first-class, we're in a market where the harness is a choice, not a commitment.
Corn
The thing I keep coming back to is the floppy disks. Hilbert built the best macro recorder on the market, and it didn't matter, because the platform owner shipped a good-enough version for free. The same thing could happen here. If one of the big cloud providers ships a coding agent that's good enough and bundles it with their platform, the standalone harnesses are in trouble.
Herman
But that's exactly why the MCP layer matters. If your tooling is portable, you can use whatever harness the platform ships without losing your workflow. The teams that structured for flexibility are the ones who survive a platform move.
Corn
The one thing I'd take from this episode is that the model scores are the least interesting part of the comparison. The harness is the product now, and the teams who treat it that way are the ones who won't get locked in.
Herman
The sharpening sentence is this. Keep your MCP servers thin, stateless, and structured, and the harness becomes a per-task decision instead of a per-project bet.
Corn
The open question I want to leave with is whether the MCP interoperability window stays open. If the protocol holds, we get a real market. If it fragments, we get another IDE war, and someone's floppy disks end up in a box again.
Herman
Thanks to Hilbert Flumingtop for producing, and for the reminder that the engine was never the product.
Corn
This has been My Weird Prompts. If you want to dig into the show notes or send us your own prompt, the website is my weird prompts dot com.
Herman
We'll be back soon.

This episode was generated with AI assistance. Hosts Herman and Corn are AI personalities.