SpyBara
Go Premium Account
2026
24 Feb 2026, 00:33
14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
17 Apr 2026, 00:44
14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
Thu 2 18:23 Tue 7 00:40 Wed 8 00:40 Wed 8 18:32 Thu 9 00:33 Fri 10 18:23 Sun 12 06:38 Mon 13 00:44 Mon 13 18:37 Tue 14 12:29 Tue 14 18:31 Wed 15 06:44 Wed 15 18:31 Thu 16 00:46 Thu 16 18:31 Fri 17 00:44 Sat 18 18:18 Mon 20 06:53 Mon 20 18:26 Tue 21 06:45 Tue 21 12:30 Tue 21 18:29 Wed 22 00:42 Wed 22 18:29 Thu 23 00:46 Thu 23 12:28 Thu 23 18:31 Fri 24 12:28 Fri 24 18:20 Sat 25 00:42 Sat 25 06:37 Wed 29 00:50 Wed 29 12:40 Thu 30 18:36

config-reference.md +1004 −273

Details

6 6 

7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.

8 8 

9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/security#network-access).9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/agent-approvals-security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/agent-approvals-security#network-access).

10 10 

11| Key | Type / Values | Details |11| Key | Type / Values | Details |

12| --- | --- | --- |12| --- | --- | --- |

13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |

14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |

15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |

16| `agents.job_max_runtime_seconds` | `number` | Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker. |

15| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |17| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |

16| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. |18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |

17| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |

18| `approval_policy` | `untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |

19| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. |21| `approval_policy` | `untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { granular = { ... } }` to allow or auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |

20| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. |22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |

21| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. |23| `approval_policy.granular.request_permissions` | `boolean` | When `true`, prompts from the `request_permissions` tool are allowed to surface. |

24| `approval_policy.granular.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface. |

25| `approval_policy.granular.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are allowed to surface. |

26| `approval_policy.granular.skill_approval` | `boolean` | When `true`, skill-script approval prompts are allowed to surface. |

27| `approvals_reviewer` | `user | guardian_subagent` | Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent. |

22| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |28| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |

23| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |29| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |

24| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |30| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |


33| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |39| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |

34| `check_for_update_on_startup` | `boolean` | Check for Codex updates on startup (set to false only when updates are centrally managed). |40| `check_for_update_on_startup` | `boolean` | Check for Codex updates on startup (set to false only when updates are centrally managed). |

35| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |41| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |

42| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |

36| `compact_prompt` | `string` | Inline override for the history compaction prompt. |43| `compact_prompt` | `string` | Inline override for the history compaction prompt. |

44| `default_permissions` | `string` | Name of the default permissions profile to apply to sandboxed tool calls. |

37| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |45| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |

38| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |46| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |

39| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |47| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |

40| `experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`. |

41| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |48| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |

42| `features.apply_patch_freeform` | `boolean` | Expose the freeform `apply_patch` tool (experimental). |

43| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |49| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |

44| `features.apps_mcp_gateway` | `boolean` | Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental). |50| `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` (under development; off by default). |

45| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |51| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |

46| `features.collaboration_modes` | `boolean` | Enable collaboration modes such as plan mode (stable; on by default). |52| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |

47| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). |53| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |

48| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |54| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |

49| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default). |

50| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |55| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |

51| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output (defaults to true). |56| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |

52| `features.remote_models` | `boolean` | Refresh remote model list before showing readiness (experimental). |57| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |

53| `features.request_rule` | `boolean` | Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default). |

54| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |

55| `features.search_tool` | `boolean` | Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental). |

56| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (beta). |

57| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |58| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |

58| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (beta). |59| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |

59| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |60| `features.smart_approvals` | `boolean` | Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). |

61| `features.undo` | `boolean` | Enable undo support (stable; off by default). |

62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |

60| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |63| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |

61| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |64| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |

62| `features.web_search_request` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`. |65| `features.web_search_request` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`. |


67| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |70| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |

68| `history.max_bytes` | `number` | If set, caps the history file size in bytes by dropping oldest entries. |71| `history.max_bytes` | `number` | If set, caps the history file size in bytes by dropping oldest entries. |

69| `history.persistence` | `save-all | none` | Control whether Codex saves session transcripts to history.jsonl. |72| `history.persistence` | `save-all | none` | Control whether Codex saves session transcripts to history.jsonl. |

70| `include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |

71| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |73| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |

72| `log_dir` | `string (path)` | Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`. |74| `log_dir` | `string (path)` | Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`. |

73| `mcp_oauth_callback_port` | `integer` | Optional fixed port for the local HTTP callback server used during MCP OAuth login. When unset, Codex binds to an ephemeral port chosen by the OS. |75| `mcp_oauth_callback_port` | `integer` | Optional fixed port for the local HTTP callback server used during MCP OAuth login. When unset, Codex binds to an ephemeral port chosen by the OS. |


84| `mcp_servers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables for an MCP HTTP server. |86| `mcp_servers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables for an MCP HTTP server. |

85| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. |87| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. |

86| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |88| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |

89| `mcp_servers.<id>.oauth_resource` | `string` | Optional RFC 8707 OAuth resource parameter to include during MCP login. |

87| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |90| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |

91| `mcp_servers.<id>.scopes` | `array<string>` | OAuth scopes to request when authenticating to that MCP server. |

88| `mcp_servers.<id>.startup_timeout_ms` | `number` | Alias for `startup_timeout_sec` in milliseconds. |92| `mcp_servers.<id>.startup_timeout_ms` | `number` | Alias for `startup_timeout_sec` in milliseconds. |

89| `mcp_servers.<id>.startup_timeout_sec` | `number` | Override the default 10s startup timeout for an MCP server. |93| `mcp_servers.<id>.startup_timeout_sec` | `number` | Override the default 10s startup timeout for an MCP server. |

90| `mcp_servers.<id>.tool_timeout_sec` | `number` | Override the default 60s per-tool timeout for an MCP server. |94| `mcp_servers.<id>.tool_timeout_sec` | `number` | Override the default 60s per-tool timeout for an MCP server. |

91| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |95| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |

92| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |96| `memories.consolidation_model` | `string` | Optional model override for global memory consolidation. |

97| `memories.extract_model` | `string` | Optional model override for per-thread memory extraction. |

98| `memories.generate_memories` | `boolean` | When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`. |

99| `memories.max_raw_memories_for_consolidation` | `number` | Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`. |

100| `memories.max_rollout_age_days` | `number` | Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`. |

101| `memories.max_rollouts_per_startup` | `number` | Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`. |

102| `memories.max_unused_days` | `number` | Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`. |

103| `memories.min_rollout_idle_hours` | `number` | Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`. |

104| `memories.no_memories_if_mcp_or_web_search` | `boolean` | When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`. |

105| `memories.use_memories` | `boolean` | When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`. |

106| `model` | `string` | Model to use (e.g., `gpt-5.4`). |

93| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |107| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |

94| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |108| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |

95| `model_context_window` | `number` | Context window tokens available to the active model. |109| `model_context_window` | `number` | Context window tokens available to the active model. |

96| `model_instructions_file` | `string (path)` | Replacement for built-in instructions instead of `AGENTS.md`. |110| `model_instructions_file` | `string (path)` | Replacement for built-in instructions instead of `AGENTS.md`. |

97| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |111| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |

112| `model_providers.<id>` | `table` | Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden. |

113| `model_providers.<id>.auth` | `table` | Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`. |

114| `model_providers.<id>.auth.args` | `array<string>` | Arguments passed to the token command. |

115| `model_providers.<id>.auth.command` | `string` | Command to run when Codex needs a bearer token. The command must print the token to stdout. |

116| `model_providers.<id>.auth.cwd` | `string (path)` | Working directory for the token command. |

117| `model_providers.<id>.auth.refresh_interval_ms` | `number` | How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry. |

118| `model_providers.<id>.auth.timeout_ms` | `number` | Maximum token command runtime in milliseconds (default: 5000). |

98| `model_providers.<id>.base_url` | `string` | API base URL for the model provider. |119| `model_providers.<id>.base_url` | `string` | API base URL for the model provider. |

99| `model_providers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables when present. |120| `model_providers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables when present. |

100| `model_providers.<id>.env_key` | `string` | Environment variable supplying the provider API key. |121| `model_providers.<id>.env_key` | `string` | Environment variable supplying the provider API key. |


107| `model_providers.<id>.requires_openai_auth` | `boolean` | The provider uses OpenAI authentication (defaults to false). |128| `model_providers.<id>.requires_openai_auth` | `boolean` | The provider uses OpenAI authentication (defaults to false). |

108| `model_providers.<id>.stream_idle_timeout_ms` | `number` | Idle timeout for SSE streams in milliseconds (default: 300000). |129| `model_providers.<id>.stream_idle_timeout_ms` | `number` | Idle timeout for SSE streams in milliseconds (default: 300000). |

109| `model_providers.<id>.stream_max_retries` | `number` | Retry count for SSE streaming interruptions (default: 5). |130| `model_providers.<id>.stream_max_retries` | `number` | Retry count for SSE streaming interruptions (default: 5). |

110| `model_providers.<id>.wire_api` | `chat | responses` | Protocol used by the provider (defaults to `chat` if omitted). |131| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |

132| `model_providers.<id>.wire_api` | `responses` | Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted. |

111| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |133| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |

112| `model_reasoning_summary` | `auto | concise | detailed | none` | Select reasoning summary detail or disable summaries entirely. |134| `model_reasoning_summary` | `auto | concise | detailed | none` | Select reasoning summary detail or disable summaries entirely. |

113| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |135| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |

114| `model_verbosity` | `low | medium | high` | Control GPT-5 Responses API verbosity (defaults to `medium`). |136| `model_verbosity` | `low | medium | high` | Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used. |

115| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |137| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |

116| `notice.hide_gpt-5.1-codex-max_migration_prompt` | `boolean` | Track acknowledgement of the gpt-5.1-codex-max migration prompt. |138| `notice.hide_gpt-5.1-codex-max_migration_prompt` | `boolean` | Track acknowledgement of the gpt-5.1-codex-max migration prompt. |

117| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |139| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |


119| `notice.hide_world_writable_warning` | `boolean` | Track acknowledgement of the Windows world-writable directories warning. |141| `notice.hide_world_writable_warning` | `boolean` | Track acknowledgement of the Windows world-writable directories warning. |

120| `notice.model_migrations` | `map<string,string>` | Track acknowledged model migrations as old->new mappings. |142| `notice.model_migrations` | `map<string,string>` | Track acknowledged model migrations as old->new mappings. |

121| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |143| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |

144| `openai_base_url` | `string` | Base URL override for the built-in `openai` model provider. |

122| `oss_provider` | `lmstudio | ollama` | Default local provider used when running with `--oss` (defaults to prompting if unset). |145| `oss_provider` | `lmstudio | ollama` | Default local provider used when running with `--oss` (defaults to prompting if unset). |

123| `otel.environment` | `string` | Environment tag applied to emitted OpenTelemetry events (default: `dev`). |146| `otel.environment` | `string` | Environment tag applied to emitted OpenTelemetry events (default: `dev`). |

124| `otel.exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry exporter and provide any endpoint metadata. |147| `otel.exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry exporter and provide any endpoint metadata. |


129| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |152| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |

130| `otel.exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL exporter TLS. |153| `otel.exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL exporter TLS. |

131| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |154| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |

155| `otel.metrics_exporter` | `none | statsig | otlp-http | otlp-grpc` | Select the OpenTelemetry metrics exporter (defaults to `statsig`). |

132| `otel.trace_exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry trace exporter and provide any endpoint metadata. |156| `otel.trace_exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry trace exporter and provide any endpoint metadata. |

133| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |157| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |

134| `otel.trace_exporter.<id>.headers` | `map<string,string>` | Static headers included with OTEL trace exporter requests. |158| `otel.trace_exporter.<id>.headers` | `map<string,string>` | Static headers included with OTEL trace exporter requests. |


136| `otel.trace_exporter.<id>.tls.ca-certificate` | `string` | CA certificate path for OTEL trace exporter TLS. |160| `otel.trace_exporter.<id>.tls.ca-certificate` | `string` | CA certificate path for OTEL trace exporter TLS. |

137| `otel.trace_exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL trace exporter TLS. |161| `otel.trace_exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL trace exporter TLS. |

138| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |162| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |

163| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |

164| `permissions.<name>.filesystem.":project_roots".<subpath>` | `"read" | "write" | "none"` | Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself. |

165| `permissions.<name>.filesystem.<path>` | `"read" | "write" | "none" | table` | Grant direct access for a path or special token, or scope nested entries under that root. |

166| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |

167| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |

168| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |

169| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |

170| `permissions.<name>.network.domains` | `map<string, allow | deny>` | Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values. |

171| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |

172| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |

173| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |

174| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |

175| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |

176| `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |

177| `permissions.<name>.network.unix_sockets` | `map<string, allow | none>` | Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values. |

139| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |178| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |

179| `plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default. |

140| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |180| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |

141| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |181| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |

142| `profiles.<name>.experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |182| `profiles.<name>.analytics.enabled` | `boolean` | Profile-scoped analytics enablement override. |

143| `profiles.<name>.experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec`. |183| `profiles.<name>.experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec`. |

144| `profiles.<name>.include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |

145| `profiles.<name>.model_catalog_json` | `string (path)` | Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile). |184| `profiles.<name>.model_catalog_json` | `string (path)` | Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile). |

185| `profiles.<name>.model_instructions_file` | `string (path)` | Profile-scoped replacement for the built-in instruction file. |

146| `profiles.<name>.oss_provider` | `lmstudio | ollama` | Profile-scoped OSS provider for `--oss` sessions. |186| `profiles.<name>.oss_provider` | `lmstudio | ollama` | Profile-scoped OSS provider for `--oss` sessions. |

147| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |187| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |

188| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |

189| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |

190| `profiles.<name>.tools_view_image` | `boolean` | Enable or disable the `view_image` tool in that profile. |

148| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |191| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |

192| `profiles.<name>.windows.sandbox` | `unelevated | elevated` | Profile-scoped Windows sandbox mode override. |

149| `project_doc_fallback_filenames` | `array<string>` | Additional filenames to try when `AGENTS.md` is missing. |193| `project_doc_fallback_filenames` | `array<string>` | Additional filenames to try when `AGENTS.md` is missing. |

150| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |194| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |

151| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |195| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |


156| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |200| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |

157| `sandbox_workspace_write.network_access` | `boolean` | Allow outbound network access inside the workspace-write sandbox. |201| `sandbox_workspace_write.network_access` | `boolean` | Allow outbound network access inside the workspace-write sandbox. |

158| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |202| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |

203| `service_tier` | `flex | fast` | Preferred service tier for new turns. |

159| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |204| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |

160| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |205| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |

161| `shell_environment_policy.ignore_default_excludes` | `boolean` | Keep variables containing KEY/SECRET/TOKEN before other filters run. |206| `shell_environment_policy.ignore_default_excludes` | `boolean` | Keep variables containing KEY/SECRET/TOKEN before other filters run. |


166| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |211| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |

167| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |212| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |

168| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |213| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |

214| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |

169| `suppress_unstable_features_warning` | `boolean` | Suppress the warning that appears when under-development feature flags are enabled. |215| `suppress_unstable_features_warning` | `boolean` | Suppress the warning that appears when under-development feature flags are enabled. |

170| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |216| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |

171| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |217| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |

218| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |

219| `tools.web_search` | `boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }` | Optional web search tool configuration. The legacy boolean form is still accepted, but the object form lets you set search context size, allowed domains, and approximate user location. |

172| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |220| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |

173| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |221| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |

174| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |222| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |

223| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |

175| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |224| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |

176| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |225| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |

177| `tui.show_tooltips` | `boolean` | Show onboarding tooltips in the TUI welcome screen (default: true). |226| `tui.show_tooltips` | `boolean` | Show onboarding tooltips in the TUI welcome screen (default: true). |

178| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |227| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |

228| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |

229| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |

179| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |230| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |

180| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |231| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |

232| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |

233| `windows.sandbox_private_desktop` | `boolean` | Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior. |

181 234 

182Key235Key

183 236 


205 258 

206Key259Key

207 260 

261`agents.<name>.nickname_candidates`

262 

263Type / Values

264 

265`array<string>`

266 

267Details

268 

269Optional pool of display nicknames for spawned agents in that role.

270 

271Key

272 

273`agents.job_max_runtime_seconds`

274 

275Type / Values

276 

277`number`

278 

279Details

280 

281Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.

282 

283Key

284 

208`agents.max_depth`285`agents.max_depth`

209 286 

210Type / Values287Type / Values


225 302 

226Details303Details

227 304 

228Maximum number of agent threads that can be open concurrently.305Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.

229 306 

230Key307Key

231 308 


241 318 

242Key319Key

243 320 

321`analytics.enabled`

322 

323Type / Values

324 

325`boolean`

326 

327Details

328 

329Enable or disable analytics for this machine/profile. When unset, the client default applies.

330 

331Key

332 

244`approval_policy`333`approval_policy`

245 334 

246Type / Values335Type / Values

247 336 

248`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }`337`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`

338 

339Details

340 

341Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { granular = { ... } }` to allow or auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.

342 

343Key

344 

345`approval_policy.granular.mcp_elicitations`

346 

347Type / Values

348 

349`boolean`

350 

351Details

352 

353When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.

354 

355Key

356 

357`approval_policy.granular.request_permissions`

358 

359Type / Values

360 

361`boolean`

249 362 

250Details363Details

251 364 

252Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.365When `true`, prompts from the `request_permissions` tool are allowed to surface.

253 366 

254Key367Key

255 368 

256`approval_policy.reject.mcp_elicitations`369`approval_policy.granular.rules`

257 370 

258Type / Values371Type / Values

259 372 


261 374 

262Details375Details

263 376 

264When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.377When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.

265 378 

266Key379Key

267 380 

268`approval_policy.reject.rules`381`approval_policy.granular.sandbox_approval`

269 382 

270Type / Values383Type / Values

271 384 


273 386 

274Details387Details

275 388 

276When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.389When `true`, sandbox escalation approval prompts are allowed to surface.

277 390 

278Key391Key

279 392 

280`approval_policy.reject.sandbox_approval`393`approval_policy.granular.skill_approval`

281 394 

282Type / Values395Type / Values

283 396 


285 398 

286Details399Details

287 400 

288When `true`, sandbox escalation approval prompts are auto-rejected.401When `true`, skill-script approval prompts are allowed to surface.

402 

403Key

404 

405`approvals_reviewer`

406 

407Type / Values

408 

409`user | guardian_subagent`

410 

411Details

412 

413Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent.

289 414 

290Key415Key

291 416 


457 582 

458Key583Key

459 584 

460`compact_prompt`585`commit_attribution`

461 586 

462Type / Values587Type / Values

463 588 


465 590 

466Details591Details

467 592 

468Inline override for the history compaction prompt.593Override the commit co-author trailer text. Set an empty string to disable automatic attribution.

469 594 

470Key595Key

471 596 

472`developer_instructions`597`compact_prompt`

473 598 

474Type / Values599Type / Values

475 600 


477 602 

478Details603Details

479 604 

480Additional developer instructions injected into the session (optional).605Inline override for the history compaction prompt.

481 606 

482Key607Key

483 608 

484`disable_paste_burst`609`default_permissions`

485 610 

486Type / Values611Type / Values

487 612 

488`boolean`613`string`

489 614 

490Details615Details

491 616 

492Disable burst-paste detection in the TUI.617Name of the default permissions profile to apply to sandboxed tool calls.

493 618 

494Key619Key

495 620 

496`experimental_compact_prompt_file`621`developer_instructions`

497 622 

498Type / Values623Type / Values

499 624 

500`string (path)`625`string`

501 626 

502Details627Details

503 628 

504Load the compaction prompt override from a file (experimental).629Additional developer instructions injected into the session (optional).

505 630 

506Key631Key

507 632 

508`experimental_use_freeform_apply_patch`633`disable_paste_burst`

509 634 

510Type / Values635Type / Values

511 636 


513 638 

514Details639Details

515 640 

516Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.641Disable burst-paste detection in the TUI.

517 642 

518Key643Key

519 644 

520`experimental_use_unified_exec_tool`645`experimental_compact_prompt_file`

521 646 

522Type / Values647Type / Values

523 648 

524`boolean`649`string (path)`

525 650 

526Details651Details

527 652 

528Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.653Load the compaction prompt override from a file (experimental).

529 654 

530Key655Key

531 656 

532`features.apply_patch_freeform`657`experimental_use_unified_exec_tool`

533 658 

534Type / Values659Type / Values

535 660 


537 662 

538Details663Details

539 664 

540Expose the freeform `apply_patch` tool (experimental).665Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.

541 666 

542Key667Key

543 668 


553 678 

554Key679Key

555 680 

556`features.apps_mcp_gateway`681`features.codex_hooks`

557 

558Type / Values

559 

560`boolean`

561 

562Details

563 

564Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).

565 

566Key

567 

568`features.child_agents_md`

569 682 

570Type / Values683Type / Values

571 684 


573 686 

574Details687Details

575 688 

576Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).689Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).

577 690 

578Key691Key

579 692 

580`features.collaboration_modes`693`features.enable_request_compression`

581 694 

582Type / Values695Type / Values

583 696 


585 698 

586Details699Details

587 700 

588Enable collaboration modes such as plan mode (stable; on by default).701Compress streaming request bodies with zstd when supported (stable; on by default).

589 702 

590Key703Key

591 704 

592`features.elevated_windows_sandbox`705`features.fast_mode`

593 706 

594Type / Values707Type / Values

595 708 


597 710 

598Details711Details

599 712 

600Enable the elevated Windows sandbox pipeline (experimental).713Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).

601 714 

602Key715Key

603 716 

604`features.experimental_windows_sandbox`717`features.memories`

605 718 

606Type / Values719Type / Values

607 720 


609 722 

610Details723Details

611 724 

612Run the Windows restricted-token sandbox (experimental).725Enable [Memories](https://developers.openai.com/codex/memories) (off by default).

613 726 

614Key727Key

615 728 


621 734 

622Details735Details

623 736 

624Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).737Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).

625 738 

626Key739Key

627 740 


637 750 

638Key751Key

639 752 

640`features.powershell_utf8`753`features.prevent_idle_sleep`

641 

642Type / Values

643 

644`boolean`

645 

646Details

647 

648Force PowerShell UTF-8 output (defaults to true).

649 

650Key

651 

652`features.remote_models`

653 754 

654Type / Values755Type / Values

655 756 


657 758 

658Details759Details

659 760 

660Refresh remote model list before showing readiness (experimental).761Prevent the machine from sleeping while a turn is actively running (experimental; off by default).

661 762 

662Key763Key

663 764 

664`features.request_rule`765`features.shell_snapshot`

665 766 

666Type / Values767Type / Values

667 768 


669 770 

670Details771Details

671 772 

672Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).773Snapshot shell environment to speed up repeated commands (stable; on by default).

673 774 

674Key775Key

675 776 

676`features.runtime_metrics`777`features.shell_tool`

677 778 

678Type / Values779Type / Values

679 780 


681 782 

682Details783Details

683 784 

684Show runtime metrics summary in TUI turn separators (experimental).785Enable the default `shell` tool for running commands (stable; on by default).

685 786 

686Key787Key

687 788 

688`features.search_tool`789`features.skill_mcp_dependency_install`

689 790 

690Type / Values791Type / Values

691 792 


693 794 

694Details795Details

695 796 

696Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).797Allow prompting and installing missing MCP dependencies for skills (stable; on by default).

697 798 

698Key799Key

699 800 

700`features.shell_snapshot`801`features.smart_approvals`

701 802 

702Type / Values803Type / Values

703 804 


705 806 

706Details807Details

707 808 

708Snapshot shell environment to speed up repeated commands (beta).809Route eligible approval requests through the guardian reviewer subagent (experimental; off by default).

709 810 

710Key811Key

711 812 

712`features.shell_tool`813`features.undo`

713 814 

714Type / Values815Type / Values

715 816 


717 818 

718Details819Details

719 820 

720Enable the default `shell` tool for running commands (stable; on by default).821Enable undo support (stable; off by default).

721 822 

722Key823Key

723 824 


729 830 

730Details831Details

731 832 

732Use the unified PTY-backed exec tool (beta).833Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).

733 

734Key

735 

736`features.use_linux_sandbox_bwrap`

737 

738Type / Values

739 

740`boolean`

741 

742Details

743 

744Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).

745 834 

746Key835Key

747 836 


865 954 

866Key955Key

867 956 

868`include_apply_patch_tool`

869 

870Type / Values

871 

872`boolean`

873 

874Details

875 

876Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.

877 

878Key

879 

880`instructions`957`instructions`

881 958 

882Type / Values959Type / Values


1069 1146 

1070Key1147Key

1071 1148 

1149`mcp_servers.<id>.oauth_resource`

1150 

1151Type / Values

1152 

1153`string`

1154 

1155Details

1156 

1157Optional RFC 8707 OAuth resource parameter to include during MCP login.

1158 

1159Key

1160 

1072`mcp_servers.<id>.required`1161`mcp_servers.<id>.required`

1073 1162 

1074Type / Values1163Type / Values


1081 1170 

1082Key1171Key

1083 1172 

1173`mcp_servers.<id>.scopes`

1174 

1175Type / Values

1176 

1177`array<string>`

1178 

1179Details

1180 

1181OAuth scopes to request when authenticating to that MCP server.

1182 

1183Key

1184 

1084`mcp_servers.<id>.startup_timeout_ms`1185`mcp_servers.<id>.startup_timeout_ms`

1085 1186 

1086Type / Values1187Type / Values


1129 1230 

1130Key1231Key

1131 1232 

1132`model`1233`memories.consolidation_model`

1133 1234 

1134Type / Values1235Type / Values

1135 1236 


1137 1238 

1138Details1239Details

1139 1240 

1140Model to use (e.g., `gpt-5-codex`).1241Optional model override for global memory consolidation.

1141 1242 

1142Key1243Key

1143 1244 

1144`model_auto_compact_token_limit`1245`memories.extract_model`

1145 1246 

1146Type / Values1247Type / Values

1147 1248 

1148`number`1249`string`

1149 1250 

1150Details1251Details

1151 1252 

1152Token threshold that triggers automatic history compaction (unset uses model defaults).1253Optional model override for per-thread memory extraction.

1153 1254 

1154Key1255Key

1155 1256 

1156`model_catalog_json`1257`memories.generate_memories`

1157 1258 

1158Type / Values1259Type / Values

1159 1260 

1160`string (path)`1261`boolean`

1161 1262 

1162Details1263Details

1163 1264 

1164Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.1265When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.

1165 1266 

1166Key1267Key

1167 1268 

1168`model_context_window`1269`memories.max_raw_memories_for_consolidation`

1169 1270 

1170Type / Values1271Type / Values

1171 1272 


1173 1274 

1174Details1275Details

1175 1276 

1176Context window tokens available to the active model.1277Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.

1177 1278 

1178Key1279Key

1179 1280 

1180`model_instructions_file`1281`memories.max_rollout_age_days`

1181 1282 

1182Type / Values1283Type / Values

1183 1284 

1184`string (path)`1285`number`

1185 1286 

1186Details1287Details

1187 1288 

1188Replacement for built-in instructions instead of `AGENTS.md`.1289Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.

1189 1290 

1190Key1291Key

1191 1292 

1192`model_provider`1293`memories.max_rollouts_per_startup`

1193 1294 

1194Type / Values1295Type / Values

1195 1296 

1196`string`1297`number`

1197 1298 

1198Details1299Details

1199 1300 

1200Provider id from `model_providers` (default: `openai`).1301Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.

1201 1302 

1202Key1303Key

1203 1304 

1204`model_providers.<id>.base_url`1305`memories.max_unused_days`

1205 1306 

1206Type / Values1307Type / Values

1207 1308 

1208`string`1309`number`

1209 1310 

1210Details1311Details

1211 1312 

1212API base URL for the model provider.1313Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.

1213 1314 

1214Key1315Key

1215 1316 

1216`model_providers.<id>.env_http_headers`1317`memories.min_rollout_idle_hours`

1217 1318 

1218Type / Values1319Type / Values

1219 1320 

1220`map<string,string>`1321`number`

1221 1322 

1222Details1323Details

1223 1324 

1224HTTP headers populated from environment variables when present.1325Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.

1225 1326 

1226Key1327Key

1227 1328 

1228`model_providers.<id>.env_key`1329`memories.no_memories_if_mcp_or_web_search`

1229 1330 

1230Type / Values1331Type / Values

1231 1332 

1232`string`1333`boolean`

1233 1334 

1234Details1335Details

1235 1336 

1236Environment variable supplying the provider API key.1337When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`.

1237 1338 

1238Key1339Key

1239 1340 

1240`model_providers.<id>.env_key_instructions`1341`memories.use_memories`

1241 1342 

1242Type / Values1343Type / Values

1243 1344 

1244`string`1345`boolean`

1245 1346 

1246Details1347Details

1247 1348 

1248Optional setup guidance for the provider API key.1349When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.

1249 1350 

1250Key1351Key

1251 1352 

1252`model_providers.<id>.experimental_bearer_token`1353`model`

1253 1354 

1254Type / Values1355Type / Values

1255 1356 


1257 1358 

1258Details1359Details

1259 1360 

1260Direct bearer token for the provider (discouraged; use `env_key`).1361Model to use (e.g., `gpt-5.4`).

1261 1362 

1262Key1363Key

1263 1364 

1264`model_providers.<id>.http_headers`1365`model_auto_compact_token_limit`

1265 1366 

1266Type / Values1367Type / Values

1267 1368 

1268`map<string,string>`1369`number`

1269 1370 

1270Details1371Details

1271 1372 

1272Static HTTP headers added to provider requests.1373Token threshold that triggers automatic history compaction (unset uses model defaults).

1273 1374 

1274Key1375Key

1275 1376 

1276`model_providers.<id>.name`1377`model_catalog_json`

1277 1378 

1278Type / Values1379Type / Values

1279 1380 

1280`string`1381`string (path)`

1281 1382 

1282Details1383Details

1283 1384 

1284Display name for a custom model provider.1385Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.

1285 1386 

1286Key1387Key

1287 1388 

1288`model_providers.<id>.query_params`1389`model_context_window`

1289 1390 

1290Type / Values1391Type / Values

1291 1392 

1292`map<string,string>`1393`number`

1293 1394 

1294Details1395Details

1295 1396 

1296Extra query parameters appended to provider requests.1397Context window tokens available to the active model.

1297 1398 

1298Key1399Key

1299 1400 

1300`model_providers.<id>.request_max_retries`1401`model_instructions_file`

1301 1402 

1302Type / Values1403Type / Values

1303 1404 

1304`number`1405`string (path)`

1305 1406 

1306Details1407Details

1307 1408 

1308Retry count for HTTP requests to the provider (default: 4).1409Replacement for built-in instructions instead of `AGENTS.md`.

1309 1410 

1310Key1411Key

1311 1412 

1312`model_providers.<id>.requires_openai_auth`1413`model_provider`

1313 1414 

1314Type / Values1415Type / Values

1315 1416 

1316`boolean`1417`string`

1317 1418 

1318Details1419Details

1319 1420 

1320The provider uses OpenAI authentication (defaults to false).1421Provider id from `model_providers` (default: `openai`).

1321 1422 

1322Key1423Key

1323 1424 

1324`model_providers.<id>.stream_idle_timeout_ms`1425`model_providers.<id>`

1325 1426 

1326Type / Values1427Type / Values

1327 1428 

1328`number`1429`table`

1329 1430 

1330Details1431Details

1331 1432 

1332Idle timeout for SSE streams in milliseconds (default: 300000).1433Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.

1333 1434 

1334Key1435Key

1335 1436 

1336`model_providers.<id>.stream_max_retries`1437`model_providers.<id>.auth`

1337 1438 

1338Type / Values1439Type / Values

1339 1440 

1340`number`1441`table`

1341 1442 

1342Details1443Details

1343 1444 

1344Retry count for SSE streaming interruptions (default: 5).1445Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.

1345 1446 

1346Key1447Key

1347 1448 

1348`model_providers.<id>.wire_api`1449`model_providers.<id>.auth.args`

1349 1450 

1350Type / Values1451Type / Values

1351 1452 

1352`chat | responses`1453`array<string>`

1353 1454 

1354Details1455Details

1355 1456 

1356Protocol used by the provider (defaults to `chat` if omitted).1457Arguments passed to the token command.

1357 1458 

1358Key1459Key

1359 1460 

1360`model_reasoning_effort`1461`model_providers.<id>.auth.command`

1361 1462 

1362Type / Values1463Type / Values

1363 1464 

1364`minimal | low | medium | high | xhigh`1465`string`

1365 1466 

1366Details1467Details

1367 1468 

1368Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1469Command to run when Codex needs a bearer token. The command must print the token to stdout.

1369 1470 

1370Key1471Key

1371 1472 

1372`model_reasoning_summary`1473`model_providers.<id>.auth.cwd`

1373 1474 

1374Type / Values1475Type / Values

1375 1476 

1376`auto | concise | detailed | none`1477`string (path)`

1377 1478 

1378Details1479Details

1379 1480 

1380Select reasoning summary detail or disable summaries entirely.1481Working directory for the token command.

1381 1482 

1382Key1483Key

1383 1484 

1384`model_supports_reasoning_summaries`1485`model_providers.<id>.auth.refresh_interval_ms`

1385 1486 

1386Type / Values1487Type / Values

1387 1488 

1388`boolean`1489`number`

1389 1490 

1390Details1491Details

1391 1492 

1392Force Codex to send or not send reasoning metadata.1493How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.

1393 1494 

1394Key1495Key

1395 1496 

1396`model_verbosity`1497`model_providers.<id>.auth.timeout_ms`

1397 1498 

1398Type / Values1499Type / Values

1399 1500 

1400`low | medium | high`1501`number`

1401 1502 

1402Details1503Details

1403 1504 

1404Control GPT-5 Responses API verbosity (defaults to `medium`).1505Maximum token command runtime in milliseconds (default: 5000).

1405 1506 

1406Key1507Key

1407 1508 

1408`notice.hide_full_access_warning`1509`model_providers.<id>.base_url`

1409 1510 

1410Type / Values1511Type / Values

1411 1512 

1412`boolean`1513`string`

1413 1514 

1414Details1515Details

1415 1516 

1416Track acknowledgement of the full access warning prompt.1517API base URL for the model provider.

1417 1518 

1418Key1519Key

1419 1520 

1420`notice.hide_gpt-5.1-codex-max_migration_prompt`1521`model_providers.<id>.env_http_headers`

1421 1522 

1422Type / Values1523Type / Values

1423 1524 

1424`boolean`1525`map<string,string>`

1425 1526 

1426Details1527Details

1427 1528 

1428Track acknowledgement of the gpt-5.1-codex-max migration prompt.1529HTTP headers populated from environment variables when present.

1530 

1531Key

1532 

1533`model_providers.<id>.env_key`

1534 

1535Type / Values

1536 

1537`string`

1538 

1539Details

1540 

1541Environment variable supplying the provider API key.

1542 

1543Key

1544 

1545`model_providers.<id>.env_key_instructions`

1546 

1547Type / Values

1548 

1549`string`

1550 

1551Details

1552 

1553Optional setup guidance for the provider API key.

1554 

1555Key

1556 

1557`model_providers.<id>.experimental_bearer_token`

1558 

1559Type / Values

1560 

1561`string`

1562 

1563Details

1564 

1565Direct bearer token for the provider (discouraged; use `env_key`).

1566 

1567Key

1568 

1569`model_providers.<id>.http_headers`

1570 

1571Type / Values

1572 

1573`map<string,string>`

1574 

1575Details

1576 

1577Static HTTP headers added to provider requests.

1578 

1579Key

1580 

1581`model_providers.<id>.name`

1582 

1583Type / Values

1584 

1585`string`

1586 

1587Details

1588 

1589Display name for a custom model provider.

1590 

1591Key

1592 

1593`model_providers.<id>.query_params`

1594 

1595Type / Values

1596 

1597`map<string,string>`

1598 

1599Details

1600 

1601Extra query parameters appended to provider requests.

1602 

1603Key

1604 

1605`model_providers.<id>.request_max_retries`

1606 

1607Type / Values

1608 

1609`number`

1610 

1611Details

1612 

1613Retry count for HTTP requests to the provider (default: 4).

1614 

1615Key

1616 

1617`model_providers.<id>.requires_openai_auth`

1618 

1619Type / Values

1620 

1621`boolean`

1622 

1623Details

1624 

1625The provider uses OpenAI authentication (defaults to false).

1626 

1627Key

1628 

1629`model_providers.<id>.stream_idle_timeout_ms`

1630 

1631Type / Values

1632 

1633`number`

1634 

1635Details

1636 

1637Idle timeout for SSE streams in milliseconds (default: 300000).

1638 

1639Key

1640 

1641`model_providers.<id>.stream_max_retries`

1642 

1643Type / Values

1644 

1645`number`

1646 

1647Details

1648 

1649Retry count for SSE streaming interruptions (default: 5).

1650 

1651Key

1652 

1653`model_providers.<id>.supports_websockets`

1654 

1655Type / Values

1656 

1657`boolean`

1658 

1659Details

1660 

1661Whether that provider supports the Responses API WebSocket transport.

1662 

1663Key

1664 

1665`model_providers.<id>.wire_api`

1666 

1667Type / Values

1668 

1669`responses`

1670 

1671Details

1672 

1673Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.

1674 

1675Key

1676 

1677`model_reasoning_effort`

1678 

1679Type / Values

1680 

1681`minimal | low | medium | high | xhigh`

1682 

1683Details

1684 

1685Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).

1686 

1687Key

1688 

1689`model_reasoning_summary`

1690 

1691Type / Values

1692 

1693`auto | concise | detailed | none`

1694 

1695Details

1696 

1697Select reasoning summary detail or disable summaries entirely.

1698 

1699Key

1700 

1701`model_supports_reasoning_summaries`

1702 

1703Type / Values

1704 

1705`boolean`

1706 

1707Details

1708 

1709Force Codex to send or not send reasoning metadata.

1710 

1711Key

1712 

1713`model_verbosity`

1714 

1715Type / Values

1716 

1717`low | medium | high`

1718 

1719Details

1720 

1721Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.

1722 

1723Key

1724 

1725`notice.hide_full_access_warning`

1726 

1727Type / Values

1728 

1729`boolean`

1730 

1731Details

1732 

1733Track acknowledgement of the full access warning prompt.

1734 

1735Key

1736 

1737`notice.hide_gpt-5.1-codex-max_migration_prompt`

1738 

1739Type / Values

1740 

1741`boolean`

1742 

1743Details

1744 

1745Track acknowledgement of the gpt-5.1-codex-max migration prompt.

1429 1746 

1430Key1747Key

1431 1748 


1437 1754 

1438Details1755Details

1439 1756 

1440Track acknowledgement of the GPT-5.1 migration prompt.1757Track acknowledgement of the GPT-5.1 migration prompt.

1758 

1759Key

1760 

1761`notice.hide_rate_limit_model_nudge`

1762 

1763Type / Values

1764 

1765`boolean`

1766 

1767Details

1768 

1769Track opt-out of the rate limit model switch reminder.

1770 

1771Key

1772 

1773`notice.hide_world_writable_warning`

1774 

1775Type / Values

1776 

1777`boolean`

1778 

1779Details

1780 

1781Track acknowledgement of the Windows world-writable directories warning.

1782 

1783Key

1784 

1785`notice.model_migrations`

1786 

1787Type / Values

1788 

1789`map<string,string>`

1790 

1791Details

1792 

1793Track acknowledged model migrations as old->new mappings.

1794 

1795Key

1796 

1797`notify`

1798 

1799Type / Values

1800 

1801`array<string>`

1802 

1803Details

1804 

1805Command invoked for notifications; receives a JSON payload from Codex.

1806 

1807Key

1808 

1809`openai_base_url`

1810 

1811Type / Values

1812 

1813`string`

1814 

1815Details

1816 

1817Base URL override for the built-in `openai` model provider.

1818 

1819Key

1820 

1821`oss_provider`

1822 

1823Type / Values

1824 

1825`lmstudio | ollama`

1826 

1827Details

1828 

1829Default local provider used when running with `--oss` (defaults to prompting if unset).

1830 

1831Key

1832 

1833`otel.environment`

1834 

1835Type / Values

1836 

1837`string`

1838 

1839Details

1840 

1841Environment tag applied to emitted OpenTelemetry events (default: `dev`).

1842 

1843Key

1844 

1845`otel.exporter`

1846 

1847Type / Values

1848 

1849`none | otlp-http | otlp-grpc`

1850 

1851Details

1852 

1853Select the OpenTelemetry exporter and provide any endpoint metadata.

1854 

1855Key

1856 

1857`otel.exporter.<id>.endpoint`

1858 

1859Type / Values

1860 

1861`string`

1862 

1863Details

1864 

1865Exporter endpoint for OTEL logs.

1866 

1867Key

1868 

1869`otel.exporter.<id>.headers`

1870 

1871Type / Values

1872 

1873`map<string,string>`

1874 

1875Details

1876 

1877Static headers included with OTEL exporter requests.

1878 

1879Key

1880 

1881`otel.exporter.<id>.protocol`

1882 

1883Type / Values

1884 

1885`binary | json`

1886 

1887Details

1888 

1889Protocol used by the OTLP/HTTP exporter.

1890 

1891Key

1892 

1893`otel.exporter.<id>.tls.ca-certificate`

1894 

1895Type / Values

1896 

1897`string`

1898 

1899Details

1900 

1901CA certificate path for OTEL exporter TLS.

1902 

1903Key

1904 

1905`otel.exporter.<id>.tls.client-certificate`

1906 

1907Type / Values

1908 

1909`string`

1910 

1911Details

1912 

1913Client certificate path for OTEL exporter TLS.

1914 

1915Key

1916 

1917`otel.exporter.<id>.tls.client-private-key`

1918 

1919Type / Values

1920 

1921`string`

1922 

1923Details

1924 

1925Client private key path for OTEL exporter TLS.

1926 

1927Key

1928 

1929`otel.log_user_prompt`

1930 

1931Type / Values

1932 

1933`boolean`

1934 

1935Details

1936 

1937Opt in to exporting raw user prompts with OpenTelemetry logs.

1938 

1939Key

1940 

1941`otel.metrics_exporter`

1942 

1943Type / Values

1944 

1945`none | statsig | otlp-http | otlp-grpc`

1946 

1947Details

1948 

1949Select the OpenTelemetry metrics exporter (defaults to `statsig`).

1950 

1951Key

1952 

1953`otel.trace_exporter`

1954 

1955Type / Values

1956 

1957`none | otlp-http | otlp-grpc`

1958 

1959Details

1960 

1961Select the OpenTelemetry trace exporter and provide any endpoint metadata.

1962 

1963Key

1964 

1965`otel.trace_exporter.<id>.endpoint`

1966 

1967Type / Values

1968 

1969`string`

1970 

1971Details

1972 

1973Trace exporter endpoint for OTEL logs.

1441 1974 

1442Key1975Key

1443 1976 

1444`notice.hide_rate_limit_model_nudge`1977`otel.trace_exporter.<id>.headers`

1445 1978 

1446Type / Values1979Type / Values

1447 1980 

1448`boolean`1981`map<string,string>`

1449 1982 

1450Details1983Details

1451 1984 

1452Track opt-out of the rate limit model switch reminder.1985Static headers included with OTEL trace exporter requests.

1453 1986 

1454Key1987Key

1455 1988 

1456`notice.hide_world_writable_warning`1989`otel.trace_exporter.<id>.protocol`

1457 1990 

1458Type / Values1991Type / Values

1459 1992 

1460`boolean`1993`binary | json`

1461 1994 

1462Details1995Details

1463 1996 

1464Track acknowledgement of the Windows world-writable directories warning.1997Protocol used by the OTLP/HTTP trace exporter.

1465 1998 

1466Key1999Key

1467 2000 

1468`notice.model_migrations`2001`otel.trace_exporter.<id>.tls.ca-certificate`

1469 2002 

1470Type / Values2003Type / Values

1471 2004 

1472`map<string,string>`2005`string`

1473 2006 

1474Details2007Details

1475 2008 

1476Track acknowledged model migrations as old->new mappings.2009CA certificate path for OTEL trace exporter TLS.

1477 2010 

1478Key2011Key

1479 2012 

1480`notify`2013`otel.trace_exporter.<id>.tls.client-certificate`

1481 2014 

1482Type / Values2015Type / Values

1483 2016 

1484`array<string>`2017`string`

1485 2018 

1486Details2019Details

1487 2020 

1488Command invoked for notifications; receives a JSON payload from Codex.2021Client certificate path for OTEL trace exporter TLS.

1489 2022 

1490Key2023Key

1491 2024 

1492`oss_provider`2025`otel.trace_exporter.<id>.tls.client-private-key`

1493 2026 

1494Type / Values2027Type / Values

1495 2028 

1496`lmstudio | ollama`2029`string`

1497 2030 

1498Details2031Details

1499 2032 

1500Default local provider used when running with `--oss` (defaults to prompting if unset).2033Client private key path for OTEL trace exporter TLS.

1501 2034 

1502Key2035Key

1503 2036 

1504`otel.environment`2037`permissions.<name>.filesystem`

1505 2038 

1506Type / Values2039Type / Values

1507 2040 

1508`string`2041`table`

1509 2042 

1510Details2043Details

1511 2044 

1512Environment tag applied to emitted OpenTelemetry events (default: `dev`).2045Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.

1513 2046 

1514Key2047Key

1515 2048 

1516`otel.exporter`2049`permissions.<name>.filesystem.":project_roots".<subpath>`

1517 2050 

1518Type / Values2051Type / Values

1519 2052 

1520`none | otlp-http | otlp-grpc`2053`"read" | "write" | "none"`

1521 2054 

1522Details2055Details

1523 2056 

1524Select the OpenTelemetry exporter and provide any endpoint metadata.2057Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.

1525 2058 

1526Key2059Key

1527 2060 

1528`otel.exporter.<id>.endpoint`2061`permissions.<name>.filesystem.<path>`

1529 2062 

1530Type / Values2063Type / Values

1531 2064 

1532`string`2065`"read" | "write" | "none" | table`

1533 2066 

1534Details2067Details

1535 2068 

1536Exporter endpoint for OTEL logs.2069Grant direct access for a path or special token, or scope nested entries under that root.

1537 2070 

1538Key2071Key

1539 2072 

1540`otel.exporter.<id>.headers`2073`permissions.<name>.network.allow_local_binding`

1541 2074 

1542Type / Values2075Type / Values

1543 2076 

1544`map<string,string>`2077`boolean`

1545 2078 

1546Details2079Details

1547 2080 

1548Static headers included with OTEL exporter requests.2081Permit local bind/listen operations through the managed proxy.

1549 2082 

1550Key2083Key

1551 2084 

1552`otel.exporter.<id>.protocol`2085`permissions.<name>.network.allow_upstream_proxy`

1553 2086 

1554Type / Values2087Type / Values

1555 2088 

1556`binary | json`2089`boolean`

1557 2090 

1558Details2091Details

1559 2092 

1560Protocol used by the OTLP/HTTP exporter.2093Allow the managed proxy to chain to another upstream proxy.

1561 2094 

1562Key2095Key

1563 2096 

1564`otel.exporter.<id>.tls.ca-certificate`2097`permissions.<name>.network.dangerously_allow_all_unix_sockets`

1565 2098 

1566Type / Values2099Type / Values

1567 2100 

1568`string`2101`boolean`

1569 2102 

1570Details2103Details

1571 2104 

1572CA certificate path for OTEL exporter TLS.2105Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.

1573 2106 

1574Key2107Key

1575 2108 

1576`otel.exporter.<id>.tls.client-certificate`2109`permissions.<name>.network.dangerously_allow_non_loopback_proxy`

1577 2110 

1578Type / Values2111Type / Values

1579 2112 

1580`string`2113`boolean`

1581 2114 

1582Details2115Details

1583 2116 

1584Client certificate path for OTEL exporter TLS.2117Permit non-loopback bind addresses for the managed proxy listener.

1585 2118 

1586Key2119Key

1587 2120 

1588`otel.exporter.<id>.tls.client-private-key`2121`permissions.<name>.network.domains`

1589 2122 

1590Type / Values2123Type / Values

1591 2124 

1592`string`2125`map<string, allow | deny>`

1593 2126 

1594Details2127Details

1595 2128 

1596Client private key path for OTEL exporter TLS.2129Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.

1597 2130 

1598Key2131Key

1599 2132 

1600`otel.log_user_prompt`2133`permissions.<name>.network.enable_socks5`

1601 2134 

1602Type / Values2135Type / Values

1603 2136 


1605 2138 

1606Details2139Details

1607 2140 

1608Opt in to exporting raw user prompts with OpenTelemetry logs.2141Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.

1609 2142 

1610Key2143Key

1611 2144 

1612`otel.trace_exporter`2145`permissions.<name>.network.enable_socks5_udp`

1613 2146 

1614Type / Values2147Type / Values

1615 2148 

1616`none | otlp-http | otlp-grpc`2149`boolean`

1617 2150 

1618Details2151Details

1619 2152 

1620Select the OpenTelemetry trace exporter and provide any endpoint metadata.2153Allow UDP over the SOCKS5 listener when enabled.

1621 2154 

1622Key2155Key

1623 2156 

1624`otel.trace_exporter.<id>.endpoint`2157`permissions.<name>.network.enabled`

1625 2158 

1626Type / Values2159Type / Values

1627 2160 

1628`string`2161`boolean`

1629 2162 

1630Details2163Details

1631 2164 

1632Trace exporter endpoint for OTEL logs.2165Enable network access for this named permissions profile.

1633 2166 

1634Key2167Key

1635 2168 

1636`otel.trace_exporter.<id>.headers`2169`permissions.<name>.network.mode`

1637 2170 

1638Type / Values2171Type / Values

1639 2172 

1640`map<string,string>`2173`limited | full`

1641 2174 

1642Details2175Details

1643 2176 

1644Static headers included with OTEL trace exporter requests.2177Network proxy mode used for subprocess traffic.

1645 2178 

1646Key2179Key

1647 2180 

1648`otel.trace_exporter.<id>.protocol`2181`permissions.<name>.network.proxy_url`

1649 2182 

1650Type / Values2183Type / Values

1651 2184 

1652`binary | json`2185`string`

1653 2186 

1654Details2187Details

1655 2188 

1656Protocol used by the OTLP/HTTP trace exporter.2189HTTP proxy endpoint used when this permissions profile enables the managed network proxy.

1657 2190 

1658Key2191Key

1659 2192 

1660`otel.trace_exporter.<id>.tls.ca-certificate`2193`permissions.<name>.network.socks_url`

1661 2194 

1662Type / Values2195Type / Values

1663 2196 


1665 2198 

1666Details2199Details

1667 2200 

1668CA certificate path for OTEL trace exporter TLS.2201SOCKS5 proxy endpoint used by this permissions profile.

1669 2202 

1670Key2203Key

1671 2204 

1672`otel.trace_exporter.<id>.tls.client-certificate`2205`permissions.<name>.network.unix_sockets`

1673 2206 

1674Type / Values2207Type / Values

1675 2208 

1676`string`2209`map<string, allow | none>`

1677 2210 

1678Details2211Details

1679 2212 

1680Client certificate path for OTEL trace exporter TLS.2213Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.

1681 2214 

1682Key2215Key

1683 2216 

1684`otel.trace_exporter.<id>.tls.client-private-key`2217`personality`

1685 2218 

1686Type / Values2219Type / Values

1687 2220 

1688`string`2221`none | friendly | pragmatic`

1689 2222 

1690Details2223Details

1691 2224 

1692Client private key path for OTEL trace exporter TLS.2225Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.

1693 2226 

1694Key2227Key

1695 2228 

1696`personality`2229`plan_mode_reasoning_effort`

1697 2230 

1698Type / Values2231Type / Values

1699 2232 

1700`none | friendly | pragmatic`2233`none | minimal | low | medium | high | xhigh`

1701 2234 

1702Details2235Details

1703 2236 

1704Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.2237Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.

1705 2238 

1706Key2239Key

1707 2240 


1729 2262 

1730Key2263Key

1731 2264 

1732`profiles.<name>.experimental_use_freeform_apply_patch`2265`profiles.<name>.analytics.enabled`

1733 2266 

1734Type / Values2267Type / Values

1735 2268 


1737 2270 

1738Details2271Details

1739 2272 

1740Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2273Profile-scoped analytics enablement override.

1741 2274 

1742Key2275Key

1743 2276 


1753 2286 

1754Key2287Key

1755 2288 

1756`profiles.<name>.include_apply_patch_tool`2289`profiles.<name>.model_catalog_json`

1757 2290 

1758Type / Values2291Type / Values

1759 2292 

1760`boolean`2293`string (path)`

1761 2294 

1762Details2295Details

1763 2296 

1764Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2297Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).

1765 2298 

1766Key2299Key

1767 2300 

1768`profiles.<name>.model_catalog_json`2301`profiles.<name>.model_instructions_file`

1769 2302 

1770Type / Values2303Type / Values

1771 2304 


1773 2306 

1774Details2307Details

1775 2308 

1776Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).2309Profile-scoped replacement for the built-in instruction file.

1777 2310 

1778Key2311Key

1779 2312 


1801 2334 

1802Key2335Key

1803 2336 

2337`profiles.<name>.plan_mode_reasoning_effort`

2338 

2339Type / Values

2340 

2341`none | minimal | low | medium | high | xhigh`

2342 

2343Details

2344 

2345Profile-scoped Plan-mode reasoning override.

2346 

2347Key

2348 

2349`profiles.<name>.service_tier`

2350 

2351Type / Values

2352 

2353`flex | fast`

2354 

2355Details

2356 

2357Profile-scoped service tier preference for new turns.

2358 

2359Key

2360 

2361`profiles.<name>.tools_view_image`

2362 

2363Type / Values

2364 

2365`boolean`

2366 

2367Details

2368 

2369Enable or disable the `view_image` tool in that profile.

2370 

2371Key

2372 

1804`profiles.<name>.web_search`2373`profiles.<name>.web_search`

1805 2374 

1806Type / Values2375Type / Values


1813 2382 

1814Key2383Key

1815 2384 

2385`profiles.<name>.windows.sandbox`

2386 

2387Type / Values

2388 

2389`unelevated | elevated`

2390 

2391Details

2392 

2393Profile-scoped Windows sandbox mode override.

2394 

2395Key

2396 

1816`project_doc_fallback_filenames`2397`project_doc_fallback_filenames`

1817 2398 

1818Type / Values2399Type / Values


1933 2514 

1934Key2515Key

1935 2516 

2517`service_tier`

2518 

2519Type / Values

2520 

2521`flex | fast`

2522 

2523Details

2524 

2525Preferred service tier for new turns.

2526 

2527Key

2528 

1936`shell_environment_policy.exclude`2529`shell_environment_policy.exclude`

1937 2530 

1938Type / Values2531Type / Values


2053 2646 

2054Key2647Key

2055 2648 

2649`sqlite_home`

2650 

2651Type / Values

2652 

2653`string (path)`

2654 

2655Details

2656 

2657Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.

2658 

2659Key

2660 

2056`suppress_unstable_features_warning`2661`suppress_unstable_features_warning`

2057 2662 

2058Type / Values2663Type / Values


2077 2682 

2078Key2683Key

2079 2684 

2080`tools.web_search`2685`tool_suggest.discoverables`

2686 

2687Type / Values

2688 

2689`array<table>`

2690 

2691Details

2692 

2693Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.

2694 

2695Key

2696 

2697`tools.view_image`

2081 2698 

2082Type / Values2699Type / Values

2083 2700 


2085 2702 

2086Details2703Details

2087 2704 

2088Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2705Enable the local-image attachment tool `view_image`.

2706 

2707Key

2708 

2709`tools.web_search`

2710 

2711Type / Values

2712 

2713`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`

2714 

2715Details

2716 

2717Optional web search tool configuration. The legacy boolean form is still accepted, but the object form lets you set search context size, allowed domains, and approximate user location.

2089 2718 

2090Key2719Key

2091 2720 


2125 2754 

2126Key2755Key

2127 2756 

2757`tui.model_availability_nux.<model>`

2758 

2759Type / Values

2760 

2761`integer`

2762 

2763Details

2764 

2765Internal startup-tooltip state keyed by model slug.

2766 

2767Key

2768 

2128`tui.notification_method`2769`tui.notification_method`

2129 2770 

2130Type / Values2771Type / Values


2173 2814 

2174Key2815Key

2175 2816 

2817`tui.terminal_title`

2818 

2819Type / Values

2820 

2821`array<string> | null`

2822 

2823Details

2824 

2825Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.

2826 

2827Key

2828 

2829`tui.theme`

2830 

2831Type / Values

2832 

2833`string`

2834 

2835Details

2836 

2837Syntax-highlighting theme override (kebab-case theme name).

2838 

2839Key

2840 

2176`web_search`2841`web_search`

2177 2842 

2178Type / Values2843Type / Values


2195 2860 

2196Track Windows onboarding acknowledgement (Windows only).2861Track Windows onboarding acknowledgement (Windows only).

2197 2862 

2863Key

2864 

2865`windows.sandbox`

2866 

2867Type / Values

2868 

2869`unelevated | elevated`

2870 

2871Details

2872 

2873Windows-only native sandbox mode when running Codex natively on Windows.

2874 

2875Key

2876 

2877`windows.sandbox_private_desktop`

2878 

2879Type / Values

2880 

2881`boolean`

2882 

2883Details

2884 

2885Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior.

2886 

2198Expand to view all2887Expand to view all

2199 2888 

2200You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2889You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).


2214For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2903For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched

2215requirements. See the security page for precedence details.2904requirements. See the security page for precedence details.

2216 2905 

2906Use `[features]` in `requirements.toml` to pin feature flags by the same

2907canonical keys that `config.toml` uses. Omitted keys remain unconstrained.

2908 

2217| Key | Type / Values | Details |2909| Key | Type / Values | Details |

2218| --- | --- | --- |2910| --- | --- | --- |

2219| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). |2911| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`). |

2912| `allowed_approvals_reviewers` | `array<string>` | Allowed values for `approvals_reviewer` (for example `user` and `guardian_subagent`). |

2220| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2913| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |

2221| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |2914| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |

2915| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |

2916| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |

2222| `mcp_servers` | `table` | Allowlist of MCP servers that may be enabled. Both the server name (`<id>`) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled. |2917| `mcp_servers` | `table` | Allowlist of MCP servers that may be enabled. Both the server name (`<id>`) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled. |

2223| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |2918| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |

2224| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |2919| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |


2241 2936 

2242Details2937Details

2243 2938 

2244Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).2939Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`).

2940 

2941Key

2942 

2943`allowed_approvals_reviewers`

2944 

2945Type / Values

2946 

2947`array<string>`

2948 

2949Details

2950 

2951Allowed values for `approvals_reviewer` (for example `user` and `guardian_subagent`).

2245 2952 

2246Key2953Key

2247 2954 


2269 2976 

2270Key2977Key

2271 2978 

2979`features`

2980 

2981Type / Values

2982 

2983`table`

2984 

2985Details

2986 

2987Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.

2988 

2989Key

2990 

2991`features.<name>`

2992 

2993Type / Values

2994 

2995`boolean`

2996 

2997Details

2998 

2999Require a specific canonical feature key to stay enabled or disabled.

3000 

3001Key

3002 

2272`mcp_servers`3003`mcp_servers`

2273 3004 

2274Type / Values3005Type / Values