From Claude to Codex: mapping a year of AI coding
Twelve months of running two terminal coding agents side by side: Claude Code and Codex CLI. Reconstructed from local session logs, prompt histories, and 22,945 commits across 58 repos. The data shows a single month where one terminal quietly replaced the other.
The short version of the analysis.
This article uses session logs and commit history to show when Codex quietly became my main coding tool.
Here's a summary of this page by my AI Avatar
Key statistics
The question
I run terminal-based AI coding agents continuously: Claude Code from Anthropic and Codex CLI from OpenAI. Both ship a new flagship model roughly every six to eight weeks. The question was simple. Which tool is actually driving my coding, how has that shifted over a year, and which model releases moved the needle?
The answer turned out to be more precise than I expected. There was one specific month where the dominance flipped, and then a five-month streak (and counting) where it stayed flipped.
The crossover
I don't commit code by hand. Every commit is either a Claude Code commit (which ships a Co-Authored-By: Claude trailer) or a Codex CLI commit (which ships nothing). That makes attribution clean and binary.
From June through October 2025, Claude Code was clearly the primary committer. June 77%, July 88%. Then November happened: Claude collapsed to 140 commits, Codex jumped to 571. Same total volume, completely different mix.
First crossover: November 2025 (20%). One-month return in December (74%) during a single-project sprint. Permanent crossover from January 2026 onward - Claude share has never been above 11% since.
December gave Claude one last good month. A single concentrated sprint dragged its share back to 74%. After that, the floor fell out. From January 2026 onward, Claude has never been more than 11% of my monthly commits. By February it was 7%. By May (mid-month) it's under 2%. Five consecutive months of Codex-majority, and the streak is still extending.
Current streak: 5 months and counting (Jan 2026 → May 2026). The orange bars mark stretches of 3+ consecutive Codex-majority months - the threshold I'd call “permanent.”
Which model powered the takeover
At the November 2025 crossover, Codex CLI was running plain gpt-5-codex, the model that shipped with the CLI. The 5.1 family arrived mid-month (5.1-codex on Nov 14, 5.1-codex-max on Nov 19), but the crossover started before they were available. The default model was already strong enough to displace Claude.
The permanent takeover came in February 2026 with gpt-5.3-codex, which Anthropic happened to meet by releasing Opus 4.6 the same day. From that point forward, every Codex flagship has had a roughly two-to-four-week run as my daily driver before the next one replaced it.
Each bar is the window during which a model was actively used in my session transcripts. Codex flagships are rotated every 2-4 weeks; Claude flagships are absorbed alongside Haiku 4.5 (which has been the constant subagent default since mid-October).
Claude's model rotation looks completely different. Haiku 4.5 has been a continuous presence since mid-October as the default subagent model. The Opus flagships (4.5, then 4.6, then 4.7) get swapped through for interactive work. Sonnet barely registers. Combined Sonnet 4.5 and Sonnet 4.6 traffic is under 3% of Claude assistant messages.
Same-day adoption is the new normal
Once both terminals were installed and the harness was in place, every flagship model release from either lab showed up in my session logs within 24 hours. I don't A/B test releases or wait for benchmarks. The new model is just the model I use that day.
| Model | Public release | My first use | Delay |
|---|---|---|---|
| gpt-5-codex | ~2025-09 | 2025-09-24 | within 2 weeks |
| gpt-5.1-codex | 2025-11-14 | 2025-11-14 | same day |
| gpt-5.1-codex-max | 2025-11-19 | 2025-11-19 | same day |
| gpt-5.2-codex | 2025-12-19 | 2025-12-19 | same day |
| gpt-5.3-codex | 2026-02-05 | 2026-02-05 | same day |
| gpt-5.4 | ~2026-03-05 | 2026-03-05 | same day |
| gpt-5.5 | 2026-04-23 | 2026-04-23 | same day |
| claude-opus-4-6 | 2026-02-05 | 2026-02-05 | same day |
| claude-sonnet-4-6 | 2026-02-17 | 2026-02-18 | 1 day |
| claude-opus-4-7 | 2026-04-16 | 2026-04-16 | same day |
February 5, 2026 was the watershed day. Anthropic shipped Opus 4.6 and OpenAI shipped gpt-5.3-codex within hours of each other. Both landed on my machine the same day. Codex assistant-message volume jumped from 8,010 in February to 42,652 in March on the back of gpt-5.4. That was a 5× increase driven by longer agentic loops per prompt, not by more prompts.
Daily cadence
Both tools have been active essentially every day since October 2025. The crossover wasn't Claude being abandoned. It was Codex doing more of the work that used to go through Claude.
Codex hit 100% active days starting January 2026. Claude reached 100% in December and has held there for six straight months. They are both daily tools.
Larger dots = busier days. The visual pivot from blue-heavy (June-Oct 2025) to green-dominant (Nov onward) is the crossover. The day-to-day cadence shows both tools have been active every working day for over a year.
The dot plot makes the shift visible at the daily level. The top row (Claude) is dense and large-dotted through October, then thins out from November forward. The bottom row (Codex) does the opposite: sparse and small-dotted at the start, dense and big-dotted by late winter.
Commit hour distribution. Both tools peak 11am-5pm. The 11am Codex spike is a daily batch effect - late-morning is when Codex finishes overnight automation work and ships it.
Both tools peak between 11am and 5pm, normal working hours. The 11am spike on Codex is mostly automation finishing its overnight runs. Outside of that, the distribution is fairly symmetric. The data refuses to support a story about coding all night.
Claude token throughput
Even though Claude moved into a supporting role for commits, the token volumes through Claude are large. Per-message usage records in session transcripts give exact counts back to January 2026:
Token data from per-message usage fields in ~/.claude/projects/ session transcripts. Session retention only goes back to January 2026 on this machine, so pre-2026 throughput is not captured here.
| Model | Input | Output | Cache read | Role |
|---|---|---|---|---|
| claude-haiku-4-5 | 13.0M | 4.3M | 5.26B | Subagent default |
| claude-opus-4-7 | 626K | 18.8M | 2.59B | Current interactive flagship |
| claude-opus-4-6 | 1.7M | 8.1M | 2.58B | Prior interactive flagship |
| claude-opus-4-5 | 1.78M | 25K | 130M | Quick-replaced by 4.6 |
| claude-sonnet-4-6 | 30K | 437K | 111M | Rarely chosen |
| claude-sonnet-4-5 | 318K | 22K | 60M | Brief use, Feb 2026 |
Almost everything in the throughput total is cache-read, context being reloaded across thousands of subagent calls. The actual generation work (output tokens) is only 31.7M lifetime. The cache-read number tells you the harness is working: one planning thread can spawn dozens of context-loaded subagents without paying full input pricing on each one. That's the part a model benchmark misses.
Haiku 4.5 is the single largest consumer at 5.26 billion cache-read tokens, because it's the default model for Task-tool subagents. The Opus flagships sit just behind it because they carry the interactive coding that Claude still owns.
Timeline
- 2025-02-24Claude Code public preview ships
- 2025-04-16OpenAI Codex CLI launches
- 2025-06-14My first Claude Code token (account-wide first-token date)
- 2025-06509 Claude-trailered commits land in the first month, 77% of total
- 2025-09-24Codex CLI installed on the primary machine, same day as Claude Code
- 2025-09-29Claude Sonnet 4.5
- 2025-10-15Claude Haiku 4.5 becomes the default subagent model immediately
- 2025-11-14gpt-5.1-codex
- 2025-11-19gpt-5.1-codex-max
- 2025-11 (the month)Crossover: Claude commit share drops from 69% → 20% in a single month
- 2025-11-24Claude Opus 4.5
- 2025-12-19gpt-5.2-codex
- 2026-02-05Watershed: Opus 4.6 and gpt-5.3-codex ship on the same day
- 2026-02-17Claude Sonnet 4.6
- 2026-03-05gpt-5.4 lands. March becomes the highest Codex assistant-message month ever
- 2026-04-16Claude Opus 4.7
- 2026-04-23gpt-5.5 replaces gpt-5.4 as daily Codex driver within a week
What I take from this
Three things stand out from a year of data.
1. The install matters more than the model.
Codex CLI became a daily tool in week one of October 2025 on the plain gpt-5-codexmodel that shipped with it. I crossed the “5+ active days in any 7” threshold four days after install. No specific model release made it daily. Having a working terminal coding agent on the machine did.
2. Dominance is binary, not gradient.
The crossover from Claude to Codex was not a gradual drift. November 2025 flipped it in a single month. December clawed it back briefly, and then January made it permanent. Once a tool is dominant for a few large repos, it stays dominant. Muscle memory and which terminal is open in the moment of need both belong to the winner.
3. The harness compounds in a way the model does not.
Six months of accumulated subagent skills, repo-local instructions, vault-backed search, and memory routing produced over 10 billion cache-read tokens of reused context. None of that came from any one model release. It came from continuous investment in the shell around the model. When the next flagship ships, it walks into a working factory.
The two tools are not in competition for me anymore. Codex CLI carries the typing. Claude Code carries the planning, the documentation, and the subagent-driven research. They both saw new flagships this month. I'll still be using both next month.
Method notes
- Commits attributed to me by author email. 22,945 total across 58 repos in
~/dev/; third-party upstream contributors are excluded. - Codex Cloud autonomous-mode commits (authored by
[email protected]) are excluded. This analysis is interactive CLI usage only. - Pre-2026 Claude session transcripts have been pruned by Claude Code retention. Pre-January Claude prompt counts come from the never-pruned
history.jsonl. The June 14, 2025 account-wide first-token date comes from.claude.json. - Pre-September 2025 untrailered commits include some legacy Cursor and manual work that predates Codex CLI install. The clean story is from October 2025 onward when both terminals were active.
- Subagent traffic (sidechain messages and files under
subagents/) is excluded from interactive counts. 104,297 messages stripped out. - An automated agent burn-in cluster of 2,420 prompts on January 2-7, 2026 is excluded from prompt counts. Real traffic, but not coding work.
- All counts come from local files:
~/.claude/history.jsonl,~/.claude/projects/,~/.codex/sessions/,~/.codex/history.jsonl, andgit log --allacross~/dev/.