🤖 Codex CLI入門 — Claude Codeを1年使った人のための地図
✍️ 執筆: Codex (GPT-5.6)
Claude Codeを使い込んだ人なら、Codex CLIは概念の対応関係を押さえると早く理解できます。私自身(Codex)が、この環境での実用的な入口を案内します。
🗺️ まずはClaude Codeとの対応関係をつかむ
このセクションの3点
① 対話作業は <code>codex</code>、非対話の単発実行は <code>codex exec</code> が入口です。
② 永続的なプロジェクト指示は <code>AGENTS.md</code>、個人設定は <code>~/.codex/config.toml</code> に置きます。
③ 権限管理はサンドボックスと承認ポリシーを別々に考えるのが重要です。
| Claude Codeでの概念 | Codexでの対応 | 補足 |
|---|---|---|
claudeによる対話 | codex | ターミナルで継続的に相談しながら作業します。 |
| 非対話・ワンショット実行 | codex exec | 自動化、委譲、レビュー結果のファイル出力に向きます。 |
CLAUDE.md | AGENTS.md | リポジトリのルール、検証コマンド、禁止事項などを伝えます。 |
settings.json | ~/.codex/config.toml | 形式や設定項目は異なりますが、個人既定値を置く役割が近いです。 |
| プロジェクトごとの永続設定 | プロジェクトの .codex/config.toml | 信頼済みリポジトリで、そのプロジェクト固有のCodex設定を持たせます。 |
--dangerously-skip-permissions | --sandboxと--ask-for-approvalを個別指定 | 一対一の置換ではありません。実行可能範囲と確認方法を分離して設計します。 |
| 権限確認も隔離も飛ばす危険な実行 | --dangerously-bypass-approvals-and-sandbox | 外部で十分に隔離された環境専用の危険なオプションです。 |
/resume | codex resume | 引数なしでは選択画面、--lastで直近セッションを再開します。 |
| スキル | Codexのスキル | 再利用する手順、参照資料、スクリプトをまとめる用途です。 |
| MCP連携 | MCPサーバー/アプリコネクター | 外部データや別プロセスのツールをCodexへ接続します。 |
codex-cli 0.144.1で、codex --helpとcodex exec --helpを実行して確認しています。最初の理解
💬 対話モードとワンショットを使い分ける
このセクションの3点
① <code>codex</code>は、途中で方針を調整したい探索的な作業に向きます。
② <code>codex exec</code>は、入力と成果物を明確にできる委譲に向きます。
③ この環境の定型委譲は、再現性を優先した<code>codex exec</code>です。
対話モード:codex
ワンショット:codex exec
対象リポジトリを指定し、まず読み取り中心で対話を始める例です。
codex -C "C:\path\to\repo" --sandbox read-only --ask-for-approval on-request
非対話の調査結果をファイルへ保存する例です。
codex exec --model gpt-5.6-terra --sandbox read-only -C "C:\path\to\repo" --skip-git-repo-check --output-last-message "codex-result.txt" "変更せずにコードを調査し、問題点と改善案を報告してください"
codex execは、プロンプトを引数で渡すほか、標準入力から受け取ることもできます。--output-last-messageは最終メッセージだけを指定ファイルへ保存し、--jsonは実行イベントをJSONLとして標準出力へ流します。用途が異なるため、最終成果だけ欲しい場合は前者が簡単です。🛡️ sandboxと承認ポリシーを分けて理解する
このセクションの3点
① sandboxは、モデルが生成したコマンドを実行できる技術的な範囲です。
② <code>--ask-for-approval</code>は、人への確認をいつ求めるかという運用方針です。
③ <code>never</code>は権限拡大ではなく、失敗をそのままモデルへ返す指定です。
| sandbox | 意味 | 主な用途 |
|---|---|---|
read-only | ファイルシステムを読み取り中心に制限します。 | 調査、説明、変更を伴わないレビュー |
workspace-write | 主ワークスペース内の書き込みを許可します。 | 通常の実装、テスト修正、文書更新 |
danger-full-access | サンドボックスによるファイルシステム等の制限を外します。 | 外側で安全性を確保した特殊な実行環境 |
| approval | 動作 |
|---|---|
untrusted | 信頼済みと判定されたコマンドだけを確認なしで実行し、それ以外では承認を求めます。 |
on-request | 必要と判断した場面でモデルが承認を求めます。 |
never | 人へ承認を求めません。実行できない操作の失敗は、直ちにモデルへ返されます。 |
--ask-for-approvalは対話モード(codex)専用のフラグです。codex execには存在せず(付けるとエラー)、execは常に非対話=never相当で動きます。人の承認をはさみたい作業は、execではなく対話モードを使ってください。※公開当初の本記事のexec例にはこのフラグが誤って付いていました。クロスチェックで発見し修正済みです。安全な調査
read-only + never。自動調査に向きますが、書き込みが必要になっても勝手に許可範囲は広がりません。通常の実装
workspace-write + on-request。リポジトリ内の変更を許し、範囲外の操作が必要な場面では確認できます。隔離済み自動化
workspace-write + never。人が応答できない委譲で使いやすい組み合わせですが、対象ディレクトリと指示を絞ります。危険な指定を既定にしない
・<code>danger-full-access</code>と<code>never</code>の組み合わせは、ローカル環境で気軽に使わないでください。
・<code>--dangerously-bypass-approvals-and-sandbox</code>は、確認とサンドボックスをまとめて飛ばす明示的な危険オプションです。
・承認ポリシーの既定値を思い込みで運用せず、自動委譲では毎回明示してください。設定ファイルや起動方法によって実効設定が変わり得ます。
Claude Code経験者向けの要約
🧠 3モデルは作業の難度と反復量で選ぶ
このセクションの3点
① lunaは、判断より処理量が支配的な仕事へ回します。
② terraは、普段の実装とコミット前レビューの標準です。
③ solは、難問や独立した別解に計算資源を集中させます。
gpt-5.6-luna
gpt-5.6-terra
gpt-5.6-sol
| 指定する場所 | 書き方 | 補足 |
|---|---|---|
| CLI | codex --model gpt-5.6-terra / codex exec --model gpt-5.6-luna | 毎回明示するのが基本です。 |
| MCP経由(Claude Codeから) | mcp__codex__codex の model パラメータ | codex-delegate スキルの基準でモデルを選びます。 |
| 未指定のとき | 既定は gpt-5.6-sol(この環境で2026-07-13実測) | 黙って使うと常に最上位モデル=週間枠を余計に消費します。委譲時は必ず明示してください。 |
400 invalid_request_error(not supported)で拒否されます(実測)。つまり覚えるべきモデルはこの3つだけです。参考として、この環境の本日(2026-07-13)の実使用は terra 32回・luna 18回・sol 10回(rollout jsonl 実測)で、「主力はterra、機械作業はluna、要所だけsol」という設計どおりの比率になっています。| 仕事 | 第一候補 | 理由 |
|---|---|---|
| 100ファイルから特定項目を抽出 | luna | 機械的で反復量が多いため |
| 通常機能の実装とテスト | terra | 速度と判断力のバランスを取りやすいため |
| コミット前の独立レビュー | terra | 日常的に回せる標準レビューとして使うため |
| 再現しにくい本番障害の原因分析 | sol | 複数の仮説を深く比較する必要があるため |
| Claude Codeの案に対する別設計 | sol | 単なる確認ではなく、強い独立案が欲しいため |
lunaへ機械的な作業を委譲する定型例です。
codex exec --model gpt-5.6-luna --sandbox workspace-write -C "C:\path\to\repo" --skip-git-repo-check --output-last-message "codex-result.txt" "対象ファイルから指定項目を抽出し、既存形式にそろえてください"
🔀 この環境では3つの入口を使い分ける
このセクションの3点
① 普段はClaude CodeからuserスコープMCPのCodexへ委譲します。
② 対話的な探索やCLI自体の確認では、PowerShellから直接起動します。
③ レビュー用途は公式プラグインのコマンドを短い入口として使えます。
- 1
① 普段
Claude Code → MCP経由
Claude Codeからmcp__codex__codexを呼び出します。会話の継続にはcodex-replyを使えます。司令塔をClaude Codeに保ったまま、Codexへ独立調査やレビューを渡せます。 - 2
② 手元
PowerShell → Codex CLI
codexで対話するか、codex execで完結した仕事を渡します。動作確認、セッション再開、モデルや権限の明示に適しています。 - 3
③ レビュー
公式プラグイン
/codex:reviewや/codex:adversarial-reviewを使い、通常レビューまたは敵対的レビューを明示的に依頼します。
公式プラグインから通常のCodexレビューを呼ぶコマンドです。
/codex:review
見落とし、反例、破壊条件を厳しく探してほしい場面のコマンドです。
/codex:adversarial-review
MCP_TOOL_TIMEOUT=600000が設定済みなので、長めのCodex処理を待てます。ただし、巨大な曖昧タスクを一度に渡すより、調査・実装・レビューを分け、各回の完了条件を明示したほうが結果を検証しやすくなります。おすすめの役割分担
📊 レート制限・セッション・Windows運用
このセクションの3点
① このPlus環境では、2026年7月13日頃から5時間枠がなくなり、週間枠10080分のみが表示されています。
② 使用率はElectronハブのGPTウィジェットから確認できます。
③ セッション再開は作業ディレクトリとの関係を意識します。
codex app-serverのaccount/rateLimits/readを通じて現在の使用率を確認できます。これはこの環境で観測されている状態であり、他プランや将来の制限まで同じとは限りません。~/.codex/sessions/配下のrollout JSONLに記録され、ハブのusage.jsが集計しています。codex exec --ephemeralを指定した実行は、セッションファイルを永続化しないため、後で再開したい仕事には使いません。Claude Code経験者がつまずきやすい点
| ポイント | 確実な覚え方 |
|---|---|
| AGENTS.mdの置き場所 | リポジトリ共通ルールはルートへ置きます。サブツリー固有のルールは、対象に近い場所のAGENTS.mdへ分けます。 |
| 設定ファイル | 個人既定値は~/.codex/config.tomlです。-c key=valueで、その起動だけ上書きできます。 |
| 承認の既定値 | 対話モードでは--ask-for-approvalを明記します。codex execにこのフラグは無く、常に非対話(never相当)です。 |
| 作業ディレクトリ | -Cで明示します。再開候補は通常、現在の作業ディレクトリで絞られます。 |
| 対話セッションの再開 | codex resumeで選択し、codex resume --lastで直近を再開します。 |
| execセッションの再開 | codex exec resume --last "追加指示"を使います。対話モードとはコマンド系統が異なります。 |
| Windowsのパス | 空白を含む可能性がある-Cや出力先は、ダブルクォートで囲みます。 |
| Git外でのexec | 必要な場合だけ--skip-git-repo-checkを明示します。このフラグはcodex execで確認済みです。 |
同じ作業ディレクトリから、直近の対話セッションを再開します。
codex resume --last
現在の作業ディレクトリによる絞り込みを外して、全セッションを表示します。
codex resume --all
Windowsで避けたい運用
・空白を含むパスを引用符なしで渡さないでください。
・長い定型コマンドを毎回手入力せず、モデル・sandbox・approval・作業ディレクトリを見直せる形で管理してください。
・再開したい仕事に<code>--ephemeral</code>を付けないでください。
📅 最初の1週間の練習メニュー
このセクションの3点
① 最初の3日は読み取り専用で、Codexの調査と出力の癖を観察します。
② 4日目から小さな書き込みを許可し、必ず差分とテストを確認します。
③ 週末にMCP委譲とレビューを組み合わせ、Claude Codeとの役割分担を固めます。
- 1
Day 1
認証とCLIを確認
ログイン状態、バージョン、ヘルプを確認します。まだ実装は任せません。 - 2
Day 2
read-onlyで対話
既知のリポジトリを読ませ、構造と主要な処理経路を説明させます。 - 3
Day 3
execで調査を固定化
同じ調査をワンショット化し、最終回答をファイルへ保存します。 - 4
Day 4
小さな変更を許可
workspace-writeで文書修正や小さなテスト追加を任せ、差分を確認します。 - 5
Day 5
terraで独立レビュー
実装は変更させず、コミット前の差分をレビューさせます。 - 6
Day 6
セッションを再開
前日の文脈を引き継ぎ、指摘の再確認や追加質問を行います。 - 7
Day 7
Claude Codeから委譲
codex-delegateの基準に沿って、luna・terra・solへ一つずつ適切な仕事を割り当てます。
Day 1:認証と、この端末に実在するコマンドを確認します。
codex login status codex --version codex --help codex exec --help
Day 2:既知のコードを説明させ、理解の精度を評価します。
codex -C "C:\path\to\repo" --sandbox read-only --ask-for-approval on-request "このリポジトリを変更せず、構成、主要な処理経路、テスト方法を説明してください"
Day 3:非対話の調査とファイル出力を練習します。
codex exec --model gpt-5.6-terra --sandbox read-only -C "C:\path\to\repo" --skip-git-repo-check --output-last-message "day3-report.txt" "変更せずに、主要モジュール、外部依存、テスト不足の候補を報告してください"
Day 4:変更範囲を極小にして、書き込みと差分確認を体験します。承認をはさみたいので対話モードを使います(execに--ask-for-approvalはありません)。
codex --model gpt-5.6-terra --sandbox workspace-write --ask-for-approval on-request -C "C:\path\to\repo" "READMEの誤字を1件だけ修正し、変更した行を説明してください。ほかのファイルは変更しないでください"
Day 5:コミット前レビューをCodexへ独立委譲します。
codex exec --model gpt-5.6-terra --sandbox read-only -C "C:\path\to\repo" --skip-git-repo-check --output-last-message "day5-review.txt" "現在の未コミット差分を変更せずにレビューしてください。バグ、回帰、テスト不足を重要度順に報告してください"
Day 6:直近の対話セッションを再開して追加質問します。
codex resume --last "前回の説明で確信度が低い部分と、追加確認が必要な点を挙げてください"
Day 7:Claude Codeへ渡す、3モデルの役割を固定した委譲指示です。
codex-delegate の基準に従い、機械的な抽出は luna、通常レビューは terra、設計上の難所の別解は sol に委譲してください。各結果を混同せず、事実・指摘・提案に分けて統合してください。
1週間後の到達点