Back to Research

A Week Choosing Codex Over Claude

A developer’s week with Codex over Claude turned into a sharper question: which agent makes smaller, faster patches?

Lower Falls, Rochester, landscape painting by Frederic Edwin Church (1849).
Rogier MullerAugust 23, 202610 min read

A week of using Codex more than Claude is a developer essay published on All About Coding about reaching for OpenAI Codex more often than Claude during a normal work week. It deals with a question many engineers are now asking in real repos: when does one coding agent feel faster, quieter, and easier to review than another? The useful takeaway is not “Codex wins” or “Claude loses”; it is that Codex CLI workflows should be judged on the patches they leave behind, not the confidence of the chat.

OpenAI Codex is OpenAI’s coding agent for reading, changing, and verifying code from a prompt, including through a command-line workflow. Claude Code, Anthropic’s coding agent, sits in the same practical category for many developers: a tool you ask to modify a repo, explain a change, or get a branch unstuck. The post mattered because it put a daily preference into plain language, and the Hacker News discussion immediately turned that preference into a better engineering question.

Why the post hit a nerve

The essay landed because it described a familiar switch: not a grand migration, just a week where one tool started getting opened more than the other. That is how coding tools usually win. They become the thing you use when you are tired, in the middle of a diff, and short on patience.

The strongest pro-Codex reading was simple. Some developers said Codex produced changes with less narration, fewer oversized comments, and less “word vomit” in both chat and code. One Ruby on Rails user liked that Codex-generated changes drew fewer review comments, especially around unnecessary explanatory blocks.

That point is worth taking seriously. In a Rails app, a generated comment above a small service object can feel helpful on Tuesday and stale by Friday. Reviewers often prefer code that follows the project’s idioms over code that explains itself into a corner.

The trap is turning taste into a benchmark. “Fewer comments” is good only if the code is still legible, tested, and local to the change. A quiet patch that hides a bad abstraction is worse than a noisy patch that exposes its assumptions.

The Codex case is speed and restraint

The practical argument for Codex in the discussion was not mystical. Developers liked that it felt faster and less verbose. That matters because agent work has two clocks: the time until a patch appears, and the time until a human trusts it.

For Codex users, the sweet spot is a narrow change with an obvious verification loop. A good task looks like: “Fix this failing Rails request spec without changing the public API,” then run the spec, inspect the diff, and ask for one cleanup pass if needed.

Here is the kind of repo-local instruction that helps Codex stay restrained:

# AGENTS.md

## Change style
- Prefer the smallest change that fixes the failing test.
- Do not add explanatory comments unless the code is doing something non-obvious.
- Keep existing Rails conventions: service objects stay in app/services, request specs stay in spec/requests.
- After changes, run the focused spec first, then the related lint command.

## Verification
- For Ruby changes, run: bundle exec rspec path/to/spec.rb
- For JavaScript changes, run: npm test -- --runInBand path/to/test
- If a command cannot run locally, say why and include the exact command the reviewer should run.

That is not a personality prompt. It is a boundary. It tells the codex agent what “good” means in this repo before it starts inventing shape.

The trap is asking Codex for a broad refactor and then praising it for being concise. Small tasks make restrained agents look great. Large ambiguous tasks can make any agent either underbuild or overbuild.

The Claude case is model context, not brand loyalty

The best objection in the thread was also the most boring, which usually means it was right: which models were being compared? A harness comparison is weak if it does not say the exact models, settings, repo type, and task class.

That matters because “Claude vs Codex” is rarely one clean variable. You may be comparing different default prompts, context handling, safety behavior, model versions, tool permissions, and review habits. A developer who uses one tool in a rich project context and another in a blank chat is not testing the models evenly.

The pro-Claude side also has a real point on bigger reasoning tasks. Some developers prefer more explanation when the change spans unfamiliar architecture or messy business rules. A verbose agent can be annoying in a small diff and still useful when it surfaces a hidden dependency.

The trap is pretending verbosity has one value. In a payment reconciliation job, a note about why an edge case exists may save the next person. In a controller spec, the same note may just be litter.

The cautionary tale is overengineering

One criticism of Codex in the discussion was that it could become overly cautious on data work. A scraping and data-processing task reportedly turned into provenance gates, enums, and multi-source consensus machinery when the desired output was closer to “scrape the data and normalize it.”

That is the other side of restraint. An agent that tries hard to be safe may add ceremony when the prompt does not define the boundary. “Be careful with facts” can become a miniature data governance system when all you wanted was a CSV cleanup pass.

This is where Codex CLI users should write the boring sentence first. “Do not create a new data quality framework; produce one script and one test fixture.” That sentence often saves more time than a longer prompt about the business goal.

If the work touches external systems, use an MCP boundary note rather than hoping the agent guesses correctly:

# AGENTS.md

## External data boundary
- MCP tools for GitHub and docs are read-only during this task.
- Do not write to production databases, queues, Slack, or issue trackers.
- If new data provenance rules seem necessary, propose them in the handoff instead of implementing them.

MCP is the integration layer that lets agents reach systems like GitHub, docs, databases, and internal tools. The important word in that paragraph is not “integration.” It is “boundary.”

Try the argument on one real patch

The healthiest response to the post is not another comment-thread verdict. Run one small comparison on your own codebase, with the same prompt, same branch starting point, and same review rubric.

Pick a task that fits in one sitting. A failing test, a small bug, or a safe refactor is perfect. Avoid a vague feature request, because then you are judging product design taste more than coding behavior.

Question Codex looked better when… Claude looked better when… What to measure
Speed The first usable diff appeared quickly The slower answer explained a tricky path Minutes to reviewable patch
Patch size The change stayed local The broader edit prevented a second bug Files touched and lines changed
Comments It avoided redundant comments It documented a real domain exception Review comments about clarity
Safety It followed repo rules without ceremony It surfaced missing assumptions Tests run and failures explained
Overengineering It resisted new abstractions It used structure where the repo needed it New concepts added to the codebase

Copy this small experiment receipt into the pull request description or handoff:

## Agent comparison receipt

Task: Fix one failing request spec without changing the public API.
Repo area: app/controllers + spec/requests.
Starting commit: <sha>
Prompt used: <paste exact prompt>
Repo rules loaded: AGENTS.md at root + nested AGENTS.md in spec/

Codex result:
- Time to first usable diff:
- Files changed:
- Tests run:
- Human review notes:

Claude result:
- Time to first usable diff:
- Files changed:
- Tests run:
- Human review notes:

Decision:
- Better patch for this task:
- Why:
- One instruction to add or remove before the next run:

For more Codex-specific workflow examples, the Codex CLI workflows topic is the better next stop than arguing from screenshots. A nearby community example, neal Runs Claude and Codex Together, is also useful because it treats the tools as different instruments rather than rival mascots.

Try this next

Pick one annoying failing test and run the same prompt through Codex and Claude from the same commit. Keep the better patch, then update AGENTS.md with the one instruction that would have prevented the losing patch’s worst habit.

One methodology lens

One useful way to read this through our methodology is the Plan step: delegate first-pass decomposition and dependency mapping, review the sequencing and assumptions, and keep ownership of scope and priorities. If that split is still fuzzy, the workflow usually is too.

Practical starter checklist

- [ ] Name the Codex artifact first: an AGENTS.md instruction, a Codex CLI verification loop, an MCP boundary note, or a skills handoff.
- [ ] Write the review checklist before generation starts: scope, owner, tests, rollback.
- [ ] Keep the first step small enough that a reviewer can inspect the receipt without replaying the whole chat.

Common questions

  • How should teams start with Codex?

    Start by writing down one visible team rule for Codex, not a loose preference. That usually means a short repository convention, a review checklist, and one owner who can reject agent output when the evidence is missing.

  • Which Codex artifact should teams standardize first?

    Standardize the smallest artifact that reviewers already touch: a AGENTS.md instruction, MCP note, or verification checklist. The point is not documentation volume; it is a shared place where scope, allowed tools, expected tests, and rollback notes are visible before generated code reaches review.

  • How do teams know the convention is working?

    The convention is working when reviewers can approve or reject agent output from the artifact and evidence alone. Track whether pull requests name the rule used, include the promised checks, and avoid replaying long sessions just to understand what changed.

Best ways to use this research

  • Best for: Codex teams deciding which AGENTS.md instruction, CLI workflow, MCP boundary, or verification loop to standardize next around “A Week Choosing Codex Over Claude.”
  • Best first artifact: turn the named fix into an AGENTS.md rule, verification checklist, MCP note, or review receipt before the next automated run.
  • Best comparison angle: compare the workflow against the current Codex CLI review loop, shell boundary, and evidence trail; keep the path that leaves the shortest auditable trail.

Further reading

Next move

Take this into the related training topic and test whether a new reviewer can defend the merge without replaying the chat.

Related training topics

Related research

Ready to start?

Transform how your team builds software.

Book a 15-minute sync