Codex は複数の場所から設定を読み込みます。ユーザーのデフォルト設定は ~/.codex/config.toml に保存されます。プロジェクトごとに設定を上書きするには、.codex/config.toml ファイルを追加します。セキュリティのため、Codex がプロジェクトの .codex/ 配下の設定を読み込むのは、そのプロジェクトを信頼済みにした場合だけです。
Codex の設定ファイル
Codex はユーザー単位の設定を ~/.codex/config.toml に保存します。設定の適用範囲を特定のプロジェクトやサブフォルダーに限定するには、リポジトリ内の対象ディレクトリに .codex/config.toml ファイルを追加します。
Codex の IDE 拡張機能から設定ファイルを開くには、右上の歯車アイコンを選択し、Codex Settings > Open config.toml を選択します。
CLI と IDE 拡張機能は同じ階層の設定を読み込みます。これらの設定で次のことができます。
- デフォルトのモデルとプロバイダーを指定する
- 承認ポリシーとサンドボックスの設定を変更する
- MCP サーバーを設定する
設定の優先順位
要件は許可される動作を制限し、設定値はデフォルトの動作を定めます。Work Cloud からローカルコンピューターにアクセスする際は、次の要件が適用されます。
- ポリシー間の優先順位:優先順位の低いポリシーの方が具体的でも、優先順位の高いポリシーが適用されます。
- 同一ポリシー内の優先順位:OS 固有の環境設定による上書き、全 OS 共通の環境設定による上書き、Global の順に優先されます。
- ローカル実行:MDM の要件と従来の管理対象デバイス向け要件は、Agent Security より優先されます。デバイスのシステム要件ファイルの優先順位は Agent Security より低くなります。
- Work Cloud:Work のクラウドコンテナには、既存の Work Cloud ポリシーが引き続き適用されます。ローカルアクセスを利用する Work および dot では、管理ポリシーが有効な場合、共有クラウドオーケストレーターにはサポート対象の Global ポリシーが適用されます。接続先のコンピューターには、該当するローカル実行要件が適用されます。
一部の要件には、フィールドごとに異なるマージ規則があります。ポリシーの適用範囲と実行時の制限については管理対象の設定を、Work との互換性については設定リファレンスを参照してください。
Codex は次の優先順位で設定値を決定します。上にあるものほど優先されます。
- CLI フラグと
--configによる上書き - プロジェクトの設定ファイル
.codex/config.toml(信頼済みのプロジェクトのみ。プロジェクトルートから現在の作業ディレクトリまでの各階層を順に読み込み、作業ディレクトリに近いファイルを優先) - プロファイルファイルのうち、
--profile profile-nameで選択したもの(~/.codex/profile-name.config.toml) - ユーザー設定
~/.codex/config.toml - クラウド管理の
config.tomlのデフォルト値(サインイン中のワークスペース向けに配信されている場合) - システム設定(存在する場合)。Unix では
/etc/codex/config.toml - 組み込みのデフォルト値
この優先順位を利用して、共通のデフォルト値は config.toml に設定し、プロファイルファイルにはプロファイルごとに異なる値だけを記述します。
クラウド管理の設定とシステム設定では、プラグインのマーケットプレイスを定義し、プラグインをデフォルトで有効にするかどうかを指定できます。これらの設定は、requirements.toml で強制されるポリシーとは別に扱われます。プラグインのマーケットプレイスとデフォルト設定を参照してください。
プロジェクトを信頼しない設定にすると、Codex はそのプロジェクトの .codex/ 配下にある設定、フック、ルールを読み込みません。ユーザー設定とシステム設定は引き続き読み込まれ、ユーザー単位およびグローバルのフックとルールも適用されます。
-c/--config を使って今回の実行に限り設定を上書きする方法や、TOML の引用符の使い方については、高度な設定を参照してください。
管理対象のマシンでは、組織が requirements.toml を使って制約を強制する場合もあります。たとえば、approval_policy = "never" や sandbox_mode = "danger-full-access" を禁止できます。管理対象の設定と管理者が強制する要件を参照してください。
よく使う設定項目
よく変更される設定項目をいくつか紹介します。
デフォルトのモデル
CLI と IDE で Codex がデフォルトで使用するモデルを選択します。
model = "gpt-6.1-sol"承認プロンプト
生成したコマンドの実行前に、Codex が一時停止して承認を求める条件を指定します。
approval_policy = "on-request"
on-request と never の動作の違いについては、承認プロンプトを表示せずに実行する方法とサンドボックスと承認の一般的な組み合わせを参照してください。既存の設定で approval_policy = "untrusted" を使用している場合は、廃止された untrusted 承認ポリシーからの移行を参照してください。
サンドボックスのレベル
コマンドの実行中に Codex がファイルシステムやネットワークにアクセスできる範囲を調整します。
sandbox_mode = "workspace-write"
保護対象のパス(.git、.agents、.codex、.aws)やネットワークのデフォルト設定など、モードごとの動作については、サンドボックスと承認、書き込み可能なルート内の保護対象パス、ネットワークアクセスを参照してください。
権限プロファイル
Codex では、名前付きの権限プロファイルを使って、ファイルシステムとネットワークのポリシーを再利用できます。組み込みのプロファイルは :read-only、:workspace、:danger-full-access です。カスタムプロファイルは [permissions.<name>] テーブルで定義し、default_permissions に同じ名前を指定します。権限を参照してください。
Windows のサンドボックスモード
Windows では、デバイスとポリシーが対応している場合は MXC を優先します。フォールバック用に従来の実装を設定します。
[windows]
sandbox = "elevated" # Legacy fallback
[features]
prefer_mxc = true
unelevated は、管理者権限でのセットアップができず、組織のポリシーで許可されている場合に限り使用してください。互換性に関する制限とロールアウトの制御については、Windows サンドボックスガイドを参照してください。
ウェブ検索モード
Codex では、ローカルのチャットでウェブ検索がデフォルトで有効になっており、検索結果はウェブ検索キャッシュから取得します。このキャッシュは OpenAI が管理する検索結果のインデックスです。キャッシュモードでは、ウェブページに直接アクセスせず、あらかじめインデックスに登録された結果を返します。これにより、任意のウェブページから内容を直接取得する際のプロンプトインジェクションのリスクを抑えられます。ウェブ検索の結果は信頼できないデータとして扱ってください。--yolo またはその他のフルアクセスのサンドボックス設定を使用している場合、ウェブ検索ではデフォルトで最新の結果を直接取得します。web_search でモードを選択します。
"cached"(デフォルト)は、ウェブ検索キャッシュから結果を取得します。"indexed"は、検索インデックスを通じてリクエストが許可された場合に限り、外部のウェブへのアクセスを許可します。"live"は、ウェブから最新のデータを取得します(--searchと同じ動作です)。"disabled"は、ウェブ検索ツールを無効にします。
web_search = "cached" # default; serves results from the web search cache
# web_search = "indexed" # gate external web access through the search index
# web_search = "live" # fetch the most recent data from the web (same as --search)
# web_search = "disabled"
推論強度
対応するモデルでは、推論強度を調整できます。
model_reasoning_effort = "medium"
コミュニケーションスタイル
組み込みのパーソナリティ指示を省くには、次のように設定します。
personality = "none"
この設定により、モデルの組み込み指示から Personality セクションが除外されます。明示的に指定したカスタムの基本指示には影響しません。従来の設定値 friendly と pragmatic では、スタイルを選択できなくなりました。Codex での /personality コマンドの提供も終了しました。
TUI のキーマップ
tui.keymap でターミナルのショートカットをカスタマイズできます。一部のコンポーザー操作では、対応する tui.keymap.global のキー割り当てがフォールバックとして使われます。コンテキスト別のキー割り当てに対応している場合は、そちらが優先されます。空のリストを指定すると、その操作のキー割り当てが解除されます。
[tui.keymap.global]
open_transcript = "ctrl-t"
[tui.keymap.composer]
submit = ["enter", "ctrl-m"]
[tui.keymap.chat]
interrupt_turn = "f12"
コマンドの実行環境
Codex が起動するコマンドに渡す環境変数を指定できます。必要な変数だけを残すには、変数名をキーにしてフィルターを設定します。
[shell_environment_policy]
ignore_default_excludes = false
[shell_environment_policy.filters]
"PATH" = "include"
"HOME" = "include"
ignore_default_excludes のデフォルト値は true です。この場合、名前に KEY、SECRET、TOKEN のいずれかを含む変数を自動で除外する処理はスキップされます。これらの変数を自動で除外するには false に設定します。除外ルール、優先順位、従来の設定については、シェル環境ポリシーを参照してください。
ログディレクトリ
Codex がローカルログファイルを書き込む場所を変更できます。log_dir を明示的に設定すると、オプトイン方式のプレーンテキストの TUI ログも有効になり、そのディレクトリに codex-tui.log が書き込まれます。
log_dir = "/absolute/path/to/codex-logs"
今回の実行に限り変更する場合は、CLI からも指定できます。
codex -c log_dir=./.codex-log
機能フラグ
[features] テーブルを config.toml に記述すると、オプション機能や実験的な機能の有効・無効を切り替えられます。
よく使う機能フラグ
| キー | デフォルト値 | 成熟度 | 説明 |
|---|---|---|---|
apps |
true | 安定版 | アプリ(コネクタ)との連携を有効にします。 |
goals |
true | 安定版 | 目標の永続化と自動継続を有効にします。 |
hooks |
true | 安定版 | hooks.json またはインラインの [hooks] で定義したライフサイクルフックを有効にします。フックを参照してください。 |
fast_mode |
true | 安定版 | Fast モードの選択と service_tier = "fast" による実行を有効にします。 |
memories |
false | 安定版 | メモリを有効にします。 |
multi_agent |
true | 安定版 | サブエージェント間の連携ツールを有効にします。 |
remote_plugin |
true | 安定版 | リモートのプラグインカタログを有効にします。 |
shell_snapshot |
true | 安定版 | シェル環境のスナップショットを作成し、コマンドを繰り返し実行する際の処理を高速化します。 |
shell_tool |
true | 安定版 | コマンド実行ツールを有効にします。 |
unified_exec |
true | 安定版 | 中断後に再開できるコマンド実行を有効にします。無効にできるのは管理対象の要件を使う場合だけです。 |
web_search |
true | 非推奨 | 従来の切り替え設定です。トップレベルの web_search 設定を使用してください。 |
web_search_cached |
false | 非推奨 | トップレベルの設定が未指定の場合に web_search = "cached" に対応する従来の切り替え設定です。 |
web_search_request |
false | 非推奨 | トップレベルの設定が未指定の場合に web_search = "live" に対応する従来の切り替え設定です。 |
この表では、ユーザーがよく使うフラグを取り上げています。内部向けの機能や開発中の機能をすべて網羅しているわけではありません。成熟度の列では、「実験段階」「ベータ版」「安定版」などのラベルを使用します。各ラベルの意味については、機能の成熟度を参照してください。
ライフサイクルフックの設定については、フックを参照してください。
機能の有効化
config.tomlにfeature_name = trueを追加します。記述先は[features]テーブルです。- CLI から有効にするには、
codex --enable feature_nameを実行します。 - 複数の機能を有効にするには、
codex --enable feature_a --enable feature_bを実行します。 - 機能を無効にするには、対象のキーの値を
falseにします。この設定はconfig.tomlで行います。