SpyBara
Go Premium Account
2026
5 Mar 2026, 18:41
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
16 Apr 2026, 18:31
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 +962 −244

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. |

15| `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. |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. |

16| `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). |

17| `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. |

18| `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. |

19| `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. |

20| `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. |

21| `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. |

22| `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. |

23| `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`. |

24| `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. |

25| `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`. |


34| `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. |

35| `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). |

36| `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. |

37| `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. |

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

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

40| `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). |

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

42| `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`. |

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

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

45| `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). |

46| `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). |

47| `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). |

48| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait`, `close_agent`, and `spawn_agents_on_csv`) (experimental; off by default). |53| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |

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.personality` | `boolean` | Enable personality selection controls (stable; on by default). |55| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |

50| `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). |

51| `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). |

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

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

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

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

56| `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). |

57| `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). |

58| `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). |

59| `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. |

60| `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"`. |

61| `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"`. |


66| `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. |

67| `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. |

68| `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. |

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

70| `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`. |

71| `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`. |

72| `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. |


83| `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. |

84| `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. |

85| `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. |

86| `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. |

87| `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. |

88| `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. |

89| `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. |

90| `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. |

91| `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`). |

92| `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). |

93| `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. |

94| `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. |

95| `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`. |

96| `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). |

97| `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. |

98| `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. |

99| `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. |


106| `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). |

107| `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). |

108| `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). |

109| `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. |

110| `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). |

111| `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. |

112| `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. |

113| `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. |

114| `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. |

115| `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. |

116| `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. |


118| `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. |

119| `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. |

120| `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. |

121| `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). |

122| `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`). |

123| `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. |


128| `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. |

129| `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. |

130| `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`). |

131| `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. |

132| `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. |

133| `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. |


135| `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. |

136| `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. |

137| `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. |

138| `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. |

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

140| `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. |

141| `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. |

142| `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`. |

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

144| `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. |

145| `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. |

146| `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. |

147| `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. |

148| `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. |

149| `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. |

150| `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. |


155| `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. |

156| `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. |

157| `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. |

158| `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. |

159| `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. |

160| `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. |


168| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |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). |

181| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |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. |

182 234 

183Key235Key

184 236 


206 258 

207Key259Key

208 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 

209`agents.job_max_runtime_seconds`273`agents.job_max_runtime_seconds`

210 274 

211Type / Values275Type / Values


238 302 

239Details303Details

240 304 

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

242 306 

243Key307Key

244 308 


254 318 

255Key319Key

256 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 

257`approval_policy`333`approval_policy`

258 334 

259Type / Values335Type / Values

260 336 

261`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`

262 362 

263Details363Details

264 364 

265Controls 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.

266 366 

267Key367Key

268 368 

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

270 370 

271Type / Values371Type / Values

272 372 


274 374 

275Details375Details

276 376 

277When `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.

278 378 

279Key379Key

280 380 

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

282 382 

283Type / Values383Type / Values

284 384 


286 386 

287Details387Details

288 388 

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

290 390 

291Key391Key

292 392 

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

294 394 

295Type / Values395Type / Values

296 396 


298 398 

299Details399Details

300 400 

301When `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.

302 414 

303Key415Key

304 416 


470 582 

471Key583Key

472 584 

473`compact_prompt`585`commit_attribution`

474 586 

475Type / Values587Type / Values

476 588 


478 590 

479Details591Details

480 592 

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

482 594 

483Key595Key

484 596 

485`developer_instructions`597`compact_prompt`

486 598 

487Type / Values599Type / Values

488 600 


490 602 

491Details603Details

492 604 

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

494 606 

495Key607Key

496 608 

497`disable_paste_burst`609`default_permissions`

498 610 

499Type / Values611Type / Values

500 612 

501`boolean`613`string`

502 614 

503Details615Details

504 616 

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

506 618 

507Key619Key

508 620 

509`experimental_compact_prompt_file`621`developer_instructions`

510 622 

511Type / Values623Type / Values

512 624 

513`string (path)`625`string`

514 626 

515Details627Details

516 628 

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

518 630 

519Key631Key

520 632 

521`experimental_use_freeform_apply_patch`633`disable_paste_burst`

522 634 

523Type / Values635Type / Values

524 636 


526 638 

527Details639Details

528 640 

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

530 642 

531Key643Key

532 644 

533`experimental_use_unified_exec_tool`645`experimental_compact_prompt_file`

534 646 

535Type / Values647Type / Values

536 648 

537`boolean`649`string (path)`

538 650 

539Details651Details

540 652 

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

542 654 

543Key655Key

544 656 

545`features.apply_patch_freeform`657`experimental_use_unified_exec_tool`

546 658 

547Type / Values659Type / Values

548 660 


550 662 

551Details663Details

552 664 

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

554 666 

555Key667Key

556 668 


566 678 

567Key679Key

568 680 

569`features.apps_mcp_gateway`681`features.codex_hooks`

570 682 

571Type / Values683Type / Values

572 684 


574 686 

575Details687Details

576 688 

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

578 690 

579Key691Key

580 692 

581`features.child_agents_md`693`features.enable_request_compression`

582 694 

583Type / Values695Type / Values

584 696 


586 698 

587Details699Details

588 700 

589Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).701Compress streaming request bodies with zstd when supported (stable; on by default).

590 702 

591Key703Key

592 704 

593`features.collaboration_modes`705`features.fast_mode`

594 706 

595Type / Values707Type / Values

596 708 


598 710 

599Details711Details

600 712 

601Enable collaboration modes such as plan mode (stable; on by default).713Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).

602 714 

603Key715Key

604 716 

605`features.multi_agent`717`features.memories`

606 718 

607Type / Values719Type / Values

608 720 


610 722 

611Details723Details

612 724 

613Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait`, `close_agent`, and `spawn_agents_on_csv`) (experimental; off by default).725Enable [Memories](https://developers.openai.com/codex/memories) (off by default).

614 726 

615Key727Key

616 728 

617`features.personality`729`features.multi_agent`

618 730 

619Type / Values731Type / Values

620 732 


622 734 

623Details735Details

624 736 

625Enable personality selection controls (stable; on by default).737Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).

626 738 

627Key739Key

628 740 

629`features.powershell_utf8`741`features.personality`

630 742 

631Type / Values743Type / Values

632 744 


634 746 

635Details747Details

636 748 

637Force PowerShell UTF-8 output (defaults to true).749Enable personality selection controls (stable; on by default).

638 750 

639Key751Key

640 752 

641`features.remote_models`753`features.prevent_idle_sleep`

642 754 

643Type / Values755Type / Values

644 756 


646 758 

647Details759Details

648 760 

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

650 762 

651Key763Key

652 764 

653`features.request_rule`765`features.shell_snapshot`

654 766 

655Type / Values767Type / Values

656 768 


658 770 

659Details771Details

660 772 

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

662 774 

663Key775Key

664 776 

665`features.runtime_metrics`777`features.shell_tool`

666 778 

667Type / Values779Type / Values

668 780 


670 782 

671Details783Details

672 784 

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

674 786 

675Key787Key

676 788 

677`features.search_tool`789`features.skill_mcp_dependency_install`

678 790 

679Type / Values791Type / Values

680 792 


682 794 

683Details795Details

684 796 

685Enable `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).

686 798 

687Key799Key

688 800 

689`features.shell_snapshot`801`features.smart_approvals`

690 802 

691Type / Values803Type / Values

692 804 


694 806 

695Details807Details

696 808 

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

698 810 

699Key811Key

700 812 

701`features.shell_tool`813`features.undo`

702 814 

703Type / Values815Type / Values

704 816 


706 818 

707Details819Details

708 820 

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

710 822 

711Key823Key

712 824 


718 830 

719Details831Details

720 832 

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

722 

723Key

724 

725`features.use_linux_sandbox_bwrap`

726 

727Type / Values

728 

729`boolean`

730 

731Details

732 

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

734 834 

735Key835Key

736 836 


854 954 

855Key955Key

856 956 

857`include_apply_patch_tool`

858 

859Type / Values

860 

861`boolean`

862 

863Details

864 

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

866 

867Key

868 

869`instructions`957`instructions`

870 958 

871Type / Values959Type / Values


1058 1146 

1059Key1147Key

1060 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 

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

1062 1162 

1063Type / Values1163Type / Values


1070 1170 

1071Key1171Key

1072 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 

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

1074 1186 

1075Type / Values1187Type / Values


1118 1230 

1119Key1231Key

1120 1232 

1121`model`1233`memories.consolidation_model`

1122 1234 

1123Type / Values1235Type / Values

1124 1236 


1126 1238 

1127Details1239Details

1128 1240 

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

1130 1242 

1131Key1243Key

1132 1244 

1133`model_auto_compact_token_limit`1245`memories.extract_model`

1134 1246 

1135Type / Values1247Type / Values

1136 1248 

1137`number`1249`string`

1138 1250 

1139Details1251Details

1140 1252 

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

1142 1254 

1143Key1255Key

1144 1256 

1145`model_catalog_json`1257`memories.generate_memories`

1146 1258 

1147Type / Values1259Type / Values

1148 1260 

1149`string (path)`1261`boolean`

1150 1262 

1151Details1263Details

1152 1264 

1153Optional 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`.

1154 1266 

1155Key1267Key

1156 1268 

1157`model_context_window`1269`memories.max_raw_memories_for_consolidation`

1158 1270 

1159Type / Values1271Type / Values

1160 1272 


1162 1274 

1163Details1275Details

1164 1276 

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

1166 1278 

1167Key1279Key

1168 1280 

1169`model_instructions_file`1281`memories.max_rollout_age_days`

1170 1282 

1171Type / Values1283Type / Values

1172 1284 

1173`string (path)`1285`number`

1174 1286 

1175Details1287Details

1176 1288 

1177Replacement 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`.

1178 1290 

1179Key1291Key

1180 1292 

1181`model_provider`1293`memories.max_rollouts_per_startup`

1182 1294 

1183Type / Values1295Type / Values

1184 1296 

1185`string`1297`number`

1186 1298 

1187Details1299Details

1188 1300 

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

1190 1302 

1191Key1303Key

1192 1304 

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

1194 1306 

1195Type / Values1307Type / Values

1196 1308 

1197`string`1309`number`

1198 1310 

1199Details1311Details

1200 1312 

1201API 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`.

1202 1314 

1203Key1315Key

1204 1316 

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

1206 1318 

1207Type / Values1319Type / Values

1208 1320 

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

1210 1322 

1211Details1323Details

1212 1324 

1213HTTP 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`.

1214 1326 

1215Key1327Key

1216 1328 

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

1218 1330 

1219Type / Values1331Type / Values

1220 1332 

1221`string`1333`boolean`

1222 1334 

1223Details1335Details

1224 1336 

1225Environment 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`.

1226 1338 

1227Key1339Key

1228 1340 

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

1230 1342 

1231Type / Values1343Type / Values

1232 1344 

1233`string`1345`boolean`

1234 1346 

1235Details1347Details

1236 1348 

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

1238 1350 

1239Key1351Key

1240 1352 

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

1242 1354 

1243Type / Values1355Type / Values

1244 1356 


1246 1358 

1247Details1359Details

1248 1360 

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

1250 1362 

1251Key1363Key

1252 1364 

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

1254 1366 

1255Type / Values1367Type / Values

1256 1368 

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

1258 1370 

1259Details1371Details

1260 1372 

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

1262 1374 

1263Key1375Key

1264 1376 

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

1266 1378 

1267Type / Values1379Type / Values

1268 1380 

1269`string`1381`string (path)`

1270 1382 

1271Details1383Details

1272 1384 

1273Display 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.

1274 1386 

1275Key1387Key

1276 1388 

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

1278 1390 

1279Type / Values1391Type / Values

1280 1392 

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

1282 1394 

1283Details1395Details

1284 1396 

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

1286 1398 

1287Key1399Key

1288 1400 

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

1290 1402 

1291Type / Values1403Type / Values

1292 1404 

1293`number`1405`string (path)`

1294 1406 

1295Details1407Details

1296 1408 

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

1298 1410 

1299Key1411Key

1300 1412 

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

1302 1414 

1303Type / Values1415Type / Values

1304 1416 

1305`boolean`1417`string`

1306 1418 

1307Details1419Details

1308 1420 

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

1310 1422 

1311Key1423Key

1312 1424 

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

1314 1426 

1315Type / Values1427Type / Values

1316 1428 

1317`number`1429`table`

1318 1430 

1319Details1431Details

1320 1432 

1321Idle 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.

1322 1434 

1323Key1435Key

1324 1436 

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

1326 1438 

1327Type / Values1439Type / Values

1328 1440 

1329`number`1441`table`

1330 1442 

1331Details1443Details

1332 1444 

1333Retry 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`.

1334 1446 

1335Key1447Key

1336 1448 

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

1338 1450 

1339Type / Values1451Type / Values

1340 1452 

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

1342 1454 

1343Details1455Details

1344 1456 

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

1346 1458 

1347Key1459Key

1348 1460 

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

1350 1462 

1351Type / Values1463Type / Values

1352 1464 

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

1354 1466 

1355Details1467Details

1356 1468 

1357Adjust 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.

1358 1470 

1359Key1471Key

1360 1472 

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

1362 1474 

1363Type / Values1475Type / Values

1364 1476 

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

1366 1478 

1367Details1479Details

1368 1480 

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

1370 1482 

1371Key1483Key

1372 1484 

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

1374 1486 

1375Type / Values1487Type / Values

1376 1488 

1377`boolean`1489`number`

1378 1490 

1379Details1491Details

1380 1492 

1381Force 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.

1382 1494 

1383Key1495Key

1384 1496 

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

1386 1498 

1387Type / Values1499Type / Values

1388 1500 

1389`low | medium | high`1501`number`

1390 1502 

1391Details1503Details

1392 1504 

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

1394 1506 

1395Key1507Key

1396 1508 

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

1398 1510 

1399Type / Values1511Type / Values

1400 1512 

1401`boolean`1513`string`

1402 1514 

1403Details1515Details

1404 1516 

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

1406 1518 

1407Key1519Key

1408 1520 

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

1410 1522 

1411Type / Values1523Type / Values

1412 1524 

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

1414 1526 

1415Details1527Details

1416 1528 

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

1418 1530 

1419Key1531Key

1420 1532 

1421`notice.hide_gpt5_1_migration_prompt`1533`model_providers.<id>.env_key`

1422 1534 

1423Type / Values1535Type / Values

1424 1536 

1425`boolean`1537`string`

1426 1538 

1427Details1539Details

1428 1540 

1429Track acknowledgement of the GPT-5.1 migration prompt.1541Environment variable supplying the provider API key.

1430 1542 

1431Key1543Key

1432 1544 

1433`notice.hide_rate_limit_model_nudge`1545`model_providers.<id>.env_key_instructions`

1434 1546 

1435Type / Values1547Type / Values

1436 1548 

1437`boolean`1549`string`

1438 1550 

1439Details1551Details

1440 1552 

1441Track opt-out of the rate limit model switch reminder.1553Optional setup guidance for the provider API key.

1442 1554 

1443Key1555Key

1444 1556 

1445`notice.hide_world_writable_warning`1557`model_providers.<id>.experimental_bearer_token`

1446 1558 

1447Type / Values1559Type / Values

1448 1560 

1449`boolean`1561`string`

1450 1562 

1451Details1563Details

1452 1564 

1453Track acknowledgement of the Windows world-writable directories warning.1565Direct bearer token for the provider (discouraged; use `env_key`).

1454 1566 

1455Key1567Key

1456 1568 

1457`notice.model_migrations`1569`model_providers.<id>.http_headers`

1458 1570 

1459Type / Values1571Type / Values

1460 1572 


1462 1574 

1463Details1575Details

1464 1576 

1465Track acknowledged model migrations as old->new mappings.1577Static HTTP headers added to provider requests.

1466 1578 

1467Key1579Key

1468 1580 

1469`notify`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.

1746 

1747Key

1748 

1749`notice.hide_gpt5_1_migration_prompt`

1750 

1751Type / Values

1752 

1753`boolean`

1754 

1755Details

1756 

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`

1470 1798 

1471Type / Values1799Type / Values

1472 1800 


1474 1802 

1475Details1803Details

1476 1804 

1477Command invoked for notifications; receives a JSON payload from Codex.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.

1478 1974 

1479Key1975Key

1480 1976 

1481`oss_provider`1977`otel.trace_exporter.<id>.headers`

1482 1978 

1483Type / Values1979Type / Values

1484 1980 

1485`lmstudio | ollama`1981`map<string,string>`

1486 1982 

1487Details1983Details

1488 1984 

1489Default local provider used when running with `--oss` (defaults to prompting if unset).1985Static headers included with OTEL trace exporter requests.

1490 1986 

1491Key1987Key

1492 1988 

1493`otel.environment`1989`otel.trace_exporter.<id>.protocol`

1990 

1991Type / Values

1992 

1993`binary | json`

1994 

1995Details

1996 

1997Protocol used by the OTLP/HTTP trace exporter.

1998 

1999Key

2000 

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

1494 2002 

1495Type / Values2003Type / Values

1496 2004 


1498 2006 

1499Details2007Details

1500 2008 

1501Environment tag applied to emitted OpenTelemetry events (default: `dev`).2009CA certificate path for OTEL trace exporter TLS.

1502 2010 

1503Key2011Key

1504 2012 

1505`otel.exporter`2013`otel.trace_exporter.<id>.tls.client-certificate`

1506 2014 

1507Type / Values2015Type / Values

1508 2016 

1509`none | otlp-http | otlp-grpc`2017`string`

1510 2018 

1511Details2019Details

1512 2020 

1513Select the OpenTelemetry exporter and provide any endpoint metadata.2021Client certificate path for OTEL trace exporter TLS.

1514 2022 

1515Key2023Key

1516 2024 

1517`otel.exporter.<id>.endpoint`2025`otel.trace_exporter.<id>.tls.client-private-key`

1518 2026 

1519Type / Values2027Type / Values

1520 2028 


1522 2030 

1523Details2031Details

1524 2032 

1525Exporter endpoint for OTEL logs.2033Client private key path for OTEL trace exporter TLS.

1526 2034 

1527Key2035Key

1528 2036 

1529`otel.exporter.<id>.headers`2037`permissions.<name>.filesystem`

1530 2038 

1531Type / Values2039Type / Values

1532 2040 

1533`map<string,string>`2041`table`

1534 2042 

1535Details2043Details

1536 2044 

1537Static headers included with OTEL exporter requests.2045Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.

1538 2046 

1539Key2047Key

1540 2048 

1541`otel.exporter.<id>.protocol`2049`permissions.<name>.filesystem.":project_roots".<subpath>`

1542 2050 

1543Type / Values2051Type / Values

1544 2052 

1545`binary | json`2053`"read" | "write" | "none"`

1546 2054 

1547Details2055Details

1548 2056 

1549Protocol used by the OTLP/HTTP exporter.2057Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.

1550 2058 

1551Key2059Key

1552 2060 

1553`otel.exporter.<id>.tls.ca-certificate`2061`permissions.<name>.filesystem.<path>`

1554 2062 

1555Type / Values2063Type / Values

1556 2064 

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

1558 2066 

1559Details2067Details

1560 2068 

1561CA certificate path for OTEL exporter TLS.2069Grant direct access for a path or special token, or scope nested entries under that root.

1562 2070 

1563Key2071Key

1564 2072 

1565`otel.exporter.<id>.tls.client-certificate`2073`permissions.<name>.network.allow_local_binding`

1566 2074 

1567Type / Values2075Type / Values

1568 2076 

1569`string`2077`boolean`

1570 2078 

1571Details2079Details

1572 2080 

1573Client certificate path for OTEL exporter TLS.2081Permit local bind/listen operations through the managed proxy.

1574 2082 

1575Key2083Key

1576 2084 

1577`otel.exporter.<id>.tls.client-private-key`2085`permissions.<name>.network.allow_upstream_proxy`

1578 2086 

1579Type / Values2087Type / Values

1580 2088 

1581`string`2089`boolean`

1582 2090 

1583Details2091Details

1584 2092 

1585Client private key path for OTEL exporter TLS.2093Allow the managed proxy to chain to another upstream proxy.

1586 2094 

1587Key2095Key

1588 2096 

1589`otel.log_user_prompt`2097`permissions.<name>.network.dangerously_allow_all_unix_sockets`

1590 2098 

1591Type / Values2099Type / Values

1592 2100 


1594 2102 

1595Details2103Details

1596 2104 

1597Opt in to exporting raw user prompts with OpenTelemetry logs.2105Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.

1598 2106 

1599Key2107Key

1600 2108 

1601`otel.trace_exporter`2109`permissions.<name>.network.dangerously_allow_non_loopback_proxy`

1602 2110 

1603Type / Values2111Type / Values

1604 2112 

1605`none | otlp-http | otlp-grpc`2113`boolean`

1606 2114 

1607Details2115Details

1608 2116 

1609Select the OpenTelemetry trace exporter and provide any endpoint metadata.2117Permit non-loopback bind addresses for the managed proxy listener.

1610 2118 

1611Key2119Key

1612 2120 

1613`otel.trace_exporter.<id>.endpoint`2121`permissions.<name>.network.domains`

1614 2122 

1615Type / Values2123Type / Values

1616 2124 

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

1618 2126 

1619Details2127Details

1620 2128 

1621Trace exporter endpoint for OTEL logs.2129Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.

1622 2130 

1623Key2131Key

1624 2132 

1625`otel.trace_exporter.<id>.headers`2133`permissions.<name>.network.enable_socks5`

1626 2134 

1627Type / Values2135Type / Values

1628 2136 

1629`map<string,string>`2137`boolean`

1630 2138 

1631Details2139Details

1632 2140 

1633Static headers included with OTEL trace exporter requests.2141Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.

1634 2142 

1635Key2143Key

1636 2144 

1637`otel.trace_exporter.<id>.protocol`2145`permissions.<name>.network.enable_socks5_udp`

1638 2146 

1639Type / Values2147Type / Values

1640 2148 

1641`binary | json`2149`boolean`

1642 2150 

1643Details2151Details

1644 2152 

1645Protocol used by the OTLP/HTTP trace exporter.2153Allow UDP over the SOCKS5 listener when enabled.

1646 2154 

1647Key2155Key

1648 2156 

1649`otel.trace_exporter.<id>.tls.ca-certificate`2157`permissions.<name>.network.enabled`

1650 2158 

1651Type / Values2159Type / Values

1652 2160 

1653`string`2161`boolean`

1654 2162 

1655Details2163Details

1656 2164 

1657CA certificate path for OTEL trace exporter TLS.2165Enable network access for this named permissions profile.

1658 2166 

1659Key2167Key

1660 2168 

1661`otel.trace_exporter.<id>.tls.client-certificate`2169`permissions.<name>.network.mode`

2170 

2171Type / Values

2172 

2173`limited | full`

2174 

2175Details

2176 

2177Network proxy mode used for subprocess traffic.

2178 

2179Key

2180 

2181`permissions.<name>.network.proxy_url`

1662 2182 

1663Type / Values2183Type / Values

1664 2184 


1666 2186 

1667Details2187Details

1668 2188 

1669Client certificate path for OTEL trace exporter TLS.2189HTTP proxy endpoint used when this permissions profile enables the managed network proxy.

1670 2190 

1671Key2191Key

1672 2192 

1673`otel.trace_exporter.<id>.tls.client-private-key`2193`permissions.<name>.network.socks_url`

1674 2194 

1675Type / Values2195Type / Values

1676 2196 


1678 2198 

1679Details2199Details

1680 2200 

1681Client private key path for OTEL trace exporter TLS.2201SOCKS5 proxy endpoint used by this permissions profile.

2202 

2203Key

2204 

2205`permissions.<name>.network.unix_sockets`

2206 

2207Type / Values

2208 

2209`map<string, allow | none>`

2210 

2211Details

2212 

2213Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.

1682 2214 

1683Key2215Key

1684 2216 


1694 2226 

1695Key2227Key

1696 2228 

2229`plan_mode_reasoning_effort`

2230 

2231Type / Values

2232 

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

2234 

2235Details

2236 

2237Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.

2238 

2239Key

2240 

1697`profile`2241`profile`

1698 2242 

1699Type / Values2243Type / Values


1718 2262 

1719Key2263Key

1720 2264 

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

1722 2266 

1723Type / Values2267Type / Values

1724 2268 


1726 2270 

1727Details2271Details

1728 2272 

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

1730 2274 

1731Key2275Key

1732 2276 


1742 2286 

1743Key2287Key

1744 2288 

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

1746 2290 

1747Type / Values2291Type / Values

1748 2292 

1749`boolean`2293`string (path)`

1750 2294 

1751Details2295Details

1752 2296 

1753Legacy 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).

1754 2298 

1755Key2299Key

1756 2300 

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

1758 2302 

1759Type / Values2303Type / Values

1760 2304 


1762 2306 

1763Details2307Details

1764 2308 

1765Profile-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.

1766 2310 

1767Key2311Key

1768 2312 


1790 2334 

1791Key2335Key

1792 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 

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

1794 2374 

1795Type / Values2375Type / Values


1802 2382 

1803Key2383Key

1804 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 

1805`project_doc_fallback_filenames`2397`project_doc_fallback_filenames`

1806 2398 

1807Type / Values2399Type / Values


1922 2514 

1923Key2515Key

1924 2516 

2517`service_tier`

2518 

2519Type / Values

2520 

2521`flex | fast`

2522 

2523Details

2524 

2525Preferred service tier for new turns.

2526 

2527Key

2528 

1925`shell_environment_policy.exclude`2529`shell_environment_policy.exclude`

1926 2530 

1927Type / Values2531Type / Values


2078 2682 

2079Key2683Key

2080 2684 

2081`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`

2082 2698 

2083Type / Values2699Type / Values

2084 2700 


2086 2702 

2087Details2703Details

2088 2704 

2089Deprecated 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.

2090 2718 

2091Key2719Key

2092 2720 


2126 2754 

2127Key2755Key

2128 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 

2129`tui.notification_method`2769`tui.notification_method`

2130 2770 

2131Type / Values2771Type / Values


2174 2814 

2175Key2815Key

2176 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 

2177`web_search`2841`web_search`

2178 2842 

2179Type / Values2843Type / Values


2208 2872 

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

2210 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 

2211Expand to view all2887Expand to view all

2212 2888 

2213You 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).


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

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

2229 2905 

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

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

2908 

2230| Key | Type / Values | Details |2909| Key | Type / Values | Details |

2231| --- | --- | --- |2910| --- | --- | --- |

2232| `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`). |

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

2234| `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. |

2235| `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. |

2236| `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). |

2237| `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. |


2254 2936 

2255Details2937Details

2256 2938 

2257Allowed 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`).

2258 2952 

2259Key2953Key

2260 2954 


2282 2976 

2283Key2977Key

2284 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 

2285`mcp_servers`3003`mcp_servers`

2286 3004 

2287Type / Values3005Type / Values