• #Claude Code
  • #Codex CLI
  • #GPT-5.2
  • #スキル
  • #Windows Terminal
  • #AI連携
開発メモ

Claude CodeとCodex CLIの連携ガイド

この記事で解説すること

  • /codex-review スキルの設計思想と実装
  • Windowsでtmuxの代わりにWindows Terminalを使う方法
  • codex exec による非インタラクティブ実行
  • レビュー結果の保存と管理
  • モデル指定オプションの活用

背景:なぜ2つのAI CLIを連携させるのか

Claude Code(Anthropic、Opus 4.5)とCodex CLI(OpenAI、GPT-5.2)は、それぞれ異なる強みを持つ。Claude Codeで作成した計画やドキュメントを、Codexでクロスレビューすることで、単一AIのバイアスを軽減できる。

当初は手動で切り替えていたが、これをスラッシュコマンド一発で実行できるようにしたかった。

検討した連携方式

方式1: tmux(断念)

最初に思いついたのはtmuxを使った連携だ。tmux(terminal multiplexer)は1つのターミナルで複数セッションを管理でき、send-keys で別ペインにコマンドを送れる。

# tmuxでの連携イメージ
tmux send-keys -t codex "codex 'plan.md をレビューして'" Enter

ただし、tmuxはWindowsネイティブでは公式サポートされていない。WSL、MSYS2、Cygwin経由なら動くが、普段Windowsネイティブ環境で作業しているなら余計な設定が必要になる。

方式2: 共有ファイル経由(複雑すぎた)

次に検討したのが、ファイルを介して通知し合う方式だ。

Claude Code → plan.md → Codex → review.md → Claude Code

ステータスファイルで完了を監視し、結果ファイルを読み込む。動くには動くが、ファイル監視とステータス管理が煩雑だった。

方式3: codex exec(採用)

最終的に採用したのは、codex exec で標準出力を直接受け取る方式だ。

codex exec "対象ファイル.md をレビューして"

codex exec は非インタラクティブモードでCodexを実行し、結果を標準出力に返す。ファイル監視も不要でシンプルだ。

Windows Terminalでの運用

tmuxが使えないWindows環境では、Windows Terminalの機能で代替できる。

別タブ/ペインでリアルタイム確認

Codexの動作(思考過程やツール呼び出し)をリアルタイムで見たい場合は、対話モードを別ウィンドウで起動する。

# 別ウィンドウでCodexを起動
start powershell -NoExit -Command "codex '対象ファイル.md をレビューして'"

start コマンドは新しいウィンドウを開くため、Claude Codeのセッションをブロックしない。ユーザーはそちらのウィンドウでCodexがリアルタイムで動く様子を確認できる。

なぜ別ウィンドウが必要なのか

codex exec は結果のみを返す。思考過程(Thinking...)やツール呼び出しの詳細は表示されない。デバッグや学習目的でCodexの動作を見たい場合は、対話モード(codex コマンド単体)を使う必要がある。

/codex-review スキルの実装

スキルの構成

Claude Codeのスキル機能を使い、/codex-review コマンドを実装した。

~/.claude/skills/codex-review/
└── SKILL.md

ユーザーレベル(~/.claude/skills/)に配置したため、どのプロジェクトからでも利用できる。

SKILL.mdの内容(抜粋)

---
name: "codex-review"
description: "Codex CLI(GPT-5.2)にレビューを依頼する"
---

# Codex Review

## 引数

| 引数 | モデル | 説明 |
|------|--------|------|
| (なし) | gpt-5.2-codex | デフォルト |
| `max` | gpt-5.1-codex-max | 深い分析向け |
| `mini` | gpt-5.1-codex-mini | 高速 |

使い方

/codex-review          # デフォルト(gpt-5.2-codex)
/codex-review max      # gpt-5.1-codex-max(深い分析)
/codex-review mini     # gpt-5.1-codex-mini(高速)

codex execの詳細

基本構文

codex exec "プロンプト"

対話モードとの違い:

項目codex execcodex(対話モード)
入力1回のプロンプトのみ対話的に複数回
出力結果のみ思考過程も表示
終了自動終了明示的に終了
用途スクリプト・自動化対話的な作業

ファイル内容の渡し方

ファイルパスを渡す(推奨):

codex exec "apps/web/content/2026-01-14/article.md をレビューして"

Codexは作業ディレクトリ内のファイルを自分で読める。パスを伝えるだけでよい。

ファイル内容を直接渡す(短いファイル向け):

# Bash
codex exec "以下をレビューして。

$(cat article.md)"

# PowerShell
codex exec "以下をレビューして。

$(Get-Content article.md -Raw)"

コマンド長制限があるため、長いファイルはパスを渡す方式を使う。

モデル指定

利用可能なモデルは codex models で確認できる。2026-01-14時点:

モデル説明
gpt-5.2-codexデフォルト。最新のagentic codingモデル
gpt-5.1-codex-max深い分析・推論向け
gpt-5.1-codex-mini軽量・高速
gpt-5.2汎用モデル
# モデル指定
codex exec -m gpt-5.1-codex-max "レビューして..."

レビュー結果の保存

保存先

レビュー結果は .claude/codex-review/ ディレクトリに保存する。

.claude/codex-review/
├── 2026-01-14_071530.md
├── 2026-01-14_083045.md
└── ...

ファイル名は YYYY-MM-DD_HHMMSS.md 形式で、実行日時を記録する。

gitで追跡しない

このディレクトリは .gitignore に追加しておく。レビュー結果は一時的な参照用であり、バージョン管理する必要はない。

.claude/codex-review/

実行コマンド

スキル内で実行するコマンド:

# タイムスタンプ生成 & Codex実行 & 保存 & 表示
timestamp=$(date +%Y-%m-%d_%H%M%S) && \
codex exec "対象ファイル.md をレビューして" \
  > .claude/codex-review/${timestamp}.md 2>&1 && \
cat .claude/codex-review/${timestamp}.md

&& で繋いで1コマンドにまとめることで、Claude Codeの承認を1回で済ませる。

なぜteeを使わないのか

当初は | tee でターミナル出力と保存を同時に行おうとしたが、Codexの出力と相性が悪く空ファイルになることがあった。リダイレクト(>)と cat の組み合わせが確実だ。

実行フロー

1. ユーザー: /codex-review max
2. Claude Code: スキルを読み込む
3. Claude Code: 引数 "max" → -m gpt-5.1-codex-max に変換
4. Claude Code: 対象ファイルのパスを特定(会話文脈から推測)
5. Claude Code: codex exec -m gpt-5.1-codex-max "..." を実行
6. Codex: ファイルを読んでレビュー
7. Claude Code: 結果を .claude/codex-review/ に保存
8. Claude Code: サマリーをユーザーに表示
9. Claude Code: 「詳細は {パス} を参照」と案内

注意点

やってはいけないこと

  1. diffをコマンド引数に渡す - 長すぎてコマンドが失敗する
  2. 外部パス(/tmp等)を渡す - Codexの作業ディレクトリ外は読めない
  3. 機密情報を含むファイルを渡す - 履歴やログに残る可能性がある

サンドボックス制限

codex exec はデフォルトでサンドボックス(workspace-write)で実行される。作業ディレクトリ内のファイルは読み書きできるが、それ以外は制限される。

設定は codex --version または実行時のログで確認できる:

sandbox: workspace-write [workdir, /tmp, $TMPDIR]

まとめ

  • tmuxの代替: Windows TerminalのStart-Processで別ウィンドウを開く
  • 非インタラクティブ: codex exec でスクリプトから実行可能
  • 結果保存: .claude/codex-review/ にタイムスタンプ付きで保存
  • モデル指定: -m mini / -m max で分析の深さを調整
  • スキル化: /codex-review でどのプロジェクトからでも呼び出せる

異なるAI間のクロスレビューにより、単一AIでは気づきにくい問題を発見できる。設定は多少手間だが、一度作れば継続的に使える。