SpyBara
Go Premium Account
2026
19 Feb 2026, 20:53
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
2 May 2026, 06:45
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
Fri 1 18:29 Sat 2 00:48 Sat 2 06:45 Tue 5 23:00 Thu 7 17:08 Thu 7 20:02 Mon 11 18:00 Tue 12 01:59 Wed 13 00:57 Thu 14 07:00 Thu 14 21:00

config-reference.md +1668 −415

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

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

10| --- | --- | --- |12| --- | --- | --- |

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

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

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

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

15| `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 | auto_review` | Who reviews eligible approval prompts under `on-request` or granular approval policies. Defaults to `user`; `auto_review` uses the reviewer subagent. This setting doesn't change sandboxing or review actions already allowed inside the sandbox. |

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

16| `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| `auto_review.policy` | `string` | Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored. |

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

17| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |40| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |

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

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

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

20| `compact_prompt` | `string` | Inline override for the history compaction prompt. |44| `compact_prompt` | `string` | Inline override for the history compaction prompt. |

45| `default_permissions` | `string` | Name of the default permissions profile to apply to sandboxed tool calls. Built-ins are `:read-only`, `:workspace`, and `:danger-no-sandbox`; custom profile names require matching `[permissions.<name>]` tables. |

21| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |46| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |

22| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |47| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |

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

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

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

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

27| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |50| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |

28| `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). |51| `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config. |

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

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

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

32| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |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). |

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

54| `include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |73| `hooks` | `table` | Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events. |

55| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |74| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |

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

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

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

58| `mcp_oauth_credentials_store` | `auto | file | keyring` | Preferred store for MCP OAuth credentials. |78| `mcp_oauth_credentials_store` | `auto | file | keyring` | Preferred store for MCP OAuth credentials. |

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

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


65| `mcp_servers.<id>.enabled_tools` | `array<string>` | Allow list of tool names exposed by the MCP server. |85| `mcp_servers.<id>.enabled_tools` | `array<string>` | Allow list of tool names exposed by the MCP server. |

66| `mcp_servers.<id>.env` | `map<string,string>` | Environment variables forwarded to the MCP stdio server. |86| `mcp_servers.<id>.env` | `map<string,string>` | Environment variables forwarded to the MCP stdio server. |

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

68| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. |88| `mcp_servers.<id>.env_vars` | `array<string | { name = string, source = "local" | "remote" }>` | Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio. |

89| `mcp_servers.<id>.experimental_environment` | `local | remote` | Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented. |

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

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

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

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

71| `mcp_servers.<id>.startup_timeout_ms` | `number` | Alias for `startup_timeout_sec` in milliseconds. |94| `mcp_servers.<id>.startup_timeout_ms` | `number` | Alias for `startup_timeout_sec` in milliseconds. |

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

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

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

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

99| `memories.disable_on_external_context` | `boolean` | When `true`, threads that use external context such as MCP tool calls, web search, or tool search are kept out of memory generation. Defaults to `false`. Legacy alias: `memories.no_memories_if_mcp_or_web_search`. |

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

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

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

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

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

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

106| `memories.min_rate_limit_remaining_percent` | `number` | Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`. |

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

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

109| `model` | `string` | Model to use (e.g., `gpt-5.5`). |

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

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

77| `model_context_window` | `number` | Context window tokens available to the active model. |112| `model_context_window` | `number` | Context window tokens available to the active model. |

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

79| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |114| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

136| `model_providers.amazon-bedrock.aws.profile` | `string` | AWS profile name used by the built-in `amazon-bedrock` provider. |

137| `model_providers.amazon-bedrock.aws.region` | `string` | AWS region used by the built-in `amazon-bedrock` provider. |

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

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

95| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |140| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |

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

97| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |142| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |

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

99| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |144| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |


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

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

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

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

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

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

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


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

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

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

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

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

115| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |162| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |

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


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

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

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

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

169| `permissions.<name>.filesystem.":project_roots".<subpath-or-glob>` | `"read" | "write" | "none"` | Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`. |

170| `permissions.<name>.filesystem.<path-or-glob>` | `"read" | "write" | "none" | table` | Grant direct access for a path, glob pattern, or special token, or scope nested entries under that root. Use `"none"` to deny reads for matching paths. |

171| `permissions.<name>.filesystem.glob_scan_max_depth` | `number` | Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set. |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

122| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |186| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |

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

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

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

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

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

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

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

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

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

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

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

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

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

131| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |200| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |

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

133| `projects.<path>.trust_level` | `string` | Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers. |202| `projects.<path>.trust_level` | `string` | Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules. |

134| `review_model` | `string` | Optional model override used by `/review` (defaults to the current session model). |203| `review_model` | `string` | Optional model override used by `/review` (defaults to the current session model). |

135| `sandbox_mode` | `read-only | workspace-write | danger-full-access` | Sandbox policy for filesystem and network access during command execution. |204| `sandbox_mode` | `read-only | workspace-write | danger-full-access` | Sandbox policy for filesystem and network access during command execution. |

136| `sandbox_workspace_write.exclude_slash_tmp` | `boolean` | Exclude `/tmp` from writable roots in workspace-write mode. |205| `sandbox_workspace_write.exclude_slash_tmp` | `boolean` | Exclude `/tmp` from writable roots in workspace-write mode. |

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

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

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

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

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

141| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |211| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |

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


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

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

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

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

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

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

152| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |223| `tool_suggest.disabled_tools` | `array<table>` | Disable suggestions for specific discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |

224| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |

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

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

153| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |227| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |

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

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

156| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |230| `tui.keymap.<context>.<action>` | `string | array<string>` | Keyboard shortcut binding for a TUI action. Supported contexts include `global`, `chat`, `composer`, `editor`, `pager`, `list`, and `approval`; context-specific bindings override `tui.keymap.global`. |

231| `tui.keymap.<context>.<action> = []` | `empty array` | Unbind the action in that keymap context. Key names use normalized strings such as `ctrl-a`, `shift-enter`, or `page-down`. |

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

233| `tui.notification_condition` | `unfocused | always` | Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`. |

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

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

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

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

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

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

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

161| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |241| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |

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

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

162 244 

163Key245Key

164 246 


186 268 

187Key269Key

188 270 

271`agents.<name>.nickname_candidates`

272 

273Type / Values

274 

275`array<string>`

276 

277Details

278 

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

280 

281Key

282 

283`agents.job_max_runtime_seconds`

284 

285Type / Values

286 

287`number`

288 

289Details

290 

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

292 

293Key

294 

295`agents.max_depth`

296 

297Type / Values

298 

299`number`

300 

301Details

302 

303Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).

304 

305Key

306 

189`agents.max_threads`307`agents.max_threads`

190 308 

191Type / Values309Type / Values


194 312 

195Details313Details

196 314 

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

316 

317Key

318 

319`allow_login_shell`

320 

321Type / Values

322 

323`boolean`

324 

325Details

326 

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

328 

329Key

330 

331`analytics.enabled`

332 

333Type / Values

334 

335`boolean`

336 

337Details

338 

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

198 340 

199Key341Key

200 342 


202 344 

203Type / Values345Type / Values

204 346 

205`untrusted | on-request | never`347`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`

206 348 

207Details349Details

208 350 

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

210 352 

211Key353Key

212 354 

213`apps.<id>.disabled_reason`355`approval_policy.granular.mcp_elicitations`

214 356 

215Type / Values357Type / Values

216 358 

217`unknown | user`359`boolean`

218 360 

219Details361Details

220 362 

221Optional reason attached when an app/connector is disabled.363When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.

222 364 

223Key365Key

224 366 

225`apps.<id>.enabled`367`approval_policy.granular.request_permissions`

226 368 

227Type / Values369Type / Values

228 370 


230 372 

231Details373Details

232 374 

233Enable or disable a specific app/connector by id (default: true).375When `true`, prompts from the `request_permissions` tool are allowed to surface.

234 376 

235Key377Key

236 378 

237`chatgpt_base_url`379`approval_policy.granular.rules`

238 380 

239Type / Values381Type / Values

240 382 

241`string`383`boolean`

242 384 

243Details385Details

244 386 

245Override the base URL used during the ChatGPT login flow.387When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.

246 388 

247Key389Key

248 390 

249`check_for_update_on_startup`391`approval_policy.granular.sandbox_approval`

250 392 

251Type / Values393Type / Values

252 394 


254 396 

255Details397Details

256 398 

257Check for Codex updates on startup (set to false only when updates are centrally managed).399When `true`, sandbox escalation approval prompts are allowed to surface.

258 400 

259Key401Key

260 402 

261`cli_auth_credentials_store`403`approval_policy.granular.skill_approval`

262 404 

263Type / Values405Type / Values

264 406 

265`file | keyring | auto`407`boolean`

266 408 

267Details409Details

268 410 

269Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).411When `true`, skill-script approval prompts are allowed to surface.

270 412 

271Key413Key

272 414 

273`compact_prompt`415`approvals_reviewer`

274 416 

275Type / Values417Type / Values

276 418 

277`string`419`user | auto_review`

278 420 

279Details421Details

280 422 

281Inline override for the history compaction prompt.423Who reviews eligible approval prompts under `on-request` or granular approval policies. Defaults to `user`; `auto_review` uses the reviewer subagent. This setting doesn't change sandboxing or review actions already allowed inside the sandbox.

282 424 

283Key425Key

284 426 

285`developer_instructions`427`apps._default.destructive_enabled`

286 428 

287Type / Values429Type / Values

288 430 

289`string`431`boolean`

290 432 

291Details433Details

292 434 

293Additional developer instructions injected into the session (optional).435Default allow/deny for app tools with `destructive_hint = true`.

294 436 

295Key437Key

296 438 

297`disable_paste_burst`439`apps._default.enabled`

298 440 

299Type / Values441Type / Values

300 442 


302 444 

303Details445Details

304 446 

305Disable burst-paste detection in the TUI.447Default app enabled state for all apps unless overridden per app.

306 448 

307Key449Key

308 450 

309`experimental_compact_prompt_file`451`apps._default.open_world_enabled`

310 452 

311Type / Values453Type / Values

312 454 

313`string (path)`455`boolean`

314 456 

315Details457Details

316 458 

317Load the compaction prompt override from a file (experimental).459Default allow/deny for app tools with `open_world_hint = true`.

460 

461Key

462 

463`apps.<id>.default_tools_approval_mode`

464 

465Type / Values

466 

467`auto | prompt | approve`

468 

469Details

470 

471Default approval behavior for tools in this app unless a per-tool override exists.

318 472 

319Key473Key

320 474 

321`experimental_use_freeform_apply_patch`475`apps.<id>.default_tools_enabled`

322 476 

323Type / Values477Type / Values

324 478 


326 480 

327Details481Details

328 482 

329Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.483Default enabled state for tools in this app unless a per-tool override exists.

330 484 

331Key485Key

332 486 

333`experimental_use_unified_exec_tool`487`apps.<id>.destructive_enabled`

334 488 

335Type / Values489Type / Values

336 490 


338 492 

339Details493Details

340 494 

341Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.495Allow or block tools in this app that advertise `destructive_hint = true`.

342 496 

343Key497Key

344 498 

345`features.apply_patch_freeform`499`apps.<id>.enabled`

346 500 

347Type / Values501Type / Values

348 502 


350 504 

351Details505Details

352 506 

353Expose the freeform `apply_patch` tool (experimental).507Enable or disable a specific app/connector by id (default: true).

354 508 

355Key509Key

356 510 

357`features.apps`511`apps.<id>.open_world_enabled`

358 512 

359Type / Values513Type / Values

360 514 


362 516 

363Details517Details

364 518 

365Enable ChatGPT Apps/connectors support (experimental).519Allow or block tools in this app that advertise `open_world_hint = true`.

520 

521Key

522 

523`apps.<id>.tools.<tool>.approval_mode`

524 

525Type / Values

526 

527`auto | prompt | approve`

528 

529Details

530 

531Per-tool approval behavior override for a single app tool.

366 532 

367Key533Key

368 534 

369`features.apps_mcp_gateway`535`apps.<id>.tools.<tool>.enabled`

370 536 

371Type / Values537Type / Values

372 538 


374 540 

375Details541Details

376 542 

377Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).543Per-tool enabled override for an app tool (for example `repos/list`).

544 

545Key

546 

547`auto_review.policy`

548 

549Type / Values

550 

551`string`

552 

553Details

554 

555Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored.

556 

557Key

558 

559`background_terminal_max_timeout`

560 

561Type / Values

562 

563`number`

564 

565Details

566 

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

568 

569Key

570 

571`chatgpt_base_url`

572 

573Type / Values

574 

575`string`

576 

577Details

578 

579Override the base URL used during the ChatGPT login flow.

378 580 

379Key581Key

380 582 

381`features.child_agents_md`583`check_for_update_on_startup`

382 584 

383Type / Values585Type / Values

384 586 


386 588 

387Details589Details

388 590 

389Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).591Check for Codex updates on startup (set to false only when updates are centrally managed).

592 

593Key

594 

595`cli_auth_credentials_store`

596 

597Type / Values

598 

599`file | keyring | auto`

600 

601Details

602 

603Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).

604 

605Key

606 

607`commit_attribution`

608 

609Type / Values

610 

611`string`

612 

613Details

614 

615Override the commit co-author trailer text. Set an empty string to disable automatic attribution.

616 

617Key

618 

619`compact_prompt`

620 

621Type / Values

622 

623`string`

624 

625Details

626 

627Inline override for the history compaction prompt.

628 

629Key

630 

631`default_permissions`

632 

633Type / Values

634 

635`string`

636 

637Details

638 

639Name of the default permissions profile to apply to sandboxed tool calls. Built-ins are `:read-only`, `:workspace`, and `:danger-no-sandbox`; custom profile names require matching `[permissions.<name>]` tables.

640 

641Key

642 

643`developer_instructions`

644 

645Type / Values

646 

647`string`

648 

649Details

650 

651Additional developer instructions injected into the session (optional).

390 652 

391Key653Key

392 654 

393`features.collaboration_modes`655`disable_paste_burst`

394 656 

395Type / Values657Type / Values

396 658 


398 660 

399Details661Details

400 662 

401Enable collaboration modes such as plan mode (stable; on by default).663Disable burst-paste detection in the TUI.

664 

665Key

666 

667`experimental_compact_prompt_file`

668 

669Type / Values

670 

671`string (path)`

672 

673Details

674 

675Load the compaction prompt override from a file (experimental).

402 676 

403Key677Key

404 678 

405`features.elevated_windows_sandbox`679`experimental_use_unified_exec_tool`

406 680 

407Type / Values681Type / Values

408 682 


410 684 

411Details685Details

412 686 

413Enable the elevated Windows sandbox pipeline (experimental).687Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.

414 688 

415Key689Key

416 690 

417`features.experimental_windows_sandbox`691`features.apps`

418 692 

419Type / Values693Type / Values

420 694 


422 696 

423Details697Details

424 698 

425Run the Windows restricted-token sandbox (experimental).699Enable ChatGPT Apps/connectors support (experimental).

426 700 

427Key701Key

428 702 

429`features.multi_agent`703`features.codex_hooks`

430 704 

431Type / Values705Type / Values

432 706 


434 708 

435Details709Details

436 710 

437Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).711Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config.

438 712 

439Key713Key

440 714 

441`features.personality`715`features.enable_request_compression`

442 716 

443Type / Values717Type / Values

444 718 


446 720 

447Details721Details

448 722 

449Enable personality selection controls (stable; on by default).723Compress streaming request bodies with zstd when supported (stable; on by default).

450 724 

451Key725Key

452 726 

453`features.powershell_utf8`727`features.fast_mode`

454 728 

455Type / Values729Type / Values

456 730 


458 732 

459Details733Details

460 734 

461Force PowerShell UTF-8 output (defaults to true).735Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).

462 736 

463Key737Key

464 738 

465`features.remote_models`739`features.memories`

466 740 

467Type / Values741Type / Values

468 742 


470 744 

471Details745Details

472 746 

473Refresh remote model list before showing readiness (experimental).747Enable [Memories](https://developers.openai.com/codex/memories) (off by default).

474 748 

475Key749Key

476 750 

477`features.request_rule`751`features.multi_agent`

478 752 

479Type / Values753Type / Values

480 754 


482 756 

483Details757Details

484 758 

485Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).759Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).

486 760 

487Key761Key

488 762 

489`features.runtime_metrics`763`features.personality`

490 764 

491Type / Values765Type / Values

492 766 


494 768 

495Details769Details

496 770 

497Show runtime metrics summary in TUI turn separators (experimental).771Enable personality selection controls (stable; on by default).

498 772 

499Key773Key

500 774 

501`features.search_tool`775`features.prevent_idle_sleep`

502 776 

503Type / Values777Type / Values

504 778 


506 780 

507Details781Details

508 782 

509Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).783Prevent the machine from sleeping while a turn is actively running (experimental; off by default).

510 784 

511Key785Key

512 786 


518 792 

519Details793Details

520 794 

521Snapshot shell environment to speed up repeated commands (beta).795Snapshot shell environment to speed up repeated commands (stable; on by default).

522 796 

523Key797Key

524 798 


534 808 

535Key809Key

536 810 

537`features.unified_exec`811`features.skill_mcp_dependency_install`

812 

813Type / Values

814 

815`boolean`

816 

817Details

818 

819Allow prompting and installing missing MCP dependencies for skills (stable; on by default).

820 

821Key

822 

823`features.undo`

538 824 

539Type / Values825Type / Values

540 826 


542 828 

543Details829Details

544 830 

545Use the unified PTY-backed exec tool (beta).831Enable undo support (stable; off by default).

546 832 

547Key833Key

548 834 

549`features.use_linux_sandbox_bwrap`835`features.unified_exec`

550 836 

551Type / Values837Type / Values

552 838 


554 840 

555Details841Details

556 842 

557Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).843Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).

558 844 

559Key845Key

560 846 


678 964 

679Key965Key

680 966 

681`include_apply_patch_tool`967`hooks`

682 968 

683Type / Values969Type / Values

684 970 

685`boolean`971`table`

686 972 

687Details973Details

688 974 

689Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.975Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events.

690 976 

691Key977Key

692 978 


726 1012 

727Key1013Key

728 1014 

1015`mcp_oauth_callback_url`

1016 

1017Type / Values

1018 

1019`string`

1020 

1021Details

1022 

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

1024 

1025Key

1026 

729`mcp_oauth_credentials_store`1027`mcp_oauth_credentials_store`

730 1028 

731Type / Values1029Type / Values


850 1148 

851Type / Values1149Type / Values

852 1150 

853`array<string>`1151`array<string | { name = string, source = "local" | "remote" }>`

854 1152 

855Details1153Details

856 1154 

857Additional environment variables to whitelist for an MCP stdio server.1155Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio.

858 1156 

859Key1157Key

860 1158 

861`mcp_servers.<id>.http_headers`1159`mcp_servers.<id>.experimental_environment`

862 1160 

863Type / Values1161Type / Values

864 1162 

865`map<string,string>`1163`local | remote`

866 1164 

867Details1165Details

868 1166 

869Static HTTP headers included with each MCP HTTP request.1167Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.

870 1168 

871Key1169Key

872 1170 

873`mcp_servers.<id>.required`1171`mcp_servers.<id>.http_headers`

874 1172 

875Type / Values1173Type / Values

876 1174 

877`boolean`1175`map<string,string>`

878 1176 

879Details1177Details

880 1178 

881When true, fail startup/resume if this enabled MCP server cannot initialize.1179Static HTTP headers included with each MCP HTTP request.

882 1180 

883Key1181Key

884 1182 

885`mcp_servers.<id>.startup_timeout_ms`1183`mcp_servers.<id>.oauth_resource`

886 1184 

887Type / Values1185Type / Values

888 1186 

889`number`1187`string`

890 1188 

891Details1189Details

892 1190 

893Alias for `startup_timeout_sec` in milliseconds.1191Optional RFC 8707 OAuth resource parameter to include during MCP login.

894 1192 

895Key1193Key

896 1194 

897`mcp_servers.<id>.startup_timeout_sec`1195`mcp_servers.<id>.required`

898 1196 

899Type / Values1197Type / Values

900 1198 

901`number`1199`boolean`

902 

903Details

904 

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

906 

907Key

908 

909`mcp_servers.<id>.tool_timeout_sec`

910 

911Type / Values

912 

913`number`

914 1200 

915Details1201Details

916 1202 

917Override the default 60s per-tool timeout for an MCP server.1203When true, fail startup/resume if this enabled MCP server cannot initialize.

918 1204 

919Key1205Key

920 1206 

921`mcp_servers.<id>.url`1207`mcp_servers.<id>.scopes`

922 1208 

923Type / Values1209Type / Values

924 1210 

925`string`1211`array<string>`

926 1212 

927Details1213Details

928 1214 

929Endpoint for an MCP streamable HTTP server.1215OAuth scopes to request when authenticating to that MCP server.

930 1216 

931Key1217Key

932 1218 

933`model`1219`mcp_servers.<id>.startup_timeout_ms`

934 1220 

935Type / Values1221Type / Values

936 1222 

937`string`1223`number`

938 1224 

939Details1225Details

940 1226 

941Model to use (e.g., `gpt-5-codex`).1227Alias for `startup_timeout_sec` in milliseconds.

942 1228 

943Key1229Key

944 1230 

945`model_auto_compact_token_limit`1231`mcp_servers.<id>.startup_timeout_sec`

946 1232 

947Type / Values1233Type / Values

948 1234 


950 1236 

951Details1237Details

952 1238 

953Token threshold that triggers automatic history compaction (unset uses model defaults).1239Override the default 10s startup timeout for an MCP server.

954 1240 

955Key1241Key

956 1242 

957`model_context_window`1243`mcp_servers.<id>.tool_timeout_sec`

958 1244 

959Type / Values1245Type / Values

960 1246 


962 1248 

963Details1249Details

964 1250 

965Context window tokens available to the active model.1251Override the default 60s per-tool timeout for an MCP server.

966 1252 

967Key1253Key

968 1254 

969`model_instructions_file`1255`mcp_servers.<id>.url`

970 1256 

971Type / Values1257Type / Values

972 1258 

973`string (path)`1259`string`

974 1260 

975Details1261Details

976 1262 

977Replacement for built-in instructions instead of `AGENTS.md`.1263Endpoint for an MCP streamable HTTP server.

978 1264 

979Key1265Key

980 1266 

981`model_provider`1267`memories.consolidation_model`

982 1268 

983Type / Values1269Type / Values

984 1270 


986 1272 

987Details1273Details

988 1274 

989Provider id from `model_providers` (default: `openai`).1275Optional model override for global memory consolidation.

990 1276 

991Key1277Key

992 1278 

993`model_providers.<id>.base_url`1279`memories.disable_on_external_context`

994 1280 

995Type / Values1281Type / Values

996 1282 

997`string`1283`boolean`

998 1284 

999Details1285Details

1000 1286 

1001API base URL for the model provider.1287When `true`, threads that use external context such as MCP tool calls, web search, or tool search are kept out of memory generation. Defaults to `false`. Legacy alias: `memories.no_memories_if_mcp_or_web_search`.

1002 1288 

1003Key1289Key

1004 1290 

1005`model_providers.<id>.env_http_headers`1291`memories.extract_model`

1006 1292 

1007Type / Values1293Type / Values

1008 1294 

1009`map<string,string>`1295`string`

1010 1296 

1011Details1297Details

1012 1298 

1013HTTP headers populated from environment variables when present.1299Optional model override for per-thread memory extraction.

1014 1300 

1015Key1301Key

1016 1302 

1017`model_providers.<id>.env_key`1303`memories.generate_memories`

1018 1304 

1019Type / Values1305Type / Values

1020 1306 

1021`string`1307`boolean`

1022 1308 

1023Details1309Details

1024 1310 

1025Environment variable supplying the provider API key.1311When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.

1026 1312 

1027Key1313Key

1028 1314 

1029`model_providers.<id>.env_key_instructions`1315`memories.max_raw_memories_for_consolidation`

1030 1316 

1031Type / Values1317Type / Values

1032 1318 

1033`string`1319`number`

1034 1320 

1035Details1321Details

1036 1322 

1037Optional setup guidance for the provider API key.1323Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.

1038 1324 

1039Key1325Key

1040 1326 

1041`model_providers.<id>.experimental_bearer_token`1327`memories.max_rollout_age_days`

1042 1328 

1043Type / Values1329Type / Values

1044 1330 

1045`string`1331`number`

1046 1332 

1047Details1333Details

1048 1334 

1049Direct bearer token for the provider (discouraged; use `env_key`).1335Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.

1050 1336 

1051Key1337Key

1052 1338 

1053`model_providers.<id>.http_headers`1339`memories.max_rollouts_per_startup`

1054 1340 

1055Type / Values1341Type / Values

1056 1342 

1057`map<string,string>`1343`number`

1058 1344 

1059Details1345Details

1060 1346 

1061Static HTTP headers added to provider requests.1347Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.

1062 1348 

1063Key1349Key

1064 1350 

1065`model_providers.<id>.name`1351`memories.max_unused_days`

1066 1352 

1067Type / Values1353Type / Values

1068 1354 

1069`string`1355`number`

1070 1356 

1071Details1357Details

1072 1358 

1073Display name for a custom model provider.1359Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.

1074 1360 

1075Key1361Key

1076 1362 

1077`model_providers.<id>.query_params`1363`memories.min_rate_limit_remaining_percent`

1078 1364 

1079Type / Values1365Type / Values

1080 1366 

1081`map<string,string>`1367`number`

1082 1368 

1083Details1369Details

1084 1370 

1085Extra query parameters appended to provider requests.1371Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`.

1086 1372 

1087Key1373Key

1088 1374 

1089`model_providers.<id>.request_max_retries`1375`memories.min_rollout_idle_hours`

1090 1376 

1091Type / Values1377Type / Values

1092 1378 


1094 1380 

1095Details1381Details

1096 1382 

1097Retry count for HTTP requests to the provider (default: 4).1383Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.

1098 1384 

1099Key1385Key

1100 1386 

1101`model_providers.<id>.requires_openai_auth`1387`memories.use_memories`

1102 1388 

1103Type / Values1389Type / Values

1104 1390 


1106 1392 

1107Details1393Details

1108 1394 

1109The provider uses OpenAI authentication (defaults to false).1395When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.

1110 1396 

1111Key1397Key

1112 1398 

1113`model_providers.<id>.stream_idle_timeout_ms`1399`model`

1114 1400 

1115Type / Values1401Type / Values

1116 1402 

1117`number`1403`string`

1118 1404 

1119Details1405Details

1120 1406 

1121Idle timeout for SSE streams in milliseconds (default: 300000).1407Model to use (e.g., `gpt-5.5`).

1122 1408 

1123Key1409Key

1124 1410 

1125`model_providers.<id>.stream_max_retries`1411`model_auto_compact_token_limit`

1126 1412 

1127Type / Values1413Type / Values

1128 1414 


1130 1416 

1131Details1417Details

1132 1418 

1133Retry count for SSE streaming interruptions (default: 5).1419Token threshold that triggers automatic history compaction (unset uses model defaults).

1134 1420 

1135Key1421Key

1136 1422 

1137`model_providers.<id>.wire_api`1423`model_catalog_json`

1138 1424 

1139Type / Values1425Type / Values

1140 1426 

1141`chat | responses`1427`string (path)`

1142 1428 

1143Details1429Details

1144 1430 

1145Protocol used by the provider (defaults to `chat` if omitted).1431Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.

1146 1432 

1147Key1433Key

1148 1434 

1149`model_reasoning_effort`1435`model_context_window`

1150 1436 

1151Type / Values1437Type / Values

1152 1438 

1153`minimal | low | medium | high | xhigh`1439`number`

1154 1440 

1155Details1441Details

1156 1442 

1157Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1443Context window tokens available to the active model.

1158 1444 

1159Key1445Key

1160 1446 

1161`model_reasoning_summary`1447`model_instructions_file`

1162 1448 

1163Type / Values1449Type / Values

1164 1450 

1165`auto | concise | detailed | none`1451`string (path)`

1166 1452 

1167Details1453Details

1168 1454 

1169Select reasoning summary detail or disable summaries entirely.1455Replacement for built-in instructions instead of `AGENTS.md`.

1170 1456 

1171Key1457Key

1172 1458 

1173`model_supports_reasoning_summaries`1459`model_provider`

1174 1460 

1175Type / Values1461Type / Values

1176 1462 

1177`boolean`1463`string`

1178 1464 

1179Details1465Details

1180 1466 

1181Force Codex to send or not send reasoning metadata.1467Provider id from `model_providers` (default: `openai`).

1182 1468 

1183Key1469Key

1184 1470 

1185`model_verbosity`1471`model_providers.<id>`

1186 1472 

1187Type / Values1473Type / Values

1188 1474 

1189`low | medium | high`1475`table`

1190 1476 

1191Details1477Details

1192 1478 

1193Control GPT-5 Responses API verbosity (defaults to `medium`).1479Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.

1194 1480 

1195Key1481Key

1196 1482 

1197`notice.hide_full_access_warning`1483`model_providers.<id>.auth`

1198 1484 

1199Type / Values1485Type / Values

1200 1486 

1201`boolean`1487`table`

1202 1488 

1203Details1489Details

1204 1490 

1205Track acknowledgement of the full access warning prompt.1491Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.

1206 1492 

1207Key1493Key

1208 1494 

1209`notice.hide_gpt-5.1-codex-max_migration_prompt`1495`model_providers.<id>.auth.args`

1210 1496 

1211Type / Values1497Type / Values

1212 1498 

1213`boolean`1499`array<string>`

1214 1500 

1215Details1501Details

1216 1502 

1217Track acknowledgement of the gpt-5.1-codex-max migration prompt.1503Arguments passed to the token command.

1218 1504 

1219Key1505Key

1220 1506 

1221`notice.hide_gpt5_1_migration_prompt`1507`model_providers.<id>.auth.command`

1222 1508 

1223Type / Values1509Type / Values

1224 1510 

1225`boolean`1511`string`

1226 1512 

1227Details1513Details

1228 1514 

1229Track acknowledgement of the GPT-5.1 migration prompt.1515Command to run when Codex needs a bearer token. The command must print the token to stdout.

1230 1516 

1231Key1517Key

1232 1518 

1233`notice.hide_rate_limit_model_nudge`1519`model_providers.<id>.auth.cwd`

1234 1520 

1235Type / Values1521Type / Values

1236 1522 

1237`boolean`1523`string (path)`

1238 1524 

1239Details1525Details

1240 1526 

1241Track opt-out of the rate limit model switch reminder.1527Working directory for the token command.

1242 1528 

1243Key1529Key

1244 1530 

1245`notice.hide_world_writable_warning`1531`model_providers.<id>.auth.refresh_interval_ms`

1246 1532 

1247Type / Values1533Type / Values

1248 1534 

1249`boolean`1535`number`

1250 1536 

1251Details1537Details

1252 1538 

1253Track acknowledgement of the Windows world-writable directories warning.1539How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.

1254 1540 

1255Key1541Key

1256 1542 

1257`notice.model_migrations`1543`model_providers.<id>.auth.timeout_ms`

1258 1544 

1259Type / Values1545Type / Values

1260 1546 

1261`map<string,string>`1547`number`

1262 1548 

1263Details1549Details

1264 1550 

1265Track acknowledged model migrations as old->new mappings.1551Maximum token command runtime in milliseconds (default: 5000).

1266 1552 

1267Key1553Key

1268 1554 

1269`notify`1555`model_providers.<id>.base_url`

1270 1556 

1271Type / Values1557Type / Values

1272 1558 

1273`array<string>`1559`string`

1274 1560 

1275Details1561Details

1276 1562 

1277Command invoked for notifications; receives a JSON payload from Codex.1563API base URL for the model provider.

1278 1564 

1279Key1565Key

1280 1566 

1281`oss_provider`1567`model_providers.<id>.env_http_headers`

1282 1568 

1283Type / Values1569Type / Values

1284 1570 

1285`lmstudio | ollama`1571`map<string,string>`

1286 1572 

1287Details1573Details

1288 1574 

1289Default local provider used when running with `--oss` (defaults to prompting if unset).1575HTTP headers populated from environment variables when present.

1290 1576 

1291Key1577Key

1292 1578 

1293`otel.environment`1579`model_providers.<id>.env_key`

1294 1580 

1295Type / Values1581Type / Values

1296 1582 


1298 1584 

1299Details1585Details

1300 1586 

1301Environment tag applied to emitted OpenTelemetry events (default: `dev`).1587Environment variable supplying the provider API key.

1302 1588 

1303Key1589Key

1304 1590 

1305`otel.exporter`1591`model_providers.<id>.env_key_instructions`

1306 1592 

1307Type / Values1593Type / Values

1308 1594 

1309`none | otlp-http | otlp-grpc`1595`string`

1310 1596 

1311Details1597Details

1312 1598 

1313Select the OpenTelemetry exporter and provide any endpoint metadata.1599Optional setup guidance for the provider API key.

1314 1600 

1315Key1601Key

1316 1602 

1317`otel.exporter.<id>.endpoint`1603`model_providers.<id>.experimental_bearer_token`

1318 1604 

1319Type / Values1605Type / Values

1320 1606 


1322 1608 

1323Details1609Details

1324 1610 

1325Exporter endpoint for OTEL logs.1611Direct bearer token for the provider (discouraged; use `env_key`).

1326 1612 

1327Key1613Key

1328 1614 

1329`otel.exporter.<id>.headers`1615`model_providers.<id>.http_headers`

1330 1616 

1331Type / Values1617Type / Values

1332 1618 


1334 1620 

1335Details1621Details

1336 1622 

1337Static headers included with OTEL exporter requests.1623Static HTTP headers added to provider requests.

1338 1624 

1339Key1625Key

1340 1626 

1341`otel.exporter.<id>.protocol`1627`model_providers.<id>.name`

1342 1628 

1343Type / Values1629Type / Values

1344 1630 

1345`binary | json`1631`string`

1346 1632 

1347Details1633Details

1348 1634 

1349Protocol used by the OTLP/HTTP exporter.1635Display name for a custom model provider.

1350 1636 

1351Key1637Key

1352 1638 

1353`otel.exporter.<id>.tls.ca-certificate`1639`model_providers.<id>.query_params`

1354 1640 

1355Type / Values1641Type / Values

1356 1642 

1357`string`1643`map<string,string>`

1358 1644 

1359Details1645Details

1360 1646 

1361CA certificate path for OTEL exporter TLS.1647Extra query parameters appended to provider requests.

1362 1648 

1363Key1649Key

1364 1650 

1365`otel.exporter.<id>.tls.client-certificate`1651`model_providers.<id>.request_max_retries`

1366 1652 

1367Type / Values1653Type / Values

1368 1654 

1369`string`1655`number`

1370 1656 

1371Details1657Details

1372 1658 

1373Client certificate path for OTEL exporter TLS.1659Retry count for HTTP requests to the provider (default: 4).

1374 1660 

1375Key1661Key

1376 1662 

1377`otel.exporter.<id>.tls.client-private-key`1663`model_providers.<id>.requires_openai_auth`

1378 1664 

1379Type / Values1665Type / Values

1380 1666 

1381`string`1667`boolean`

1382 1668 

1383Details1669Details

1384 1670 

1385Client private key path for OTEL exporter TLS.1671The provider uses OpenAI authentication (defaults to false).

1386 1672 

1387Key1673Key

1388 1674 

1389`otel.log_user_prompt`1675`model_providers.<id>.stream_idle_timeout_ms`

1390 1676 

1391Type / Values1677Type / Values

1392 1678 

1393`boolean`1679`number`

1394 1680 

1395Details1681Details

1396 1682 

1397Opt in to exporting raw user prompts with OpenTelemetry logs.1683Idle timeout for SSE streams in milliseconds (default: 300000).

1398 1684 

1399Key1685Key

1400 1686 

1401`otel.trace_exporter`1687`model_providers.<id>.stream_max_retries`

1402 1688 

1403Type / Values1689Type / Values

1404 1690 

1405`none | otlp-http | otlp-grpc`1691`number`

1406 1692 

1407Details1693Details

1408 1694 

1409Select the OpenTelemetry trace exporter and provide any endpoint metadata.1695Retry count for SSE streaming interruptions (default: 5).

1410 1696 

1411Key1697Key

1412 1698 

1413`otel.trace_exporter.<id>.endpoint`1699`model_providers.<id>.supports_websockets`

1414 1700 

1415Type / Values1701Type / Values

1416 1702 

1417`string`1703`boolean`

1418 1704 

1419Details1705Details

1420 1706 

1421Trace exporter endpoint for OTEL logs.1707Whether that provider supports the Responses API WebSocket transport.

1422 1708 

1423Key1709Key

1424 1710 

1425`otel.trace_exporter.<id>.headers`1711`model_providers.<id>.wire_api`

1426 1712 

1427Type / Values1713Type / Values

1428 1714 

1429`map<string,string>`1715`responses`

1430 1716 

1431Details1717Details

1432 1718 

1433Static headers included with OTEL trace exporter requests.1719Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.

1434 1720 

1435Key1721Key

1436 1722 

1437`otel.trace_exporter.<id>.protocol`1723`model_providers.amazon-bedrock.aws.profile`

1438 1724 

1439Type / Values1725Type / Values

1440 1726 

1441`binary | json`1727`string`

1442 1728 

1443Details1729Details

1444 1730 

1445Protocol used by the OTLP/HTTP trace exporter.1731AWS profile name used by the built-in `amazon-bedrock` provider.

1446 1732 

1447Key1733Key

1448 1734 

1449`otel.trace_exporter.<id>.tls.ca-certificate`1735`model_providers.amazon-bedrock.aws.region`

1450 1736 

1451Type / Values1737Type / Values

1452 1738 


1454 1740 

1455Details1741Details

1456 1742 

1457CA certificate path for OTEL trace exporter TLS.1743AWS region used by the built-in `amazon-bedrock` provider.

1458 1744 

1459Key1745Key

1460 1746 

1461`otel.trace_exporter.<id>.tls.client-certificate`1747`model_reasoning_effort`

1462 1748 

1463Type / Values1749Type / Values

1464 1750 

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

1466 1752 

1467Details1753Details

1468 1754 

1469Client certificate path for OTEL trace exporter TLS.1755Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).

1470 1756 

1471Key1757Key

1472 1758 

1473`otel.trace_exporter.<id>.tls.client-private-key`1759`model_reasoning_summary`

1474 1760 

1475Type / Values1761Type / Values

1476 1762 

1477`string`1763`auto | concise | detailed | none`

1478 1764 

1479Details1765Details

1480 1766 

1481Client private key path for OTEL trace exporter TLS.1767Select reasoning summary detail or disable summaries entirely.

1482 1768 

1483Key1769Key

1484 1770 

1485`personality`1771`model_supports_reasoning_summaries`

1486 1772 

1487Type / Values1773Type / Values

1488 1774 

1489`none | friendly | pragmatic`1775`boolean`

1490 1776 

1491Details1777Details

1492 1778 

1493Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.1779Force Codex to send or not send reasoning metadata.

1494 1780 

1495Key1781Key

1496 1782 

1497`profile`1783`model_verbosity`

1498 1784 

1499Type / Values1785Type / Values

1500 1786 

1501`string`1787`low | medium | high`

1502 1788 

1503Details1789Details

1504 1790 

1505Default profile applied at startup (equivalent to `--profile`).1791Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.

1506 1792 

1507Key1793Key

1508 1794 

1509`profiles.<name>.*`1795`notice.hide_full_access_warning`

1510 1796 

1511Type / Values1797Type / Values

1512 1798 

1513`various`1799`boolean`

1514 1800 

1515Details1801Details

1516 1802 

1517Profile-scoped overrides for any of the supported configuration keys.1803Track acknowledgement of the full access warning prompt.

1518 1804 

1519Key1805Key

1520 1806 

1521`profiles.<name>.experimental_use_freeform_apply_patch`1807`notice.hide_gpt-5.1-codex-max_migration_prompt`

1522 1808 

1523Type / Values1809Type / Values

1524 1810 


1526 1812 

1527Details1813Details

1528 1814 

1529Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1815Track acknowledgement of the gpt-5.1-codex-max migration prompt.

1530 1816 

1531Key1817Key

1532 1818 

1533`profiles.<name>.experimental_use_unified_exec_tool`1819`notice.hide_gpt5_1_migration_prompt`

1534 1820 

1535Type / Values1821Type / Values

1536 1822 


1538 1824 

1539Details1825Details

1540 1826 

1541Legacy name for enabling unified exec; prefer `[features].unified_exec`.1827Track acknowledgement of the GPT-5.1 migration prompt.

1542 1828 

1543Key1829Key

1544 1830 

1545`profiles.<name>.include_apply_patch_tool`1831`notice.hide_rate_limit_model_nudge`

1546 1832 

1547Type / Values1833Type / Values

1548 1834 


1550 1836 

1551Details1837Details

1552 1838 

1553Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1839Track opt-out of the rate limit model switch reminder.

1554 1840 

1555Key1841Key

1556 1842 

1557`profiles.<name>.oss_provider`1843`notice.hide_world_writable_warning`

1558 1844 

1559Type / Values1845Type / Values

1560 1846 

1561`lmstudio | ollama`1847`boolean`

1562 1848 

1563Details1849Details

1564 1850 

1565Profile-scoped OSS provider for `--oss` sessions.1851Track acknowledgement of the Windows world-writable directories warning.

1566 1852 

1567Key1853Key

1568 1854 

1569`profiles.<name>.personality`1855`notice.model_migrations`

1570 1856 

1571Type / Values1857Type / Values

1572 1858 

1573`none | friendly | pragmatic`1859`map<string,string>`

1574 1860 

1575Details1861Details

1576 1862 

1577Profile-scoped communication style override for supported models.1863Track acknowledged model migrations as old->new mappings.

1578 1864 

1579Key1865Key

1580 1866 

1581`profiles.<name>.web_search`1867`notify`

1582 1868 

1583Type / Values1869Type / Values

1584 1870 

1585`disabled | cached | live`1871`array<string>`

1586 1872 

1587Details1873Details

1588 1874 

1589Profile-scoped web search mode override (default: `"cached"`).1875Command invoked for notifications; receives a JSON payload from Codex.

1590 1876 

1591Key1877Key

1592 1878 

1593`project_doc_fallback_filenames`1879`openai_base_url`

1594 1880 

1595Type / Values1881Type / Values

1596 1882 

1597`array<string>`1883`string`

1598 1884 

1599Details1885Details

1600 1886 

1601Additional filenames to try when `AGENTS.md` is missing.1887Base URL override for the built-in `openai` model provider.

1602 1888 

1603Key1889Key

1604 1890 

1605`project_doc_max_bytes`1891`oss_provider`

1606 1892 

1607Type / Values1893Type / Values

1608 1894 

1609`number`1895`lmstudio | ollama`

1610 1896 

1611Details1897Details

1612 1898 

1613Maximum bytes read from `AGENTS.md` when building project instructions.1899Default local provider used when running with `--oss` (defaults to prompting if unset).

1614 1900 

1615Key1901Key

1616 1902 

1617`project_root_markers`1903`otel.environment`

1618 1904 

1619Type / Values1905Type / Values

1620 1906 

1621`array<string>`1907`string`

1622 1908 

1623Details1909Details

1624 1910 

1625List of project root marker filenames; used when searching parent directories for the project root.1911Environment tag applied to emitted OpenTelemetry events (default: `dev`).

1626 1912 

1627Key1913Key

1628 1914 

1629`projects.<path>.trust_level`1915`otel.exporter`

1916 

1917Type / Values

1918 

1919`none | otlp-http | otlp-grpc`

1920 

1921Details

1922 

1923Select the OpenTelemetry exporter and provide any endpoint metadata.

1924 

1925Key

1926 

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

1630 1928 

1631Type / Values1929Type / Values

1632 1930 


1634 1932 

1635Details1933Details

1636 1934 

1637Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.1935Exporter endpoint for OTEL logs.

1638 1936 

1639Key1937Key

1640 1938 

1641`review_model`1939`otel.exporter.<id>.headers`

1940 

1941Type / Values

1942 

1943`map<string,string>`

1944 

1945Details

1946 

1947Static headers included with OTEL exporter requests.

1948 

1949Key

1950 

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

1952 

1953Type / Values

1954 

1955`binary | json`

1956 

1957Details

1958 

1959Protocol used by the OTLP/HTTP exporter.

1960 

1961Key

1962 

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

1642 1964 

1643Type / Values1965Type / Values

1644 1966 


1646 1968 

1647Details1969Details

1648 1970 

1649Optional model override used by `/review` (defaults to the current session model).1971CA certificate path for OTEL exporter TLS.

1650 1972 

1651Key1973Key

1652 1974 

1653`sandbox_mode`1975`otel.exporter.<id>.tls.client-certificate`

1654 1976 

1655Type / Values1977Type / Values

1656 1978 

1657`read-only | workspace-write | danger-full-access`1979`string`

1658 1980 

1659Details1981Details

1660 1982 

1661Sandbox policy for filesystem and network access during command execution.1983Client certificate path for OTEL exporter TLS.

1662 1984 

1663Key1985Key

1664 1986 

1665`sandbox_workspace_write.exclude_slash_tmp`1987`otel.exporter.<id>.tls.client-private-key`

1666 1988 

1667Type / Values1989Type / Values

1668 1990 

1669`boolean`1991`string`

1670 1992 

1671Details1993Details

1672 1994 

1673Exclude `/tmp` from writable roots in workspace-write mode.1995Client private key path for OTEL exporter TLS.

1674 1996 

1675Key1997Key

1676 1998 

1677`sandbox_workspace_write.exclude_tmpdir_env_var`1999`otel.log_user_prompt`

1678 2000 

1679Type / Values2001Type / Values

1680 2002 


1682 2004 

1683Details2005Details

1684 2006 

1685Exclude `$TMPDIR` from writable roots in workspace-write mode.2007Opt in to exporting raw user prompts with OpenTelemetry logs.

1686 2008 

1687Key2009Key

1688 2010 

1689`sandbox_workspace_write.network_access`2011`otel.metrics_exporter`

1690 2012 

1691Type / Values2013Type / Values

1692 2014 

1693`boolean`2015`none | statsig | otlp-http | otlp-grpc`

1694 2016 

1695Details2017Details

1696 2018 

1697Allow outbound network access inside the workspace-write sandbox.2019Select the OpenTelemetry metrics exporter (defaults to `statsig`).

1698 2020 

1699Key2021Key

1700 2022 

1701`sandbox_workspace_write.writable_roots`2023`otel.trace_exporter`

1702 2024 

1703Type / Values2025Type / Values

1704 2026 

1705`array<string>`2027`none | otlp-http | otlp-grpc`

1706 2028 

1707Details2029Details

1708 2030 

1709Additional writable roots when `sandbox_mode = "workspace-write"`.2031Select the OpenTelemetry trace exporter and provide any endpoint metadata.

1710 2032 

1711Key2033Key

1712 2034 

1713`shell_environment_policy.exclude`2035`otel.trace_exporter.<id>.endpoint`

1714 2036 

1715Type / Values2037Type / Values

1716 2038 

1717`array<string>`2039`string`

1718 2040 

1719Details2041Details

1720 2042 

1721Glob patterns for removing environment variables after the defaults.2043Trace exporter endpoint for OTEL logs.

1722 2044 

1723Key2045Key

1724 2046 

1725`shell_environment_policy.experimental_use_profile`2047`otel.trace_exporter.<id>.headers`

1726 2048 

1727Type / Values2049Type / Values

1728 2050 

1729`boolean`2051`map<string,string>`

1730 2052 

1731Details2053Details

1732 2054 

1733Use the user shell profile when spawning subprocesses.2055Static headers included with OTEL trace exporter requests.

1734 2056 

1735Key2057Key

1736 2058 

1737`shell_environment_policy.ignore_default_excludes`2059`otel.trace_exporter.<id>.protocol`

1738 2060 

1739Type / Values2061Type / Values

1740 2062 

1741`boolean`2063`binary | json`

1742 2064 

1743Details2065Details

1744 2066 

1745Keep variables containing KEY/SECRET/TOKEN before other filters run.2067Protocol used by the OTLP/HTTP trace exporter.

1746 2068 

1747Key2069Key

1748 2070 

1749`shell_environment_policy.include_only`2071`otel.trace_exporter.<id>.tls.ca-certificate`

1750 2072 

1751Type / Values2073Type / Values

1752 2074 

1753`array<string>`2075`string`

1754 2076 

1755Details2077Details

1756 2078 

1757Whitelist of patterns; when set only matching variables are kept.2079CA certificate path for OTEL trace exporter TLS.

1758 2080 

1759Key2081Key

1760 2082 

1761`shell_environment_policy.inherit`2083`otel.trace_exporter.<id>.tls.client-certificate`

1762 2084 

1763Type / Values2085Type / Values

1764 2086 

1765`all | core | none`2087`string`

1766 2088 

1767Details2089Details

1768 2090 

1769Baseline environment inheritance when spawning subprocesses.2091Client certificate path for OTEL trace exporter TLS.

1770 2092 

1771Key2093Key

1772 2094 

1773`shell_environment_policy.set`2095`otel.trace_exporter.<id>.tls.client-private-key`

1774 2096 

1775Type / Values2097Type / Values

1776 2098 

1777`map<string,string>`2099`string`

1778 2100 

1779Details2101Details

1780 2102 

1781Explicit environment overrides injected into every subprocess.2103Client private key path for OTEL trace exporter TLS.

1782 2104 

1783Key2105Key

1784 2106 

1785`show_raw_agent_reasoning`2107`permissions.<name>.filesystem`

1786 2108 

1787Type / Values2109Type / Values

1788 2110 

1789`boolean`2111`table`

1790 2112 

1791Details2113Details

1792 2114 

1793Surface raw reasoning content when the active model emits it.2115Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.

1794 2116 

1795Key2117Key

1796 2118 

1797`skills.config`2119`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`

1798 2120 

1799Type / Values2121Type / Values

1800 2122 

1801`array<object>`2123`"read" | "write" | "none"`

1802 2124 

1803Details2125Details

1804 2126 

1805Per-skill enablement overrides stored in config.toml.2127Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.

1806 2128 

1807Key2129Key

1808 2130 

1809`skills.config.<index>.enabled`2131`permissions.<name>.filesystem.<path-or-glob>`

1810 2132 

1811Type / Values2133Type / Values

1812 2134 

1813`boolean`2135`"read" | "write" | "none" | table`

1814 2136 

1815Details2137Details

1816 2138 

1817Enable or disable the referenced skill.2139Grant direct access for a path, glob pattern, or special token, or scope nested entries under that root. Use `"none"` to deny reads for matching paths.

1818 2140 

1819Key2141Key

1820 2142 

1821`skills.config.<index>.path`2143`permissions.<name>.filesystem.glob_scan_max_depth`

1822 2144 

1823Type / Values2145Type / Values

1824 2146 

1825`string (path)`2147`number`

1826 2148 

1827Details2149Details

1828 2150 

1829Path to a skill folder containing `SKILL.md`.2151Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.

1830 2152 

1831Key2153Key

1832 2154 

1833`suppress_unstable_features_warning`2155`permissions.<name>.network.allow_local_binding`

1834 2156 

1835Type / Values2157Type / Values

1836 2158 


1838 2160 

1839Details2161Details

1840 2162 

1841Suppress the warning that appears when under-development feature flags are enabled.2163Permit local bind/listen operations through the managed proxy.

1842 2164 

1843Key2165Key

1844 2166 

1845`tool_output_token_limit`2167`permissions.<name>.network.allow_upstream_proxy`

1846 2168 

1847Type / Values2169Type / Values

1848 2170 

1849`number`2171`boolean`

1850 2172 

1851Details2173Details

1852 2174 

1853Token budget for storing individual tool/function outputs in history.2175Allow the managed proxy to chain to another upstream proxy.

1854 2176 

1855Key2177Key

1856 2178 

1857`tools.web_search`2179`permissions.<name>.network.dangerously_allow_all_unix_sockets`

1858 2180 

1859Type / Values2181Type / Values

1860 2182 


1862 2184 

1863Details2185Details

1864 2186 

1865Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2187Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.

1866 2188 

1867Key2189Key

1868 2190 

1869`tui`2191`permissions.<name>.network.dangerously_allow_non_loopback_proxy`

1870 2192 

1871Type / Values2193Type / Values

1872 2194 

1873`table`2195`boolean`

1874 2196 

1875Details2197Details

1876 2198 

1877TUI-specific options such as enabling inline desktop notifications.2199Permit non-loopback bind addresses for the managed proxy listener.

1878 2200 

1879Key2201Key

1880 2202 

1881`tui.alternate_screen`2203`permissions.<name>.network.domains`

1882 2204 

1883Type / Values2205Type / Values

1884 2206 

1885`auto | always | never`2207`map<string, allow | deny>`

1886 2208 

1887Details2209Details

1888 2210 

1889Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback).2211Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.

1890 2212 

1891Key2213Key

1892 2214 

1893`tui.animations`2215`permissions.<name>.network.enable_socks5`

1894 2216 

1895Type / Values2217Type / Values

1896 2218 


1898 2220 

1899Details2221Details

1900 2222 

1901Enable terminal animations (welcome screen, shimmer, spinner) (default: true).2223Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.

1902 2224 

1903Key2225Key

1904 2226 

1905`tui.notification_method`2227`permissions.<name>.network.enable_socks5_udp`

1906 2228 

1907Type / Values2229Type / Values

1908 2230 

1909`auto | osc9 | bel`2231`boolean`

1910 2232 

1911Details2233Details

1912 2234 

1913Notification method for unfocused terminal notifications (default: auto).2235Allow UDP over the SOCKS5 listener when enabled.

1914 2236 

1915Key2237Key

1916 2238 

1917`tui.notifications`2239`permissions.<name>.network.enabled`

1918 2240 

1919Type / Values2241Type / Values

1920 2242 

1921`boolean | array<string>`2243`boolean`

1922 2244 

1923Details2245Details

1924 2246 

1925Enable TUI notifications; optionally restrict to specific event types.2247Enable network access for this named permissions profile.

1926 2248 

1927Key2249Key

1928 2250 

1929`tui.show_tooltips`2251`permissions.<name>.network.mode`

1930 2252 

1931Type / Values2253Type / Values

1932 2254 

1933`boolean`2255`limited | full`

1934 2256 

1935Details2257Details

1936 2258 

1937Show onboarding tooltips in the TUI welcome screen (default: true).2259Network proxy mode used for subprocess traffic.

1938 2260 

1939Key2261Key

1940 2262 

1941`tui.status_line`2263`permissions.<name>.network.proxy_url`

1942 2264 

1943Type / Values2265Type / Values

1944 2266 

1945`array<string> | null`2267`string`

1946 2268 

1947Details2269Details

1948 2270 

1949Ordered list of TUI footer status-line item identifiers. `null` disables the status line.2271HTTP proxy endpoint used when this permissions profile enables the managed network proxy.

1950 2272 

1951Key2273Key

1952 2274 

1953`web_search`2275`permissions.<name>.network.socks_url`

1954 2276 

1955Type / Values2277Type / Values

1956 2278 

1957`disabled | cached | live`2279`string`

1958 2280 

1959Details2281Details

1960 2282 

1961Web 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.2283SOCKS5 proxy endpoint used by this permissions profile.

1962 2284 

1963Key2285Key

1964 2286 

1965`windows_wsl_setup_acknowledged`2287`permissions.<name>.network.unix_sockets`

1966 2288 

1967Type / Values2289Type / Values

1968 2290 

1969`boolean`2291`map<string, allow | none>`

1970 2292 

1971Details2293Details

1972 2294 

1973Track Windows onboarding acknowledgement (Windows only).2295Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.

1974 2296 

1975Expand to view all2297Key

1976 2298 

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

1978 2300 

1979To get autocompletion and diagnostics when editing `config.toml` in VS Code or Cursor, you can install the [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) extension and add this line to the top of your `config.toml`:2301Type / Values

1980 2302 

1981```toml2303`none | friendly | pragmatic`

1982#:schema https://developers.openai.com/codex/config-schema.json

1983```

1984 2304 

1985Note: Rename `experimental_instructions_file` to `model_instructions_file`. Codex deprecates the old key; update existing configs to the new name.2305Details

1986 2306 

1987## `requirements.toml`2307Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.

1988 2308 

1989`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/security#admin-enforced-requirements-requirementstoml).2309Key

1990 2310 

1991For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2311`plan_mode_reasoning_effort`

1992requirements. See the security page for precedence details.

1993 2312 

1994| Key | Type / Values | Details |2313Type / Values

1995| --- | --- | --- |2314 

1996| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. |2315`none | minimal | low | medium | high | xhigh`

1997| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2316 

1998| `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`. |2317Details

1999| `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. |2318 

2000| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |2319Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.

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

2002| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |

2003| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |

2004| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |

2005| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |

2006| `rules.prefix_rules[].justification` | `string` | Optional non-empty rationale surfaced in approval prompts or rejection messages. |

2007| `rules.prefix_rules[].pattern` | `array<table>` | Command prefix expressed as pattern tokens. Each token sets either `token` or `any_of`. |

2008| `rules.prefix_rules[].pattern[].any_of` | `array<string>` | A list of allowed alternative tokens at this position. |

2009| `rules.prefix_rules[].pattern[].token` | `string` | A single literal token at this position. |

2010 2320 

2011Key2321Key

2012 2322 

2013`allowed_approval_policies`2323`profile`

2014 2324 

2015Type / Values2325Type / Values

2016 2326 

2017`array<string>`2327`string`

2018 2328 

2019Details2329Details

2020 2330 

2021Allowed values for `approval\_policy`.2331Default profile applied at startup (equivalent to `--profile`).

2022 2332 

2023Key2333Key

2024 2334 

2025`allowed_sandbox_modes`2335`profiles.<name>.*`

2026 2336 

2027Type / Values2337Type / Values

2028 2338 

2029`array<string>`2339`various`

2030 2340 

2031Details2341Details

2032 2342 

2033Allowed values for `sandbox_mode`.2343Profile-scoped overrides for any of the supported configuration keys.

2034 2344 

2035Key2345Key

2036 2346 

2037`allowed_web_search_modes`2347`profiles.<name>.analytics.enabled`

2038 2348 

2039Type / Values2349Type / Values

2040 2350 

2041`array<string>`2351`boolean`

2042 2352 

2043Details2353Details

2044 2354 

2045Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`.2355Profile-scoped analytics enablement override.

2046 2356 

2047Key2357Key

2048 2358 

2049`mcp_servers`2359`profiles.<name>.experimental_use_unified_exec_tool`

2050 2360 

2051Type / Values2361Type / Values

2052 2362 

2053`table`2363`boolean`

2054 2364 

2055Details2365Details

2056 2366 

2057Allowlist 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.2367Legacy name for enabling unified exec; prefer `[features].unified_exec`.

2058 2368 

2059Key2369Key

2060 2370 

2061`mcp_servers.<id>.identity`2371`profiles.<name>.model_catalog_json`

2062 2372 

2063Type / Values2373Type / Values

2064 2374 

2065`table`2375`string (path)`

2066 2376 

2067Details2377Details

2068 2378 

2069Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP).2379Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).

2070 2380 

2071Key2381Key

2072 2382 

2073`mcp_servers.<id>.identity.command`2383`profiles.<name>.model_instructions_file`

2074 2384 

2075Type / Values2385Type / Values

2076 2386 

2077`string`2387`string (path)`

2078 2388 

2079Details2389Details

2080 2390 

2081Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command.2391Profile-scoped replacement for the built-in instruction file.

2082 2392 

2083Key2393Key

2084 2394 

2085`mcp_servers.<id>.identity.url`2395`profiles.<name>.oss_provider`

2086 2396 

2087Type / Values2397Type / Values

2088 2398 

2089`string`2399`lmstudio | ollama`

2090 2400 

2091Details2401Details

2092 2402 

2093Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL.2403Profile-scoped OSS provider for `--oss` sessions.

2404 

2405Key

2406 

2407`profiles.<name>.personality`

2408 

2409Type / Values

2410 

2411`none | friendly | pragmatic`

2412 

2413Details

2414 

2415Profile-scoped communication style override for supported models.

2416 

2417Key

2418 

2419`profiles.<name>.plan_mode_reasoning_effort`

2420 

2421Type / Values

2422 

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

2424 

2425Details

2426 

2427Profile-scoped Plan-mode reasoning override.

2428 

2429Key

2430 

2431`profiles.<name>.service_tier`

2432 

2433Type / Values

2434 

2435`flex | fast`

2436 

2437Details

2438 

2439Profile-scoped service tier preference for new turns.

2440 

2441Key

2442 

2443`profiles.<name>.tools_view_image`

2444 

2445Type / Values

2446 

2447`boolean`

2448 

2449Details

2450 

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

2452 

2453Key

2454 

2455`profiles.<name>.web_search`

2456 

2457Type / Values

2458 

2459`disabled | cached | live`

2460 

2461Details

2462 

2463Profile-scoped web search mode override (default: `"cached"`).

2464 

2465Key

2466 

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

2468 

2469Type / Values

2470 

2471`unelevated | elevated`

2472 

2473Details

2474 

2475Profile-scoped Windows sandbox mode override.

2476 

2477Key

2478 

2479`project_doc_fallback_filenames`

2480 

2481Type / Values

2482 

2483`array<string>`

2484 

2485Details

2486 

2487Additional filenames to try when `AGENTS.md` is missing.

2488 

2489Key

2490 

2491`project_doc_max_bytes`

2492 

2493Type / Values

2494 

2495`number`

2496 

2497Details

2498 

2499Maximum bytes read from `AGENTS.md` when building project instructions.

2500 

2501Key

2502 

2503`project_root_markers`

2504 

2505Type / Values

2506 

2507`array<string>`

2508 

2509Details

2510 

2511List of project root marker filenames; used when searching parent directories for the project root.

2512 

2513Key

2514 

2515`projects.<path>.trust_level`

2516 

2517Type / Values

2518 

2519`string`

2520 

2521Details

2522 

2523Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules.

2524 

2525Key

2526 

2527`review_model`

2528 

2529Type / Values

2530 

2531`string`

2532 

2533Details

2534 

2535Optional model override used by `/review` (defaults to the current session model).

2536 

2537Key

2538 

2539`sandbox_mode`

2540 

2541Type / Values

2542 

2543`read-only | workspace-write | danger-full-access`

2544 

2545Details

2546 

2547Sandbox policy for filesystem and network access during command execution.

2548 

2549Key

2550 

2551`sandbox_workspace_write.exclude_slash_tmp`

2552 

2553Type / Values

2554 

2555`boolean`

2556 

2557Details

2558 

2559Exclude `/tmp` from writable roots in workspace-write mode.

2560 

2561Key

2562 

2563`sandbox_workspace_write.exclude_tmpdir_env_var`

2564 

2565Type / Values

2566 

2567`boolean`

2568 

2569Details

2570 

2571Exclude `$TMPDIR` from writable roots in workspace-write mode.

2572 

2573Key

2574 

2575`sandbox_workspace_write.network_access`

2576 

2577Type / Values

2578 

2579`boolean`

2580 

2581Details

2582 

2583Allow outbound network access inside the workspace-write sandbox.

2584 

2585Key

2586 

2587`sandbox_workspace_write.writable_roots`

2588 

2589Type / Values

2590 

2591`array<string>`

2592 

2593Details

2594 

2595Additional writable roots when `sandbox_mode = "workspace-write"`.

2596 

2597Key

2598 

2599`service_tier`

2600 

2601Type / Values

2602 

2603`flex | fast`

2604 

2605Details

2606 

2607Preferred service tier for new turns.

2608 

2609Key

2610 

2611`shell_environment_policy.exclude`

2612 

2613Type / Values

2614 

2615`array<string>`

2616 

2617Details

2618 

2619Glob patterns for removing environment variables after the defaults.

2620 

2621Key

2622 

2623`shell_environment_policy.experimental_use_profile`

2624 

2625Type / Values

2626 

2627`boolean`

2628 

2629Details

2630 

2631Use the user shell profile when spawning subprocesses.

2632 

2633Key

2634 

2635`shell_environment_policy.ignore_default_excludes`

2636 

2637Type / Values

2638 

2639`boolean`

2640 

2641Details

2642 

2643Keep variables containing KEY/SECRET/TOKEN before other filters run.

2644 

2645Key

2646 

2647`shell_environment_policy.include_only`

2648 

2649Type / Values

2650 

2651`array<string>`

2652 

2653Details

2654 

2655Whitelist of patterns; when set only matching variables are kept.

2656 

2657Key

2658 

2659`shell_environment_policy.inherit`

2660 

2661Type / Values

2662 

2663`all | core | none`

2664 

2665Details

2666 

2667Baseline environment inheritance when spawning subprocesses.

2668 

2669Key

2670 

2671`shell_environment_policy.set`

2672 

2673Type / Values

2674 

2675`map<string,string>`

2676 

2677Details

2678 

2679Explicit environment overrides injected into every subprocess.

2680 

2681Key

2682 

2683`show_raw_agent_reasoning`

2684 

2685Type / Values

2686 

2687`boolean`

2688 

2689Details

2690 

2691Surface raw reasoning content when the active model emits it.

2692 

2693Key

2694 

2695`skills.config`

2696 

2697Type / Values

2698 

2699`array<object>`

2700 

2701Details

2702 

2703Per-skill enablement overrides stored in config.toml.

2704 

2705Key

2706 

2707`skills.config.<index>.enabled`

2708 

2709Type / Values

2710 

2711`boolean`

2712 

2713Details

2714 

2715Enable or disable the referenced skill.

2716 

2717Key

2718 

2719`skills.config.<index>.path`

2720 

2721Type / Values

2722 

2723`string (path)`

2724 

2725Details

2726 

2727Path to a skill folder containing `SKILL.md`.

2728 

2729Key

2730 

2731`sqlite_home`

2732 

2733Type / Values

2734 

2735`string (path)`

2736 

2737Details

2738 

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

2740 

2741Key

2742 

2743`suppress_unstable_features_warning`

2744 

2745Type / Values

2746 

2747`boolean`

2748 

2749Details

2750 

2751Suppress the warning that appears when under-development feature flags are enabled.

2752 

2753Key

2754 

2755`tool_output_token_limit`

2756 

2757Type / Values

2758 

2759`number`

2760 

2761Details

2762 

2763Token budget for storing individual tool/function outputs in history.

2764 

2765Key

2766 

2767`tool_suggest.disabled_tools`

2768 

2769Type / Values

2770 

2771`array<table>`

2772 

2773Details

2774 

2775Disable suggestions for specific discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.

2776 

2777Key

2778 

2779`tool_suggest.discoverables`

2780 

2781Type / Values

2782 

2783`array<table>`

2784 

2785Details

2786 

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

2788 

2789Key

2790 

2791`tools.view_image`

2792 

2793Type / Values

2794 

2795`boolean`

2796 

2797Details

2798 

2799Enable the local-image attachment tool `view_image`.

2800 

2801Key

2802 

2803`tools.web_search`

2804 

2805Type / Values

2806 

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

2808 

2809Details

2810 

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

2812 

2813Key

2814 

2815`tui`

2816 

2817Type / Values

2818 

2819`table`

2820 

2821Details

2822 

2823TUI-specific options such as enabling inline desktop notifications.

2824 

2825Key

2826 

2827`tui.alternate_screen`

2828 

2829Type / Values

2830 

2831`auto | always | never`

2832 

2833Details

2834 

2835Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback).

2836 

2837Key

2838 

2839`tui.animations`

2840 

2841Type / Values

2842 

2843`boolean`

2844 

2845Details

2846 

2847Enable terminal animations (welcome screen, shimmer, spinner) (default: true).

2848 

2849Key

2850 

2851`tui.keymap.<context>.<action>`

2852 

2853Type / Values

2854 

2855`string | array<string>`

2856 

2857Details

2858 

2859Keyboard shortcut binding for a TUI action. Supported contexts include `global`, `chat`, `composer`, `editor`, `pager`, `list`, and `approval`; context-specific bindings override `tui.keymap.global`.

2860 

2861Key

2862 

2863`tui.keymap.<context>.<action> = []`

2864 

2865Type / Values

2866 

2867`empty array`

2868 

2869Details

2870 

2871Unbind the action in that keymap context. Key names use normalized strings such as `ctrl-a`, `shift-enter`, or `page-down`.

2872 

2873Key

2874 

2875`tui.model_availability_nux.<model>`

2876 

2877Type / Values

2878 

2879`integer`

2880 

2881Details

2882 

2883Internal startup-tooltip state keyed by model slug.

2884 

2885Key

2886 

2887`tui.notification_condition`

2888 

2889Type / Values

2890 

2891`unfocused | always`

2892 

2893Details

2894 

2895Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`.

2896 

2897Key

2898 

2899`tui.notification_method`

2900 

2901Type / Values

2902 

2903`auto | osc9 | bel`

2904 

2905Details

2906 

2907Notification method for terminal notifications (default: auto).

2908 

2909Key

2910 

2911`tui.notifications`

2912 

2913Type / Values

2914 

2915`boolean | array<string>`

2916 

2917Details

2918 

2919Enable TUI notifications; optionally restrict to specific event types.

2920 

2921Key

2922 

2923`tui.show_tooltips`

2924 

2925Type / Values

2926 

2927`boolean`

2928 

2929Details

2930 

2931Show onboarding tooltips in the TUI welcome screen (default: true).

2932 

2933Key

2934 

2935`tui.status_line`

2936 

2937Type / Values

2938 

2939`array<string> | null`

2940 

2941Details

2942 

2943Ordered list of TUI footer status-line item identifiers. `null` disables the status line.

2944 

2945Key

2946 

2947`tui.terminal_title`

2948 

2949Type / Values

2950 

2951`array<string> | null`

2952 

2953Details

2954 

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

2956 

2957Key

2958 

2959`tui.theme`

2960 

2961Type / Values

2962 

2963`string`

2964 

2965Details

2966 

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

2968 

2969Key

2970 

2971`web_search`

2972 

2973Type / Values

2974 

2975`disabled | cached | live`

2976 

2977Details

2978 

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

2980 

2981Key

2982 

2983`windows_wsl_setup_acknowledged`

2984 

2985Type / Values

2986 

2987`boolean`

2988 

2989Details

2990 

2991Track Windows onboarding acknowledgement (Windows only).

2992 

2993Key

2994 

2995`windows.sandbox`

2996 

2997Type / Values

2998 

2999`unelevated | elevated`

3000 

3001Details

3002 

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

3004 

3005Key

3006 

3007`windows.sandbox_private_desktop`

3008 

3009Type / Values

3010 

3011`boolean`

3012 

3013Details

3014 

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

3016 

3017Expand to view all

3018 

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

3020 

3021To get autocompletion and diagnostics when editing `config.toml` in VS Code or Cursor, you can install the [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) extension and add this line to the top of your `config.toml`:

3022 

3023```toml

3024#:schema https://developers.openai.com/codex/config-schema.json

3025```

3026 

3027Note: Rename `experimental_instructions_file` to `model_instructions_file`. Codex deprecates the old key; update existing configs to the new name.

3028 

3029## `requirements.toml`

3030 

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

3032 

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

3034requirements. See the security page for precedence details.

3035 

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

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

3038 

3039| Key | Type / Values | Details |

3040| --- | --- | --- |

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

3042| `allowed_approvals_reviewers` | `array<string>` | Allowed values for `approvals_reviewer`, such as `user` and `auto_review`. |

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

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

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

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

3047| `features.browser_use` | `boolean` | Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability. |

3048| `features.computer_use` | `boolean` | Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows. |

3049| `features.in_app_browser` | `boolean` | Set to `false` in `requirements.toml` to disable the in-app browser pane. |

3050| `guardian_policy_config` | `string` | Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored. |

3051| `hooks` | `table` | Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`. |

3052| `hooks.<Event>` | `array<table>` | Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`. |

3053| `hooks.<Event>[].hooks` | `array<table>` | Hook handlers for a matcher group. Command hooks are currently supported; prompt and agent hook handlers are parsed but skipped. |

3054| `hooks.managed_dir` | `string (absolute path)` | Directory containing managed hook scripts on macOS and Linux. Codex validates that it is absolute and exists before loading managed hooks. |

3055| `hooks.windows_managed_dir` | `string (absolute path)` | Directory containing managed hook scripts on Windows. Codex validates that it is absolute and exists before loading managed hooks. |

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

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

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

3059| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |

3060| `permissions.filesystem.deny_read` | `array<string>` | Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config. |

3061| `remote_sandbox_config` | `array<table>` | Host-specific sandbox requirements. The first entry whose `hostname_patterns` match the resolved host name overrides top-level `allowed_sandbox_modes` for that requirements source. Host-specific entries currently override sandbox modes only. |

3062| `remote_sandbox_config[].allowed_sandbox_modes` | `array<string>` | Allowed sandbox modes to apply when this host-specific entry matches. |

3063| `remote_sandbox_config[].hostname_patterns` | `array<string>` | Case-insensitive host name patterns. Supports `*` for any sequence of characters and `?` for one character. |

3064| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |

3065| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |

3066| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |

3067| `rules.prefix_rules[].justification` | `string` | Optional non-empty rationale surfaced in approval prompts or rejection messages. |

3068| `rules.prefix_rules[].pattern` | `array<table>` | Command prefix expressed as pattern tokens. Each token sets either `token` or `any_of`. |

3069| `rules.prefix_rules[].pattern[].any_of` | `array<string>` | A list of allowed alternative tokens at this position. |

3070| `rules.prefix_rules[].pattern[].token` | `string` | A single literal token at this position. |

3071 

3072Key

3073 

3074`allowed_approval_policies`

3075 

3076Type / Values

3077 

3078`array<string>`

3079 

3080Details

3081 

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

3083 

3084Key

3085 

3086`allowed_approvals_reviewers`

3087 

3088Type / Values

3089 

3090`array<string>`

3091 

3092Details

3093 

3094Allowed values for `approvals_reviewer`, such as `user` and `auto_review`.

3095 

3096Key

3097 

3098`allowed_sandbox_modes`

3099 

3100Type / Values

3101 

3102`array<string>`

3103 

3104Details

3105 

3106Allowed values for `sandbox_mode`.

3107 

3108Key

3109 

3110`allowed_web_search_modes`

3111 

3112Type / Values

3113 

3114`array<string>`

3115 

3116Details

3117 

3118Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`.

3119 

3120Key

3121 

3122`features`

3123 

3124Type / Values

3125 

3126`table`

3127 

3128Details

3129 

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

3131 

3132Key

3133 

3134`features.<name>`

3135 

3136Type / Values

3137 

3138`boolean`

3139 

3140Details

3141 

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

3143 

3144Key

3145 

3146`features.browser_use`

3147 

3148Type / Values

3149 

3150`boolean`

3151 

3152Details

3153 

3154Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability.

3155 

3156Key

3157 

3158`features.computer_use`

3159 

3160Type / Values

3161 

3162`boolean`

3163 

3164Details

3165 

3166Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows.

3167 

3168Key

3169 

3170`features.in_app_browser`

3171 

3172Type / Values

3173 

3174`boolean`

3175 

3176Details

3177 

3178Set to `false` in `requirements.toml` to disable the in-app browser pane.

3179 

3180Key

3181 

3182`guardian_policy_config`

3183 

3184Type / Values

3185 

3186`string`

3187 

3188Details

3189 

3190Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored.

3191 

3192Key

3193 

3194`hooks`

3195 

3196Type / Values

3197 

3198`table`

3199 

3200Details

3201 

3202Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`.

3203 

3204Key

3205 

3206`hooks.<Event>`

3207 

3208Type / Values

3209 

3210`array<table>`

3211 

3212Details

3213 

3214Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`.

3215 

3216Key

3217 

3218`hooks.<Event>[].hooks`

3219 

3220Type / Values

3221 

3222`array<table>`

3223 

3224Details

3225 

3226Hook handlers for a matcher group. Command hooks are currently supported; prompt and agent hook handlers are parsed but skipped.

3227 

3228Key

3229 

3230`hooks.managed_dir`

3231 

3232Type / Values

3233 

3234`string (absolute path)`

3235 

3236Details

3237 

3238Directory containing managed hook scripts on macOS and Linux. Codex validates that it is absolute and exists before loading managed hooks.

3239 

3240Key

3241 

3242`hooks.windows_managed_dir`

3243 

3244Type / Values

3245 

3246`string (absolute path)`

3247 

3248Details

3249 

3250Directory containing managed hook scripts on Windows. Codex validates that it is absolute and exists before loading managed hooks.

3251 

3252Key

3253 

3254`mcp_servers`

3255 

3256Type / Values

3257 

3258`table`

3259 

3260Details

3261 

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

3263 

3264Key

3265 

3266`mcp_servers.<id>.identity`

3267 

3268Type / Values

3269 

3270`table`

3271 

3272Details

3273 

3274Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP).

3275 

3276Key

3277 

3278`mcp_servers.<id>.identity.command`

3279 

3280Type / Values

3281 

3282`string`

3283 

3284Details

3285 

3286Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command.

3287 

3288Key

3289 

3290`mcp_servers.<id>.identity.url`

3291 

3292Type / Values

3293 

3294`string`

3295 

3296Details

3297 

3298Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL.

3299 

3300Key

3301 

3302`permissions.filesystem.deny_read`

3303 

3304Type / Values

3305 

3306`array<string>`

3307 

3308Details

3309 

3310Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config.

3311 

3312Key

3313 

3314`remote_sandbox_config`

3315 

3316Type / Values

3317 

3318`array<table>`

3319 

3320Details

3321 

3322Host-specific sandbox requirements. The first entry whose `hostname_patterns` match the resolved host name overrides top-level `allowed_sandbox_modes` for that requirements source. Host-specific entries currently override sandbox modes only.

3323 

3324Key

3325 

3326`remote_sandbox_config[].allowed_sandbox_modes`

3327 

3328Type / Values

3329 

3330`array<string>`

3331 

3332Details

3333 

3334Allowed sandbox modes to apply when this host-specific entry matches.

3335 

3336Key

3337 

3338`remote_sandbox_config[].hostname_patterns`

3339 

3340Type / Values

3341 

3342`array<string>`

3343 

3344Details

3345 

3346Case-insensitive host name patterns. Supports `*` for any sequence of characters and `?` for one character.

2094 3347 

2095Key3348Key

2096 3349