Claude CodeとCodex CLIを7日間併用したら、二重コミットとメモリ消失で最初の3日が普通に溶けた

結論、Claude CodeとCodex CLIを同じプロジェクトで気分次第で切り替えながら使うのは、最初の3日はわりとカオスでした。同じファイルに2回違うコミットが乗ったり、片方で書いたメモがもう片方から見えなかったり。それでも7日続けたら作業時間が4時間から1.5時間まで縮みました。何が地雷で何が効いたのか、実際にやってみた手順と失敗を残します。

目次

なぜ2つのCLIを併用しようと思ったか

普段はClaude Code1本でした。気になっていたのはコストです。1日4〜5時間使うと月の請求がじわじわ膨らみます。私の環境では自動化スクリプトの量産フェーズで、1日のセッションコストが想定の2.5倍に膨れた月があって、さすがにこのまま増やすのは怖いなと思ったのが始まりでした。

仮説はシンプルで、判断系と対話系はClaude Code、同型ファイル量産はCodex、CLAUDE.md/AGENTS.md/メモリ/MCPは両者で共有。言葉にすると綺麗ですが、「共有」の3文字に1.5日溶かしました。

環境

  • OS: Windows 11 Pro 24H2
  • シェル: PowerShell 5.1とGit Bash併用
  • Node.js: 22.11.0
  • Claude Code: 2.0系 / Codex CLI: 0.36系(npm経由)
  • プロジェクトサイズ: Pythonファイル約480本、CLAUDE.md 312行

両方ともnpm経由で1分で入りました。設定が地雷でした。

Day 1: いきなり二重コミットが発生する

初日、軽い気持ちでCodex側を起動して、Claude Codeで作りかけだったツールの仕上げを頼みました。1時間後、git logを見たらこうなっていました。

1a2b3c4 feat: add csv exporter (Claude Code session)
2b3c4d5 feat: add csv exporter (Codex session)
3c4d5e6 fix: merge conflict between csv exporter implementations

同じ機能が別ファイル名で2回実装されていました。これ、完全に自分が悪いんですけど、両CLIに「未コミットの作業状況」を渡せていなかったからです。この時点でいったんコーヒーを置きました。怒る相手が自分しかいないタイプの事故です。最初はエラーが出たわけではなく、両方とも「成功した」風に見えたのが厄介でした。テストも通る。けど内部にゴーストが生まれている。

対策は地味で、切替時に必ず以下を踏むルールにしました。

  1. 切替前のCLIで git add . && git commit -m "wip: handoff" まで進める
  2. 未コミットでも進捗を後述のメモリに書く
  3. 新CLI起動直後に git log -5 --onelinegit status を読ませる

3日目以降、これだけで二重コミットがゼロになりました。

Day 2-3: 片方だけ古いルールで動く事故

Claude Codeは CLAUDE.md を、Codex CLIは AGENTS.md を読みます。中身を同じに保ちたい。最初は両方を手動で直していて、3回くらい片方の更新を忘れて、Codex側だけ古いルールでコミット文面が崩れる事故を起こしました。「同じファイル2本置き運用」を舐めていたのが原因です。

pre-commit hookでCLAUDE.mdからAGENTS.mdを自動再生成する短いスクリプトに切替えました。生成直後のAGENTS.mdをCodexに食わせたら、ルール表のあと半分が「無かったこと」になっていて、見出し直後を行頭から詰めすぎていたのが原因でした。## 見出しのあとに必ず1行空行を入れる整形を足したら、ちゃんと全部読んでくれます。同期の仕組みそのものは別の記事で書いたので、ここでは併用したからこそ刺さる地雷だけ。要は両CLIで指示の解釈ぶれを起こす最大原因は、人間の二重メンテでした。これ完全に自分が悪いんですけど、いったんラクするためのhook化に1日かかったのも含めて、もう少し早くやればよかったです。

Day 4: メモリの場所問題で迷子になる

Claude Codeにはセッションを跨いだメモリ機能があり、私は188件ほど溜めています。Codex側からこれを参照できないと、片側でしか前提が効きません。最初に試したのはディレクトリをCodexのワークスペースにコピーする方法。即破綻でした。両側で更新するたびに差分が増えて、どっちが正解か分からなくなります。

採用したのは小さなMCPサーバーを1本書いて、両CLIから同じファイルを読み書きさせる方式です。MCPの作り方そのものは別の記事に書いたので、ここでは併用ならではの痛い話だけにします。.mcp.json~/.codex/config.toml の両方に同じMCPサーバーを登録します。

# ~/.codex/config.toml の該当部分
[mcp_servers."project-memory"]
command = "python"
args = ["C:/project/tools/project_memory_mcp.py"]

ハイフン入りのサーバー名はクォートで囲わないとTOMLが怒ります。私はここで30分溶かしました。あと、書き込み側は tmpファイル経由でリネームしてアトミックに差し替えないと、両CLIがほぼ同時にwriteしたときに片方の内容が消えます。これは実害が出るまで気づかず、3日目の夜に貴重なfeedbackメモを1件失いました。

Day 5: 体感差が見えてくる

両者の得意分野

5日目には両者の得意分野がハッキリしてきました。Claude Codeは仕様の曖昧な依頼を整理しながら実装するのと、長いデバッグで粘り強く掘る用途に強い。Codex CLIは同型ファイルを20本作る量産系と、機械的な一斉修正に強い。

同じタスク(180行の自動化スクリプトをゼロから生成)を両者に投げて記録したところ、こうなりました。

Claude Code:  実時間 14分 / 出力品質 9/10 / コスト指数 1.0
Codex CLI:    実時間  8分 / 出力品質 7/10 / コスト指数 0.25

コスト指数は私の環境での感覚値で厳密じゃないんですが、肌感としてCodexは4倍効率に見えるけど品質では2点落ちる。最初は「全部Codexでよくないか」とニヤッとしましたが、Codex単独で詰めた設計をClaude Codeに見せたら静かに直されまくったので、設計はClaude Codeで詰めてから量産だけCodexに渡す運用に落ち着きました。

Day 6: 並列起動で1度だけ事故った

6日目、5日目までうまく回り過ぎたせいで、調子に乗ってCodexを5本並列で起動しました。1本目は本文執筆系の長文タスク、残り4本は軽量チェック。1時間後、見たことのないログが出ました。

ERROR: You've hit your usage limit. 
try again at YYYY-MM-DD HH:MM.

Codex CLIには日次の使用量制限があります。プロセス自体はexit 0で終わるので、ログを見ないと失敗に気づけないのが地味に怖い挙動です。気づいたのは2時間後で、その間に「終わったつもりの4本」が全部空打ちでした。並列するなら軽量タスクのみ最大3本、本文執筆系は1本ずつ、というルールを後付けで足しました。

Day 7: 1日4時間が1.5時間になった

7日目、定型業務(自動化ツール3本のメンテとブログ下書き1本)を計測しました。これまで4時間かかっていた一式が1時間半に。内訳は仕様整理にClaude Codeで30分、同型ツール3本の修正にCodexで25分、下書き起草にCodexで15分、仕上げと公開判断にClaude Codeで20分。1ヶ月換算で50時間以上の節約です。最初の3日で溶かした分が、4日目以降に何倍にもなって返ってくる感じで、これは正直やってよかった。

2つのCLIを併用するときの落とし穴チェックリスト

  1. 切替前に必ずgit commit、または進捗をメモリに書く
  2. CLAUDE.mdとAGENTS.mdの同期はpre-commit hookで自動化する
  3. メモリは両CLIから同じMCPサーバー経由で読み書きする
  4. MCP設定でハイフン入りサーバー名はクォート必須
  5. OAuthトークンは両CLIで使い回さない(リフレッシュ衝突する)
  6. Codex並列起動は3本まで、本文執筆系は1本ずつ
  7. シンボリックリンクはWindowsだと管理者権限が必要、コピー方式が無難
  8. 新CLIを起動したら最初の指示で git log -5git status を読ませる

最後の確認

これから併用を試す人へ。Codex CLIをnpmで入れ、プロジェクト直下にAGENTS.mdを作り、両方の設定ファイルに必要なMCPサーバーを登録し、軽量タスクを1本だけCodexに投げて挙動を見ます。切替時の git status 確認をルールにすれば、最初の3日のカオスはだいぶ短くなるはずです。

道具を1つ増やすと最初は手間が2倍に見えますが、3日我慢すると1.5倍速くなる。AI開発まわりはまだそのパターンが多いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次