SpyBara
Go Premium Account
2026
23 Feb 2026, 18:27
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
20 Apr 2026, 18:26
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 +1306 −354

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.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. |15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |

16| `approval_policy` | `untrusted | on-request | never` | Controls when Codex pauses for approval before executing commands. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |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. |

17| `apps.<id>.disabled_reason` | `unknown | user` | Optional reason attached when an app/connector is disabled. |17| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |

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

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

20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |

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

22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being 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. |

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

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

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

31| `apps.<id>.default_tools_approval_mode` | `auto | prompt | approve` | Default approval behavior for tools in this app unless a per-tool override exists. |

32| `apps.<id>.default_tools_enabled` | `boolean` | Default enabled state for tools in this app unless a per-tool override exists. |

33| `apps.<id>.destructive_enabled` | `boolean` | Allow or block tools in this app that advertise `destructive_hint = true`. |

18| `apps.<id>.enabled` | `boolean` | Enable or disable a specific app/connector by id (default: true). |34| `apps.<id>.enabled` | `boolean` | Enable or disable a specific app/connector by id (default: true). |

35| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |

36| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |

37| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |

38| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). |53| `features.guardian_approval` | `boolean` | Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). Use with `approvals_reviewer = "guardian_subagent"`. |

34| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |54| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |

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

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

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

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

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

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

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

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

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

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

45| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (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). |

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

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

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


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

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

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

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

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

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

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

76| `mcp_oauth_callback_url` | `string` | Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port. |

60| `mcp_oauth_credentials_store` | `auto | file | keyring` | Preferred store for MCP OAuth credentials. |77| `mcp_oauth_credentials_store` | `auto | file | keyring` | Preferred store for MCP OAuth credentials. |

61| `mcp_servers.<id>.args` | `array<string>` | Arguments passed to the MCP stdio server command. |78| `mcp_servers.<id>.args` | `array<string>` | Arguments passed to the MCP stdio server command. |

62| `mcp_servers.<id>.bearer_token_env_var` | `string` | Environment variable sourcing the bearer token for an MCP HTTP server. |79| `mcp_servers.<id>.bearer_token_env_var` | `string` | Environment variable sourcing the bearer token for an MCP HTTP server. |


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

128| `profiles.<name>.include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |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. |

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

164 234 

165Key235Key

166 236 


188 258 

189Key259Key

190 260 

191`agents.max_threads`261`agents.<name>.nickname_candidates`

192 262 

193Type / Values263Type / Values

194 264 

195`number`265`array<string>`

196 266 

197Details267Details

198 268 

199Maximum number of agent threads that can be open concurrently.269Optional pool of display nicknames for spawned agents in that role.

200 270 

201Key271Key

202 272 

203`approval_policy`273`agents.job_max_runtime_seconds`

204 274 

205Type / Values275Type / Values

206 276 

207`untrusted | on-request | never`277`number`

208 278 

209Details279Details

210 280 

211Controls when Codex pauses for approval before executing commands. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.281Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.

212 282 

213Key283Key

214 284 

215`apps.<id>.disabled_reason`285`agents.max_depth`

216 286 

217Type / Values287Type / Values

218 288 

219`unknown | user`289`number`

220 290 

221Details291Details

222 292 

223Optional reason attached when an app/connector is disabled.293Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).

224 294 

225Key295Key

226 296 

227`apps.<id>.enabled`297`agents.max_threads`

228 298 

229Type / Values299Type / Values

230 300 

231`boolean`301`number`

232 302 

233Details303Details

234 304 

235Enable or disable a specific app/connector by id (default: true).305Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.

236 306 

237Key307Key

238 308 

239`chatgpt_base_url`309`allow_login_shell`

240 310 

241Type / Values311Type / Values

242 312 

243`string`313`boolean`

244 314 

245Details315Details

246 316 

247Override the base URL used during the ChatGPT login flow.317Allow 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.

248 318 

249Key319Key

250 320 

251`check_for_update_on_startup`321`analytics.enabled`

252 322 

253Type / Values323Type / Values

254 324 


256 326 

257Details327Details

258 328 

259Check for Codex updates on startup (set to false only when updates are centrally managed).329Enable or disable analytics for this machine/profile. When unset, the client default applies.

260 330 

261Key331Key

262 332 

263`cli_auth_credentials_store`333`approval_policy`

264 334 

265Type / Values335Type / Values

266 336 

267`file | keyring | auto`337`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`

268 338 

269Details339Details

270 340 

271Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).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.

272 342 

273Key343Key

274 344 

275`compact_prompt`345`approval_policy.granular.mcp_elicitations`

276 346 

277Type / Values347Type / Values

278 348 

279`string`349`boolean`

280 350 

281Details351Details

282 352 

283Inline override for the history compaction prompt.353When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.

284 354 

285Key355Key

286 356 

287`developer_instructions`357`approval_policy.granular.request_permissions`

288 358 

289Type / Values359Type / Values

290 360 

291`string`361`boolean`

292 362 

293Details363Details

294 364 

295Additional developer instructions injected into the session (optional).365When `true`, prompts from the `request_permissions` tool are allowed to surface.

296 366 

297Key367Key

298 368 

299`disable_paste_burst`369`approval_policy.granular.rules`

300 370 

301Type / Values371Type / Values

302 372 


304 374 

305Details375Details

306 376 

307Disable burst-paste detection in the TUI.377When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.

308 378 

309Key379Key

310 380 

311`experimental_compact_prompt_file`381`approval_policy.granular.sandbox_approval`

312 382 

313Type / Values383Type / Values

314 384 

315`string (path)`385`boolean`

316 386 

317Details387Details

318 388 

319Load the compaction prompt override from a file (experimental).389When `true`, sandbox escalation approval prompts are allowed to surface.

320 390 

321Key391Key

322 392 

323`experimental_use_freeform_apply_patch`393`approval_policy.granular.skill_approval`

324 394 

325Type / Values395Type / Values

326 396 


328 398 

329Details399Details

330 400 

331Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.401When `true`, skill-script approval prompts are allowed to surface.

332 402 

333Key403Key

334 404 

335`experimental_use_unified_exec_tool`405`approvals_reviewer`

336 406 

337Type / Values407Type / Values

338 408 

339`boolean`409`user | guardian_subagent`

340 410 

341Details411Details

342 412 

343Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.413Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent.

344 414 

345Key415Key

346 416 

347`features.apply_patch_freeform`417`apps._default.destructive_enabled`

348 418 

349Type / Values419Type / Values

350 420 


352 422 

353Details423Details

354 424 

355Expose the freeform `apply_patch` tool (experimental).425Default allow/deny for app tools with `destructive_hint = true`.

356 426 

357Key427Key

358 428 

359`features.apps`429`apps._default.enabled`

360 430 

361Type / Values431Type / Values

362 432 


364 434 

365Details435Details

366 436 

367Enable ChatGPT Apps/connectors support (experimental).437Default app enabled state for all apps unless overridden per app.

368 438 

369Key439Key

370 440 

371`features.apps_mcp_gateway`441`apps._default.open_world_enabled`

372 442 

373Type / Values443Type / Values

374 444 


376 446 

377Details447Details

378 448 

379Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).449Default allow/deny for app tools with `open_world_hint = true`.

380 450 

381Key451Key

382 452 

383`features.child_agents_md`453`apps.<id>.default_tools_approval_mode`

384 454 

385Type / Values455Type / Values

386 456 

387`boolean`457`auto | prompt | approve`

388 458 

389Details459Details

390 460 

391Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).461Default approval behavior for tools in this app unless a per-tool override exists.

392 462 

393Key463Key

394 464 

395`features.collaboration_modes`465`apps.<id>.default_tools_enabled`

396 466 

397Type / Values467Type / Values

398 468 


400 470 

401Details471Details

402 472 

403Enable collaboration modes such as plan mode (stable; on by default).473Default enabled state for tools in this app unless a per-tool override exists.

404 474 

405Key475Key

406 476 

407`features.elevated_windows_sandbox`477`apps.<id>.destructive_enabled`

408 478 

409Type / Values479Type / Values

410 480 


412 482 

413Details483Details

414 484 

415Enable the elevated Windows sandbox pipeline (experimental).485Allow or block tools in this app that advertise `destructive_hint = true`.

416 486 

417Key487Key

418 488 

419`features.experimental_windows_sandbox`489`apps.<id>.enabled`

420 490 

421Type / Values491Type / Values

422 492 


424 494 

425Details495Details

426 496 

427Run the Windows restricted-token sandbox (experimental).497Enable or disable a specific app/connector by id (default: true).

428 498 

429Key499Key

430 500 

431`features.multi_agent`501`apps.<id>.open_world_enabled`

432 502 

433Type / Values503Type / Values

434 504 


436 506 

437Details507Details

438 508 

439Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).509Allow or block tools in this app that advertise `open_world_hint = true`.

440 510 

441Key511Key

442 512 

443`features.personality`513`apps.<id>.tools.<tool>.approval_mode`

444 514 

445Type / Values515Type / Values

446 516 

447`boolean`517`auto | prompt | approve`

448 518 

449Details519Details

450 520 

451Enable personality selection controls (stable; on by default).521Per-tool approval behavior override for a single app tool.

452 522 

453Key523Key

454 524 

455`features.powershell_utf8`525`apps.<id>.tools.<tool>.enabled`

456 526 

457Type / Values527Type / Values

458 528 


460 530 

461Details531Details

462 532 

463Force PowerShell UTF-8 output (defaults to true).533Per-tool enabled override for an app tool (for example `repos/list`).

464 534 

465Key535Key

466 536 

467`features.remote_models`537`background_terminal_max_timeout`

468 538 

469Type / Values539Type / Values

470 540 

471`boolean`541`number`

472 542 

473Details543Details

474 544 

475Refresh remote model list before showing readiness (experimental).545Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key.

476 546 

477Key547Key

478 548 

479`features.request_rule`549`chatgpt_base_url`

480 550 

481Type / Values551Type / Values

482 552 

483`boolean`553`string`

484 554 

485Details555Details

486 556 

487Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).557Override the base URL used during the ChatGPT login flow.

488 558 

489Key559Key

490 560 

491`features.runtime_metrics`561`check_for_update_on_startup`

492 562 

493Type / Values563Type / Values

494 564 


496 566 

497Details567Details

498 568 

499Show runtime metrics summary in TUI turn separators (experimental).569Check for Codex updates on startup (set to false only when updates are centrally managed).

500 570 

501Key571Key

502 572 

503`features.search_tool`573`cli_auth_credentials_store`

504 574 

505Type / Values575Type / Values

506 576 

507`boolean`577`file | keyring | auto`

508 578 

509Details579Details

510 580 

511Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).581Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).

512 582 

513Key583Key

514 584 

515`features.shell_snapshot`585`commit_attribution`

516 586 

517Type / Values587Type / Values

518 588 

519`boolean`589`string`

520 590 

521Details591Details

522 592 

523Snapshot shell environment to speed up repeated commands (beta).593Override the commit co-author trailer text. Set an empty string to disable automatic attribution.

524 594 

525Key595Key

526 596 

527`features.shell_tool`597`compact_prompt`

528 598 

529Type / Values599Type / Values

530 600 

531`boolean`601`string`

532 602 

533Details603Details

534 604 

535Enable the default `shell` tool for running commands (stable; on by default).605Inline override for the history compaction prompt.

536 606 

537Key607Key

538 608 

539`features.unified_exec`609`default_permissions`

540 610 

541Type / Values611Type / Values

542 612 

543`boolean`613`string`

544 614 

545Details615Details

546 616 

547Use the unified PTY-backed exec tool (beta).617Name of the default permissions profile to apply to sandboxed tool calls.

548 618 

549Key619Key

550 620 

551`features.use_linux_sandbox_bwrap`621`developer_instructions`

552 622 

553Type / Values623Type / Values

554 624 

555`boolean`625`string`

556 626 

557Details627Details

558 628 

559Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).629Additional developer instructions injected into the session (optional).

560 630 

561Key631Key

562 632 

563`features.web_search`633`disable_paste_burst`

564 634 

565Type / Values635Type / Values

566 636 


568 638 

569Details639Details

570 640 

571Deprecated legacy toggle; prefer the top-level `web_search` setting.641Disable burst-paste detection in the TUI.

572 642 

573Key643Key

574 644 

575`features.web_search_cached`645`experimental_compact_prompt_file`

576 646 

577Type / Values647Type / Values

578 648 

579`boolean`649`string (path)`

580 650 

581Details651Details

582 652 

583Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.653Load the compaction prompt override from a file (experimental).

584 654 

585Key655Key

586 656 

587`features.web_search_request`657`experimental_use_unified_exec_tool`

588 658 

589Type / Values659Type / Values

590 660 


592 662 

593Details663Details

594 664 

595Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.665Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.

596 666 

597Key667Key

598 668 

599`feedback.enabled`669`features.apps`

600 670 

601Type / Values671Type / Values

602 672 


604 674 

605Details675Details

606 676 

607Enable feedback submission via `/feedback` across Codex surfaces (default: true).677Enable ChatGPT Apps/connectors support (experimental).

608 678 

609Key679Key

610 680 

611`file_opener`681`features.codex_hooks`

612 682 

613Type / Values683Type / Values

614 684 

615`vscode | vscode-insiders | windsurf | cursor | none`685`boolean`

616 686 

617Details687Details

618 688 

619URI scheme used to open citations from Codex output (default: `vscode`).689Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).

620 690 

621Key691Key

622 692 

623`forced_chatgpt_workspace_id`693`features.enable_request_compression`

624 694 

625Type / Values695Type / Values

626 696 

627`string (uuid)`697`boolean`

628 698 

629Details699Details

630 700 

631Limit ChatGPT logins to a specific workspace identifier.701Compress streaming request bodies with zstd when supported (stable; on by default).

632 702 

633Key703Key

634 704 

635`forced_login_method`705`features.fast_mode`

636 706 

637Type / Values707Type / Values

638 708 

639`chatgpt | api`709`boolean`

640 710 

641Details711Details

642 712 

643Restrict Codex to a specific authentication method.713Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).

644 714 

645Key715Key

646 716 

647`hide_agent_reasoning`717`features.guardian_approval`

648 718 

649Type / Values719Type / Values

650 720 


652 722 

653Details723Details

654 724 

655Suppress reasoning events in both the TUI and `codex exec` output.725Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). Use with `approvals_reviewer = "guardian_subagent"`.

656 726 

657Key727Key

658 728 

659`history.max_bytes`729`features.memories`

660 730 

661Type / Values731Type / Values

662 732 

663`number`733`boolean`

664 734 

665Details735Details

666 736 

667If set, caps the history file size in bytes by dropping oldest entries.737Enable [Memories](https://developers.openai.com/codex/memories) (off by default).

668 738 

669Key739Key

670 740 

671`history.persistence`741`features.multi_agent`

672 742 

673Type / Values743Type / Values

674 744 

675`save-all | none`745`boolean`

676 746 

677Details747Details

678 748 

679Control whether Codex saves session transcripts to history.jsonl.749Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).

680 750 

681Key751Key

682 752 

683`include_apply_patch_tool`753`features.personality`

684 754 

685Type / Values755Type / Values

686 756 


688 758 

689Details759Details

690 760 

691Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.761Enable personality selection controls (stable; on by default).

692 762 

693Key763Key

694 764 

695`instructions`765`features.prevent_idle_sleep`

696 766 

697Type / Values767Type / Values

698 768 

699`string`769`boolean`

700 770 

701Details771Details

702 772 

703Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.773Prevent the machine from sleeping while a turn is actively running (experimental; off by default).

704 774 

705Key775Key

706 776 

707`log_dir`777`features.shell_snapshot`

708 778 

709Type / Values779Type / Values

710 780 

711`string (path)`781`boolean`

712 782 

713Details783Details

714 784 

715Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.785Snapshot shell environment to speed up repeated commands (stable; on by default).

716 786 

717Key787Key

718 788 

719`mcp_oauth_callback_port`789`features.shell_tool`

720 790 

721Type / Values791Type / Values

722 792 

723`integer`793`boolean`

724 794 

725Details795Details

726 796 

727Optional 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.797Enable the default `shell` tool for running commands (stable; on by default).

728 798 

729Key799Key

730 800 

731`mcp_oauth_credentials_store`801`features.skill_mcp_dependency_install`

732 802 

733Type / Values803Type / Values

734 804 

735`auto | file | keyring`805`boolean`

736 806 

737Details807Details

738 808 

739Preferred store for MCP OAuth credentials.809Allow prompting and installing missing MCP dependencies for skills (stable; on by default).

740 810 

741Key811Key

742 812 

743`mcp_servers.<id>.args`813`features.undo`

744 814 

745Type / Values815Type / Values

746 816 

747`array<string>`817`boolean`

748 818 

749Details819Details

750 820 

751Arguments passed to the MCP stdio server command.821Enable undo support (stable; off by default).

752 822 

753Key823Key

754 824 

755`mcp_servers.<id>.bearer_token_env_var`825`features.unified_exec`

756 826 

757Type / Values827Type / Values

758 828 

759`string`829`boolean`

760 830 

761Details831Details

762 832 

763Environment variable sourcing the bearer token for an MCP HTTP server.833Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).

764 834 

765Key835Key

766 836 

767`mcp_servers.<id>.command`837`features.web_search`

768 838 

769Type / Values839Type / Values

770 840 

771`string`841`boolean`

772 842 

773Details843Details

774 844 

775Launcher command for an MCP stdio server.845Deprecated legacy toggle; prefer the top-level `web_search` setting.

776 846 

777Key847Key

778 848 

779`mcp_servers.<id>.cwd`849`features.web_search_cached`

780 850 

781Type / Values851Type / Values

782 852 

783`string`853`boolean`

784 854 

785Details855Details

786 856 

787Working directory for the MCP stdio server process.857Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.

788 858 

789Key859Key

790 860 

791`mcp_servers.<id>.disabled_tools`861`features.web_search_request`

792 862 

793Type / Values863Type / Values

794 864 

795`array<string>`865`boolean`

796 866 

797Details867Details

798 868 

799Deny list applied after `enabled_tools` for the MCP server.869Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.

800 870 

801Key871Key

802 872 

803`mcp_servers.<id>.enabled`873`feedback.enabled`

804 874 

805Type / Values875Type / Values

806 876 


808 878 

809Details879Details

810 880 

811Disable an MCP server without removing its configuration.881Enable feedback submission via `/feedback` across Codex surfaces (default: true).

812 882 

813Key883Key

814 884 

815`mcp_servers.<id>.enabled_tools`885`file_opener`

816 886 

817Type / Values887Type / Values

818 888 

819`array<string>`889`vscode | vscode-insiders | windsurf | cursor | none`

820 890 

821Details891Details

822 892 

823Allow list of tool names exposed by the MCP server.893URI scheme used to open citations from Codex output (default: `vscode`).

824 894 

825Key895Key

826 896 

827`mcp_servers.<id>.env`897`forced_chatgpt_workspace_id`

828 898 

829Type / Values899Type / Values

830 900 

831`map<string,string>`901`string (uuid)`

832 902 

833Details903Details

834 904 

835Environment variables forwarded to the MCP stdio server.905Limit ChatGPT logins to a specific workspace identifier.

836 906 

837Key907Key

838 908 

839`mcp_servers.<id>.env_http_headers`909`forced_login_method`

840 910 

841Type / Values911Type / Values

842 912 

843`map<string,string>`913`chatgpt | api`

844 914 

845Details915Details

846 916 

847HTTP headers populated from environment variables for an MCP HTTP server.917Restrict Codex to a specific authentication method.

848 918 

849Key919Key

850 920 

851`mcp_servers.<id>.env_vars`921`hide_agent_reasoning`

852 922 

853Type / Values923Type / Values

854 924 

855`array<string>`925`boolean`

856 926 

857Details927Details

858 928 

859Additional environment variables to whitelist for an MCP stdio server.929Suppress reasoning events in both the TUI and `codex exec` output.

860 930 

861Key931Key

862 932 

863`mcp_servers.<id>.http_headers`933`history.max_bytes`

864 934 

865Type / Values935Type / Values

866 936 

867`map<string,string>`937`number`

868 938 

869Details939Details

870 940 

871Static HTTP headers included with each MCP HTTP request.941If set, caps the history file size in bytes by dropping oldest entries.

872 942 

873Key943Key

874 944 

875`mcp_servers.<id>.required`945`history.persistence`

876 946 

877Type / Values947Type / Values

878 948 

879`boolean`949`save-all | none`

880 950 

881Details951Details

882 952 

883When true, fail startup/resume if this enabled MCP server cannot initialize.953Control whether Codex saves session transcripts to history.jsonl.

884 954 

885Key955Key

886 956 

887`mcp_servers.<id>.startup_timeout_ms`957`instructions`

888 958 

889Type / Values959Type / Values

890 960 

891`number`961`string`

892 962 

893Details963Details

894 964 

895Alias for `startup_timeout_sec` in milliseconds.965Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.

896 966 

897Key967Key

898 968 

899`mcp_servers.<id>.startup_timeout_sec`969`log_dir`

900 970 

901Type / Values971Type / Values

902 972 

903`number`973`string (path)`

904 974 

905Details975Details

906 976 

907Override the default 10s startup timeout for an MCP server.977Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.

908 978 

909Key979Key

910 980 

911`mcp_servers.<id>.tool_timeout_sec`981`mcp_oauth_callback_port`

912 982 

913Type / Values983Type / Values

914 984 

915`number`985`integer`

916 986 

917Details987Details

918 988 

919Override the default 60s per-tool timeout for an MCP server.989Optional 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.

920 990 

921Key991Key

922 992 

923`mcp_servers.<id>.url`993`mcp_oauth_callback_url`

924 994 

925Type / Values995Type / Values

926 996 


928 998 

929Details999Details

930 1000 

931Endpoint for an MCP streamable HTTP server.1001Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.

932 1002 

933Key1003Key

934 1004 

935`model`1005`mcp_oauth_credentials_store`

936 1006 

937Type / Values1007Type / Values

938 1008 

939`string`1009`auto | file | keyring`

940 1010 

941Details1011Details

942 1012 

943Model to use (e.g., `gpt-5-codex`).1013Preferred store for MCP OAuth credentials.

944 1014 

945Key1015Key

946 1016 

947`model_auto_compact_token_limit`1017`mcp_servers.<id>.args`

948 1018 

949Type / Values1019Type / Values

950 1020 

951`number`1021`array<string>`

952 1022 

953Details1023Details

954 1024 

955Token threshold that triggers automatic history compaction (unset uses model defaults).1025Arguments passed to the MCP stdio server command.

956 1026 

957Key1027Key

958 1028 

959`model_context_window`1029`mcp_servers.<id>.bearer_token_env_var`

960 1030 

961Type / Values1031Type / Values

962 1032 

963`number`1033`string`

964 1034 

965Details1035Details

966 1036 

967Context window tokens available to the active model.1037Environment variable sourcing the bearer token for an MCP HTTP server.

968 1038 

969Key1039Key

970 1040 

971`model_instructions_file`1041`mcp_servers.<id>.command`

972 1042 

973Type / Values1043Type / Values

974 1044 

975`string (path)`1045`string`

976 1046 

977Details1047Details

978 1048 

979Replacement for built-in instructions instead of `AGENTS.md`.1049Launcher command for an MCP stdio server.

980 1050 

981Key1051Key

982 1052 

983`model_provider`1053`mcp_servers.<id>.cwd`

984 1054 

985Type / Values1055Type / Values

986 1056 


988 1058 

989Details1059Details

990 1060 

991Provider id from `model_providers` (default: `openai`).1061Working directory for the MCP stdio server process.

992 1062 

993Key1063Key

994 1064 

995`model_providers.<id>.base_url`1065`mcp_servers.<id>.disabled_tools`

996 1066 

997Type / Values1067Type / Values

998 1068 

999`string`1069`array<string>`

1000 1070 

1001Details1071Details

1002 1072 

1003API base URL for the model provider.1073Deny list applied after `enabled_tools` for the MCP server.

1004 1074 

1005Key1075Key

1006 1076 

1007`model_providers.<id>.env_http_headers`1077`mcp_servers.<id>.enabled`

1078 

1079Type / Values

1080 

1081`boolean`

1082 

1083Details

1084 

1085Disable an MCP server without removing its configuration.

1086 

1087Key

1088 

1089`mcp_servers.<id>.enabled_tools`

1090 

1091Type / Values

1092 

1093`array<string>`

1094 

1095Details

1096 

1097Allow list of tool names exposed by the MCP server.

1098 

1099Key

1100 

1101`mcp_servers.<id>.env`

1008 1102 

1009Type / Values1103Type / Values

1010 1104 


1012 1106 

1013Details1107Details

1014 1108 

1015HTTP headers populated from environment variables when present.1109Environment variables forwarded to the MCP stdio server.

1016 1110 

1017Key1111Key

1018 1112 

1019`model_providers.<id>.env_key`1113`mcp_servers.<id>.env_http_headers`

1020 1114 

1021Type / Values1115Type / Values

1022 1116 

1023`string`1117`map<string,string>`

1024 1118 

1025Details1119Details

1026 1120 

1027Environment variable supplying the provider API key.1121HTTP headers populated from environment variables for an MCP HTTP server.

1028 1122 

1029Key1123Key

1030 1124 

1031`model_providers.<id>.env_key_instructions`1125`mcp_servers.<id>.env_vars`

1126 

1127Type / Values

1128 

1129`array<string>`

1130 

1131Details

1132 

1133Additional environment variables to whitelist for an MCP stdio server.

1134 

1135Key

1136 

1137`mcp_servers.<id>.http_headers`

1138 

1139Type / Values

1140 

1141`map<string,string>`

1142 

1143Details

1144 

1145Static HTTP headers included with each MCP HTTP request.

1146 

1147Key

1148 

1149`mcp_servers.<id>.oauth_resource`

1032 1150 

1033Type / Values1151Type / Values

1034 1152 


1036 1154 

1037Details1155Details

1038 1156 

1039Optional setup guidance for the provider API key.1157Optional RFC 8707 OAuth resource parameter to include during MCP login.

1040 1158 

1041Key1159Key

1042 1160 

1043`model_providers.<id>.experimental_bearer_token`1161`mcp_servers.<id>.required`

1162 

1163Type / Values

1164 

1165`boolean`

1166 

1167Details

1168 

1169When true, fail startup/resume if this enabled MCP server cannot initialize.

1170 

1171Key

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 

1185`mcp_servers.<id>.startup_timeout_ms`

1186 

1187Type / Values

1188 

1189`number`

1190 

1191Details

1192 

1193Alias for `startup_timeout_sec` in milliseconds.

1194 

1195Key

1196 

1197`mcp_servers.<id>.startup_timeout_sec`

1198 

1199Type / Values

1200 

1201`number`

1202 

1203Details

1204 

1205Override the default 10s startup timeout for an MCP server.

1206 

1207Key

1208 

1209`mcp_servers.<id>.tool_timeout_sec`

1210 

1211Type / Values

1212 

1213`number`

1214 

1215Details

1216 

1217Override the default 60s per-tool timeout for an MCP server.

1218 

1219Key

1220 

1221`mcp_servers.<id>.url`

1044 1222 

1045Type / Values1223Type / Values

1046 1224 


1048 1226 

1049Details1227Details

1050 1228 

1051Direct bearer token for the provider (discouraged; use `env_key`).1229Endpoint for an MCP streamable HTTP server.

1052 1230 

1053Key1231Key

1054 1232 

1055`model_providers.<id>.http_headers`1233`memories.consolidation_model`

1056 1234 

1057Type / Values1235Type / Values

1058 1236 

1059`map<string,string>`1237`string`

1060 1238 

1061Details1239Details

1062 1240 

1063Static HTTP headers added to provider requests.1241Optional model override for global memory consolidation.

1064 1242 

1065Key1243Key

1066 1244 

1067`model_providers.<id>.name`1245`memories.extract_model`

1068 1246 

1069Type / Values1247Type / Values

1070 1248 


1072 1250 

1073Details1251Details

1074 1252 

1075Display name for a custom model provider.1253Optional model override for per-thread memory extraction.

1076 1254 

1077Key1255Key

1078 1256 

1079`model_providers.<id>.query_params`1257`memories.generate_memories`

1080 1258 

1081Type / Values1259Type / Values

1082 1260 

1083`map<string,string>`1261`boolean`

1084 1262 

1085Details1263Details

1086 1264 

1087Extra query parameters appended to provider requests.1265When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.

1088 1266 

1089Key1267Key

1090 1268 

1091`model_providers.<id>.request_max_retries`1269`memories.max_raw_memories_for_consolidation`

1092 1270 

1093Type / Values1271Type / Values

1094 1272 


1096 1274 

1097Details1275Details

1098 1276 

1099Retry count for HTTP requests to the provider (default: 4).1277Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.

1100 1278 

1101Key1279Key

1102 1280 

1103`model_providers.<id>.requires_openai_auth`1281`memories.max_rollout_age_days`

1282 

1283Type / Values

1284 

1285`number`

1286 

1287Details

1288 

1289Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.

1290 

1291Key

1292 

1293`memories.max_rollouts_per_startup`

1294 

1295Type / Values

1296 

1297`number`

1298 

1299Details

1300 

1301Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.

1302 

1303Key

1304 

1305`memories.max_unused_days`

1306 

1307Type / Values

1308 

1309`number`

1310 

1311Details

1312 

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

1314 

1315Key

1316 

1317`memories.min_rollout_idle_hours`

1318 

1319Type / Values

1320 

1321`number`

1322 

1323Details

1324 

1325Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.

1326 

1327Key

1328 

1329`memories.no_memories_if_mcp_or_web_search`

1104 1330 

1105Type / Values1331Type / Values

1106 1332 


1108 1334 

1109Details1335Details

1110 1336 

1111The provider uses OpenAI authentication (defaults to false).1337When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`.

1112 1338 

1113Key1339Key

1114 1340 

1115`model_providers.<id>.stream_idle_timeout_ms`1341`memories.use_memories`

1342 

1343Type / Values

1344 

1345`boolean`

1346 

1347Details

1348 

1349When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.

1350 

1351Key

1352 

1353`model`

1354 

1355Type / Values

1356 

1357`string`

1358 

1359Details

1360 

1361Model to use (e.g., `gpt-5.4`).

1362 

1363Key

1364 

1365`model_auto_compact_token_limit`

1116 1366 

1117Type / Values1367Type / Values

1118 1368 


1120 1370 

1121Details1371Details

1122 1372 

1123Idle timeout for SSE streams in milliseconds (default: 300000).1373Token threshold that triggers automatic history compaction (unset uses model defaults).

1124 1374 

1125Key1375Key

1126 1376 

1127`model_providers.<id>.stream_max_retries`1377`model_catalog_json`

1378 

1379Type / Values

1380 

1381`string (path)`

1382 

1383Details

1384 

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

1386 

1387Key

1388 

1389`model_context_window`

1128 1390 

1129Type / Values1391Type / Values

1130 1392 


1132 1394 

1133Details1395Details

1134 1396 

1135Retry count for SSE streaming interruptions (default: 5).1397Context window tokens available to the active model.

1136 1398 

1137Key1399Key

1138 1400 

1139`model_providers.<id>.wire_api`1401`model_instructions_file`

1140 1402 

1141Type / Values1403Type / Values

1142 1404 

1143`chat | responses`1405`string (path)`

1144 1406 

1145Details1407Details

1146 1408 

1147Protocol used by the provider (defaults to `chat` if omitted).1409Replacement for built-in instructions instead of `AGENTS.md`.

1148 1410 

1149Key1411Key

1150 1412 

1151`model_reasoning_effort`1413`model_provider`

1152 1414 

1153Type / Values1415Type / Values

1154 1416 

1155`minimal | low | medium | high | xhigh`1417`string`

1156 1418 

1157Details1419Details

1158 1420 

1159Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1421Provider id from `model_providers` (default: `openai`).

1160 1422 

1161Key1423Key

1162 1424 

1163`model_reasoning_summary`1425`model_providers.<id>`

1164 1426 

1165Type / Values1427Type / Values

1166 1428 

1167`auto | concise | detailed | none`1429`table`

1168 1430 

1169Details1431Details

1170 1432 

1171Select reasoning summary detail or disable summaries entirely.1433Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.

1172 1434 

1173Key1435Key

1174 1436 

1175`model_supports_reasoning_summaries`1437`model_providers.<id>.auth`

1176 1438 

1177Type / Values1439Type / Values

1178 1440 

1179`boolean`1441`table`

1180 1442 

1181Details1443Details

1182 1444 

1183Force Codex to send or not send reasoning metadata.1445Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.

1184 1446 

1185Key1447Key

1186 1448 

1187`model_verbosity`1449`model_providers.<id>.auth.args`

1188 1450 

1189Type / Values1451Type / Values

1190 1452 

1191`low | medium | high`1453`array<string>`

1192 1454 

1193Details1455Details

1194 1456 

1195Control GPT-5 Responses API verbosity (defaults to `medium`).1457Arguments passed to the token command.

1196 1458 

1197Key1459Key

1198 1460 

1199`notice.hide_full_access_warning`1461`model_providers.<id>.auth.command`

1462 

1463Type / Values

1464 

1465`string`

1466 

1467Details

1468 

1469Command to run when Codex needs a bearer token. The command must print the token to stdout.

1470 

1471Key

1472 

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

1474 

1475Type / Values

1476 

1477`string (path)`

1478 

1479Details

1480 

1481Working directory for the token command.

1482 

1483Key

1484 

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

1486 

1487Type / Values

1488 

1489`number`

1490 

1491Details

1492 

1493How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.

1494 

1495Key

1496 

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

1498 

1499Type / Values

1500 

1501`number`

1502 

1503Details

1504 

1505Maximum token command runtime in milliseconds (default: 5000).

1506 

1507Key

1508 

1509`model_providers.<id>.base_url`

1510 

1511Type / Values

1512 

1513`string`

1514 

1515Details

1516 

1517API base URL for the model provider.

1518 

1519Key

1520 

1521`model_providers.<id>.env_http_headers`

1522 

1523Type / Values

1524 

1525`map<string,string>`

1526 

1527Details

1528 

1529HTTP headers populated from environment variables when present.

1530 

1531Key

1532 

1533`model_providers.<id>.env_key`

1534 

1535Type / Values

1536 

1537`string`

1538 

1539Details

1540 

1541Environment variable supplying the provider API key.

1542 

1543Key

1544 

1545`model_providers.<id>.env_key_instructions`

1546 

1547Type / Values

1548 

1549`string`

1550 

1551Details

1552 

1553Optional setup guidance for the provider API key.

1554 

1555Key

1556 

1557`model_providers.<id>.experimental_bearer_token`

1558 

1559Type / Values

1560 

1561`string`

1562 

1563Details

1564 

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

1566 

1567Key

1568 

1569`model_providers.<id>.http_headers`

1570 

1571Type / Values

1572 

1573`map<string,string>`

1574 

1575Details

1576 

1577Static HTTP headers added to provider requests.

1578 

1579Key

1580 

1581`model_providers.<id>.name`

1582 

1583Type / Values

1584 

1585`string`

1586 

1587Details

1588 

1589Display name for a custom model provider.

1590 

1591Key

1592 

1593`model_providers.<id>.query_params`

1594 

1595Type / Values

1596 

1597`map<string,string>`

1598 

1599Details

1600 

1601Extra query parameters appended to provider requests.

1602 

1603Key

1604 

1605`model_providers.<id>.request_max_retries`

1606 

1607Type / Values

1608 

1609`number`

1610 

1611Details

1612 

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

1614 

1615Key

1616 

1617`model_providers.<id>.requires_openai_auth`

1618 

1619Type / Values

1620 

1621`boolean`

1622 

1623Details

1624 

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

1626 

1627Key

1628 

1629`model_providers.<id>.stream_idle_timeout_ms`

1630 

1631Type / Values

1632 

1633`number`

1634 

1635Details

1636 

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

1638 

1639Key

1640 

1641`model_providers.<id>.stream_max_retries`

1642 

1643Type / Values

1644 

1645`number`

1646 

1647Details

1648 

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

1650 

1651Key

1652 

1653`model_providers.<id>.supports_websockets`

1654 

1655Type / Values

1656 

1657`boolean`

1658 

1659Details

1660 

1661Whether that provider supports the Responses API WebSocket transport.

1662 

1663Key

1664 

1665`model_providers.<id>.wire_api`

1666 

1667Type / Values

1668 

1669`responses`

1670 

1671Details

1672 

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

1674 

1675Key

1676 

1677`model_reasoning_effort`

1678 

1679Type / Values

1680 

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

1682 

1683Details

1684 

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

1686 

1687Key

1688 

1689`model_reasoning_summary`

1690 

1691Type / Values

1692 

1693`auto | concise | detailed | none`

1694 

1695Details

1696 

1697Select reasoning summary detail or disable summaries entirely.

1698 

1699Key

1700 

1701`model_supports_reasoning_summaries`

1702 

1703Type / Values

1704 

1705`boolean`

1706 

1707Details

1708 

1709Force Codex to send or not send reasoning metadata.

1710 

1711Key

1712 

1713`model_verbosity`

1714 

1715Type / Values

1716 

1717`low | medium | high`

1718 

1719Details

1720 

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

1722 

1723Key

1724 

1725`notice.hide_full_access_warning`

1726 

1727Type / Values

1728 

1729`boolean`

1730 

1731Details

1732 

1733Track acknowledgement of the full access warning prompt.

1734 

1735Key

1736 

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

1738 

1739Type / Values

1740 

1741`boolean`

1742 

1743Details

1744 

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

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`

1798 

1799Type / Values

1800 

1801`array<string>`

1802 

1803Details

1804 

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

1806 

1807Key

1808 

1809`openai_base_url`

1810 

1811Type / Values

1812 

1813`string`

1814 

1815Details

1816 

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

1818 

1819Key

1820 

1821`oss_provider`

1822 

1823Type / Values

1824 

1825`lmstudio | ollama`

1826 

1827Details

1828 

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

1830 

1831Key

1832 

1833`otel.environment`

1834 

1835Type / Values

1836 

1837`string`

1838 

1839Details

1840 

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

1842 

1843Key

1844 

1845`otel.exporter`

1846 

1847Type / Values

1848 

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

1850 

1851Details

1852 

1853Select the OpenTelemetry exporter and provide any endpoint metadata.

1854 

1855Key

1856 

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

1858 

1859Type / Values

1860 

1861`string`

1862 

1863Details

1864 

1865Exporter endpoint for OTEL logs.

1866 

1867Key

1868 

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

1870 

1871Type / Values

1872 

1873`map<string,string>`

1874 

1875Details

1876 

1877Static headers included with OTEL exporter requests.

1878 

1879Key

1880 

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

1882 

1883Type / Values

1884 

1885`binary | json`

1886 

1887Details

1888 

1889Protocol used by the OTLP/HTTP exporter.

1890 

1891Key

1892 

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

1894 

1895Type / Values

1896 

1897`string`

1898 

1899Details

1900 

1901CA certificate path for OTEL exporter TLS.

1902 

1903Key

1904 

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

1906 

1907Type / Values

1908 

1909`string`

1910 

1911Details

1912 

1913Client certificate path for OTEL exporter TLS.

1914 

1915Key

1916 

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

1918 

1919Type / Values

1920 

1921`string`

1922 

1923Details

1924 

1925Client private key path for OTEL exporter TLS.

1926 

1927Key

1928 

1929`otel.log_user_prompt`

1930 

1931Type / Values

1932 

1933`boolean`

1934 

1935Details

1936 

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

1938 

1939Key

1940 

1941`otel.metrics_exporter`

1942 

1943Type / Values

1944 

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

1946 

1947Details

1948 

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

1950 

1951Key

1952 

1953`otel.trace_exporter`

1954 

1955Type / Values

1956 

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

1958 

1959Details

1960 

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

1962 

1963Key

1964 

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

1966 

1967Type / Values

1968 

1969`string`

1970 

1971Details

1972 

1973Trace exporter endpoint for OTEL logs.

1974 

1975Key

1976 

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

1978 

1979Type / Values

1980 

1981`map<string,string>`

1982 

1983Details

1984 

1985Static headers included with OTEL trace exporter requests.

1986 

1987Key

1988 

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`

1200 2002 

1201Type / Values2003Type / Values

1202 2004 

1203`boolean`2005`string`

1204 2006 

1205Details2007Details

1206 2008 

1207Track acknowledgement of the full access warning prompt.2009CA certificate path for OTEL trace exporter TLS.

1208 2010 

1209Key2011Key

1210 2012 

1211`notice.hide_gpt-5.1-codex-max_migration_prompt`2013`otel.trace_exporter.<id>.tls.client-certificate`

1212 2014 

1213Type / Values2015Type / Values

1214 2016 

1215`boolean`2017`string`

1216 2018 

1217Details2019Details

1218 2020 

1219Track acknowledgement of the gpt-5.1-codex-max migration prompt.2021Client certificate path for OTEL trace exporter TLS.

1220 2022 

1221Key2023Key

1222 2024 

1223`notice.hide_gpt5_1_migration_prompt`2025`otel.trace_exporter.<id>.tls.client-private-key`

1224 2026 

1225Type / Values2027Type / Values

1226 2028 

1227`boolean`2029`string`

1228 2030 

1229Details2031Details

1230 2032 

1231Track acknowledgement of the GPT-5.1 migration prompt.2033Client private key path for OTEL trace exporter TLS.

1232 2034 

1233Key2035Key

1234 2036 

1235`notice.hide_rate_limit_model_nudge`2037`permissions.<name>.filesystem`

1236 2038 

1237Type / Values2039Type / Values

1238 2040 

1239`boolean`2041`table`

1240 2042 

1241Details2043Details

1242 2044 

1243Track opt-out of the rate limit model switch reminder.2045Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.

1244 2046 

1245Key2047Key

1246 2048 

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

1248 2050 

1249Type / Values2051Type / Values

1250 2052 

1251`boolean`2053`"read" | "write" | "none"`

1252 2054 

1253Details2055Details

1254 2056 

1255Track acknowledgement of the Windows world-writable directories warning.2057Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.

1256 2058 

1257Key2059Key

1258 2060 

1259`notice.model_migrations`2061`permissions.<name>.filesystem.<path>`

1260 2062 

1261Type / Values2063Type / Values

1262 2064 

1263`map<string,string>`2065`"read" | "write" | "none" | table`

1264 2066 

1265Details2067Details

1266 2068 

1267Track acknowledged model migrations as old->new mappings.2069Grant direct access for a path or special token, or scope nested entries under that root.

1268 2070 

1269Key2071Key

1270 2072 

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

1272 2074 

1273Type / Values2075Type / Values

1274 2076 

1275`array<string>`2077`boolean`

1276 2078 

1277Details2079Details

1278 2080 

1279Command invoked for notifications; receives a JSON payload from Codex.2081Permit local bind/listen operations through the managed proxy.

1280 2082 

1281Key2083Key

1282 2084 

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

1284 2086 

1285Type / Values2087Type / Values

1286 2088 

1287`lmstudio | ollama`2089`boolean`

1288 2090 

1289Details2091Details

1290 2092 

1291Default local provider used when running with `--oss` (defaults to prompting if unset).2093Allow the managed proxy to chain to another upstream proxy.

1292 2094 

1293Key2095Key

1294 2096 

1295`otel.environment`2097`permissions.<name>.network.dangerously_allow_all_unix_sockets`

1296 2098 

1297Type / Values2099Type / Values

1298 2100 

1299`string`2101`boolean`

1300 2102 

1301Details2103Details

1302 2104 

1303Environment tag applied to emitted OpenTelemetry events (default: `dev`).2105Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.

1304 2106 

1305Key2107Key

1306 2108 

1307`otel.exporter`2109`permissions.<name>.network.dangerously_allow_non_loopback_proxy`

1308 2110 

1309Type / Values2111Type / Values

1310 2112 

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

1312 2114 

1313Details2115Details

1314 2116 

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

1316 2118 

1317Key2119Key

1318 2120 

1319`otel.exporter.<id>.endpoint`2121`permissions.<name>.network.domains`

1320 2122 

1321Type / Values2123Type / Values

1322 2124 

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

1324 2126 

1325Details2127Details

1326 2128 

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

1328 2130 

1329Key2131Key

1330 2132 

1331`otel.exporter.<id>.headers`2133`permissions.<name>.network.enable_socks5`

1332 2134 

1333Type / Values2135Type / Values

1334 2136 

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

1336 2138 

1337Details2139Details

1338 2140 

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

1340 2142 

1341Key2143Key

1342 2144 

1343`otel.exporter.<id>.protocol`2145`permissions.<name>.network.enable_socks5_udp`

1344 2146 

1345Type / Values2147Type / Values

1346 2148 

1347`binary | json`2149`boolean`

1348 2150 

1349Details2151Details

1350 2152 

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

1352 2154 

1353Key2155Key

1354 2156 

1355`otel.exporter.<id>.tls.ca-certificate`2157`permissions.<name>.network.enabled`

1356 2158 

1357Type / Values2159Type / Values

1358 2160 

1359`string`2161`boolean`

1360 2162 

1361Details2163Details

1362 2164 

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

1364 2166 

1365Key2167Key

1366 2168 

1367`otel.exporter.<id>.tls.client-certificate`2169`permissions.<name>.network.mode`

1368 2170 

1369Type / Values2171Type / Values

1370 2172 

1371`string`2173`limited | full`

1372 2174 

1373Details2175Details

1374 2176 

1375Client certificate path for OTEL exporter TLS.2177Network proxy mode used for subprocess traffic.

1376 2178 

1377Key2179Key

1378 2180 

1379`otel.exporter.<id>.tls.client-private-key`2181`permissions.<name>.network.proxy_url`

1380 2182 

1381Type / Values2183Type / Values

1382 2184 


1384 2186 

1385Details2187Details

1386 2188 

1387Client private key path for OTEL exporter TLS.2189HTTP proxy endpoint used when this permissions profile enables the managed network proxy.

1388 2190 

1389Key2191Key

1390 2192 

1391`otel.log_user_prompt`2193`permissions.<name>.network.socks_url`

1392 2194 

1393Type / Values2195Type / Values

1394 2196 

1395`boolean`2197`string`

1396 2198 

1397Details2199Details

1398 2200 

1399Opt in to exporting raw user prompts with OpenTelemetry logs.2201SOCKS5 proxy endpoint used by this permissions profile.

1400 2202 

1401Key2203Key

1402 2204 

1403`otel.trace_exporter`2205`permissions.<name>.network.unix_sockets`

1404 2206 

1405Type / Values2207Type / Values

1406 2208 

1407`none | otlp-http | otlp-grpc`2209`map<string, allow | none>`

1408 2210 

1409Details2211Details

1410 2212 

1411Select the OpenTelemetry trace exporter and provide any endpoint metadata.2213Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.

1412 2214 

1413Key2215Key

1414 2216 

1415`otel.trace_exporter.<id>.endpoint`2217`personality`

1416 2218 

1417Type / Values2219Type / Values

1418 2220 

1419`string`2221`none | friendly | pragmatic`

1420 2222 

1421Details2223Details

1422 2224 

1423Trace exporter endpoint for OTEL logs.2225Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.

1424 2226 

1425Key2227Key

1426 2228 

1427`otel.trace_exporter.<id>.headers`2229`plan_mode_reasoning_effort`

1428 2230 

1429Type / Values2231Type / Values

1430 2232 

1431`map<string,string>`2233`none | minimal | low | medium | high | xhigh`

1432 2234 

1433Details2235Details

1434 2236 

1435Static headers included with OTEL trace exporter requests.2237Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.

1436 2238 

1437Key2239Key

1438 2240 

1439`otel.trace_exporter.<id>.protocol`2241`profile`

1440 2242 

1441Type / Values2243Type / Values

1442 2244 

1443`binary | json`2245`string`

1444 2246 

1445Details2247Details

1446 2248 

1447Protocol used by the OTLP/HTTP trace exporter.2249Default profile applied at startup (equivalent to `--profile`).

1448 2250 

1449Key2251Key

1450 2252 

1451`otel.trace_exporter.<id>.tls.ca-certificate`2253`profiles.<name>.*`

1452 2254 

1453Type / Values2255Type / Values

1454 2256 

1455`string`2257`various`

1456 2258 

1457Details2259Details

1458 2260 

1459CA certificate path for OTEL trace exporter TLS.2261Profile-scoped overrides for any of the supported configuration keys.

1460 2262 

1461Key2263Key

1462 2264 

1463`otel.trace_exporter.<id>.tls.client-certificate`2265`profiles.<name>.analytics.enabled`

1464 2266 

1465Type / Values2267Type / Values

1466 2268 

1467`string`2269`boolean`

1468 2270 

1469Details2271Details

1470 2272 

1471Client certificate path for OTEL trace exporter TLS.2273Profile-scoped analytics enablement override.

1472 2274 

1473Key2275Key

1474 2276 

1475`otel.trace_exporter.<id>.tls.client-private-key`2277`profiles.<name>.experimental_use_unified_exec_tool`

1476 2278 

1477Type / Values2279Type / Values

1478 2280 

1479`string`2281`boolean`

1480 2282 

1481Details2283Details

1482 2284 

1483Client private key path for OTEL trace exporter TLS.2285Legacy name for enabling unified exec; prefer `[features].unified_exec`.

1484 2286 

1485Key2287Key

1486 2288 

1487`personality`2289`profiles.<name>.model_catalog_json`

1488 2290 

1489Type / Values2291Type / Values

1490 2292 

1491`none | friendly | pragmatic`2293`string (path)`

1492 2294 

1493Details2295Details

1494 2296 

1495Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.2297Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).

1496 2298 

1497Key2299Key

1498 2300 

1499`profile`2301`profiles.<name>.model_instructions_file`

1500 2302 

1501Type / Values2303Type / Values

1502 2304 

1503`string`2305`string (path)`

1504 2306 

1505Details2307Details

1506 2308 

1507Default profile applied at startup (equivalent to `--profile`).2309Profile-scoped replacement for the built-in instruction file.

1508 2310 

1509Key2311Key

1510 2312 

1511`profiles.<name>.*`2313`profiles.<name>.oss_provider`

1512 2314 

1513Type / Values2315Type / Values

1514 2316 

1515`various`2317`lmstudio | ollama`

1516 2318 

1517Details2319Details

1518 2320 

1519Profile-scoped overrides for any of the supported configuration keys.2321Profile-scoped OSS provider for `--oss` sessions.

1520 2322 

1521Key2323Key

1522 2324 

1523`profiles.<name>.experimental_use_freeform_apply_patch`2325`profiles.<name>.personality`

1524 2326 

1525Type / Values2327Type / Values

1526 2328 

1527`boolean`2329`none | friendly | pragmatic`

1528 2330 

1529Details2331Details

1530 2332 

1531Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2333Profile-scoped communication style override for supported models.

1532 2334 

1533Key2335Key

1534 2336 

1535`profiles.<name>.experimental_use_unified_exec_tool`2337`profiles.<name>.plan_mode_reasoning_effort`

1536 2338 

1537Type / Values2339Type / Values

1538 2340 

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

1540 2342 

1541Details2343Details

1542 2344 

1543Legacy name for enabling unified exec; prefer `[features].unified_exec`.2345Profile-scoped Plan-mode reasoning override.

1544 2346 

1545Key2347Key

1546 2348 

1547`profiles.<name>.include_apply_patch_tool`2349`profiles.<name>.service_tier`

1548 2350 

1549Type / Values2351Type / Values

1550 2352 

1551`boolean`2353`flex | fast`

1552 2354 

1553Details2355Details

1554 2356 

1555Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2357Profile-scoped service tier preference for new turns.

1556 2358 

1557Key2359Key

1558 2360 

1559`profiles.<name>.oss_provider`2361`profiles.<name>.tools_view_image`

1560 2362 

1561Type / Values2363Type / Values

1562 2364 

1563`lmstudio | ollama`2365`boolean`

1564 2366 

1565Details2367Details

1566 2368 

1567Profile-scoped OSS provider for `--oss` sessions.2369Enable or disable the `view_image` tool in that profile.

1568 2370 

1569Key2371Key

1570 2372 

1571`profiles.<name>.personality`2373`profiles.<name>.web_search`

1572 2374 

1573Type / Values2375Type / Values

1574 2376 

1575`none | friendly | pragmatic`2377`disabled | cached | live`

1576 2378 

1577Details2379Details

1578 2380 

1579Profile-scoped communication style override for supported models.2381Profile-scoped web search mode override (default: `"cached"`).

1580 2382 

1581Key2383Key

1582 2384 

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

1584 2386 

1585Type / Values2387Type / Values

1586 2388 

1587`disabled | cached | live`2389`unelevated | elevated`

1588 2390 

1589Details2391Details

1590 2392 

1591Profile-scoped web search mode override (default: `"cached"`).2393Profile-scoped Windows sandbox mode override.

1592 2394 

1593Key2395Key

1594 2396 


1712 2514 

1713Key2515Key

1714 2516 

2517`service_tier`

2518 

2519Type / Values

2520 

2521`flex | fast`

2522 

2523Details

2524 

2525Preferred service tier for new turns.

2526 

2527Key

2528 

1715`shell_environment_policy.exclude`2529`shell_environment_policy.exclude`

1716 2530 

1717Type / Values2531Type / Values


1832 2646 

1833Key2647Key

1834 2648 

2649`sqlite_home`

2650 

2651Type / Values

2652 

2653`string (path)`

2654 

2655Details

2656 

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

2658 

2659Key

2660 

1835`suppress_unstable_features_warning`2661`suppress_unstable_features_warning`

1836 2662 

1837Type / Values2663Type / Values


1856 2682 

1857Key2683Key

1858 2684 

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

1860 2698 

1861Type / Values2699Type / Values

1862 2700 


1864 2702 

1865Details2703Details

1866 2704 

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

1868 2718 

1869Key2719Key

1870 2720 


1904 2754 

1905Key2755Key

1906 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 

1907`tui.notification_method`2769`tui.notification_method`

1908 2770 

1909Type / Values2771Type / Values


1952 2814 

1953Key2815Key

1954 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 

1955`web_search`2841`web_search`

1956 2842 

1957Type / Values2843Type / Values


1974 2860 

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

1976 2862 

2863Key

2864 

2865`windows.sandbox`

2866 

2867Type / Values

2868 

2869`unelevated | elevated`

2870 

2871Details

2872 

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

2874 

2875Key

2876 

2877`windows.sandbox_private_desktop`

2878 

2879Type / Values

2880 

2881`boolean`

2882 

2883Details

2884 

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

2886 

1977Expand to view all2887Expand to view all

1978 2888 

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


1988 2898 

1989## `requirements.toml`2899## `requirements.toml`

1990 2900 

1991`requirements.toml` is an admin-enforced configuration file that constrains security-sensitive settings users cant override. For details, locations, and examples, see [Admin-enforced requirements](https://developers.openai.com/codex/security#admin-enforced-requirements-requirementstoml).2901`requirements.toml` is an admin-enforced configuration file that constrains security-sensitive settings users can't override. For details, locations, and examples, see [Admin-enforced requirements](https://developers.openai.com/codex/enterprise/managed-configuration#admin-enforced-requirements-requirementstoml).

1992 2902 

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

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

1995 2905 

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

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

2908 

1996| Key | Type / Values | Details |2909| Key | Type / Values | Details |

1997| --- | --- | --- |2910| --- | --- | --- |

1998| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. |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`). |

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

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

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

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

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


2020 2936 

2021Details2937Details

2022 2938 

2023Allowed values for `approval\_policy`.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`).

2024 2952 

2025Key2953Key

2026 2954 


2048 2976 

2049Key2977Key

2050 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 

2051`mcp_servers`3003`mcp_servers`

2052 3004 

2053Type / Values3005Type / Values