---
title: "Comparing Codex CLI vs Claude Code side-by-side"
source: "https://x.com/iannuttall/status/1962910312430215307"
author:
  - "@iannuttall"
published: 2025-09-02
created: 2026-05-14
description: "It's been almost a month since I last tested the Codex CLI vs Claude Code (a lifetime for AI models and tools)I've been afk over the summer ..."
tags:
  - "clippings"
type: clipping
area: clippings
status: completed
topic:
  - Claude Code
  - Codex CLI
  - AI Tools
rating: 4
date: 2026-05-14
updated: 2026-05-14
---
![Image](https://pbs.twimg.com/media/Gz2mU7LXAAA8N43?format=jpg&name=large)

It's been almost a month [since I last tested the Codex CLI vs Claude Code](https://x.com/iannuttall/status/1953833034794651649) (a lifetime for AI models and tools)

I've been afk over the summer and a lot of chatter is about how much Codex and GPT-5 has improved vs Claude Code.

So, let's put it to the test and build a simple [@CloudflareDev](https://x.com/@CloudflareDev) Worker to track the Codex changelog and send a Telegram notification for each new version with info on the highlights and new features!

TLDR; Claude Code is more mature and has features like subagents, custom slash commands, and hooks that make you more productive. Codex with GPT-5 High is catching up fast though. It's smart, concise, and easy to use. Both are great and I plan to use them together. Pick one and ship something!

- Both tools got the same prompt (quite detailed and explicit instructions)
- Both tools got a Gist URL with an example of an existing Worker
- Claude Code was using Opus 4.1
- Codex was using GPT-5 High

<video preload="none" tabindex="-1" playsinline="" aria-label="Embedded video" poster="https://pbs.twimg.com/ext_tw_video_thumb/1962907151149498368/pu/img/s9dl46IFlJS5I7QD.jpg" style="width: 100%; height: 100%; position: absolute; background-color: black; top: 0%; left: 0%; transform: rotate(0deg) scale(1.005);"><source type="video/mp4" src="blob:https://x.com/a46ac54d-6589-47dc-928f-b48a669fdeb7"></video>

![](https://pbs.twimg.com/ext_tw_video_thumb/1962907151149498368/pu/img/s9dl46IFlJS5I7QD.jpg?name=large)

timelapse of the ~17m session (codex on the left, claude code on the right)

The Claude code TUI feels more polished, which is to be expected since it's much more mature. The diff views felt cleared than Codex and even though I selected the option in Codex to run commands automatically, it asked for permission a lot.

Codex feels much faster and smarter than the last time I tested, and I think last time I did not have it on high reasoning, which makes a big difference to how well it works - especially for planning out what it's going to do.

Claude Code only shows the current task now, with ctrl+r to show the task list. I actually like this because the plan in Codex does get in the way of the flow now that I see them side-by-side.

One thing I really like about GPT-5 is how concise it is. It just does stuff without fanfare, without glazing me like I'm the second coming of Tim Berners-Lee, father of the internet!

It's so refreshing to not be told "You're absolutely right!" all the time 😂

Another thing I like about GPT-5 is that it follows instructions much better than Opus did.

I gave them both a full project example with file structure, which GPT-5 followed exactly, with multiple files inside a /src directory.

Opus, on the other had, stuck the entire codebase inside a worker.js file. This feels like a degradation, as last time I did this test Opus followed the file structure perfectly.

I gave them both the Codex releases URL from Github to track the changes from. Both of them struggled to extract the release info and both had a novel approach to solving it.

- Codex/GPT-5 grabbed the Atom feed instead, which gave the releases in a structured format.
- Claude Code/Opus made a Github API call to get the data. Both worked without my input (after a few curl tool calls to get the right syntax).

Might be a tiny bug bear that I could fix with one request back to Codex but it had all of the information for the Telegram message from the atom feed but it didn't add it to the notification - Opus did:

![Image](https://pbs.twimg.com/media/Gz2ZowYWAAAyJVL?format=jpg&name=large)

claude created a much more interesting telegram message by default

During testing I had to add an endpoint to delete a stored entry. I had to do a little back and forth with Opus to get that set up, where GPT-5 had already done it when I asked it to run the test again and I didn't even have to think about it.

While I didn't need them for this project, I use subagents a lot in Claude Code to gather context and get information for the main agent, and I could see that being something I would miss a lot in Codex.

(pretty sure they will roll those out soon enough!)

I do like the simplicity of Codex though and in particular the /status command to see token usage and also ctrl+t to view the transcript were both super useful.

GPT-5 used 90,465 tokens to build the worker, while Opus did it in 50,000 - which means GPT-5 was much cheaper on a per-token basis.

Code quality for both was on a par IMO and I couldn't say one was better than the other. I would need a more complex, long term project to test this more, maybe in Laravel/PHP where I am more comfortable with the best practices than something like Typescript.

To wrap it up: both built the Worker very well and like all tools both have advantages and disadvantages.

I will be looking to use Codex more though, because I have been impressed with GPT-5 High, and would love to see things like subagents, hooks, and custom slash commands in the future.

Huge fan of the concise, get-shit-done, nature of GPT-5 too.

Codex needs better docs, though. Claude Code docs are not only fantastic but you can add ".md" to the end of any URL and pass it to an agent as a Markdown file!

Looking forward to seeing how these two push each other forward (but unfortunately for me I think I need to spend another $200/mo to upgrade to ChatGPT Pro - thanks [@sama](https://x.com/@sama) 😂)

Any ideas for more tests and comparisons? let me know!