Codexの設定とは?config.tomlの場所・主な項目・変え方を解説
この記事でわかること
- Codexの設定を変える3つの入口(画面・config.toml・起動時のオプション)
- config.tomlの場所と、設定が決まる優先順位
- モデル・承認・サンドボックス・Web検索など、よく使う設定項目
- アプリ・IDE拡張・CLIそれぞれの設定画面とコマンド
- 日本語で使うときの考え方と、プロファイルでの切り替え
- 設定が効かないときの確認手順と、古い設定の書き換え
目次
- Codexの設定の全体像
- config.tomlとは
- 書き方の基本
- 設定ファイルの場所と優先順位
- 優先順位
- 管理者の「要件」は別の層
- プロジェクトの設定を信頼するかどうか
- 設定ファイルの開き方
- よく使う設定項目
- モデルと考える深さ
- Web検索の方式
- 指示と記憶
- 機能のオン・オフ(features)
- 最初に整えるときの設定例
- 画面ごとの設定とコマンド
- ChatGPTデスクトップアプリ
- IDE拡張
- CLIのスラッシュコマンド
- ターミナルの表示と通知(tui)
- 日本語で使うときの設定
- 承認とサンドボックスの設定
- 承認の方針(approval_policy)
- サンドボックスのモード(sandbox_mode)
- よく使う組み合わせ
- ネットワークと書き込み先の設定
- コマンドに渡す環境変数を絞る
- プロファイルとプロジェクトの設定
- プロファイルで切り替える
- 1回だけ上書きする(-c)
- プロジェクトの設定で、チームの標準をそろえる
- 使い分けの目安
- 設定が効かないとき
- 確認の順番
- 症状から探す
- 古い記事の設定を書き換える
- ログと環境変数で調べる
- よくある質問
- まとめ
「Codexのモデルを変えたい」「確認の画面を減らしたい」「設定ファイルがどこにあるのか分からない」「ネットで見た設定を書いたのに効かない」。Codexを使い込むほど、設定まわりで迷う場面が増えてきます。
Codexの設定は、画面の設定、設定ファイル(config.toml)、起動時のオプションやスラッシュコマンドの3つの入口から変えられます。入口ごとに得意なことが違い、同じ項目が複数の場所に書かれているときは、決まった順番で優先されます。この仕組みを知っておくと、「なぜ効かないのか」を自分で切り分けられるようになります。
この記事では、設定の全体像、設定ファイルの場所と優先順位、よく使う項目、画面ごとの設定、承認とサンドボックスの設定、切り替えの方法、効かないときの確認手順を順に解説します。内容は2026年10月時点の公式ドキュメントをもとにしています。設定項目は追加や変更が続いているため、細かい仕様は公式の設定リファレンスもあわせて確認してください。
Codexの設定の全体像

Codexには、ChatGPTのデスクトップアプリ、ターミナルで使うCLI、エディタに入れるIDE拡張という複数の使い方があります。設定の入口もこれに合わせていくつかありますが、中身は共通の設定ファイルに集まると考えると整理しやすくなります。
| 入口 | 変えられること | 向いている場面 |
|---|---|---|
| 画面の設定 | アプリの「Settings」、IDE拡張の「Codex Settings」から、見た目・通知・キー操作・よく使う項目を変える | 設定ファイルを触らずに変えたいとき |
| 設定ファイル(config.toml) | モデル、承認、サンドボックス、Web検索、MCPサーバー、フックなど、ほとんどの項目 | 設定を残して、毎回同じ状態で使いたいとき |
| 起動時のオプション・スラッシュコマンド | --modelや-cでの一時的な上書き、/modelや/permissionsでの切り替え | その場だけ変えたいとき |
config.tomlとは
config.tomlは、Codexの設定を書いておく文章ファイルです。「TOML」という、人が読み書きしやすい形式で書きます。公式ドキュメントでは、CLIとIDE拡張が同じ設定の層を共有していると説明されています。Windowsのアプリも、ネイティブ版のCodexと同じCodexのホームフォルダを使います。
設定ファイルでできることとして、公式では次の3つが最初に挙げられています。
- 既定のモデルとプロバイダー(接続先)を決める
- 承認の方針とサンドボックスの設定を決める
- MCPサーバー(外部のツールやデータにつなぐ仕組み)を設定する
実際にはこれ以外にも、見た目や通知、履歴、フック、サブエージェントなど、多くの項目が書けます。全項目は公式の設定リファレンスに一覧があります。
書き方の基本
TOMLは「項目名 = 値」の形で書きます。文字列は引用符で囲み、真偽はtrue・falseと小文字で書きます。行頭の#はコメントで、Codexには読まれません。
# ~/.codex/config.toml の例
model = "gpt-6.1-sol"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
web_search = "cached"
[features]
memories = true
角かっこで囲んだ[features]は「テーブル」と呼ばれるまとまりで、その下に書いた項目はまとまりの中の設定になります。公式のサンプルにも書かれているとおり、テーブルに属さない項目は、最初のテーブルより前に書く必要があります。[features]の後ろにmodel = ...を書くと、featuresの中の項目として読まれてしまいます。
Windowsで書くときのTOMLの決まり
これはCodex固有ではなくTOMLの仕様ですが、Windowsでは引っかかりやすい点です。"C:\Users\..."のように、二重引用符の中の円記号(バックスラッシュ)は特別な意味を持つため、パスは'C:\Users\me\codex-logs'のように一重引用符で書くか、C:/Users/me/codex-logsのように斜線で書きます。ファイルはUTF-8で保存します。
設定ファイルの場所と優先順位

設定ファイルは1か所ではなく、役割の違う複数の場所に置けます。まず、どこに何を置くのかを整理します。
| 種類 | 場所 | 役割 |
|---|---|---|
| ユーザー | ~/.codex/config.toml(Windowsでは%USERPROFILE%\.codex\config.toml) | 自分用の既定値 |
| プロジェクト | リポジトリやフォルダの中の.codex/config.toml | そのプロジェクトだけの上書き。信頼したプロジェクトのみ読み込まれる |
| プロファイル | ~/.codex/プロファイル名.config.toml | 作業の種類ごとの設定。--profileで選ぶ |
| システム | /etc/codex/config.toml(Unix系) | 端末全体の既定値 |
| クラウド管理 | ワークスペースから配られる | 組織が配る既定値 |
| 要件(requirements.toml) | 管理者が配る | 設定できる範囲の制限。たとえばapproval_policy = "never"を禁止する |
Codexの状態を保存する場所はCODEX_HOMEという環境変数で決まり、指定しなければ~/.codexです。CODEX_HOMEを自分で指定する場合は、フォルダがあらかじめ存在している必要があると公式に書かれています。このフォルダには、設定のほかに認証情報、履歴、ログ、スキルなどが入ります。
優先順位
同じ項目が複数の場所に書かれているときは、次の順番で決まります。上にあるほど優先されます。
| 優先順位 | 設定の場所 |
|---|---|
| 1(最優先) | 起動時のオプションと、-c・--configでの上書き |
| 2 | プロジェクトの.codex/config.toml(信頼したプロジェクトのみ。作業中の場所に近いものが優先) |
| 3 | --profileで選んだプロファイルのファイル |
| 4 | ユーザーの~/.codex/config.toml |
| 5 | クラウド管理の設定(配られている場合) |
| 6 | システムの設定(ある場合) |
| 7 | 組み込みの初期値 |
たとえば、ユーザーの設定でmodel = "A"、あるプロジェクトの設定でmodel = "B"と書いてあれば、そのプロジェクトで作業するときだけBが使われます。さらにcodex --model Cで起動すれば、その回だけCになります。
プロジェクトの設定が複数ある場合は、プロジェクトのルートから作業中のフォルダまでの.codex/config.tomlがすべて読み込まれ、同じ項目は作業中のフォルダに近いファイルが勝ちます。プロジェクトのルートは、既定では.gitがあるフォルダです。
管理者の「要件」は別の層
会社のPCでは、管理者がrequirements.tomlなどで制限をかけていることがあります。公式の説明では、要件は「できることの範囲」を縛り、設定値は「その範囲の中での既定値」を決めるものです。たとえば要件でapproval_policy = "never"が禁止されていれば、config.tomlに書いても反映されません。
「書いたのに変わらない」ときは、要件で制限されている可能性があります。確認の方法は、後半の「設定が効かないとき」で紹介します。
プロジェクトの設定を信頼するかどうか
プロジェクトの.codex/フォルダには、設定だけでなくフックやルールも入れられます。そのため、Codexは信頼したプロジェクトのときだけ、このフォルダを読み込みます。公式の説明では、信頼しないプロジェクトでは、プロジェクト内の設定・フック・ルールがすべて読み飛ばされます。ユーザーとシステムの設定は、そのまま読み込まれます。
他人のリポジトリを開くときの考え方
ダウンロードしたリポジトリの.codex/には、承認を緩める設定やフックが入っているかもしれません。中身を確認するまでは信頼せず、確認してから信頼する流れにしておくと安全です。フックの仕組みは「Codex Hooks」の記事で解説しています。
| やりたいこと | 設定する場所 |
|---|---|
| 自分のすべての作業に効かせる | ユーザーの~/.codex/config.toml |
| 特定のリポジトリだけに効かせる | そのリポジトリの.codex/config.toml |
| 作業の種類で切り替える | プロファイルのファイル |
| 1回だけ変える | 起動時のオプション、-c、スラッシュコマンド |
設定ファイルの開き方
IDE拡張では、右上の歯車アイコンから「Codex Settings」を選び、「Open config.toml」を選ぶと、いま使っている設定ファイルが開きます。アプリとCLIでは、上の表の場所にあるファイルをエディタで開きます。
公式ドキュメントには、設定ファイルが最初から存在するかどうかや、新しく作る手順の説明はありません。見つからないときは、IDE拡張の「Open config.toml」を使うか、同じ名前のファイルを上の場所に作ってから、Codexを開き直して/statusなどで確かめてください。
よく使う設定項目

設定項目は非常に多いのですが、日常的に触るのは数個です。公式の「Config basics」で「最も変更されることが多い」と紹介されているものを中心に、表にまとめます。
| 項目 | 書き方の例 | 意味 |
|---|---|---|
model | "gpt-6.1-sol" | CLIとIDE拡張で使う既定のモデル。アカウントやワークスペースで使えるモデルを指定する |
model_reasoning_effort | "medium" | モデルが考える深さ。選べる値はモデルとクライアントによって違う |
approval_policy | "on-request" | コマンドを実行する前に、いつ確認を求めるか |
sandbox_mode | "workspace-write" | コマンドを実行するときの、ファイルとネットワークへのアクセス範囲 |
web_search | "cached" | Web検索の方式 |
log_dir | "/absolute/path/to/codex-logs" | ログの保存先。指定すると、codex-tui.logも保存される |
モデルの選び方や、考える深さの目安は「Codexのモデル」の記事で詳しく解説しています。ここでは、設定ファイルでの書き方に絞って紹介します。
モデルと考える深さ
モデルに関する項目は、modelとmodel_reasoning_effortのほかにもあります。公式の設定リファレンスでは、次のような項目が載っています。
| 項目 | 役割 |
|---|---|
review_model | /reviewだけで使うモデル。指定しなければ、いま使っているモデルになる |
plan_mode_reasoning_effort | 計画モードだけの考える深さ。指定しなければ、計画モードの標準の設定になる |
model_reasoning_summary | 推論の要約の詳しさ。auto・concise・detailed・noneから選ぶ |
model_verbosity | 回答の長さの傾向。low・medium・highから選ぶ |
service_tier | サービスの階層。fastを指定すると高速モードになる |
高速モード(Fast)は、対応するモデルの速度を上げる代わりに、使用量を多く消費します。公式の「Speed」のページでは、対象のモデルでは、サブスクリプションに含まれる使用量を標準の2.5倍で消費すると説明されています。常用する設定にする前に、使用量への影響を確かめてください。使用量の確認方法は「Codexの使用量の確認」の記事で解説しています。
Web検索の方式
Web検索は、既定で有効です。ただし既定の方式は、リアルタイムのWebを見に行くものではなく、OpenAIが維持している検索用のインデックス(キャッシュ)から結果を返す方式です。公式では、任意のWebページから指示が紛れ込むリスク(プロンプトインジェクション)を減らすためと説明されています。
| 値 | 動き |
|---|---|
"cached"(既定) | キャッシュ(インデックス)から結果を返す |
"indexed" | 検索インデックスが許可したときだけ、外部のWebにアクセスする |
"live" | 最新のデータをWebから取得する。--searchと同じ |
"disabled" | Web検索のツールを使えなくする |
注意したいのは、--yoloなどのフルアクセスのサンドボックス設定にすると、Web検索の既定がliveに変わる点です。承認とサンドボックスを緩めるときは、Web検索の方式も一緒に見直してください。
指示と記憶
Codexへの指示は、基本的にはAGENTS.mdに書きます。設定ファイルには、それを補う項目があります。
| 項目 | 役割 |
|---|---|
project_doc_max_bytes | AGENTS.mdから読み込む最大のバイト数。公式のサンプルでは既定が32768 |
project_doc_fallback_filenames | AGENTS.mdが無いときに探す、別のファイル名 |
project_root_markers | プロジェクトのルートを見つけるための目印。既定は.git |
developer_instructions | セッションに追加する開発者向けの指示。サンプルでは、AGENTS.mdより前に差し込まれると説明されている |
model_instructions_file | 組み込みの基本指示を、ファイルの内容で置き換える |
日常の指示は、AGENTS.mdに書くのが基本です。model_instructions_fileは組み込みの指示を置き換えるため、特別な理由がなければ使わないほうが安全です。AGENTS.mdの書き方や読み込まれる順番は「AGENTS.mdの書き方」の記事にまとめています。
機能のオン・オフ(features)
設定ファイルの[features]では、機能ごとのオン・オフを切り替えられます。公式の「Config basics」に載っている主なものは次のとおりです。
| 項目 | 既定 | 内容 |
|---|---|---|
apps | true | アプリ(コネクタ)との連携 |
goals | true | ゴールの保存と、自動での続きの作業 |
hooks | true | フック(hooks.jsonや[hooks]から読み込む) |
fast_mode | true | 高速モードの選択 |
multi_agent | true | サブエージェントの連携ツール |
remote_plugin | true | リモートのプラグイン一覧 |
shell_snapshot | true | シェルの環境を記録して、繰り返しのコマンドを速くする |
shell_tool | true | コマンド実行のツール |
unified_exec | true | 再開できるコマンド実行。管理者の要件でのみ無効にできる |
memories | false(実験的) | メモリー機能 |
機能をオンにする方法は3つあります。config.tomlの[features]に機能名 = trueと書く方法、起動時にcodex --enable 機能名と指定する方法、codex features enable 機能名で設定ファイルに保存する方法です。codex features listで、機能の一覧と、いまの状態を確認できます。
「開発中」の機能は、安易にオンにしない
公式のリファレンスには、開発中でオフが既定の機能がいくつも載っています。これらは仕様が変わったり、使えなくなったりすることがあります。ネットの記事で見かけた機能名をそのままオンにする前に、公式のリファレンスで、安定版(stable)かどうかを確認してください。開発中の機能をオンにすると警告が出ます。警告を消すsuppress_unstable_features_warningもありますが、理由がなければ使わないほうが無難です。
最初に整えるときの設定例
個人で使い始めるときの設定ファイルの例です。モデルは、自分のアカウントで使えるものに書き換えてください。公式のサンプルが示している値のうち、基本的なものだけを書いています。
# ~/.codex/config.toml
model = "gpt-6.1-sol" # 自分のアカウントで使えるモデルに変える
model_reasoning_effort = "medium"
approval_policy = "on-request" # 必要なときに確認を求める
sandbox_mode = "workspace-write" # 作業フォルダの中だけ書き込める
web_search = "cached" # 既定のWeb検索
[sandbox_workspace_write]
network_access = false # コマンドの外部通信は許可しない
この例は、公式が「Auto」と呼ぶ標準的な組み合わせ(作業フォルダの中は自動、外への書き込みやネットワークは確認)に相当します。まずはこの状態で使い、困った点が出てから項目を足していくのがおすすめです。
画面ごとの設定とコマンド

設定ファイルを触らなくても、アプリ・IDE拡張・CLIのそれぞれに設定の入口があります。ここでは、画面ごとに何を変えられるのかを整理します。
ChatGPTデスクトップアプリ
アプリの設定は、メニューから「Settings」を開くか、WindowsではCtrl+,、MacではCmd+,で開きます。公式の設定ページに載っている項目は次のとおりです。
| 項目 | できること |
|---|---|
| General | Enterで送信するか、修飾キーを必須にするかを選ぶ。作業中に送ったメッセージが、いまの作業を調整するのか、次の作業を待つのかも選べる。「Prevent sleep while running」はMacとLinuxで使える |
| Keyboard shortcuts | コマンドの割り当ての確認・変更・初期化 |
| Notifications | 作業の完了通知を出すタイミング |
| Appearance | テーマ、色、UIとコードのフォント |
| Browser | ブラウザ操作の権限。閲覧・ダウンロード・アップロードごとに、確認を求める・常に許可・ブロックを選べる |
| Computer Use | デスクトップの操作に関する設定の確認 |
| Personalization | 個人用のAGENTS.mdの編集、Codexのメモリーのオン・オフ |
| Archived chats | アーカイブしたチャットの一覧と復元 |
公式の設定ページには、モデルや承認、サンドボックスの項目は載っていません。これらは、設定ファイルで変えます。
IDE拡張
IDE拡張の設定は、2つの層に分かれています。公式の説明では、次のとおりです。
- Codexの設定:モデル、考える深さ、権限、サンドボックス、MCPサーバーなど。config.tomlから読み込まれ、CLIと共通
- エディタの設定:拡張がエディタの中でどう動くか。
chatgpt.*という名前で、エディタ自身の設定の仕組みに保存される
Codexの設定は、サイドバーの歯車アイコンから「Codex Settings」で開きます。エディタの設定は、エディタの設定画面で@ext:openai.chatgptや「Codex」で検索して変えます。主な項目は次のとおりです。
| 項目 | 既定 | 内容 |
|---|---|---|
chatgpt.composerEnterBehavior | enter | Enterで必ず送信(enter)、複数行のときだけCtrl/Cmd+Enter(cmdIfMultiline)、常に修飾キーが必要(cmdAlways) |
chatgpt.followUpQueueMode | queue | 作業中に送ったメッセージを、次の作業まで待たせる(queue)か、いまの作業に反映させる(steer)か |
chatgpt.reviewDelivery | inline | /reviewを、いまのチャットで実行する(inline)か、別のチャットで実行する(detached)か |
chatgpt.localeOverride | 自動 | Codexの画面の言語。空のままなら、自動で判定される |
chatgpt.openOnStartup | false | 拡張の起動が終わったときに、サイドバーを前面に出す |
chatgpt.runCodexInWindowsSubsystemForLinux | false | Windowsのみ。WSLが使えるときに、CodexをWSLの中で動かす。変更するとVS Codeが再読み込みされる |
公式には、chatgpt.*の項目はIDE拡張のものであり、config.tomlには書かないと明記されています。WSLで使う場合の違いは「Windowsでの使い方」の記事で解説しています。
CLIのスラッシュコマンド
CLIでは、対話中にスラッシュコマンドで設定を変えられます。公式のコマンド一覧によると、設定ファイルに保存されるものと、そのセッションだけのものがあります。
| コマンド | できること | 設定への保存 |
|---|---|---|
/model | モデルと、選べる場合は考える深さを選ぶ | 公式のコマンド一覧には保存の記載がない。変わったかは/statusで確認する |
/fast | 高速モードのオン・オフ | 選択が保存される |
/permissions | 確認なしで実行できる範囲を変える(Auto、Read Onlyなど) | 変更後の動作に反映される |
/theme | シンタックスハイライトの配色 | tui.theme |
/statusline | 画面下の状態表示に出す項目を選ぶ | tui.status_line |
/title | ターミナルのタイトルに出す項目を選ぶ | tui.terminal_title |
/keymap | キー操作の割り当てを変える | tui.keymap |
/memories | メモリーを使うか、今後のメモリーの材料にするか | チャットごとの設定 |
/status | 使用中のモデル、承認の方針、書き込める場所、使用量の確認 | 表示のみ |
/debug-config | 設定の層と、管理者の要件の診断 | 表示のみ |
ほかにも、/importで、Claude CodeやCursorの設定・プロジェクト・チャットを取り込めます。コマンドの一覧は、公式の「Slash commands in Codex CLI」のページにあります。
ターミナルの表示と通知(tui)
CLIの画面まわりの設定は、[tui]というテーブルにまとまっています。公式のリファレンスに載っている主な項目は次のとおりです。
| 項目 | 値 | 内容 |
|---|---|---|
notifications | 真偽、またはイベントの一覧 | 通知のオン・オフ。agent-turn-completeのように、イベントの種類で絞れる |
notification_method | auto / osc9 / bel(既定はauto) | 通知の出し方。autoでは、対応していればosc9、そうでなければbelが使われる |
notification_condition | unfocused / always(既定はunfocused) | ターミナルが前面にないときだけ通知するか、常に通知するか |
animations | 真偽(既定はtrue) | ようこそ画面やスピナーのアニメーション |
alternate_screen | auto / always / never(既定はauto) | neverにすると、ターミナルのスクロールバックが残る |
vim_mode_default | 真偽(既定はfalse) | 入力欄をVimのノーマルモードで始める |
show_tooltips | 真偽(既定はtrue) | ようこそ画面のヒント表示 |
auto_recap | 真偽(既定はtrue) | ターミナルが前面にない間の、自動のあらすじ作成。/recapは使える |
長い作業を任せている間に別の作業をすることが多い方は、notificationsとnotification_conditionを見直すと、完了に気づきやすくなります。
日本語で使うときの設定
「Codexを日本語で使いたい」という場合は、画面の言語と返答の言語を分けて考えます。
| 対象 | 公式ドキュメントで確かめられること |
|---|---|
| IDE拡張の画面 | chatgpt.localeOverrideで、画面の言語を指定できる。空のままなら自動で判定される |
| アプリ・CLIの画面 | 公式の設定ページには、言語を選ぶ項目の記載がない(未確認) |
| 返答の言語 | 「返答の言語」を決める専用の設定項目は、公式のリファレンスに載っていない |
返答の言語を固定したいときは、AGENTS.mdに「回答は日本語で書く」のように書いておく方法が確実です。アプリの「Settings」の「Personalization」からは、個人用のAGENTS.mdを編集できます。リポジトリのAGENTS.mdに書けば、そのプロジェクトで作業する人全員に反映されます。
# AGENTS.md の例
- 回答と説明は日本語で書く。
- 専門用語は、初めて出てきたときに短く説明する。
- コードのコメントは日本語で書く。
設定ファイルのdeveloper_instructionsにも、同じ内容を書けます。ただし、複数のプロジェクトで共通にしたいだけなら、個人用のAGENTS.mdのほうが管理しやすくなります。
personalityは言語の設定ではない
設定ファイルにあるpersonalityは、言語や口調を選ぶ項目ではありません。公式では「非推奨の互換用の設定」とされ、friendlyやpragmaticを指定しても、スタイルは選ばれなくなっています。noneは、組み込みの指示から「人格」の部分を省くだけです。/personalityのコマンドも使えません。古い記事の情報には注意してください。
承認とサンドボックスの設定

設定のなかでも、仕事で使うなら最初に理解しておきたいのが、承認とサンドボックスです。Codexの安全性は、次の2つの層で決まります。
- サンドボックス:コマンドを実行するときに、技術的に何ができるか(どこに書き込めるか、ネットワークに出られるか)
- 承認の方針:どんなときに、実行の前に人へ確認を求めるか
この2つは別々の設定で、組み合わせて使います。公式の説明では、CLIとIDE拡張はOSの仕組みでサンドボックスを強制し、既定ではネットワークアクセスなし・書き込みは作業中のワークスペースの中だけになっています。
承認の方針(approval_policy)
| 値 | 動き |
|---|---|
"on-request" | 必要なときに、Codexが確認を求める。対話での利用に向く |
"never" | 確認を求めない。自動実行などの非対話の利用向け。サンドボックスの範囲の中で最善を尽くす |
{ granular = { ... } } | 確認の種類ごとに、表示するか自動で拒否するかを決める |
granular(細かい指定)では、sandbox_approval(サンドボックスの外への実行)、rules(ルールによる確認)、mcp_elicitations(MCPからの確認)、request_permissions(権限の要求)、skill_approval(スキルのスクリプト)の5種類を、それぞれtrue・falseで指定します。trueにした種類は確認が表示され、falseにした種類は自動で拒否されます。
古い「untrusted」は使えなくなっている
approval_policy = "untrusted"は、すでに廃止されています。公式では、この設定が残っているとCodexやChatGPT Workが起動できなくなることがあると注意されています。古い記事を見て書いている場合は、on-requestに書き換えてください。on-failureも非推奨です。
サンドボックスのモード(sandbox_mode)
| 値 | できること | 使う場面 |
|---|---|---|
"read-only" | ファイルを読む。書き込みはできない | 調べものや計画だけをさせたいとき |
"workspace-write" | 作業中のフォルダの中なら、ファイルを書き換えられる | ふだんの開発や文書づくり |
"danger-full-access" | サンドボックスなし | すでに別の仕組みで隔離している環境だけ |
公式の説明では、起動時にCodexがフォルダの状態を見て、Gitで管理されているフォルダでは「Auto」(workspace-writeとon-request)を、そうでないフォルダではread-onlyを勧めます。また、設定によっては、作業フォルダを信頼するまでread-onlyで始まることもあります。なお、公式のサンプル設定では、sandbox_modeの既定値がread-onlyと書かれています。実際にどの状態で始まったかは、/statusで確かめられます。
よく使う組み合わせ
| やりたいこと | 指定の例 | 動き |
|---|---|---|
| 標準(Auto) | 指定なし、または--sandbox workspace-write --ask-for-approval on-request | 作業フォルダの中は自動。フォルダの外への書き込みやネットワークは確認 |
| 読むだけで使う | --sandbox read-only --ask-for-approval on-request | 読み取りと、サンドボックスの中のコマンドだけ。それ以外は確認 |
| 自動実行で読むだけ | --sandbox read-only --ask-for-approval never | 確認なしで、読むだけの動き |
| 自動のレビューに任せる | approvals_reviewer = "auto_review" | サンドボックスの範囲は同じで、確認を自動の審査が代わりに判断する |
| すべて許可(非推奨) | --dangerously-bypass-approvals-and-sandbox(--yolo) | サンドボックスも確認もなし |
公式は、最後の「すべて許可」を推奨していません。使う場合は、環境そのものが隔離されているかを必ず確認してください。
ネットワークと書き込み先の設定
workspace-writeのときにコマンドから外部へ通信させたい場合は、[sandbox_workspace_write]で許可します。書き込める場所を追加することもできます。
[sandbox_workspace_write]
network_access = true # 外部への通信を許可する
writable_roots = ["/Users/YOU/.pyenv/shims"] # 書き込める場所を足す
ここで許可するのは、コマンドの通信です。Web検索、アプリ(コネクタ)、MCPサーバーは別の制御になっており、コマンド用のネットワーク設定では制限されないと、公式に注意書きがあります。
書き込めない場所がある
workspace-writeでも、書き込める場所のなかの.git、.agents、.codex、.awsのフォルダは、読み取り専用として保護されます。そのため、git commitが確認を求められることがあります。特定のコマンドの扱いを決めたいときは、ルール(~/.codex/rules/の.rulesファイル)を使います。ルールは現時点では実験的な機能です。
コマンドに渡す環境変数を絞る
Codexが実行するコマンドには、自分のパソコンの環境変数が渡されます。APIキーなどの秘密情報が環境変数に入っている場合は、[shell_environment_policy]で渡す範囲を絞れます。
[shell_environment_policy]
inherit = "core"
ignore_default_excludes = false
[shell_environment_policy.filters]
"AWS_*" = "exclude"
"AZURE_*" = "exclude"
見落としやすいのは、ignore_default_excludesの既定がtrueである点です。trueのままだと、名前にKEY・SECRET・TOKENを含む変数の自動の除外が行われません。自動の除外を使いたいときは、falseに変えます。
Windowsで、サンドボックスの方式を選ぶ設定([windows]のsandboxや、featuresのprefer_mxc)は「Windowsでの使い方」の記事で解説しています。
プロファイルとプロジェクトの設定

用途によって設定を使い分けたいときは、プロファイル、プロジェクトの設定、1回だけの上書きを使い分けます。
プロファイルで切り替える
プロファイルは、名前をつけた設定の層です。--profile 名前を付けて起動すると、まず~/.codex/config.tomlが読み込まれ、その上に~/.codex/名前.config.tomlが重なります。ファイルには、基本の設定と違う項目だけを書けば足ります。
# ~/.codex/review.config.toml
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
approval_policy = "on-request"
sandbox_mode = "read-only"
codex --profile review
codex exec --profile review "この変更をレビューして"
プロファイル名には、英数字・ハイフン・アンダースコアが使えます。ファイルの中では、項目を最上位にそのまま書き、[profiles.名前]の中には入れません。
古い書き方は、Codex 0.134.0以降では使えない
Codex 0.134.0以降では、config.tomlの[profiles.名前]テーブルは読まれません。トップレベルのprofile = "名前"による選択も使えません。古い記事の書き方で作っていた場合は、内容を~/.codex/名前.config.tomlに移し、config.tomlから元のテーブルと選択の行を削除してください。
1回だけ上書きする(-c)
設定ファイルを書き換えずに、その回だけ変えたいときは、専用のオプションがあればそれを使い、無ければ-c(--config)を使います。
codex --model gpt-6.1-sol
codex -c sandbox_workspace_write.network_access=true
codex -c log_dir=./.codex-log
入れ子の項目は、ドット(.)でつないで書けます。値はTOMLとして読み取られ、TOMLとして読めない場合は文字列として扱われると公式に書かれています。そのため、モデル名のような文字列は、引用符なしでも指定できます。配列や表を渡すときは、シェルが空白で分割しないように、全体を引用符で囲んでください。
公式の例は、Mac・Linuxのシェルを前提にした書き方です。PowerShellでは引用符の扱いが異なるため、複雑な値は設定ファイルに書くほうが確実です。
プロジェクトの設定で、チームの標準をそろえる
リポジトリの.codex/config.tomlに設定を書いておけば、そのリポジトリで作業するときだけ効く設定になります。プロジェクト内の相対パス(たとえばmodel_instructions_file)は、その.codex/フォルダを基準に解決されます。
ただし、安全のため、プロジェクトの設定では上書きできない項目があります。公式では、認証の接続先や通知・テレメトリー(利用状況の送信)に関わる項目が挙げられており、次の項目は無視されて、起動時に警告が出ます。
| プロジェクトの設定では無視される項目 | 代わりに書く場所 |
|---|---|
openai_base_url、chatgpt_base_url、apps_mcp_product_sku、experimental_realtime_ws_base_url | ユーザーの~/.codex/config.toml |
model_provider、model_providers | ユーザーの~/.codex/config.toml |
notify、otel | ユーザーの~/.codex/config.toml |
profile、profiles | --profileと、プロファイルのファイル |
チームで設定をそろえたい場合、リポジトリに.codex/config.tomlを置く方法と、管理者が配る方法(Team Config、管理設定)があります。リポジトリに置く場合は、秘密情報を書かないことを徹底してください。
使い分けの目安
| 場面 | おすすめの方法 |
|---|---|
| いつも使うモデルや承認を決めたい | ユーザーのconfig.toml |
| 「レビュー用」「調査用」など、用途で切り替えたい | プロファイル |
| このリポジトリだけ、決まった設定にしたい | プロジェクトの.codex/config.toml |
| 今日だけ、モデルを変えたい | --modelや/model |
| 1回だけ、ネットワークを許可したい | -cでの上書き |
設定が効かないとき

「config.tomlに書いたのに変わらない」ときは、原因を順番に切り分けます。闇雲に書き直す前に、Codexが実際に何を読み込んでいるのかを確かめるのが近道です。
確認の順番
- /statusで、いまの状態を見るCodexの中で
/statusと入力します。使用中のモデル、承認の方針、書き込める場所、残りの使用量が表示されます。意図した設定になっているかを、まずここで確かめます。 - /debug-configで、設定の層を見る
/debug-configは、設定の層の順番(優先順位の低いほうから)、各層のオン・オフ、管理者の要件の出どころを表示します。「なぜ設定ファイルの値と違うのか」を調べるためのコマンドです。 - codex doctorで、環境を診断するターミナルで
codex doctorを実行すると、インストール、設定、認証、実行環境、Git、ターミナルなどの診断レポートが出ます。 - 管理者に確認する要件や管理設定で制限されている場合は、自分では変えられません。
/debug-configの出力を添えて、管理者に相談します。
症状から探す
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| プロジェクトの設定が効かない | プロジェクトを信頼していない。または、プロジェクトでは上書きできない項目 | 信頼の状態を確認する。ユーザーの設定へ移す |
| 起動しない・設定の警告が出る | approval_policy = "untrusted"など、廃止された値が残っている | on-requestに書き換える |
| プロファイルが効かない | 0.134.0以降では、[profiles.名前]が読まれない | ~/.codex/名前.config.tomlに移す |
| 承認や権限を変えても反映されない | 管理者の要件で制限されている | /debug-configで確認し、管理者に相談する |
| CLIとアプリで設定が違う | WSLでは、Linux側のホームフォルダを使う。そのため、Windows側の設定を共有しない | CODEX_HOMEでWindows側を指す |
| モデルが選べない | アカウントやワークスペースで使えないモデルを指定している | /modelに表示されるモデルから選ぶ。詳しくはモデルの記事へ |
| フックが動かない | features.hooksがオフ、またはフックが信頼されていない | /hooksで状態を確認する。詳しくはフックの記事へ |
古い記事の設定を書き換える
ネットの記事には、過去のバージョンの書き方が残っています。公式のリファレンスで、書き換えを求められている主なものを表にまとめます。
| 古い書き方 | いまの書き方 |
|---|---|
approval_policy = "untrusted" | 使えない。on-requestを使う。厳しめにしたいときは、ユーザーの設定にプロジェクトごとのtrust_level = "untrusted"を書く |
[profiles.名前]とprofile = "名前" | ~/.codex/名前.config.tomlと--profile 名前 |
experimental_instructions_file | model_instructions_file |
features.codex_hooks | features.hooks(古い名前は非推奨の別名) |
features.web_searchなどの切り替え | トップレベルのweb_search |
personality = "friendly"など | スタイルは選べなくなっている。noneのみ意味を持つ |
background_terminal_timeout | background_terminal_max_timeout |
[shell_environment_policy]のexclude・include_only | filters(同じ層で両方は使えない) |
ログと環境変数で調べる
原因が分からないときは、ログを残して調べます。log_dirを指定すると、codex-tui.logが保存されます。公式の例では、次のように一時的に指定しています。
RUST_LOG=debug codex -c log_dir=./.codex-log
この書き方はMac・Linuxのシェル向けです。PowerShellでは、先に$env:RUST_LOG='debug'と環境変数を設定してから、codex -c log_dir=./.codex-logを実行します。なおcodex execでは、メッセージが別のログファイルではなく、画面にそのまま表示されます。
設定に関係する主な環境変数は、次のとおりです。
| 変数 | 内容 |
|---|---|
CODEX_HOME | 設定・認証・ログ・セッション・スキルを置くフォルダ。既定は~/.codex |
CODEX_API_KEY | 非対話の実行(codex execなど)にAPIキーを渡す |
CODEX_CA_CERTIFICATE | 会社の通信検査などで独自の証明書が必要なときの、PEMファイルのパス |
RUST_LOG | ログの詳しさ(error・warn・info・debug・trace) |
変更は「1つずつ」「戻せる形で」
設定を変えるときは、変更の前にファイルをコピーしておき、1回に1項目ずつ変えて、そのつど/statusで確かめます。元に戻したいときは、その行を消すか、先頭に#を付けてコメントにすれば、下の層の設定か初期値に戻ります。
よくある質問
設定ファイルはどこにありますか?
ユーザー用は、MacやLinuxでは~/.codex/config.toml、Windowsでは%USERPROFILE%\.codex\config.tomlです。CODEX_HOMEを指定している場合は、そのフォルダの中になります。プロジェクト用は、リポジトリの.codex/config.tomlです。
アプリとCLIで、設定は共有されますか?
公式の説明では、CLIとIDE拡張は同じ設定の層を共有します。Windowsのアプリも、ネイティブ版のCodexと同じ%USERPROFILE%\.codexを使います。ただし、WSLの中で動かすCLIは、既定ではLinux側のホームフォルダを使うため、設定は共有されません。
日本語で使えますか?
依頼文を日本語で書くことはできます。ただし、公式ドキュメントには、日本語対応についての専用の説明や、返答の言語を選ぶ設定項目は載っていません。返答の言語を固定したいときは、AGENTS.mdに「回答は日本語で書く」と書いてください。画面の言語は、IDE拡張ではchatgpt.localeOverrideで指定できます。アプリとCLIの画面の言語については、公式の設定ページに記載がありません。
毎回の確認を減らせますか?
減らせますが、安全性とのバランスがあります。まずは/permissionsでAutoにする、ルールで特定のコマンドを許可する、approvals_reviewer = "auto_review"で自動の審査に任せる、の順に検討してください。approval_policy = "never"や--yoloは、環境が隔離されている場合に限って使います。
設定を元に戻すにはどうすればいいですか?
その項目の行を消すか、コメントにします。優先順位の低い層(ユーザーの設定、システムの設定、組み込みの初期値)の値が使われます。codex features disable 機能名のように、コマンドで機能をオフにすることもできます。
APIキーをconfig.tomlに書いてもいいですか?
おすすめしません。カスタムのプロバイダーでは、公式のリファレンスで、トークンを直接書くexperimental_bearer_tokenは非推奨とされ、環境変数を指すenv_keyを使うよう案内されています。設定ファイルは、リポジトリに入れたり共有したりすることがあるため、秘密情報は環境変数や認証の仕組みで渡してください。
プロジェクトごとにモデルを変えられますか?
変えられます。そのプロジェクトの.codex/config.tomlにmodelを書けば、そのプロジェクトで作業するときだけ反映されます。プロジェクトを信頼している場合に限ります。
設定を変えたあと、再起動は必要ですか?
公式には、すべての項目に共通の説明はありません。ルールやアプリの追加項目では、保存後の再起動が案内されています。反映されないときは、Codexを開き直してから/statusで確かめてください。
使用量を抑える設定はありますか?
高速モード(Fast)は使用量を多く消費するため、常用しないことが一つの方法です。考える深さやモデルの選び方も使用量に関わります。詳しくは「Codexの使用量の確認」の記事を参照してください。
利用状況のデータ送信を止められますか?
CLIでは、匿名の利用状況と動作の健全性のデータが定期的にOpenAIへ送られます。[analytics]のenabled = falseで止められると公式に書かれています。公式によると、これらのデータに個人を特定できる情報は含まれません。
会社で、全員の設定をそろえたいときは?
管理者が、管理設定(クラウド管理のconfig.toml)で既定値を配り、requirements.tomlで制限をかけられます。リポジトリの.codex/config.tomlでも、そのプロジェクトの標準を決められます。まずは、小さな範囲で標準の設定を決めて試してから広げるのがおすすめです。
まとめ
この記事のまとめ
- Codexの設定は、画面の設定・config.toml・起動時のオプションやスラッシュコマンドの3つの入口から変えられる
- 設定ファイルは、ユーザー用の
~/.codex/config.toml(Windowsは%USERPROFILE%\.codex)のほか、プロジェクト用やプロファイル用がある - 優先順位は、起動時のオプション、プロジェクト、プロファイル、ユーザー、クラウド管理、システム、初期値の順
- 仕事で使うなら、承認(approval_policy)とサンドボックス(sandbox_mode)を最初に決める。承認なし・サンドボックスなしの設定は避ける
- 日本語の返答は、専用の設定ではなく、AGENTS.mdに書いて固定する
- 効かないときは、
/status・/debug-config・codex doctorの順に確かめ、古い書き方や管理者の要件を疑う
設定は、一度に完璧にそろえようとせず、モデルと承認の2つから始めて、困ったことが出てきたら項目を足していくのが現実的です。変更は1つずつ、元に戻せる形で行ってください。
社内で使うとなると、承認の方針、プロジェクトの設定、秘密情報の扱い、メンバーへの説明など、決めることが一気に増えます。INTERCREATE JAPANでは、Claude CodeやCodexの導入から、社内の標準設定づくり、使い続けられる仕組みづくりまでをお手伝いしています。
参考・出典
- Config basics(OpenAI ChatGPT・Codex ドキュメント)
- Advanced Configuration(OpenAI ChatGPT・Codex ドキュメント)
- Configuration Reference(OpenAI ChatGPT・Codex ドキュメント)
- Sample Configuration(OpenAI ChatGPT・Codex ドキュメント)
- Environment variables(OpenAI ChatGPT・Codex ドキュメント)
- Agent approvals & security(OpenAI ChatGPT・Codex ドキュメント)
- ChatGPT desktop app settings(OpenAI ChatGPT・Codex ドキュメント)
- Codex IDE extension settings(OpenAI ChatGPT・Codex ドキュメント)
- Slash commands in Codex CLI(OpenAI ChatGPT・Codex ドキュメント)
- ChatGPT desktop app for Windows(OpenAI ChatGPT・Codex ドキュメント)
- Speed(OpenAI ChatGPT・Codex ドキュメント)
INTERCREATE JAPAN