Codexとは

Codex は OpenAI 公式のコーディングエージェントです。ゴールを与えると、プロジェクトを読み取り、ファイルを編集し、コマンドを実行し、テストを走らせ、レビューすべき完成した成果物を手渡してくれます — 単にチャットにコードスニペットを貼り付けるのではなく。
⚠️ 名前の衝突: OpenAI は数年前に “Codex” という非推奨のコード補完モデルを提供していました。ここで解説するのは現在のエージェント製品です。あるチュートリアルが
code-davinci-002モデルに言及している場合、それは廃止されたモデルのことであり、本製品のことではありません。
覚えておく価値のある基本認識: Codex は1 つのエージェントに 4 つのエントリポイントがあります — 同じアカウント、同じエージェントで、4 つのサーフェスからアクセスできます。
| エントリポイント | 最適な用途 |
|---|---|
| デスクトップアプリ | 高機能な GUI: 並列スレッド、worktree、Computer Use |
CLI(codex) | 最も完全なサーフェス — すべてのフラグ、すべてのスラッシュコマンド、スクリプト化可能 |
| IDE 拡張機能(VS Code) | エディタから離れずにインライン編集 |
| Cloud Web | OpenAI のマシンに作業を任せ、後で PR を受け取る |
新規ユーザーは「どの Codex をインストールすべきか」で迷いがちです。バックエンドは共通です — 機能ではなく、作業する場所で選んでください。
システム要件
| 要件 | 詳細 |
|---|---|
| OS | macOS 12+、Ubuntu 20.04+ / Debian 10+、または Windows 11 (WSL2 経由) |
| Git(任意、推奨) | 2.23+ — 組み込みの PR ヘルパーに必要 |
| RAM | 最小 4 GB(推奨 8 GB) |
⚠️ Windows: ネイティブの Codex はサポートされていません — WSL2 内で実行してください。Windows で Full Access を有効にしないでください。サンドボックス外で実行した際にユーザーのファイルを削除したという報告があります。
インストール
推奨はスタンドアロンインストーラーです — Node.js に依存しない自己完結型バイナリです。
# macOS / Linux
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# Windows (in PowerShell, inside WSL2)
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"すでにパッケージマネージャーでツールを管理している場合の代替手段:
| 方法 | コマンド | 使うとき |
|---|---|---|
| npm | npm install -g @openai/codex | すでに npm をグローバルで使っている; Node.js が必要 |
| Homebrew(macOS) | brew install --cask codex | アプリを brew で管理している; 更新は公式より ~1 日遅れる |
| 更新 | codex update | 最新版を取得 |
codex doctor でインストールを検証してください — インストール、config、認証、Git を自己チェックします。
認証
支払い内容によって 2 つの認証パスがあります:
| 方法 | ユースケース |
|---|---|
ChatGPT ログイン(codex login) | Pro / Plus / Team / Enterprise サブスクライバ — ブラウザで OAuth |
API キー(printenv OPENAI_API_KEY | codex login --with-api-key) | 自己購入の API クレジット、または config.toml 経由でルーティングするサードパーティプロバイダー |
ブラウザが開かないヘッドレスマシン(CI、リモートサーバー)では、デバイスコード認証を使います: codex login --device-auth。状態は codex login status で確認します(終了コード 0 = ログイン済み、スクリプト化可能)。
4 つのエントリポイントの詳細
| 項目 | デスクトップアプリ | CLI | IDE 拡張機能 | Cloud Web |
|---|---|---|---|---|
| スラッシュコマンド | ~6 | 40 以上(最も完全) | ~8 | PR 内で @codex 経由 |
| Worktree | ✅(第一級サポート) | git worktree 経由 | ❌ | 該当なし(リモート実行) |
| Computer Use | ✅ | 限定 | ❌ | ❌ |
| スクリプト化 | ❌ | ✅(codex exec) | 限定 | ✅(GitHub イベント) |
| 最適な用途 | 並列の重い作業 | パワーユーザー、自動化 | インライン編集 | 監視不要の PR 作業 |
経験則: まず CLI を学びましょう — CLI は上位集合です。アプリと IDE は、すべて CLI フラグとして存在する機能をボタンの背後に隠しています。
最初のタスク
cd your-project
codex
# then type: "Explain the architecture of this codebase"エージェントループが実際に動く様子を観察してください: ファイルを読む → 次に何をすべきか推論する → アクション(コマンドの実行やファイル編集など)を提案する → 承認を待つ → 適用する → 検証する。チャットの返答ではなく、このループこそがエージェントたる所以です。
実際の編集を試すには、「このモジュール全体で data 変数を payload にリネームして、テストを実行して」と頼んでみてください。各ステップを承認し、read→propose→apply→verify のサイクルを観察し、git diff で変更を確認します。
クイックスタートパス
ゼロから生産的になるまでの 5 ステップ:
- 上記のスタンドアロンインストーラーでインストールし、
codex doctorを実行する。 - ログイン — ChatGPT サブスクライバは
codex login、クレジットは API キー。 - プロジェクトルートに**
AGENTS.mdを書く** — 自明でないルールを記載(タブ 3 を参照)。 - 承認モードを選ぶ — デフォルト(行動前に尋ねる)で始め、信頼に応じて緩める。
/clearと/modelを学ぶ — 毎セッション使う 2 つのスラッシュコマンド。
💡 The Bitter Lesson: 今日のモデル向けにワークフローを最適化しないこと。モデルが強くなるほど見合う報いが大きくなる習慣とハーネスを構築しましょう。
Codex vs Claude Code vs ChatGPT
| 項目 | Codex | Claude Code | ChatGPT |
|---|---|---|---|
| ベンダー | OpenAI | Anthropic | OpenAI |
| 種類 | ターミナルのコーディングエージェント | ターミナルのコーディングエージェント | チャットアシスタント |
| 実ファイルの読み取り/編集 | ✅ | ✅ | ❌(貼り付けのみ) |
| プロジェクト指示ファイル | AGENTS.md | CLAUDE.md | 該当なし |
| 設定ファイル | config.toml | settings.json | 該当なし |
| サンドボックス + 承認 | ✅(2 ノブ) | ✅(パーミッションモード) | 該当なし |
| Codex との認識モデルの一致度 | — | ~90% | 低い |
すでに Claude Code を使っているなら、Codex の認識モデルの ~90% は既知です — タブ 6 の移行セクションを参照してください。
エージェントループ
毎ターン、Codex は同じループを回します。これを理解することが、最もレバレッジの高い単一の行動です:
read → reason → propose → approve → apply → verify のループ
1. READ — load relevant files, git status, prior turns
2. REASON — decide the next action (run cmd? edit file? ask user?)
3. PROPOSE — surface the action; if high-risk, pause for approval
4. APPLY — execute the approved action
5. VERIFY — re-read, run tests, check the result
↺ repeat until the goal is met or it asks for helpなぜ重要か: チャットボットはテキストを出力します。エージェントは行動し、結果を観察し、軌道を修正します。このループこそが Codex の価値が発揮される場所であり、ハーネス(AGENTS.md、config、承認ポリシー)が有効なコンテキストと反復の質を形作る場所でもあります。
Threads
Thread(スレッド)は Codex における会話とコンテキストの単位です。各スレッドは自身のメッセージ履歴と蓄積された状態を持ちます。実用的な含意:
- 1 スレッド 1 タスク — 無関係な作業を 1 つのスレッドに詰め込まない; コンテキストは腐敗します。
- レジューム — Codex は過去のスレッドをレジュームし、蓄積されたコンテキストを引き継げます。
- 並列 — デスクトップアプリと worktree により、複数のスレッドが干渉なく同時に走ります(タブ 5 を参照)。
黄金のルール
Codex は首輪のある有能なパートナーであり、願いを叶える井戸ではありません。 あなたの仕事は方向を与え、触れてよい境界を引き、迷走したら軌道修正することです。
この一文が、良い結果を得られるかを予測します。Codex は魔法ではなく、操縦が必要な強力な実行者です。ゴール(ステップバイステップのレシピではなく)を与え、許可する範囲(サンドボックス + 承認)を制約し、誤った前提を持ったら軌道修正してください。
コンテキストウィンドウ
ターンごとにモデルの作業記憶に収まるもの
Codex のターンあたりの有効な作業記憶は有限です。スレッドが成長するにつれ、以前のターン、ツールの出力、ファイル読み取りが蓄積します。2 つの実用的な帰結:
- 能動的に compact する —
/compactはスレッドを要約して空間を再確保します; 品質が落ちた後ではなく、落ちる前に実行してください。 - 「1M コンテキスト」は 1M 使えるわけではない — システムプロンプト、ツール定義、取得されたファイルが大きな一部を消費します; あなたのタスクに使える有効な予算は、見出しの数字よりずっと小さいです。
承認モードとサンドボックス
Codex は2 つの独立したノブを公開しています — 1 つではありません。これが初心者の最も一般的な混乱点です:
| ノブ | 制御対象 | config キー | CLI フラグ | 短縮 |
|---|---|---|---|---|
| Sandbox mode | 触れる範囲(FS + ネットワーク) | sandbox_mode | --sandbox | -s |
| Approval policy | 各ステップの前に尋ねるか | approval_policy | --ask-for-approval | -a |
3 つのサンドボックスモード:
| モード | ファイル編集 | ネットワーク使用 | 用途 |
|---|---|---|---|
read-only | ❌ | ❌ | コードレビュー、分析、計画 — 「私のものには触るな」 |
workspace-write | ✅(プロジェクトディレクトリのみ) | ❌ デフォルトでオフ | 日々の開発のデフォルト — 低摩擦 |
danger-full-access | ✅(マシン全体) | ✅ | 隔離コンテナ / VM のみ — 名前が危険を示している |
3 つの承認ポリシー: untrusted(多く尋ねる)、on-request(日々のデフォルト)、never(ヘッドレス/CI のみ)。
💡 日々の開発の黄金の組み合わせ:
workspace-write+on-request。エージェントはプロジェクト内で自由に編集し、プロジェクトの外に出るものはすべて前で一時停止します。⚠️
--yolo=danger-full-access+never。使い捨てコンテナ用に存在します。実機では絶対に実行しないでください — ユーザーのファイルを削除した文書化された事例があります。
モデルと推論 effort
「Codex がどれだけ深く考えるか」を左右する 2 つのダイヤル:
- Model(
/modelまたは config のmodel = "...")— 能力とコストで選ぶ。些末な編集に最強モデルをデフォルトにしない; 難しいリファクタにケチらない。 - Reasoning effort(
/effortまたは effort ダイヤル)— low/medium/high/xhigh。モデルの切り替えより影響が大きく、調整も安価です。30 秒のリネームには low effort、モジュールのリファクタには high が必要です。
気分ではなくタスクにダイヤルを合わせてください。タスク→モデル+effort の表はタブ 6 のモデル選択セクションを参照してください。
スラッシュコマンド
スラッシュコマンドはCodex 自身(モデルの切り替え、コンテキストのクリア、状態の表示)を制御し、モデルを制御するものではありません。/ がメッセージの最初の文字のときのみ有効です。/ を入力すると、現在のエントリポイントで使えるものが表示されます。
目的別の日常 CLI コマンド:
| 目的 | コマンド |
|---|---|
| プロジェクトルールのスキャフォールド | /init(AGENTS.md を生成) |
| モデル / effort の切り替え | /model, /effort |
| 現在の設定を確認 | /status |
| スレッドをクリアして新規開始 | /clear |
| コンテキストを圧縮 | /compact |
| 現在の diff をレビュー | /diff, /review |
| MCP サーバーの管理 | /mcp |
| Skills の管理 | /skills |
| エージェントの管理 | /agents |
| メモリの制御 | /memories |
| 診断 | /doctor |
⚠️ CLI は 40 以上のスラッシュコマンドを公開しています; デスクトップアプリは ~6、IDE は ~8 です。GUI サーフェスで CLI の完全なリストを期待しないでください。
プランモードとプロンプト
まず計画し、それから実行する。 些末でないことには、ゴールを記述して Codex に計画を作らせてください; 計画をレビューしてから実行させます。ステップバイステップのレシピではなく、ゴールと制約を与えてください — エージェントループはあなたよりシーケンス化が得意です。
プロンプトの原則:
- 言葉ではなく文脈を与える。 ファイルを指し、ゴールを述べ、制約を列挙する。冗長さは役立たず、具体性が物を言う。
- やってはいけないことを明示する — 否定的な指示(「
legacy/には触らない」「npm ではなく pnpm を使う」)は肯定的な指示よりも鋭い。 - 1 メッセージ 1 タスク — エージェントループは集中に報いる; マルチタスクのプロンプトはそれを希釈する。
一般的なワークフロー
4 つの日常フロー:
| ワークフロー | 形 |
|---|---|
| 探索 | read-only — 「このモジュールを説明して」「X がどこで設定されているか見つけて」 |
| バグ修正 | エラーを貼り付け、失敗したテストを指し、根本原因の追跡 → パッチ → 検証を任せる |
| リファクタ | 臭いに名前を付け、スコープを制限し、適用前に diff をレビューする |
| テスト作成 | コードを指し、カバレッジ目標を述べ、生成と実行を任せる |
AGENTS.md
AGENTS.md は Codex のプロジェクト単位の指示ファイルです — 毎回の実行の最初、行動の前に読み込まれます。Claude Code の CLAUDE.md と同等(同じ概念、名前と探索ルールが異なる)です。
なぜ存在するか: 毎回の実行は白紙から始まります。AGENTS.md がなければ、「pnpm を使う、legacy/ には触らない、テストはこう走らせる」を毎回再説明することになります。
探索チェーン(3 階層、近い方が勝つ):
- Global —
~/.codex/AGENTS.md(またはAGENTS.override.md、こちらが勝つ)。クロスプロジェクトのデフォルト。 - プロジェクトルート — Git ルートの
AGENTS.md。チーム共有のルール。 - サブディレクトリ — ルートから現在のディレクトリまで歩き、各ディレクトリが
AGENTS.mdを寄与できます。作業ディレクトリに最も近いものが衝突時に勝ちます。
~/.codex/AGENTS.md ← global defaults (your preferences)
project-root/AGENTS.md ← team rules (overrides global on conflict)
project-root/src/AGENTS.md ← subdirectory rules (closest wins)💡 衝突は「最も近いものが勝つ」で解決する — プロジェクトルールが個人設定をオーバーライドし、サブディレクトリルールがプロジェクトルールをオーバーライドします。これはまさに望むチーム協業の挙動です。
効果的な AGENTS.md の書き方
| やるべきこと | やらないこと |
|---|---|
| WHY を書く(隠れた制約、不変条件、回避策) | WHAT を書く(コードがすでにそれを示している) |
| 否定指示(「パターン X を使わない」) | 肯定のみのルール(「パターン Y を使う」) |
| プロジェクト固有の落とし穴(ビルド順序、互換性のないバージョン) | 導出可能な事実(アーキテクチャ、ファイルパス) |
| ~200 行以内に収める | すべてを放り込む — ~200 を超えると遵守率が下がる |
最もレバレッジの高い使い方: フィードバックループとして扱うこと。Codex がコードベースについて誤った前提を持ったら、チャットで修正するだけ(それは 1 回限り)ではなく、修正を AGENTS.md に書かせてください。数週間でファイルにはすでに捕まえた落とし穴が蓄積し、新しいセッションは同じエラーを繰り返さなくなります。
config.toml の基本
config.toml は挙動ノブのファイルです — エージェントが逐語的に実行するマシン設定であり、AGENTS.md(自然言語の指針)とは別物です。車に例えると: AGENTS.md は取扱説明書、config.toml はダッシュボードのノブです。
2 つの場所:
| 階層 | パス | 影響範囲 | 読み込みタイミング |
|---|---|---|---|
| User | ~/.codex/config.toml | すべてのプロジェクト | 常に |
| Project | <repo>/.codex/config.toml | このリポジトリのみ | プロジェクトが信頼されている場合のみ |
⚠️ トラストゲート: プロジェクトレベルの
.codex/config.tomlは信頼されていないプロジェクトでは無視されます。これにより、悪意あるクローンリポジトリが勝手に自分へ権限を付与するのを防ぎます。プロジェクト設定が「反映されない」場合は、初回オープン時にプロジェクトを信頼したか確認してください。
最小構成:
# ~/.codex/config.toml
model = "gpt-5.5"
approval_policy = "on-request"
sandbox_mode = "workspace-write"config.toml の高度な設定
ファイルを編集せずに実行ごとにオーバーライド:
codex -c model="gpt-5.5" -c approval_policy="never"プロファイルでプリセット設定を切り替え:
codex --profile ci # loads the [profiles.ci] blockworkspace-write 内でネットワークを有効化(デフォルトはオフ — よくある落とし穴):
[sandbox_workspace_write]
network_access = true設定リファレンス
高頻度のキー:
| キー | デフォルト | 内容 |
|---|---|---|
model | (最新) | デフォルトのモデル |
approval_policy | on-request | 承認のために一時停止するタイミング |
sandbox_mode | workspace-write | FS + ネットワークの境界 |
sandbox_workspace_write.network_access | false | workspace-write でネットワークを許可 |
web_search | (オフ) | ウェブ検索を有効化 |
[features] | — | 実験的機能の切り替え |
[mcp_servers.*] | — | MCP サーバーの定義(タブ 4 を参照) |
ℹ️ 完全なリファレンス:
developers.openai.com/codex/config-reference。
パーミッションと承認ポリシー
上記の 2 つのノブで設定します。日々の開発では、初期セットアップ後にめったに触りません — workspace-write + on-request が大半の作業をカバーします。never に緩めるのは信頼済みのコンテナ化された自動化のみ; 分析専用にリポジトリを Codex に渡すときは read-only に固定してください。
サンドボックスと承認
サンドボックスはワークスペースへのファイルシステム書き込みを隔離し、ネットワークの送信をゲートします。主な挙動:
workspace-writeでは.gitが読み取り専用で保護される — Codex はリポジトリメタデータを壊しません。- 書き込みが許可されていてもネットワークはデフォルトでオフ — 明示的に有効化してください。
danger-full-accessはすべての境界を取り除く — コンテナ/VM のみ。
⚠️ Windows の警告(検証済み、必ず引き継ぐこと): Windows で Full Access モードがユーザーのファイルを削除したという報告が複数あります(240〜700 GB の損失が報告)。Windows で Full Access を有効にしないでください。WSL2 を使い、
workspace-writeに留まってください。
Hooks(ライフサイクル)
管理者は requirements.toml で hooks をロックダウンできます:
allow_managed_hooks_only = trueこれはユーザー/プロジェクト/セッションの hook 設定を無視しつつ、管理対象フックは許可します。requirements.toml でのみ有効です — config.toml に書いても無効です。エンタープライズガバナンスに使います(タブ 6 を参照)。
MCP — 外部ツール
MCP(Model Context Protocol) により、Codex は外部ツールを呼べます — ライブドキュメントの取得、データベースの照会、ブラウザの操作など。Codex がサポートするトランスポートは厳密に 2 種類です:
| トランスポート | 対象 | 方法 |
|---|---|---|
| STDIO | ローカルツール | 起動コマンドを指定; ツールをローカルにインストール済みであること |
| Streamable HTTP | クラウドサービス | URL + Bearer トークンを指定、または OAuth のために codex mcp login |
サーバーを 2 つの方法で追加:
# CLI (fastest) — context7 = free dev-docs server
codex mcp add context7 -- npx -y @upstash/context7-mcpまたは config.toml に手書き:
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
モデルが外部ツールの呼び出しを決める仕組み
💡 すべての MCP 設定は
config.tomlに存在します —--scopeはありません。スコープはどのファイルを編集するかで決まります(~/.codex/= グローバル、<repo>/.codex/= プロジェクト、トラストが必要)。CLI と IDE はこの 1 つの設定を共有します。
Subagent
Subagent(サブエージェント)は、独自のスレッド、モデル、指示、パーミッションを持つ専門エージェントです。Codex は複数を並列で走らせ、それぞれはメインスレッドに要約のみを返します — 雑多な中間出力をメインコンテキストから遠ざけます。
メインエージェントが作業を派遣し、サブエージェントは生の出力ではなく要約を返す
サブエージェントが解決する 2 つの問題:
- コンテキスト汚染 — 1 つの大きなタスクのログがメインスレッドを溢れさせる; サブエージェントは雑多なものを隔離します。
- コンテキストの腐敗 — 長いスレッドは劣化する; 分割により各コンテキストを短く集中させます。
⚠️ 直感に反しますが: Codex はサブエージェントを自動生成しません。明示的に依頼したときのみ派遣します。依頼しない限り並列性を期待しないでください — これはコストの暴走を防ぎます。
カスタムエージェントの定義は ~/.codex/agents/ または <repo>/.codex/agents/ の TOML ファイルとして:
# ~/.codex/agents/reviewer.toml
name = "reviewer"
model = "gpt-5.5"
instructions = "Review diffs for correctness bugs and security issues."エージェント Skills
Skill(スキル)は、SKILL.md ファイル(と任意のスクリプト/リソース)を持つディレクトリとしてパッケージされた再利用可能なワークフローです。ワークフローを一度書けば、Codex が必要なときに呼び出します。
スキル: SKILL.md と任意のスクリプト・参照からなるディレクトリ
最小の SKILL.md:
---
name: summarize-diff
description: Summarize uncommitted changes and flag risks. Use when the user asks for a change summary.
---
Summarize the diff, group changes by file, and call out anything risky
(uncommitted secrets, large deletions, test coverage gaps).⚠️ よくある落とし穴(古いチュートリアル由来): フロントマターには
name+descriptionが必要です —triggerフィールドはありません。トリガーはキーワードではなく、descriptionのセマンティックマッチングで行われます。また、ディレクトリは~/.codex/skillsではなく.agents/skills配下です。古いブログ記事ではなく公式ドキュメントに従ってください。
段階的ロード: 起動時に Codex は各スキルの name、description、path のみを読み込みます。完全な SKILL.md はスキルが使われるときのみ読み込まれます — コンテキストをリーンに保ちます。
Plugins
Plugin(プラグイン)は、一括インストール可能な機能の束です — skills + agents + hooks + MCP サーバーを、各ピースを手動設定する代わりに一度にセットアップできるようパッケージ化します。コミュニティやチームがすでに首尾一貫したツールキットをまとめている場合に plugin を使い、単独のものが必要な場合は個別の skills/MCP を使います。
Rules と Hooks
Rules と hooks は実行のチェックポイントとトリガーを追加します:
- Rules — コンテキストに基づいて読み込まれる条件付き指示(例: フレームワーク固有のルール)。
- Hooks — ライフサイクルイベント(pre-tool-use、post-turn など)で発火するシェルコマンド。決定的な自動化(保存時フォーマット、コマンドのブロック、通知)向け。
Hooks は config.toml またはエージェント単位で定義できます; エンタープライズは管理対象のみにロックできます(上記の allow_managed_hooks_only の注記を参照)。
Command → Agent → Skill モデル
Codex のオーケストレーションは Claude Code の 3 階層モデルを踏襲します:
| 階層 | 役割 | コンテキスト |
|---|---|---|
| Command(ユーザートリガー) | エントリポイント; オーケストレーション | 共有メインセッション |
| Agent / Subagent | 実行者 | 独立したスレッド |
| Skill | 知識パック | 呼び出し元に注入 |
拡張の種類の選び方
| 目的 | 使うもの |
|---|---|
| 外部サービス/ツールを呼ぶ | MCP |
| 並列の隔離実行、異なるモデル | Subagent |
| 一度書いた再利用可能なワークフロー | Skill |
| ツールキット全体を一括インストール | Plugin |
| ライフサイクルイベントの決定的な自動化 | Hook |
なぜハーネスが重要か
出力品質 = f(有効なコンテキスト, モデル能力, 反復ループ)
ハーネス — AGENTS.md、config、承認ポリシー、skills、hooks — は有効なコンテキストと反復の質を形作ります。プロンプト単独では再現できません: プロンプトは助言ですが、ハーネスはツール制限を強制し、パスでルールを遅延読み込みし、並列サブエージェントをスケジュールし、セッションをまたいで状態を永続化します。
プロンプトが届かない階層 — ハーネスがあなたのために何をするか
非対話モード(codex exec)
codex exec は TUI なしで Codex を実行します — プロンプトを与えると、作業し、結果を出力し、終了します。「人間が介在しない」シナリオ向け: スクリプト、cron ジョブ、CI パイプライン。
codex exec "Summarize this repo's structure and list 5 areas to watch"重要な設計 — 進捗は stderr、結果は stdout。 この分離により、画面で進捗を見ながらクリーンな結果を次のプログラムにパイプできます:
# machine-readable event stream
codex exec --json "find flaky tests" | jq ...
# save just the final message to a file
codex exec -o result.txt "write release notes for last 10 commits"⚠️ 非対話モードはデフォルトでread-only サンドボックスです。ファイル編集を許可するには、サンドボックスを明示的に引き上げ(
-s workspace-write)、承認も引き上げます(完全な無人には-a never)。
実行ポリシー
codex exec は実行ポリシーで統制できます — 無人で許可されることをルールベースで制御します。実行可能なコマンド、書き込み可能なパスなどを制約するルールを定義します。安全な CI 利用に不可欠です。
Git と GitHub の統合
Codex は 2 つのトラックで Git/GitHub と統合します:
| トラック | 場所 | 方法 |
|---|---|---|
ローカル /review | あなたのターミナル | PR を開く前に、何も触れずに現在の diff をレビュー |
| クラウド PR レビュー | GitHub PR のコメント | @codex review がクラウドレビューを起動; @codex fix が修正を適用して push し返す |
クラウドレビューには有料プラン + Codex クラウドへ認可されたリポジトリが必要です; ローカルの /review にはそのいずれも不要です。
レビュールールのカスタマイズは AGENTS.md の Review guidelines セクション経由 — 例:「すべての route に auth ミドルウェアが必要」「ログに PII を入れない」。Codex は汎用的な基準ではなく、あなたの基準で違反をフラグします。
GitHub Actions / CI
openai/codex-action は GitHub ホストランナー上で Codex を実行し、リポジトリイベント(PR オープン、CI 失敗)で起動します。これは CI/CD トラックです — デスクトップアプリのローカル Automations とは別物です。
最小のワークフロー:
# .github/workflows/codex-review.yml
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: openai/codex-action@v1
with:
prompt-file: .codex/prompts/review.md
sandbox: workspace-write💡 2 つの自動化トラック、混ぜないこと: GitHub Action(クラウドランナー、リポジトリイベント、チーム協業)vs デスクトップアプリ Automation(あなたのマシン、cron スケジュール、プライベートタスク)。作業がある場所にトラックを合わせてください。
Worktree — 並列の隔離
Worktree は各 Codex スレッドにリポジトリのファイルの隔離されたコピー(.git メタデータは共有)を与えます。これにより複数のタスクが互いを上書きすることなく並列で走れます。
git worktree add ../feature-x -b feature-x
cd ../feature-x && codex # isolated work on feature-x- 同じブランチを 2 つの worktree で同時にチェックアウトすることはできません。
- Worktree + Handoff(デスクトップアプリ)は作業をフォアグラウンド/バックグラウンド間で移動します — 例: 長いリファクタをバックグラウンドの worktree で始めつつ、前面でコーディングを続ける。
- 古い worktree は定期的に掃除してください — それぞれが完全なファイルコピーを保持します。
Automations
デスクトップアプリの Automations はあなたのマシン上でスケジュールされたバックグラウンドタスクを実行します — 「毎朝、昨日のコミットを要約して」。CI(GitHub ランナー)とは別物 — これらはあなたのマシンがオンの間のみ走ります。各スケジュールタスクを隔離するために worktree と組み合わせてください。
Computer Use
Computer Use は Codex に「手」を与えます — 画面を見て、UI をクリックし、ブラウザを操作できます。対象: GUI 自動化、ブラウザテスト、デスクトップアプリの操作。リスクは高い — 見えるものすべてに作用できる; workspace-write かコンテナに閉じ込め、最初の実行を密接に監視してください。
連携(Slack / Linear / SDK)
CLI 以外に、Codex は Slack と Linear から呼べ、SDK 経由で独自の製品に組み込めます。これらを使い、Codex を別の行き先ではなく既存のワークフローの一ノードにします — 例: Slack メッセージが Codex タスクを起動し、結果がチャネルに投稿し戻る。
メモリシステム
Codex のメモリは1 つではなく 2 つのシステムです:
| システム | 誰が書くか | いつ読み込まれるか | 信頼性 |
|---|---|---|---|
AGENTS.md | あなた(または代行する Codex) | 毎回の実行、行動の前 | 保証付き — 必ず適用すべきルールはここに |
| Memories | Codex 自身、非同期 | 次回の実行、関連するとき | ベストエフォート — バックグラウンド、リアルタイムではない |
⚠️ 2 つのよくある間違い: (1) メモリがリアルタイムだと思い込む — セッションがアイドルした後に書き込むので、即座にテストすると失敗します; (2) メモリが
AGENTS.mdを置き換えると思う — 置き換えません。「必ず常に適用すべき」ルールはAGENTS.mdに; メモリに賭けないでください。
Chronicle は実験的な Codex 固有のメモリで、画面コンテンツから供給されます(Pro + macOS のみ、EU/UK/スイスを除外)。有効化する前にプライバシーの含意を確認してください。
セキュリティとリスクの境界
「Codex にこれを触らせるべきか」の意思決定フレームワーク:
| 機密度 | 推奨設定 |
|---|---|
| 本番リポジトリ、実データ | read-only + untrusted — 分析のみ |
| 日々の開発 | workspace-write + on-request |
| 信頼済みの隔離されたリファクタ | workspace-write + never |
| 使い捨てコンテナ | danger-full-access + never(--yolo)— 実機では絶対に |
⚠️ 譲れないこと: 実機で
--yoloにしない; Windows で Full Access にしない; 信頼されていないクローンリポジトリの.codex/は信頼不可として扱う(Codex はデフォルトでそうします — オーバーライドしないでください)。
エンタープライズとガバナンス
Codex を会社全体で(1 人ではなく)運用するにはガバナンスが必要です:
- 管理対象設定 — IT が展開し、ユーザーが緩められない組織設定。
requirements.toml—allow_managed_hooks_only = trueが hooks を管理対象のみにロック。- トラストポリシー — どのプロジェクトの
.codex/階層を読み込むかを制御。 - 許可リスト — MCP サーバー、ツール、モデルを承認済みの集合に制限。
料金とサードパーティモデル
課金は ChatGPT サブスクリプション(Pro/Plus/Team/Enterprise — 使用料込み)または API クレジット(トークン従量)のいずれかです。現在の料金は OpenAI のサイトで確認してください — 数字は移ろいます; 「〜時点」という日付を添えて引用してください。
サードパーティモデル: config.toml の model_provider で Codex を他のプロバイダ(DeepSeek、ローカルモデルなど)にルーティングします。コスト統制、データレジデンシー、オフライン利用に有用です。
Windows の注意とトラブルシューティング
Windows: WSL2 内で実行してください(ネイティブは非サポート)。Full Access のデータ喪失報告は Windows 固有です — workspace-write に留まってください。
よくある不具合:
| 症状 | おそらくの原因 / 対処 |
|---|---|
| インストール失敗 / OAuth がハングする | ネットワーク/プロキシ; インストールスクリプトとブラウザ OAuth にはクリーンな接続が必要な場合があります |
codex login status が非ゼロで終了する | ログインしていません — codex login を再実行するか API キーを確認してください |
| プロジェクト設定が「反映されない」 | プロジェクトが信頼されていません — 初回オープン時に信頼してください |
| 「ファイルを編集しない」 | サンドボックスが read-only です — workspace-write に引き上げてください |
| 毎回モデルが変わる | 毎回 /model ではなく ~/.codex/config.toml に model を設定してください |
Claude Code からの移行
あなたの Claude Code の認識モデルは ~90% 移行します。概念マップ:
| Claude Code | Codex | 備考 |
|---|---|---|
CLAUDE.md | AGENTS.md | 同じ概念; 探索/オーバーライドのルールが異なります |
settings.json | config.toml | JSON ではなく TOML; 2 階層(ユーザー/プロジェクト) |
| Permission modes | sandbox_mode + approval_policy | 2 つのノブであり、1 つではない |
/model, /clear, /compact | 同名 | ほぼ同一 |
| Subagents | Subagents | Codex は自動生成しません — 明示的に依頼する必要があります |
| Skills | Skills | .agents/skills、name+description(trigger なし) |
/review | /review + @codex review | ローカル + クラウドの 2 トラック |
エージェントループ、「行動前に読む」、「ステップではなくゴールを与える」の習慣はそのまま引き継がれます。
コマンド & 設定チートシート
# install / auth
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex login # ChatGPT OAuth
printenv OPENAI_API_KEY | codex login --with-api-key
codex doctor # self-check
# daily CLI
codex # interactive
codex exec "..." # non-interactive
codex -s workspace-write -a on-request
# slash commands (in-session)
/init /model /effort /status /clear /compact /diff /review /mcp /skills /agents /memories
# config.toml essentials
model = "gpt-5.5"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = trueベストプラクティスと FAQ
ありきたりな言葉を超えて、実際に効くもの:
- AGENTS.md をフィードバックループにする — Codex が犯す誤った前提は、すべて 1 行として書き込む。
- モデルではなく effort をタスクに合わせる —
/effortの方が安価で効果が大きい。 - 1 スレッド 1 タスク — コンテキストの劣化は現実; 作業を詰め込まない。
- 品質が落ちる前に compact する、後ではなく。
--yoloはコンテナで — 実機では絶対に使わない。
FAQ(短く):
- Codex はセッションをまたいで記憶しますか?
AGENTS.md(信頼)と Memories(ベストエフォート)にあるものだけです。 - 非 OpenAI モデルを使えますか? はい、config の
model_provider経由で使えます。 - ファイル編集を任せても安全ですか?
workspace-write+on-requestであれば安全です — プロジェクトの外に出る前に一時停止します。 - CLI とデスクトップアプリのどちら? CLI が上位集合です; まず CLI を学びましょう。
用語集
| 用語 | 意味 |
|---|---|
| エージェントループ | ターンごとに read → reason → propose → apply → verify |
| Thread | 1 つの会話とそのコンテキスト |
| AGENTS.md | プロジェクト単位の指示ファイル、毎回の実行で読み込まれる |
| config.toml | 挙動ノブの設定(model, sandbox, approvals) |
| Sandbox | FS/ネットワークの境界(read-only / workspace-write / danger-full-access) |
| Approval policy | Codex が確認のために一時停止するタイミング(untrusted / on-request / never) |
| MCP | Model Context Protocol — STDIO または HTTP 経由の外部ツール |
| Subagent | 独自のスレッドを持つ専門エージェント、要約を返す |
| Skill | SKILL.md による再利用可能なワークフロー |
| Worktree | 並列作業用の隔離されたリポジトリのファイルコピー |
codex exec | スクリプト/CI 向けの非対話モード |
| Chronicle | 実験的な画面取り込み型メモリ(Pro + macOS) |