Codexとは、OpenAIが提供するAIコーディングエージェントです。ChatGPTの会話が「答えの文章」を返すのに対し、Codexは実際にファイルを読み、コマンドを実行し、差分(diff)を返します。

最初に一番大事な区別を書きます。公式ドキュメントの「Available on」に並ぶ項目は ChatGPTデスクトップアプリ / Remote / ChatGPT(web) / Codex CLI / Codex IDE拡張 / Codex cloud の6つで、これとは別に「Developers」配下に Codex SDK が掲載されています(learn.chatgpt.com/docs、2026-09-15確認)。本記事ではこのうち CLI・IDE拡張・cloud・ChatGPTアプリ・SDK の5つを入口として扱います。自分のコードが動く場所は、入口と、そこで選ぶ実行環境の組み合わせで決まります。Codex CLIとIDE拡張は通常のローカル利用では自分のマシンの中で動き、Codex cloudはOpenAI側の環境で動きます。ChatGPTデスクトップアプリでは、Local・Worktree・Cloudから実行場所を選べます(learn.chatgpt.com/docs/environments/modes、2026-10-04確認)。この違いは秘密情報の扱いに直結します。

この記事の日付について。 2026年9月15日に調査・執筆し、公開日の2026年10月4日に料金・実行環境・権限設定などを公式ページで再確認して更新しました。本文中の「2026-09-15確認」は執筆時、「2026-10-04確認」は公開前の再確認の日付です。筆者環境の計測値は、断りがない限り2026年9月15日の記録です。2026年10月11日に第6節の「Codexは無料で使えるか」、第9節の「AGENTS.mdの書き方」、第10節・第11節、よくある質問3項目を追記しました(「2026-10-11確認」はその日の確認です)。

この記事でわかること

  • Codexを一文で説明できるようになる(そしてChatGPTとの違いを表で押さえる)
  • CLI / IDE拡張 / cloud / ChatGPTアプリ / SDK の5つの入口で、コードがどこで実行されるかを一次資料付きで確認できる
  • 料金プランと5時間ウィンドウの上限、クレジットの換算式の読み方が分かる
  • サンドボックスの3モードと承認の設定を知り、「勝手に実行されないか」に自分で答えられる
  • AGENTS.mdとは何か、CLAUDE.mdと何が違うかを、手元45リポジトリを数えた結果とあわせて把握できる

別のCodexを探している方へ。 本記事はOpenAIのCodexだけを扱います。食品規格のCodex Alimentarius、WordPressの旧ドキュメント群であるWordPress Codex、冊子本を意味するラテン語のcodex、ゲーム内の図鑑を指すコーデックス、バンドのOLDCODEXは、いずれも別の語です。以降は一切触れません。


1. Codexとは──定義と、ChatGPTと違うところ

Codexとは、OpenAIのAIコーディングエージェントです。公式リポジトリはCodex CLIを「a coding agent from OpenAI that runs locally on your computer」(openai/codex GitHub、2026-09-15確認)と説明しています。この「ローカルで動く」はCLIについての説明で、Codex cloudはOpenAI側の環境で動きます。

ChatGPTに「このバグを直して」と貼り付けると、返ってくるのは修正後のコードを含む文章です。貼り直すのは人間の仕事です。Codexに同じことを頼むと、Codexがリポジトリの中を自分で探し、該当ファイルを開き、書き換え、必要ならテストを走らせます。人間がやるのは、その差分と検証結果を確認して、変更を採用するかどうかの判断です。

観点ChatGPTの通常の会話(ツールを使わない場合)Codex
入力人間が貼り付けたコード片リポジトリそのもの
出力文章とコードブロックファイルへの差分、コマンドの実行結果
ファイル操作しないする(サンドボックスと承認設定の範囲で)
コマンド実行しないする(同上)
指示ファイルなしAGENTS.md を作業前に読む
人間の役割コピー&ペーストコマンド実行の承認と、差分のレビュー

「文章をもらう」か「差分をもらう」かが、実務上いちばん大きい差です。

Claude CodeやGitHub Copilotとの関係は、ざっくり言えば同じカテゴリの競合製品です。Claude CodeはAnthropic製で指示ファイルが CLAUDE.md、CodexはOpenAI製で指示ファイルが AGENTS.md という対応になります。なお Claude Code も v2.1.277 以降は、作業ディレクトリかその上に CLAUDE.md が無いときなどの条件付きで AGENTS.md を直接読みます(How Claude remembers your project、2026-10-04確認)。いずれも自然言語で書く指示ファイルで、Codexの機械可読な設定は別の config.toml が担います。3製品の性能やワークフローの比較は、本記事では扱いません。詳細はClaude Code vs Codex CLI vs Gemini CLIの比較記事を参照してください。本記事は定義・入口・実行場所に限定します。


2. 一次資料の対応表と確認日

数字と挙動の出所を先に開示します。本記事の主張は次の資料に基づきます。

主張一次資料種別確認日
Codex CLIはローカルで動くコーディングエージェント / インストール手順3通り / Apache-2.0github.com/openai/codexGitHub公式リポジトリ2026-09-15
入口の一覧(CLI・IDE拡張・cloud・デスクトップアプリ・web・ChatGPT Work)とAGENTS.md専用ページの存在learn.chatgpt.com/docs公式ドキュメント2026-09-15
プラン構成・5時間ウィンドウのメッセージ数・100万トークンあたりのクレジット単価・APIキー利用の課金learn.chatgpt.com/docs/pricing公式ドキュメント2026-10-04
サンドボックス3モードと承認ポリシー、OS別の実装learn.chatgpt.com/docs/sandboxing公式ドキュメント2026-10-04
書き込み可能領域(writable_roots)・granular 承認・approvals_reviewerlearn.chatgpt.com/docs/config-file/config-reference公式ドキュメント2026-10-04
デスクトップアプリで選べる実行環境(Local・Worktree・Cloud)learn.chatgpt.com/docs/environments/modes公式ドキュメント2026-10-04
--oss によるローカルプロバイダ(Ollama・LM Studio)learn.chatgpt.com/docs/config-file/config-advanced公式ドキュメント2026-10-04
AGENTS.mdの探索順・32 KiBの既定値learn.chatgpt.com/docs/agent-configuration/agents-md公式ドキュメント2026-09-15
Codex cloudの接続先と結果の返り方learn.chatgpt.com/docs/cloud公式ドキュメント2026-09-15

ここで1つ注意があります。Codexの公式ドキュメントは移転しています。 https://developers.openai.com/codex にアクセスすると、2026-09-15時点で308 Permanent Redirectにより https://learn.chatgpt.com/docs へ転送されます(筆者実測)。旧URLを引用している解説記事がまだ多いため、参照先が古い場合は転送先を確認してください。

なお、ドキュメント内のナビゲーションから推測した /codex/environments/local と /codex/environments/cloud は、2026-09-15時点でいずれもHTTP 404を返しました。cloudについては /codex/cloud が正しいパスでした。執筆時点ではローカル環境の個別ページの所在を特定できていませんでした。その後、2026-10-04に Local environments と Cloud environments の現行ページが応答することを確認しました(いずれもHTTP 200)。


3. 検証環境

実行場所の話をする以上、筆者側の環境も開示します。本稿の構成(OpenAIのモデルを使う設定)では、ローカルのGPUとVRAMはモデルの推論には使われません。ローカルモデルを使う構成や、Codexが実行するテストの内容によっては影響しうる点は区別してください。以下はいずれも2026-09-15の筆者記録です。

項目値
OSUbuntu 24.04.3 LTS(Noble Numbat)
カーネル / アーキテクチャLinux 6.14.0-1015-nvidia / aarch64(ARM64)
Codex CLI バージョン(拡張同梱パッケージの記録値)0.154.0-alpha.6.2(target: aarch64-unknown-linux-musl)
配布元VS Code拡張(openai.chatgpt 系)に同梱されたバイナリ
既定モデル設定model = "gpt-6-astra" / model_reasoning_effort = "xhigh"
サインイン方式ChatGPTアカウント(OPENAI_API_KEY を明示的に外して起動)
検証日2026-09-15(JST)

バージョンは codex --version の出力ではなく、拡張に同梱された codex-package.json の version フィールドから読み取った値で、CLIバイナリの実行出力とは区別しています。この環境ではCodex CLIが PATH 上に存在せず、VS Code拡張のディレクトリ内にバイナリが置かれているためです。この点は後述します。


4. 仕組み──指示を出してから差分が返るまで

Codexが1回のタスクで何をしているかを、順番に並べます。

  1. 指示ファイルを読む。 公式ドキュメントは「Codex reads AGENTS.md files before doing any work」と明記しています。作業を始める前に、グローバルとプロジェクトの AGENTS.md を読み込みます。
  2. リポジトリの中を探索する。 ファイル一覧の取得、grep相当の検索、該当ファイルの読み込みを、モデル自身がツール呼び出しとして行います。
  3. 編集案を作り、書き込む。 ここでサンドボックスの境界が効きます。既定の workspace-write で書き込めるのは、ワークスペースと、設定された書き込み可能領域(writable_roots で追加したディレクトリや /tmp など)です。.git などの保護対象は書き込みから除外されます(sandboxing、config-reference、2026-10-04確認)。
  4. コマンドを実行する。 テストやビルドを走らせます。サンドボックスの外に出る必要が生じたとき、承認ポリシーが on-request なら確認を求めて停止します。確認するのは既定では人間ですが、approvals_reviewer を auto_review にすると、対象の確認をレビュー用のエージェントに回せます。
  5. 差分を提示する。 変更の要約とdiffが返ります。許可範囲内の編集は、この時点で既にファイルへ書き込まれています。ここまでが1サイクルで、追加の指示を出せば同じセッションで続きます。

重要なのは、既定ではモデルの推論がOpenAI側で行われるという点です。CLIで使っていても、コードの内容はプロンプトとしてOpenAIのAPIに送られます。「ローカルで動く」というのは、ファイル操作とコマンド実行が自分のマシンで起きる、という意味です。ただし例外はあります。公式のAdvanced Configurationは「Codex can run against a local ‘open source’ provider such as Ollama or LM Studio when you pass --oss.」と記しており、--oss や --local-provider でOllama・LM Studioなどのローカルプロバイダに向ける設定が用意されています(learn.chatgpt.com/docs/config-file/config-advanced、2026-09-15確認)。既定のまま使う限りは推論まで手元で完結するわけではない、という理解になります。


5. 5つの入口と、コードが動く場所

公式ドキュメントのトップが「Available on」として挙げるのは ChatGPTデスクトップアプリ / Remote / ChatGPT(web) / Codex CLI / Codex IDE拡張 / Codex cloud の6項目で、SDKはそこではなく「Developers」セクション配下に Codex SDK として別掲されています(learn.chatgpt.com/docs、2026-09-15確認)。以下は公式の区分そのものではなく、本記事が扱う5つを実行場所の軸で並べ直した整理です。

入口コードが動く場所サインイン承認・サンドボックスの設定出典
Codex CLI自分のマシンChatGPTアカウント または APIキー可(read-only / workspace-write / danger-full-access、承認は on-request / never のほか、詳細設定の granular)docs / sandboxing
Codex IDE拡張自分のマシン(VS Code / Cursor / Windsurf / VS Code Insiders。XcodeとJetBrainsは別個の統合)ChatGPTアカウント または APIキー可(コンポーザー下の permissions control から Ask for approval / Full access などを選ぶ。CLIと同じサンドボックスモードの語彙を使う)ide / sandboxing
Codex cloudOpenAI側の隔離環境ChatGPTアカウント+GitHub連携(GitLab連携はBeta)環境ごとに依存関係・環境変数・シークレットを設定。ネットワークは別途設定cloud / gitlab
ChatGPTデスクトップアプリ開始時に選ぶ。Local(自分のマシンの作業ディレクトリ)・Worktree(自分のマシン上のGit worktree)・Cloud(OpenAI側の隔離環境)ChatGPTアカウントLocal・WorktreeはCLIと同じ設定系。Cloudはcloud環境の設定に従うmodes(2026-10-04確認)
ChatGPT webOpenAI側の隔離環境(公開済みのcloud環境を選んで実行)ChatGPTアカウントcloud環境の設定に従うmodes(2026-10-04確認)
Codex SDK(TypeScript / Python)呼び出したアプリケーションからローカルのCodexスレッドを開始・継続・再開する呼び出し側の資格情報公式ドキュメントの「Developers」セクションに Codex SDK として掲載。TypeScript(Node.js 18+)とPython(3.10+)がある。Python SDKはローカルのapp-serverをJSON-RPCで制御し、スレッド単位またはターン単位に read_only / workspace_write / full_access のサンドボックスプリセットを指定できる。TypeScript側の指定方法は公式ページを参照(2026-09-15確認)sdk

表の読み方を1つだけ。リポジトリの中身をOpenAI側の環境に置く前提になるのは、実行環境としてcloudを選んだ場合です。 Codex cloud、webからの実行、デスクトップアプリでCloudを選んだ場合が該当します。IDE拡張は「Choose local work for fast, hands-on iteration, or connect Codex web to delegate a longer task.」とあるとおりクラウドへの委譲を切り替えられ(learn.chatgpt.com/docs/codex/ide、2026-09-15確認)、cloud側も「Start and review work from the web or Codex CLI」としてCLIからの起動を認めています(learn.chatgpt.com/docs/cloud、2026-09-15確認)。委譲した時点で、CLIもIDE拡張もcloudと同じ状態になります。委譲しない限りは、CLIとIDE拡張についてはコードの実体が自分の側に残り、モデルに送られるのはタスクに必要な範囲のテキストです。ただし、社内規程で「ソースコードを外部ストレージに置かない」と定めている組織でも、実行場所だけで適合は判断できません。推論の入力としてコードの一部が送信される点や、ログ・保持期間の扱いを別に確認する必要があります。

Codex cloudの流れは公式ドキュメントに手順として書かれています。ChatGPTアカウントでサインインし、GitHubまたはGitLabを接続し、環境を作って依存関係・ツール・環境変数・シークレットを設定します。タスクの起点はwebのほか、GitHub、GitLab、Linear、Slackからも指定できるとされています。結果は「Review the summary and diff」として提示され、GitHubではそのままプルリクエストを開けます。GitLab連携はBetaで、公式ページはマージリクエストのレビューを中心に説明しているため、GitHubと同じ使い方ができるかはGitLab連携のページで確認してください。


6. 料金プランと利用上限の読み方

公式の料金ページ(learn.chatgpt.com/docs/pricing、2026-10-04確認)に記載されているプランは次のとおりです。

プラン価格
Free0ドル / 月
Go8ドル / 月
Plus20ドル / 月
Pro100ドル / 月から(100・200・500ドルの3段階)
Business20ドル / ユーザー / 月(2ユーザー以上・年払い。月払いは 25ドル)
Enterprise & Edu要問い合わせ

Freeプランについて公式ページは「Explore Codex capabilities on quick coding tasks」と書いています。無料で触れる範囲はある、ただし短いタスクの試用という位置づけです。FreeとGoについては、デスクトップアプリでGPT-6 Lunaを使う形で段階的に提供すると書かれており(subject to rollout)、CLIやcloudの全機能が使えるとは限りません。

Codexは無料で使えるか

使えます。ただし無料の範囲は狭く、入口も限られます。公式の料金ページは冒頭で、ChatGPT WorkとCodexはFree・Go・Plus・Pro・Business・Edu・Enterpriseの各プランに含まれると書いています(learn.chatgpt.com/docs/pricing、2026-10-11確認)。差が出るのは入口です。

契約料金ページの欄に書かれている使い方
Free(0ドル)・Go(8ドル)デスクトップアプリでGPT-6 LunaをStandard速度で使う。段階的に提供(subject to rollout)
Plus(20ドル)web、CLI、IDE拡張、iOSでのCodex。自動コードレビューやSlack連携などcloud側の連携
APIキーCLI、SDK、IDE拡張でのCodex。cloud側の機能は無し。API料金で課金

FreeとGoの欄には、CLIやIDE拡張の記載がありません。「Codex CLIは無料か」には2段階で答えます。CLI本体はApache-2.0のオープンソースで、入手は無料です(第13節)。ただし動かすにはChatGPTアカウントでのサインインかAPIキーが要り、APIキーなら使った分がAPI料金で請求されます。画像生成はFreeプランでは使えないとも明記されています(同ページ、2026-10-11確認)。

PlusとBusinessの上限は「5時間ウィンドウのメッセージ数」で数える

見落としやすいのは、PlusとStandard Businessの上限が月あたりではなく5時間ごとの期間(five-hour period)内のメッセージ数で示されている点です。一方、Proには現在5時間上限がありません(公式の記述は「Pro plans currently have no five-hour limit.」。learn.chatgpt.com/docs/pricing、2026-10-04確認)。数は同じプランの中でもモデルによって桁違いです。

モデルPlusStandard Business
GPT-6 Astra5〜455〜45
GPT-6.1 Sol15〜16015〜160
GPT-6 Sol15〜15015〜150
GPT-6 Luna350〜3,000350〜3,000

(公式の使用量の表、2026-10-04確認。5時間あたりのローカルメッセージの推定値。モデルの入れ替えで表が更新されるため、最新の値は公式の表を参照してください)

レンジ幅が広いのは、1メッセージが消費する計算量がタスクによって変わるためです。公式はこれらを固定のメッセージ上限ではなく推定値と位置づけ、現在の上限とリセット時刻は使用量画面(usage dashboard)で確認するよう案内しています。ローカルのメッセージとcloudのチャットは同じ枠を分け合い、cloudのタスクはローカルより多く枠を消費する場合があります。ChatGPT Workとも利用量を共有し、週次上限が併存する場合もあります(同ページ、2026-10-04確認)。重いモデルを常用すると上限に早く当たります。

クレジットの換算式

クレジットは、利用上限に達したあとも作業を続けるために追加購入する単位です。公式によると、PlusとProは上限に達した時点で追加クレジットを購入して作業を続けられ、柔軟な料金体系のBusiness・Edu・Enterpriseはワークスペースのクレジットを購入できます。上限に達しても自動で課金に切り替わるわけではなく、作業中のターンはfair useの範囲でそのまま続けられると説明されています。APIキーでの利用はこれとは別で、ChatGPTのクレジットではなくAPIの標準料金で課金されます(learn.chatgpt.com/docs/pricing、2026-10-04確認)。

クレジットの単価は100万トークンあたりの値です。入力・キャッシュ済み入力・出力でそれぞれ単価が違うため、消費量は次の形で合算されます。

$$ C = \frac{T_{\text{in}}}{10^6} p_{\text{in}} + \frac{T_{\text{cached}}}{10^6} p_{\text{cached}} + \frac{T_{\text{out}}}{10^6} p_{\text{out}} $$

ここで $C$ が消費クレジット、$T_{\text{in}}$ がキャッシュされていない入力トークン数、$T_{\text{cached}}$ がキャッシュ済み入力トークン数、$p$ が100万トークンあたりの単価です。$T_{\text{out}}$ は出力トークン数です。同じ入力トークンを $T_{\text{in}}$ と $T_{\text{cached}}$ の両方に数えないようにします。公式ページのStandard速度の単価は次のとおりです(Fast modeなどは別の倍率がかかります)。

モデル入力キャッシュ済み入力出力
GPT-6 Astra250251,250
GPT-6.1 Sol502.5250
GPT-6 Sol505250
GPT-6 Luna2.50.2512.5
GPT-5.6 Sol10010500
GPT-5.6 Luna50.530

(単位は100万トークンあたりのクレジット。learn.chatgpt.com/docs/pricing、2026-10-04確認。APIキー利用時のAPI料金とは別の表です)

プラン新設の経緯と背景についてはChatGPT Proプランの記事で扱っています。本記事では数え方だけを扱います。


7. できること・できないこと

できることは、リポジトリを対象とした作業全般です。バグ修正、テストの追加、リファクタリング、依存関係の更新、コードベースに対する質問への回答が該当します。ファイルを読んでコマンドを実行できるので、「テストが通るまで直して」のように結果で判定できるタスクとの相性が良好です。

できないことも同じ粒度で書きます。

  • 標準のOpenAIモデル利用では、推論は手元で完結しません。 ローカル実行中でも、読んだコードなどが推論の入力として送信されます。一方、CLIには --oss でOllamaやLM Studioを使う設定があります(config-advanced、2026-10-04確認)。完全に外部通信を行わない構成かどうかは、モデルの取得やツールの通信も含めて確認する必要があります。
  • 既定のサンドボックスの外には書けません。 workspace-write で書き込めるのはワークスペースと設定された書き込み可能領域(writable_roots、/tmp など)で、それ以外への書き込みは止まります。これは制限であると同時に安全装置です。
  • 指示ファイルは無制限には読まれません。 AGENTS.md の合計サイズが project_doc_max_bytes(既定32 KiB)に達した時点で読み込みが止まります。この値は設定で変えられますが、既定のままなら長大な規約の後半は届きません。
  • CLAUDE.md は既定では読まれません。 後述します。

8. 実測──手元環境で確認できたこと

この節は、公式ドキュメントではなく筆者の環境を直接調べた結果です。測定項目ごとにバージョンと測定日を添えて、実際に手元で確認できた値をそのまま出します。なお、以下はいずれも筆者環境での自己申告であり、公開情報からは第三者が検証できません。読者の環境でそのまま再現するものでもありません。

測定項目値測定日
Codex CLIのバージョン(拡張同梱パッケージの記録値)0.154.0-alpha.6.22026-09-15
ビルドターゲットaarch64-unknown-linux-musl2026-09-15
PATH 上に codex があるか見つからず(/usr/bin、/usr/local/bin、~/.local/bin のいずれにも無し。PATH 全体を走査した記録は残していない)2026-09-15
実体の所在VS Code拡張(openai.chatgpt 系)のバイナリディレクトリ内。拡張のバージョン付きディレクトリ名は本稿では記録していない2026-09-15
@openai/codex のグローバルnpmインストール未確定(筆者環境での自己申告。npm ls -g の出力を保存しておらず、本記事では有無を確認できていない。読者環境で再現・検証はできない)—
~/.codex/config.toml の既定モデルgpt-6-astra(model_reasoning_effort = "xhigh")2026-09-15
~/.codex/AGENTS.md の存在あり(グローバルスコープの指示ファイル。ただし中身は空)2026-09-15
kernel.apparmor_restrict_unprivileged_userns12026-09-15
同一タスクの所要時間・承認回数・差分行数未取得(本稿執筆セッションではシェル実行手段が無く、タスクを走らせられなかった)—

最後の行は、企画時点で予定していた「同じ小タスクを2つのリポジトリに投げて所要時間と承認回数を比べる」計測です。取れなかったので、推定値を置かずに未取得と記録します。

分かったことが2つあります

1つ目。インストール経路によっては codex が PATH に載りません。 この環境では PATH 上に codex が見当たらず、実際に使われていたのはVS Codeの公式拡張に同梱されたバイナリでした。スクリプトから呼ぶ場合、拡張のバージョン番号がパスに含まれるため、拡張が更新されるたびにパスが変わります。ハードコードすると壊れます。手元の運用リポジトリでは、command -v codex を試し、失敗したら拡張ディレクトリをグロブで探す、という順の解決処理を入れて対処していました。

2つ目。既定のサンドボックスが動かない環境がありえます。 この環境では kernel.apparmor_restrict_unprivileged_userns が 1 に設定されており、非特権ユーザー名前空間が制限されています。公式のサンドボックス解説はUbuntu 24.04について、bubblewrap をパッケージから導入した通常の経路でも名前空間作成の警告が出る場合があるとして、extra-profiles の bwrap-userns-restrict AppArmorプロファイルを /etc/apparmor.d/ に置いて apparmor_parser -r で読み込む手順、または sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 で制限を無効化する手順を示しています(Ubuntu 25.04では追加設定なしで動くとの注記もあります。learn.chatgpt.com/docs/sandboxing、2026-09-15確認)。つまりこの設定値が既定のサンドボックスの障害になりうることは、公式側にも想定として書かれています。ただし本稿では bwrap の有無やそのAppArmorプロファイルのロード状態までは測定しておらず、workspace-write の起動試行も行っていないため、この環境で必ず失敗すると断定はできません。実運用のリポジトリでは、この環境で動かなかったという運用メモに従って -s danger-full-access を明示して起動していました。

2つ目は率直に言って良い話ではありません。サンドボックスが使えない環境で回避策として全権限モードを選ぶのは、安全装置を外す選択です。 同じ状況に当たった場合、コンテナの中で動かす、あるいはカーネルパラメータ側を見直すほうが筋の良い対処になります。ここでは「運用メモに従って全権限モードで起動していた」という事実として記録します。


9. AGENTS.mdとCLAUDE.md──手元45リポジトリを数えた

AGENTS.mdとは、Codexが作業を始める前に読む指示ファイルです。プロジェクトの規約、使うべきコマンド、触ってはいけない場所を書いておくと、毎回プロンプトで説明せずに済みます。

公式ドキュメント(agents-md、2026-09-15確認)が示す探索順は次のとおりです。

  1. グローバル: ~/.codex/AGENTS.override.md があればそれ、無ければ ~/.codex/AGENTS.md
  2. プロジェクト: プロジェクトルート(既定の目印は .git。設定の project_root_markers で変更可)から現在のディレクトリまで各階層を降り、AGENTS.override.md → AGENTS.md → フォールバック名の順に探す
  3. ルート側から順にマージし、より近い階層のファイルが先の指示を上書きする

合計サイズが project_doc_max_bytes(既定32 KiB)に達すると、それ以降のファイルは足されません。上限をまたぐファイルは、公開リポジトリの実装(openai/codex の agents_md.rs、commit 50d7795、2026-10-04確認)では残りのバイト数まで途中で切り詰めて取り込まれます。空ファイルはスキップされます。

CLAUDE.mdは既定では読まれません。 公式ドキュメントが既定で参照するのは AGENTS.md と AGENTS.override.md だけです。ただし設定ファイルの project_doc_fallback_filenames に別のファイル名を追加すれば、探索対象を広げられます。Claude Code側の CLAUDE.md を流用したい場合は、この設定かシンボリックリンクを使うことになります。

AGENTS.mdの書き方──最小構成と置き場所

置き場所は3段階あります。公式ガイド(agents-md、2026-10-11確認)の例を置き場所ごとに並べました。ルールの文言は公式の英語例の訳です。

置き場所用途公式例に載っているルール
~/.codex/AGENTS.md全リポジトリ共通の約束「JavaScriptを変更したら npm test を実行する」「依存の導入には pnpm を優先する」「本番用の依存を追加する前に確認を求める」
リポジトリのルートの AGENTS.mdそのリポジトリの基本ルール「プルリクエストを開く前に npm run lint を実行する」
下位ディレクトリの AGENTS.override.mdサービスごとの例外services/payments/ で「npm test の代わりに make test-payments を使う」

最小構成は、ルートの AGENTS.md 1本に見出し1つと箇条書き数行です。

読まれ方で押さえる点は2つです。1つのディレクトリから読まれるのは1ファイルだけで、同じ階層に AGENTS.override.md があればその階層の AGENTS.md は使われません。また指示の連なりはCodexの起動時(TUIでは通常セッションの開始時)に組み立てられるので、書き換えが反映されないときは起動し直します。読み込まれたかは、リポジトリのルートで codex --ask-for-approval never "Summarize the current instructions." を実行すると、指示が優先順に要約されて返る、とされています(同ページ)。

棚卸しの結果

以下は筆者個人の環境(~/Documents/gh 配下)のGitリポジトリを2026-09-15(JST)に集計した数値で、筆者環境に固有の実測であるため読者環境では再現せず、公開情報から第三者が検証することもできません。集計に使ったのは次のシェルループで、~/Documents/gh/*/ の直下に .git があるディレクトリだけを対象とし、AGENTS.md と CLAUDE.md はリポジトリのルート直下にあるものだけを数えています。下位ディレクトリの同名ファイル、AGENTS.override.md、project_doc_fallback_filenames で指定しうる別名は対象外です。

for d in ~/Documents/gh/*/; do
  [ -d "$d/.git" ] || continue
  a=0; c=0
  [ -f "$d/AGENTS.md" ] && a=1
  [ -f "$d/CLAUDE.md" ] && c=1
  echo "$a $c $(basename "$d")"
done
項目本数
対象となったGitリポジトリ45
ルートに AGENTS.md を持つ0
ルートに CLAUDE.md を持つ31
両方を持つ0
どちらも持たない14
CLAUDE.md 内に codex への言及がある2

2026-10-04に同じループで数え直すと、対象となったGitリポジトリは46、ルートに AGENTS.md を持つものが0、CLAUDE.md を持つものが31、両方を持つものが0、どちらも持たないものが15でした。9/15から対象が1つ増えています。codexへの言及は、大文字小文字を区別しない内容検索(grep -il codex)で2本でした。グローバルの ~/.codex/AGENTS.md も0バイトのままでした(2026-10-04再集計)。

AGENTS.md がルートに0本というのは、予想より極端な結果でした。Claude Codeを主に使ってきた環境なので CLAUDE.md が31本ある一方、Codexを呼ぶリポジトリでもAGENTS.md側は整備されていません。ただし、ここから読み取れることは限定的です。公式の探索順はプロジェクトルート(既定はGitのルート)から現在のディレクトリまで各階層を降りるので、ルート直下に無いことがプロジェクト指示ゼロを意味するわけではありませんし、今回の棚卸しは AGENTS.override.md やフォールバック名を数えていません。さらにグローバルの ~/.codex/AGENTS.md は存在こそするものの中身が空で、公式仕様は空ファイルを探索時にスキップすると定めています(agents-md、2026-09-15確認)。仕様どおりなら、空のグローバルファイルは読み込み対象になりません。ただし、ルート直下0本と空のグローバルファイルだけでは、規約がCodexに渡っていなかったとは確定できません。下位階層の AGENTS.md、override、フォールバック名、ホスト側からの指示の注入、プロンプトでの明示的な読み込み指示は調べていないためです。Codexが実際に何を読み込んだかのログは取得していません。

codexに言及していた CLAUDE.md 2本のうち1本は、Claude Codeを著者役、Codexをレビュアー役として仕様書レビューを回す実験用リポジトリでした。そこには先ほどの2つの落とし穴が、注意書きとしてそのまま残されていました。「codexはPATHに無くVS Code拡張同梱バイナリを実行時解決する。パスをハードコードしない」「codexは -s danger-full-access で起動する」の2行です。実測で確認した内容と、運用メモの記述が一致していました。

指示ファイルは読める大きさに保つ

指示ファイルに何を書くかについては、参考になる論文があります。arXiv:2607.13285のプレプリント『Harness Handbook』(2026-07-14公開)は、エージェントのハーネスを読める・辿れる・編集できる形に保つ方法を扱った論文です。その中で著者らは、ドキュメント側を真実の源にしないという原則を置いています。コード位置情報は常にリポジトリに対して再検証可能でなければならず、再検証できない記述は凍結して参照対象から外す、という設計です(同論文§3.1。有効なコード位置情報についての仕組み)。リポジトリを常に権威として残すためです。

同論文の評価では、Codexをハーネスとした編集計画タスクで総合勝率が28.3%から38.3%へ(+10.0ポイント)、プランナーのトークン消費が0.102Mから0.089Mへ(-12.7%)変化したと報告されています(同論文§4.2.1)。これは著者らによる測定であり、第三者による再現ではありません。編集計画の評価であって、Codex一般の実装成功率でも、AGENTS.mdを短くした実験でもありません。

実務上の読み替えはシンプルです。AGENTS.mdに「現在のコードがこうなっている」という記述を積むと、コードが変わった瞬間に嘘になります。書くべきは、コードから読み取れない約束事──使うコマンド、触ってはいけない場所、レビューの基準です。なお project_doc_max_bytes は設定で変えられる値で、既定値の32 KiBは固定の製品上限でも「それ以上書くな」という指示でもありません。指示を短く保ち、コードの状態を書いた箇所は更新・検証する、というのが本稿の運用方針です。

CLAUDE.md側の書き方と運用はClaude Codeの使い方の記事で扱っています。


10. Codex Skillsとは──手順書を呼び出す仕組み

Codex Skillsとは、特定の作業の手順と資料をひとまとめにして、必要なときにCodexに読ませる仕組みです。公式ドキュメントは、スキルを特定のタスクやワークフローのための指示と補助資料をまとめたものと説明しています(Skills & Plugins、2026-10-11確認)。AGENTS.md が毎回読まれる常設の指示なのに対し、スキルは該当する作業のときだけ全文が読まれる手順書です。

中身はフォルダ1つです。 スキルは SKILL.md を含むディレクトリで、SKILL.md には name と description が必須です。必要なら scripts/(実行コード)、references/(文書)、assets/(テンプレートなど)を添えます。形式はオープンなagent skills標準に基づくとされています(Build skills、2026-10-11確認)。

呼び出し方は2通りです。 明示的に呼ぶなら、CLIやIDE拡張で /skills を実行するか、$ に続けてスキル名を書きます。もう1つは暗黙の呼び出しで、依頼内容がスキルの description に合えばCodexが自分で選びます。Codexは最初に各スキルの名前・説明・ファイルパスだけを見て、使うと決めたときに SKILL.md の全文を読みます。スキルが多いと一覧の説明は短縮されるため、説明は短く、用途を先に書くのが要点です(同ページ)。

置き場所と作り方。 リポジトリ用は現在のディレクトリからリポジトリのルートまでの各階層の .agents/skills、個人用は $HOME/.agents/skills です。組み込みの $skill-creator を呼ぶと、何をするスキルか、いつ発動させるかを質問しながら下書きを作ります。他の人に配るときは、スキルとMCPサーバーを束ねたプラグインにします(同ページ)。

筆者は、どの作業でも守る約束は AGENTS.md、特定の作業の進め方はスキル、と分けるのが扱いやすいと考えます。Claude Code側のスキルはClaude Codeとはの記事で扱っています。


11. スマホからCodexを使う──ChatGPTアプリ(iOS / Android)でできること

スマホからも使えます。ただしスマホの中でコードが動くわけではありません。公式ページによると、スマホでは作業の開始、進行の確認と追加の指示、コマンド実行の承認、差分やテスト結果の確認ができ、実行はcloudか接続したコンピューターで行われます(Codex on mobile、2026-10-11確認)。

自分のコンピューターにつなぐ条件は次のとおりです(Remote connections、2026-10-11確認)。

  • 接続先はChatGPTデスクトップアプリが動くmacOSかWindowsのマシン。起動中・オンラインで、同じアカウントとワークスペースにサインインしていること
  • 操作側は最新のChatGPTモバイルアプリが入ったiOSかAndroidの端末
  • 設定はデスクトップアプリの Settings > Connections > Control this Mac or PC から始め、QRコードをスマホで読み取る。CLIやIDE拡張からは設定できない

提供状況は段階的な展開とワークスペースの設定で変わるとされています。料金ページのPlusの欄には「on iOS」とだけあり、Androidからの操作はRemote connectionsのページに書かれています。

接続先の設定はそのまま効きます。ファイルとシェルコマンドは接続先のものが使われ、サンドボックスの設定と承認も引き続き適用されます(同ページ)。第12節の秘密情報のリスクは、接続先のマシンの条件で考えます。なお筆者は、スマホからの接続をまだ試していません。


12. 限界・リスク・向かない場面

勝手に実行されるのか

既定では、実行できる範囲が制限されています。公式ドキュメント(sandboxing、2026-10-04確認)が定義するサンドボックスは3モードです。

モード挙動(公式の記述の要約)
read-onlyファイルは読めるが、承認なしではファイルの編集もコマンドの実行もできない
workspace-writeファイルを読み、ワークスペース内で編集し、その境界の中で日常的なローカルコマンドを実行できる。既定値
danger-full-accessサンドボックスの制限なしで動く。ファイルシステムとネットワークの境界が外れる

代表的な承認ポリシーは2つです。on-request はサンドボックスの範囲内で動き、そこを越える必要が生じたら停止して確認を求めます。never は「The agent doesn’t stop for approval prompts」、つまり確認せずに進みます。このほか設定ファイルでは、確認の種類ごとに承認の要否を指定する granular も選べます。確認を誰が行うかは approvals_reviewer で決まり、既定の user は人間に、auto_review はレビュー用のエージェントに回します(config-reference、2026-10-04確認)。

したがって「勝手にファイルを書き換えないか」への答えは、既定ではワークスペースと設定された書き込み可能領域の中だけ書き換え、境界を越えるときは確認を求めて止まる、です。ここで言う確認は作業前の実行承認で、許可範囲内の編集は作業後のレビューより先にファイルへ書き込まれます。never は確認を求めない設定で、サンドボックスの制限そのものは外しません。ただし danger-full-access と never を組み合わせると制限は実質的に無くなります。この組み合わせは、使い捨てのコンテナやVMの中だけに限定するのが妥当です。

サンドボックスの実装はOS依存です。macOSは標準のSeatbeltフレームワーク、LinuxとWSL2は bubblewrap(または同梱ヘルパー。非特権ユーザー名前空間のサポートが必要)、WindowsはPowerShell上のネイティブサンドボックスかWSL2側のLinux実装を使います。第8節のとおり、Linuxではカーネル設定によってこれが機能しないことがあります。

秘密情報

実行場所の話がそのままリスクの話になります。ローカルの入口ではコードの実体は手元に残りますが、モデルに送られるプロンプトにはファイルの中身が含まれます。.env やAPIキーを含むファイルが探索対象に入れば、その内容も送信されうるということです。Codex cloudではさらに、リポジトリ自体をOpenAI側の環境へ接続します。

対策の方向は3つあります。1つ目は、秘密情報をリポジトリに置かないことです。2つ目は、cloud環境での渡し方を使い分けることです。現行のcloud環境は、環境変数とnetwork secretを区別しています。環境変数はプログラムが実値を読めます。network secretは、許可したHTTPS宛先への通信時にだけプロキシが実値へ置き換え、プロセスにはプレースホルダが渡ります(Cloud environments)。3つ目は、read-only から始めて挙動を確認してから権限を上げることです。ただし read-only は書き込みを止める設定で、読み込みや推論入力への送信を止めるものではありません。読ませたくないファイルは、作業対象から外しておく必要があります。

向かない場面

筆者の判断では、正解を結果で判定できないタスクを任せきりにするのは向きません。Codexは設計の相談や計画づくりにも使えますが、設計方針の決定、仕様そのものの是非、外部システムとの調整を含む作業は、差分を返されても評価やレビューの手間が別にかかります。また、コンテキストに載せる情報を増やしすぎると精度が落ちる問題は、エージェント全般に共通します。この点はMCPサーバーの選び方の記事で扱ったツール定義のコストと同じ構図です。


13. 始め方──インストールから最初の1タスクまで

公式リポジトリ(openai/codex、Apache-2.0、2026-09-15確認)が示すインストール方法は複数あります。

macOS / Linux のインストールスクリプト:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

Windows(PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"

npm または Homebrew:

npm install -g @openai/codex
brew install --cask codex

対応プラットフォームはmacOS(Apple Silicon / x86_64)、Linux(x86_64 / arm64)、Windowsです。GitHub Releasesからのバイナリ直接ダウンロードもできます。

導入後の手順は次のとおりです。

  1. codex --version を実行し、バージョンを控える。エラーになる場合は、未導入、シェルの PATH 設定、npmのグローバル導入先(prefix)などを確認する。筆者の環境ではIDE拡張に同梱されたバイナリだけがあったが(第8節)、スクリプトから使うならCLIを独立して導入するほうが扱いやすい
  2. ChatGPTアカウントでサインインする。APIキーで入るとAPI料金での課金になり、cloud機能も使えないので、どちらで入ったかを意識する
  3. Gitで管理されたリポジトリに入り、まず read-only で起動する。何を読みに行くかを目で確認する
  4. リポジトリのルートに AGENTS.md を1本作る。使うコマンド、触ってほしくないディレクトリ、テストの走らせ方を数行ずつ書く。最初から長くしない
  5. 結果で判定できる小さなタスクを1つ投げる。「このテストを通るように直して」が最初の課題として扱いやすい
  6. 差分と検証結果を確認して、変更を採用するか判断する。許可範囲内の編集は確認より先にファイルへ書き込まれているので、採用しないならGitで戻す。読まずに採用する運用に入ると、エージェントを使う意味の半分が失われる

IDE拡張を使う場合は、VS Code / Cursor / Windsurf / VS Code Insiders に対応しています(XcodeとJetBrainsは別個の統合です)。権限はコンポーザー下の permissions control から選ぶ形で、CLIと同じサンドボックスモードの語彙を使います(learn.chatgpt.com/docs/codex/ide、2026-09-15確認)。


14. よくある質問

Codexは無料で使えますか

Freeプランがあり、公式の料金ページは「Explore Codex capabilities on quick coding tasks」と説明しています(2026-09-15確認)。短いコーディングタスクを試す範囲という位置づけです。CLIやIDE拡張まで使うならPlus(20ドル/月)以上が現実的です。料金ページの欄では、FreeとGoに載っているのはデスクトップアプリだけです(第6節の表、2026-10-11確認)。無料枠の具体的なメッセージ数は、公式の上限表がPlusとStandard Businessについての推定値を示す形になっており、Free単体の数値は本記事では確認できませんでした(2026-10-04確認)。プランと入口ごとの違いは第6節の「Codexは無料で使えるか」にまとめました。

ChatGPTの契約があれば追加課金なしで使えますか

Plus、Pro、Businessなどの契約に含まれる利用枠があります。PlusとStandard Businessでは5時間ごとの期間(five-hour period)あたりの推定メッセージ数が示され、モデルによって桁が変わります。Plusの場合、GPT-6 Astraで5〜45、GPT-6 Lunaで350〜3,000です。Proには現在5時間上限がありません。週次上限がかかる場合もあります(2026-10-04確認)。枠に達しても自動で課金されるわけではなく、PlusとProは追加クレジットを購入して作業を続けられます。APIキーで使う場合はAPI料金での課金で、ChatGPTのクレジットとは別です。

Codex cloudを使うと、ソースコードはOpenAIに渡りますか

Codex cloudはGitHub(GitLabはBeta)を接続し、OpenAI側の隔離環境でタスクを実行する仕組みです。デスクトップアプリやwebでCloudを選んだ場合も同じです。したがってリポジトリの内容がOpenAI側の環境に置かれます。ローカルの入口(CLI・IDE拡張)ではコードの実体は手元に残りますが、モデルへ送られるプロンプトにはファイルの内容が含まれます。標準のOpenAIモデルを使う限り、どちらの入口でも内容が外部に送信される点は変わりません(--oss でローカルのモデルを使う構成は別です)。

AGENTS.mdは必ず必要ですか

必須ではありません。無くてもCodexは動きます。ただし、プロジェクト固有の規約を毎回プロンプトで説明する手間が残ります。筆者の環境では45リポジトリ中0本しかルート直下に AGENTS.md が無く、グローバルの ~/.codex/AGENTS.md も中身が空でした(2026-09-15計測。ルート直下のみを対象。2026-10-04の再集計でも46リポジトリ中0本)。よく使うリポジトリから順に用意する価値はあります。

CLAUDE.mdをそのまま使えますか

既定では読まれません。Codexが既定で探すのは AGENTS.md と AGENTS.override.md だけです。設定ファイルの project_doc_fallback_filenames に CLAUDE.md を追加するか、シンボリックリンクを張れば共有できます。ただし両者は想定するツールが違うため、内容をそのまま流用すると噛み合わない記述が混じります。

初心者は何から始めればいいですか

結果で判定できる小さな作業から始めます。第13節の手順のとおり、read-only で起動して何を読みに行くかを確かめ、「このテストを通るように直して」のような1タスクを任せます。差分を自分で読んで採用を決める習慣を、最初に作っておくのが近道です。

Codexのルール(AGENTS.md)はどこに書きますか

全リポジトリ共通のルールは ~/.codex/AGENTS.md、リポジトリごとのルールはそのルートの AGENTS.md に書きます。特定のディレクトリだけ変えたいときは、そこに AGENTS.override.md を置きます。近い階層の指示ほど優先されます。例は第9節にまとめました。

Claude Codeと併用できますか

併用できます。どちらも端末から起動するCLIで、同じリポジトリで役割を分けて使えます。注意点は指示ファイルで、Codexは既定では CLAUDE.md を読みません。共通の規約を両方に効かせるなら、project_doc_fallback_filenames に CLAUDE.md を足すか、シンボリックリンクで1本にまとめます(第9節)。使い分けはCodexとClaude Codeの比較記事、Claude Code側の全体像はClaude Codeとはの記事で扱っています。


15. まとめ

Codexとは、OpenAIのAIコーディングエージェントです。ChatGPTが文章を返すのに対し、Codexはリポジトリを読み、ファイルを書き換え、コマンドを実行して差分を返します。

本記事が扱った入口は5つあり、コードが動く場所は入口と、そこで選ぶ実行環境の組み合わせで決まります。CLIとIDE拡張は通常のローカル利用なら自分のマシン、Codex cloudはOpenAI側の隔離環境、SDKは呼び出し元の実行環境です。ChatGPTデスクトップアプリはLocal・Worktree・Cloudから選べます。CLIとIDE拡張はクラウドへ委譲することもでき、その時点でcloudと同じ状態になります。モデルの推論は、標準のOpenAIモデルを使う限りどの入口でもOpenAI側で行われます(--oss でOllamaやLM Studioを使う構成は別です)。

利用上限は、PlusとStandard Businessでは5時間ごとの期間あたりの推定メッセージ数で示されます。同じPlusでも、GPT-6 Astraなら5〜45、GPT-6 Lunaなら350〜3,000と桁が違います(2026-10-04確認)。Proには現在5時間上限がなく、APIキーでの利用はChatGPTのクレジットではなくAPI料金で課金されます。

安全側の既定は妥当に設計されています。workspace-write と on-request の組み合わせなら、ワークスペースと設定された書き込み可能領域の外に出るときに止まり、確認を求めます。ただし環境によっては既定のサンドボックスが起動しない場合があり、全権限モードが回避策として選ばれることがあります。筆者の運用メモにも全権限モードで起動する記述がありましたが、今回、サンドボックスの起動失敗やその原因は実測していません。

指示ファイルは AGENTS.md です。CLAUDE.md は既定では読まれません。読み込み量には既定32 KiB(project_doc_max_bytes で変更可能)の上限があります。筆者は、コードを読めば分かることではなく、コードから読み取れない約束事を短く書く方針をとっています。


関連記事