SpyBara
Go Premium Account
2026
6 Mar 2026, 00:38
19 May 2026, 11:58 18 May 2026, 22:01 14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
17 Apr 2026, 00:44
19 May 2026, 11:58 18 May 2026, 22:01 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 +886 −197

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 


1478 1806 

1479Key1807Key

1480 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 

1481`oss_provider`1821`oss_provider`

1482 1822 

1483Type / Values1823Type / Values


1598 1938 

1599Key1939Key

1600 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 

1601`otel.trace_exporter`1953`otel.trace_exporter`

1602 1954 

1603Type / Values1955Type / Values


1682 2034 

1683Key2035Key

1684 2036 

2037`permissions.<name>.filesystem`

2038 

2039Type / Values

2040 

2041`table`

2042 

2043Details

2044 

2045Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.

2046 

2047Key

2048 

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

2050 

2051Type / Values

2052 

2053`"read" | "write" | "none"`

2054 

2055Details

2056 

2057Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.

2058 

2059Key

2060 

2061`permissions.<name>.filesystem.<path>`

2062 

2063Type / Values

2064 

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

2066 

2067Details

2068 

2069Grant direct access for a path or special token, or scope nested entries under that root.

2070 

2071Key

2072 

2073`permissions.<name>.network.allow_local_binding`

2074 

2075Type / Values

2076 

2077`boolean`

2078 

2079Details

2080 

2081Permit local bind/listen operations through the managed proxy.

2082 

2083Key

2084 

2085`permissions.<name>.network.allow_upstream_proxy`

2086 

2087Type / Values

2088 

2089`boolean`

2090 

2091Details

2092 

2093Allow the managed proxy to chain to another upstream proxy.

2094 

2095Key

2096 

2097`permissions.<name>.network.dangerously_allow_all_unix_sockets`

2098 

2099Type / Values

2100 

2101`boolean`

2102 

2103Details

2104 

2105Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.

2106 

2107Key

2108 

2109`permissions.<name>.network.dangerously_allow_non_loopback_proxy`

2110 

2111Type / Values

2112 

2113`boolean`

2114 

2115Details

2116 

2117Permit non-loopback bind addresses for the managed proxy listener.

2118 

2119Key

2120 

2121`permissions.<name>.network.domains`

2122 

2123Type / Values

2124 

2125`map<string, allow | deny>`

2126 

2127Details

2128 

2129Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.

2130 

2131Key

2132 

2133`permissions.<name>.network.enable_socks5`

2134 

2135Type / Values

2136 

2137`boolean`

2138 

2139Details

2140 

2141Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.

2142 

2143Key

2144 

2145`permissions.<name>.network.enable_socks5_udp`

2146 

2147Type / Values

2148 

2149`boolean`

2150 

2151Details

2152 

2153Allow UDP over the SOCKS5 listener when enabled.

2154 

2155Key

2156 

2157`permissions.<name>.network.enabled`

2158 

2159Type / Values

2160 

2161`boolean`

2162 

2163Details

2164 

2165Enable network access for this named permissions profile.

2166 

2167Key

2168 

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`

2182 

2183Type / Values

2184 

2185`string`

2186 

2187Details

2188 

2189HTTP proxy endpoint used when this permissions profile enables the managed network proxy.

2190 

2191Key

2192 

2193`permissions.<name>.network.socks_url`

2194 

2195Type / Values

2196 

2197`string`

2198 

2199Details

2200 

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.

2214 

2215Key

2216 

1685`personality`2217`personality`

1686 2218 

1687Type / Values2219Type / Values


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


2232 2908 

2233| Key | Type / Values | Details |2909| Key | Type / Values | Details |

2234| --- | --- | --- |2910| --- | --- | --- |

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

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

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

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


2259 2936 

2260Details2937Details

2261 2938 

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

2263 2952 

2264Key2953Key

2265 2954