Claude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
小さな計算アプリで同じ3つの作業を Claude Code と Codex に頼んだところ、どちらも3つともテストが通るところまで1回でやり切りました。違いは、足したテストの数と終わったあとの説明の細かさに出ました。2026年11月5日に、Claude Code 2.1.309 と Codex CLI 0.166.0 で確かめました。
経緯
Claude Code と Codex のどちらを使うか迷ったので、同じ課題を同じ頼み方でさせて、結果を並べてみました。1つの作業を1回ずつさせただけなので、どちらが上かを決めるものではなく、どこに違いが出るかを見るためのものです。
環境
- macOS 26.6.2、Node.js 24.19.0
- Claude Code 2.1.309(モデルは初めの設定の Claude Opus 5.5)
- Codex CLI 0.166.0(モデルは初めの設定の GPT-6.1-Sol)
- どちらもサブスクリプションでログインした状態(2026年11月5日に確認)
比べ方
課題
計算(足し算、引き算、割り算、平均)と、入力の読み取りと結果の表示をする小さなアプリ(関数が6つ、テストが7件)に、次の3つの作業をさせました。頼んだ文は、両方とも同じです。
| 作業 | 頼んだ文 |
|---|---|
| 1 関数とテストを足す | 数の配列の中央値を返す median 関数を足し、テストも足して、npm test がすべて通ることを確かめる |
| 2 不具合を直す | npm test が失敗しているので、原因を調べて直し、すべて通ることを確かめる(平均の計算から最後の数が抜ける不具合を、わざと入れておいた) |
| 3 ファイルを分ける | 入力と表示のための関数を src/format.js に移し、読み込んでいるファイルも直して、すべて通ることを確かめる |
そろえた条件
- 作業のたびに、リポジトリを最初の状態に戻しました。
- 対話の画面は開かず、1回の指示を渡して終わるまで任せる使い方(Claude Code は
claude -p、Codex はcodex exec)で動かしました。 - 自分で足した設定や指示のファイルは読み込ませず、初めの設定に近い状態にしました。
- Claude Code にはファイルの編集と
npm testだけを許し、Codex は作業のフォルダーの中だけ書き込める設定(workspace-write)にしました。
結果
| 作業 | Claude Code | Codex |
|---|---|---|
| 1 関数とテストを足す | 通った。テストを4件足した。23秒 | 通った。テストを7件足した。29秒 |
| 2 不具合を直す | 通った。1行を直した。20秒 | 通った。1行を直した。25秒 |
| 3 ファイルを分ける | 通った。3つのファイルを直し、1つ作った。29秒 | 通った。同じ3つを直し、1つ作った。27秒 |
どの作業も、頼み直すことはありませんでした。作業2と3は、変えた行が両方でまったく同じでした。
使った量は、読み込んだ量と書き出した量をトークン(AI が文を数える単位)で記録しました。数え方がツールごとに違うので、同じツールの中での作業の重さの目安として見てください。
| 作業 | Claude Code(読み込み / 書き出し) | Codex(読み込み / 書き出し) |
|---|---|---|
| 1 | 48,677 / 1,190 | 60,489 / 862 |
| 2 | 66,244 / 886 | 64,206 / 485 |
| 3 | 140,920 / 2,021 | 80,561 / 765 |
違いが出たところ
Codex のほうが、端の場合のテストを多く足した
作業1の median 関数そのものは、書き方が違うだけで、どちらも同じ動きでした。差が出たのはテストです。Claude Code は4件を足しました(要素が奇数個、偶数個、元の配列が変わらないこと、空の配列)。Codex は、それに3件を加えた7件を足しました(1つだけのとき、負の数と同じ数があるとき、小数のとき)。
VS Code で、Claude Code と Codex が足した median 関数を並べて比べた画面
画面の赤い行が Claude Code の書き方(if で分ける)、緑の行が Codex の書き方(? : で1つの式にする)です。
Claude Code のほうが、原因を詳しく説明した
作業2で Claude Code は、どのコミットで何が変わり、[1, 2, 3, 4] の平均がなぜ 1.5 になっていたかまで数を使って説明しました。Codex は、原因を1文で書き、直したファイルと行を示して終わりました。どちらも返事は日本語でした。
Codex は、AGENTS.md と空白の誤りも確かめた
Codex は、どの作業でも最初に AGENTS.md(Codex への指示のファイル)があるかを探しました。作業2と3では、直したあとに git diff --check で空白の誤りがないかも確かめました。Claude Code は作業3でアプリそのものを動かして確かめようとしましたが、許していないコマンドだったので止まり、「確認できていない」と返事に書きました。
使い分け
今回の3つの作業では、どちらを使っても結果は同じところに着きました。端の場合まで含めたテストを多めに書いてほしいときは Codex、原因の説明を詳しく読みたいときは Claude Code、という差が出ました。速さは、どちらも1つの作業が30秒以内で、決め手になるほどの差はありませんでした。
注意点
1回ずつの結果で、やり直すと変わることがある
同じ頼み方でも、もう一度させると違う結果になることがあります。モデルや版が変わると、結果も変わります。
対話の画面では、許可を聞かれる分だけ時間が延びる
1回の指示を渡して任せる使い方で比べました。対話の画面や VS Code の拡張機能では、途中で許可を聞かれるので、かかる時間は変わります。
大きなリポジトリでの量と速さは、この結果から分からない
ファイルが3つの小さなアプリなので、大きなリポジトリでの読み込む量や速さは、この結果からは分かりません。
参考文献
著書
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleCursor の Claude Code 拡張機能 2.1.312、2.1.313 の不正な版を確かめる手順: 版と6つの印を見る
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleClaude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る
articleClaude Code の利用制限(usage limit)の見方: 5時間と1週間の残りは /usage で分かる
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
article2026年11月3日Codex のサンドボックスは .env や環境変数を読める: 読ませないための config.toml の設定
articleCodex が誤ったコードを出すときの対処:再現最小化・拘束条件・テスト駆動の適用
articleCodex の生成品質をベンチマーク:バグ率・修正時間・レビューコストで比較
articleCodex でレガシーコードの近代化:ES5→ES202x/型導入/依存更新の計画
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleCursor の Claude Code 拡張機能 2.1.312、2.1.313 の不正な版を確かめる手順: 版と6つの印を見る
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleClaude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る
articleClaude Code の利用制限(usage limit)の見方: 5時間と1週間の残りは /usage で分かる
