本文へスキップ

Codex CLI config.toml 逆引き:model・推論量・Fast・sandbox・mcp_servers

~/.codex/config.toml の主要キーを逆引き。プロファイル切替、推論量とStandard/Fastの選び方、MCPサーバー追加、approval_policyとsandboxの権限設定、notify通知を公式資料と実設定で確認。

SHAYOUWORLD 更新 約13分

Codex CLIの ~/.codex/config.toml は、基本値を1つのファイルに置き、用途ごとの差分は ~/.codex/<name>.config.toml(プロファイル)に分け、その場限りの変更は -c key=value で上書きするという3層で運用すると壊れません。この記事は、公式Configuration Referenceのキー名をそのまま使い、筆者が実際に使っている設定ファイルから抜粋したコピペ例を用途別に並べた逆引きです。

エラーが出ているときは先にCodex CLI エラー集を、設定ファイルより先にAGENTS.mdを整えたいときはAGENTS.md 完全ガイドを読んでください。

先に押さえる5点

  1. 読み込み順: CLIフラグ・-c > プロジェクトの .codex/config.toml(信頼済みのみ) > --profile で選んだ <name>.config.toml > ~/.codex/config.toml > クラウド管理の既定 > システム設定(/etc/codex/config.toml) > 組み込み既定。
  2. プロファイルは別ファイル: [profiles.x] テーブルは0.134.0以降読まれません。
  3. MCPは [mcp_servers.<name>]: stdioは command+args、HTTPは url。既定タイムアウトは起動10秒・ツール60秒。
  4. 権限は2キーで決まる: approval_policy(on-request / never)と sandbox_mode(read-only / workspace-write / danger-full-access)。
  5. 深さと速さは別のキー: 深さは model_reasoning_effort、速さは service_tier(Fast)。Fastにしても品質は上がりません。

ファイルの場所と優先順位

公式Config basicsの記載をそのまま整理します。

~/.codex/config.toml # ユーザー設定(基本)
~/.codex/<name>.config.toml # プロファイル。--profile <name> で重ねる
<repo>/.codex/config.toml # プロジェクト設定。trust_level = "trusted" のときだけ読まれる
/etc/codex/config.toml # システム設定(Unix)

プロジェクト層は「Codex loads project .codex/ layers only when you trust the project」で、信頼していないプロジェクトでは設定・hooks・rulesのすべてが読み飛ばされます。信頼状態は ~/.codex/config.toml の [projects.'<path>'] trust_level = "trusted" に記録され、筆者のファイルにも作業ディレクトリごとに1エントリずつ並んでいました。プロジェクト設定で上書きできないキー(モデルプロバイダ、認証、通知、テレメトリ、プロファイル選択)もあると公式リファレンスに明記されています。

一時的な上書きは -c です。codex --help から引用します。

-c, --config <key=value>
Override a configuration value that would otherwise be loaded from `~/.codex/config.toml`.
Use a dotted path (`foo.bar.baz`) to override nested values. The `value` portion is parsed
as TOML. If it fails to parse as TOML, the raw string is used as a literal.

--enable <feature> / --disable <feature> は -c features.<name>=true/false の短縮形、--strict-config は未知のキーがあればエラーにするフラグです。

用途1: 日常用と深掘り用をプロファイルで切り替える

公式Advanced Configurationによると、プロファイルは ~/.codex/<name>.config.toml に「基本と違う値だけ」を書き、codex --profile <name> で重ねます。筆者が実際に使っている2ファイルをそのまま載せます。

# ~/.codex/daily.config.toml — 日常のコーディング・保守向け
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"
web_search = "cached"
# ~/.codex/deep.config.toml — 難しい監査・最新資料の調査向け
model = "gpt-6-astra"
model_reasoning_effort = "high"
web_search = "live"
Terminal window
codex --profile daily
codex exec --profile deep "review this change"
旧: config.toml 内の [profiles.x](読まれない)
現行: <name>.config.toml(別ファイル)
書く場所
~/.codex/config.toml の [profiles.daily] テーブル
~/.codex/daily.config.toml のトップレベル
対応版
0.134.0 より前
0.134.0 以降(公式は旧テーブルの削除を案内)
選択
profile = "daily" または --profile daily
--profile daily(TOMLのトップレベルキーをそのまま使う)
名前の制約
—
英数字・ハイフン・アンダースコア
learn.chatgpt.com/docs/config-file/config-advanced.md の記載(2026-09-14)

関連キーは次の通りです(公式リファレンスの値)。

  • model_reasoning_effort: minimal / low / medium / high / xhigh
  • plan_mode_reasoning_effort: 上に none を加えた値。プランモードだけ別の推論量にできる
  • model_reasoning_summary: auto / concise / detailed / none
  • web_search: disabled / cached / indexed / live(既定 cached)
  • personality: none / friendly / pragmatic
  • review_model: /review だけ別モデルにしたいとき
  • hide_agent_reasoning: 推論イベントを出力から隠す(筆者は true)

用途2: 推論量と速度(Standard / Fast)を選ぶ

推論量(model_reasoning_effort)は「1つの仕事にどれだけ考えさせるか」、Standard / Fast(service_tier)は「どれだけ速く処理させるか」の設定で、別々に決めます。xhigh にしたから速くなるわけではなく、Fastにしたから浅くなるわけでもありません。high + Fast、medium + Standard のように組み合わせます。

判断は2問に分けます。

  1. もっと深く考える必要があるか。 必要なら medium から high、xhigh へ上げる。
  2. 待ち時間を短くする価値があるか。 価値があるならStandardからFastへ切り替える。

「難しいからFast」ではありません。難しい仕事なら推論量を上げ、急いでいるならFastです。

推論量の選び方

公式Modelsページの原則は、必要な結果を出せる最も低い推論量を使うことです。高くするほど複雑な計画・比較・確認に強くなる可能性がある一方、応答時間とトークン使用量も増えます。medium は速度と深さのバランスが取れた設定として案内されており、日常作業の基準になります。

値向く仕事次の段へ上げる合図
low(アプリ表記 Light)タイポ修正、名前変更、指定済みの小さな変更、ログからの情報抽出、決まった形式への変換要件が曖昧、影響範囲が広い、途中で設計判断が要る
medium数ファイルにまたがる機能追加、原因がある程度絞れた不具合修正、公式ドキュメントを見ながらの実装「動く変更」は作れても「なぜ安全か」「どこに副作用があるか」が弱い
high原因不明の複雑な不具合、認証・状態管理・並行処理を含む変更、大きめのリファクタリング計画、PRの回帰リスクや不足テストのレビュー、複数の公式資料の突き合わせ見落としの損失が待ち時間や使用量を上回る
xhigh(アプリ表記 Extra High)セキュリティ監査、複雑なアーキテクチャ判断、再現しにくい本番障害の原因分析、大規模変更の公開前レビュー—

括弧内は2026年7月時点のアプリ上の表記です。xhigh は常用する値ではなく、監査のように見落としのコストが高い仕事で時間と使用量を品質に振る設定です。公式のCodex Securityクイックスタートも、最高品質の設定例に xhigh を挙げていました(2026年7月時点、モデルは gpt-5.6-sol)。

上限は失敗コストで決めます。文章の初稿なら多少の不足は次のターンで直せますが、認証変更、データ移行、公開前レビュー、セキュリティ監査は見落としの損失が大きくなります。タスクの見た目の難しさだけでなく、間違えたときの損失を推論量に反映します。結果に不満があるときは、原因で動かすキーを変えます。

  • 回答が浅い、見落としがある → 推論量を1段上げる
  • 回答は十分だが遅い → Fastを検討する
  • 明確な作業なのに重い → 推論量を1段下げる
  • 同じ種類の軽作業が大量にある → model で軽いモデルも比較する

config.tomlでは、日常の基準を用途1のdailyプロファイル(medium)に、深掘りをdeepプロファイル(high)に置き、それ以外の段はその場で -c を使います。プランモードだけ深く考えさせたいなら plan_mode_reasoning_effort を別に上げます。対話中は /model からモデルと推論量を変更できます。

Terminal window
codex --profile daily # medium で日常作業
codex exec --profile deep "review this change" # high でレビュー
codex exec -c model_reasoning_effort=xhigh "audit the auth flow" # その場だけ xhigh

StandardとFastの使い分け

Standardを普段の設定にします。バックグラウンドで任せられる、数分の差が成果に影響しない、クレジットを効率よく使いたい、high 以上で既に使用量が増えている、といった場面です。high / xhigh の仕事は待つ前提になりやすいので、Standardと相性がよい組み合わせです。

Fastは、待ち時間が作業のボトルネックになるときに使います。Codexと対話しながら短い修正を何度も回す、UI調整やテスト修正を細かく反復する、障害対応や締切直前で速度に明確な価値がある、エージェントの完了を人が待っていて待機コストが高い、といった場面です。

2026年7月24日時点の公式Speedページでは、Fastは対応モデルの処理を1.5倍速くする代わりに、GPT-5.6ではStandardの2.5倍のChatGPTクレジットを消費すると案内されていました。速さの倍率より消費の倍率が大きいので、常時オンではなく待ち時間を買う設定と考えるのが妥当です。倍率は更新される可能性があるので、使う前にSpeedページで現行の値を確かめてください。Pricingページによれば、クレジット消費はモデル、コンテキスト、推論、ツールでも変わります。なお、この倍率はChatGPTでサインインしてCodexを使う場合の話で、APIキーで使う場合はChatGPTクレジットではなくAPIのトークン料金が適用され、API側のPriority processingは別料金です。

Fastは品質不足の解決策ではありません。結果が弱いときにFastへ変えても、待ち時間が短くなるだけです。

切り替えはセッション内なら /fast です。

/fast on
/fast off
/fast status

継続的にFastを既定にする場合、公式Speedページは config.toml に次の設定を案内していました。

service_tier = "fast"
[features]
fast_mode = true

常時にする前に、数日だけ /fast on で試し、実際に待ち時間がボトルネックになっているかを確かめるのがおすすめです。

緊急度・待機コスト複雑さmedium + Standard日常の実装・調査迷ったらここから始めるmedium + Fast対話的な修正・障害対応待ち時間をクレジットで買うhigh / xhigh + Standard設計・監査・公開前レビュー品質を優先して待つhigh / xhigh + Fast重大障害・締切直前の難問高品質と速度の両方を買う
複雑さで縦軸の推論量を決め、緊急度で横軸のStandard・Fastを決める。

用途3: MCPサーバーを追加する

stdioとstreamable HTTPの2形式です。公式MCPページの例を、フィールド名を変えずに最小化しました。

# stdio(ローカルプロセス)
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
startup_timeout_sec = 10 # 既定 10
tool_timeout_sec = 60 # 既定 60
enabled = true
required = false # true にすると起動失敗でセッションが作れない
[mcp_servers.context7.env]
MY_VAR = "value"
# streamable HTTP(リモート)
[mcp_servers.docs]
url = "https://developers.openai.com/mcp"
# bearer_token_env_var = "MY_TOKEN_VAR" # 環境変数からBearerを読む
# auth = "oauth" # OAuthを使う場合。codex mcp login <name>

コマンドラインからも同じ設定を追加できます。codex mcp add --help(0.144.1)の書式は次の通りです。

Terminal window
codex mcp add <NAME> (--url <URL> | -- <COMMAND>...)
codex mcp add ctx7 --env API_KEY=... -- npx -y @upstash/context7-mcp
codex mcp add docs --url https://developers.openai.com/mcp
codex mcp list # 一覧(Status / Auth 列あり)
codex mcp login docs # OAuth
10s
startup_timeout_sec
初回に依存を落とすサーバーは足りない。筆者環境の同梱サーバーは120
60s
tool_timeout_sec
ツール1回の上限
512字
サーバー説明の自己完結範囲
公式: keep the first 512 characters self-contained
4種
default_tools_approval_mode
auto / prompt / writes / approve
learn.chatgpt.com/docs/extend/mcp.md と config-reference.md(2026-09-14)

ツール単位の制御も用意されています。

[mcp_servers.context7]
enabled_tools = ["resolve-library-id", "get-library-docs"] # 許可リスト
disabled_tools = [] # 許可後に除外
default_tools_approval_mode = "prompt"
[mcp_servers.context7.tools.get-library-docs]
approval_mode = "approve"
output_token_limit = 30000

Windowsでは、筆者の設定はすべて command に実行ファイルのフルパスを書いています。npx のようなシェル解決前提のコマンドで「program not found」になったら、フルパスか cwd の指定を試します。

用途4: 権限を絞る

公式Agent approvals & securityとAdvanced Configurationの例を組み合わせた、読み取り専用の対話設定です。

# 読み取り専用で相談だけしたい
approval_policy = "on-request"
sandbox_mode = "read-only"
# 作業ディレクトリだけ書込可、ネットワークは必要な時だけ
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = false # 既定 false。npm install 等が要るなら true
writable_roots = [] # 追加で書き込みを許す場所
exclude_tmpdir_env_var = false
exclude_slash_tmp = false

approval_policy の値は on-request / never と、細かく制御する granular テーブルです。公式は「Codex and ChatGPT Work no longer support approval_policy = “untrusted”」としています。0.144.1の codex --help にはまだ untrusted が候補として残っていますが、設定に書くのは避けます。

# granular の例(公式 Advanced Configuration より)
approval_policy = { granular = {
sandbox_approval = true,
rules = true,
mcp_elicitations = true,
request_permissions = false,
skill_approval = false
} }

子プロセスに渡す環境変数も絞れます。公式の説明では、名前に KEY / SECRET / TOKEN を含む変数は既定で除外され、ignore_default_excludes = false でその既定除外をカスタムフィルタの前に適用します。

[shell_environment_policy]
inherit = "core" # all / core / none
ignore_default_excludes = false
set = { MY_FLAG = "1" }
[shell_environment_policy.filters]
"AWS_*" = "exclude"
"AZURE_*" = "exclude"

Windowsネイティブで動かす場合は、サンドボックスの実装を選びます。

[windows]
sandbox = "elevated" # 推奨。動かない環境では "unelevated"
# sandbox_private_desktop = true # 既定 true

全部外す sandbox_mode = "danger-full-access" と --dangerously-bypass-approvals-and-sandbox は、公式・--help ともに「外部で隔離済みの環境専用」と警告しています。

用途5: ターン完了を通知する(notify)

notify は外部プログラムを起動するフックで、公式Advanced Configurationの説明では現在 agent-turn-complete イベントに対応しています。配列の先頭がプログラム、以降が引数で、最後にJSONが1引数として渡されます。

notify = ["python3", "/path/to/notify.py"]

JSONに含まれるキーは type、thread-id、turn-id、cwd、input-messages、last-assistant-message です。筆者環境では、デスクトップアプリが自動で notify = ["<computer-use の exe>", "turn-ended"] を書き込んでいました。自分で設定するときは、このキーをアプリ側が上書きする可能性を頭に入れておきます。

TUI側の通知は notify とは別に [tui] で制御します。

[tui]
notifications = true # または ["agent-turn-complete", ...]
notification_method = "auto" # auto / osc9 / bel
notification_condition = "unfocused" # unfocused / always

用途6: プロジェクトごとの設定と機能フラグ

リポジトリ直下の .codex/config.toml に、そのプロジェクトだけの値を置けます(信頼済みプロジェクトのみ)。

# <repo>/.codex/config.toml
model_reasoning_effort = "high"
project_doc_max_bytes = 65536 # AGENTS.md から読む上限
project_doc_fallback_filenames = ["CLAUDE.md"] # AGENTS.md が無いときの代替

機能フラグは [features] テーブルです。筆者の設定では multi_agent = true、memories = true を有効にしています。公式リファレンスに載っている主なもの:

  • features.hooks: hooks.json またはインライン [hooks] のライフサイクルフック
  • features.multi_agent: マルチエージェント(既定 on)
  • features.goals: ゴールの永続化と継続(既定 on)
  • features.unified_exec: PTYベースの統合exec(Windows以外は既定 on)
  • features.network_proxy: サンドボックス内コマンド用のネットワークプロキシ(既定 off)。domains で allow / deny を指定
  • features.prevent_idle_sleep: ターン中のスリープ抑止(既定 off)
Terminal window
codex features list # 既知の機能とステージ・有効状態
codex features enable hooks
codex --enable hooks # 一時的に有効化(= -c features.hooks=true)

逆引き早見表

やりたいことキー値・備考
既定モデルを変えるmodel文字列。使えるモデルは /model で確認
推論量を変えるmodel_reasoning_effortminimal / low / medium / high / xhigh
プランモードだけ推論量を変えるplan_mode_reasoning_effort上の値に none を加えたもの
Fastを既定にするservice_tier + features.fast_mode"fast" / true。セッション単位なら /fast on
承認のタイミングapproval_policyon-request / never / granular
実行環境の制限sandbox_moderead-only / workspace-write / danger-full-access
workspace-writeでネット許可sandbox_workspace_write.network_accesstrue / false(既定 false)
MCP追加(stdio)mcp_servers.<id>.command / .args / .env / .cwdcodex mcp add と同等
MCP追加(HTTP)mcp_servers.<id>.url / .bearer_token_env_varOAuthは codex mcp login
MCPの起動待ち延長mcp_servers.<id>.startup_timeout_sec既定 10
プロファイル~/.codex/<name>.config.toml--profile <name>。旧 [profiles.x] は不可
ターン完了通知notify["prog", "arg", ...]。JSONが末尾引数
環境変数を絞るshell_environment_policy.inherit / .filtersall / core / none
Windowsサンドボックスwindows.sandboxelevated / unelevated
プロジェクト信頼projects.'<path>'.trust_leveltrusted / untrusted
別プロバイダmodel_provider + [model_providers.<id>]base_url / env_key / wire_api
履歴保存history.persistencesave-all / none
未知キー検出--strict-config(フラグ)設定ずれの点検用

公式リファレンスにはJSONスキーマ(config-schema.json)へのリンクもあり、エディタで補完・検証したい場合はそちらを参照するよう案内されています。

版による差分に注意します。 筆者環境の0.144.1と公式資料(0.154.0相当)で、approval_policy の untrusted の扱いが違いました。CLIの --help にある値が公式で廃止済みということがあるので、設定を書くときは --help より公式Configuration Referenceを正とし、--strict-config で未知キーを検出する運用が安全です。

まとめ

  • 3層で運用する: ~/.codex/config.toml(基本)、<name>.config.toml(用途別の差分)、-c(その場限り)
  • プロファイルは別ファイル方式。[profiles.x] は0.134.0以降読まれない
  • 推論量(model_reasoning_effort)と速度(service_tier)は別々に決める。基準は medium + Standard、深さが足りなければ推論量を上げ、待ち時間が問題ならFast
  • MCPは [mcp_servers.<id>]。stdioは command/args、HTTPは url。起動10秒・ツール60秒が既定で、required = true は起動失敗を致命化する
  • 権限は approval_policy(on-request / never)と sandbox_mode の2キー。workspace-write でもネットは既定で閉じている
  • notify はデスクトップアプリが上書きすることがある。[tui] の通知とは別物

筆者の設定ファイルで一番効いていたのは、凝ったキーではなく「daily と deep の2プロファイルを別ファイルに分けた」ことでした。基本設定を触らずにモデルと推論量だけ切り替えられる——config.tomlで最初に作るべきはその2ファイルです。

関連して読む

この記事の情報・検証メモ
Tags
公開日
情報確認
参考リンク
10件
更新性
定期更新
更新管理

仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。

検証メモ
Codex CLI 0.144.1 (Windows 11) ~/.codex/config.toml、daily.config.toml、deep.config.toml の実運用設定 (2026-09-14 時点) codex --help / codex mcp add --help / codex features --help 実行日 2026-09-14
図解を保存・共有

記事の要点を1枚にまとめました。画像は新しいタブで開いて保存できます。

Codex CLI config.toml 逆引き:model・推論量・Fast・sandbox・mcp_servers config.tomlは「基本値を1つ、差分はプロファイルファイル、一時変更は -c」で分けると壊れない 優先順位:CLIフラグ・-c > プロジェクト .codex/config.toml > プロファイル > ~/.codex/config.toml。プロジェクト層は trust_level = "trusted" のときだけ読まれる。[profiles.x] テーブルは 0.134.0 以降読まれない。 用途別の最小セット:日常用: model + model_reasoning_effort + web_search を別ファイルに。MCP: [mcp_servers.<name>] に command/args か url。権限を絞る: sandbox_mode = "read-only" + approval_policy = "on-request"。 落とし穴:workspace-write でも network_access は既定 false。MCP startup_timeout_sec 既定10秒は初回起動に足りないことがある。KEY/SECRET/TOKEN を含む環境変数は既定で子プロセスに渡らない。
Codex CLI config.toml 逆引き:model・推論量・Fast・sandbox・mcp_servers 記事の要約 2026.09.14 設計・ワークフロー
Primary sources

一次情報・参考リンク

About the author
SHAYOUWORLD

日本の公共データAPIを使うMCPサーバーを作って公開し、ローカルLLMを自分のGPUで測った記録を、一次情報・検証ログ・失敗例とあわせて整理します。