config-reference.md +1300 −335
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
99For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/security#network-access).For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/agent-approvals-security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/agent-approvals-security#network-access).
10 10
11| Key | Type / Values | Details |11| Key | Type / Values | Details |
12| --- | --- | --- |12| --- | --- | --- |
13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |
14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |
15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |
16| `agents.job_max_runtime_seconds` | `number` | Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker. |
15| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |17| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |
1618| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. || `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |
17| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |
1820| `approval_policy` | `untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. || `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
1921| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. || `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. |
2022| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. || `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
2123| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. || `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. |
22| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |28| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |
23| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |29| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |
24| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |30| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |
29| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |35| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |
30| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |36| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |
31| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |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. |
32| `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. |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. |
33| `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. |
34| `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). |
35| `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. |
36| `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. |
37| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |46| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
38| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |47| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |
39| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |48| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |
40| `experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`. |
41| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |49| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |
42| `features.apply_patch_freeform` | `boolean` | Expose the freeform `apply_patch` tool (experimental). |
43| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |50| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |
4451| `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). || `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config. |
4552| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). || `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
4653| `features.collaboration_modes` | `boolean` | Enable collaboration modes such as plan mode (stable; on by default). || `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
4754| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). || `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
4855| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). || `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
49| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default). |
50| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |56| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
5157| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output (defaults to true). || `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
5258| `features.remote_models` | `boolean` | Refresh remote model list before showing readiness (experimental). || `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
53| `features.request_rule` | `boolean` | Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default). |
54| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |
55| `features.search_tool` | `boolean` | Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental). |
56| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (beta). |
57| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |59| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |
5860| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (beta). || `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
5961| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). || `features.undo` | `boolean` | Enable undo support (stable; off by default). |
62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
60| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |63| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |
61| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |64| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |
62| `features.web_search_request` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`. |65| `features.web_search_request` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`. |
67| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |70| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |
68| `history.max_bytes` | `number` | If set, caps the history file size in bytes by dropping oldest entries. |71| `history.max_bytes` | `number` | If set, caps the history file size in bytes by dropping oldest entries. |
69| `history.persistence` | `save-all | none` | Control whether Codex saves session transcripts to history.jsonl. |72| `history.persistence` | `save-all | none` | Control whether Codex saves session transcripts to history.jsonl. |
7073| `include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. || `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. |
71| `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`. |
72| `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`. |
73| `mcp_oauth_callback_port` | `integer` | Optional fixed port for the local HTTP callback server used during MCP OAuth login. When unset, Codex binds to an ephemeral port chosen by the OS. |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. |
82| `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. |
83| `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. |
84| `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. |
8588| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. || `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. |
86| `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. |
87| `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. |
88| `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. |
89| `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. |
90| `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. |
91| `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. |
9298| `model` | `string` | Model to use (e.g., `gpt-5-codex`). || `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`). |
93| `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). |
94| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |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. |
95| `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. |
96| `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`. |
97| `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). |
98| `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. |
99| `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. |
100| `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. |
107| `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). |
108| `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). |
109| `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). |
110134| `model_providers.<id>.wire_api` | `chat | responses` | Protocol used by the provider (defaults to `chat` if omitted). || `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. |
111| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |136| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |
112| `model_reasoning_summary` | `auto | concise | detailed | none` | Select reasoning summary detail or disable summaries entirely. |137| `model_reasoning_summary` | `auto | concise | detailed | none` | Select reasoning summary detail or disable summaries entirely. |
113| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |138| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |
114139| `model_verbosity` | `low | medium | high` | Control GPT-5 Responses API verbosity (defaults to `medium`). || `model_verbosity` | `low | medium | high` | Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used. |
115| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |140| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |
116| `notice.hide_gpt-5.1-codex-max_migration_prompt` | `boolean` | Track acknowledgement of the gpt-5.1-codex-max migration prompt. |141| `notice.hide_gpt-5.1-codex-max_migration_prompt` | `boolean` | Track acknowledgement of the gpt-5.1-codex-max migration prompt. |
117| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |142| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |
119| `notice.hide_world_writable_warning` | `boolean` | Track acknowledgement of the Windows world-writable directories warning. |144| `notice.hide_world_writable_warning` | `boolean` | Track acknowledgement of the Windows world-writable directories warning. |
120| `notice.model_migrations` | `map<string,string>` | Track acknowledged model migrations as old->new mappings. |145| `notice.model_migrations` | `map<string,string>` | Track acknowledged model migrations as old->new mappings. |
121| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |146| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |
147| `openai_base_url` | `string` | Base URL override for the built-in `openai` model provider. |
122| `oss_provider` | `lmstudio | ollama` | Default local provider used when running with `--oss` (defaults to prompting if unset). |148| `oss_provider` | `lmstudio | ollama` | Default local provider used when running with `--oss` (defaults to prompting if unset). |
123| `otel.environment` | `string` | Environment tag applied to emitted OpenTelemetry events (default: `dev`). |149| `otel.environment` | `string` | Environment tag applied to emitted OpenTelemetry events (default: `dev`). |
124| `otel.exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry exporter and provide any endpoint metadata. |150| `otel.exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry exporter and provide any endpoint metadata. |
129| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |155| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |
130| `otel.exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL exporter TLS. |156| `otel.exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL exporter TLS. |
131| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |157| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |
158| `otel.metrics_exporter` | `none | statsig | otlp-http | otlp-grpc` | Select the OpenTelemetry metrics exporter (defaults to `statsig`). |
132| `otel.trace_exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry trace exporter and provide any endpoint metadata. |159| `otel.trace_exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry trace exporter and provide any endpoint metadata. |
133| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |160| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |
134| `otel.trace_exporter.<id>.headers` | `map<string,string>` | Static headers included with OTEL trace exporter requests. |161| `otel.trace_exporter.<id>.headers` | `map<string,string>` | Static headers included with OTEL trace exporter requests. |
136| `otel.trace_exporter.<id>.tls.ca-certificate` | `string` | CA certificate path for OTEL trace exporter TLS. |163| `otel.trace_exporter.<id>.tls.ca-certificate` | `string` | CA certificate path for OTEL trace exporter TLS. |
137| `otel.trace_exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL trace exporter TLS. |164| `otel.trace_exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL trace exporter TLS. |
138| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |165| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
166| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
167| `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"`. |
168| `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. |
169| `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. |
170| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
171| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
172| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
173| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
174| `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. |
175| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
176| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
177| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
178| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
179| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
180| `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |
181| `permissions.<name>.network.unix_sockets` | `map<string, allow | none>` | Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values. |
139| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |182| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
183| `plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default. |
140| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |184| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
141| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |185| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |
142186| `profiles.<name>.experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. || `profiles.<name>.analytics.enabled` | `boolean` | Profile-scoped analytics enablement override. |
143| `profiles.<name>.experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec`. |187| `profiles.<name>.experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec`. |
144| `profiles.<name>.include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |
145| `profiles.<name>.model_catalog_json` | `string (path)` | Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile). |188| `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). |
189| `profiles.<name>.model_instructions_file` | `string (path)` | Profile-scoped replacement for the built-in instruction file. |
146| `profiles.<name>.oss_provider` | `lmstudio | ollama` | Profile-scoped OSS provider for `--oss` sessions. |190| `profiles.<name>.oss_provider` | `lmstudio | ollama` | Profile-scoped OSS provider for `--oss` sessions. |
147| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |191| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |
192| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |
193| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |
194| `profiles.<name>.tools_view_image` | `boolean` | Enable or disable the `view_image` tool in that profile. |
148| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |195| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |
196| `profiles.<name>.windows.sandbox` | `unelevated | elevated` | Profile-scoped Windows sandbox mode override. |
149| `project_doc_fallback_filenames` | `array<string>` | Additional filenames to try when `AGENTS.md` is missing. |197| `project_doc_fallback_filenames` | `array<string>` | Additional filenames to try when `AGENTS.md` is missing. |
150| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |198| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |
151| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |199| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |
152200| `projects.<path>.trust_level` | `string` | Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers. || `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. |
153| `review_model` | `string` | Optional model override used by `/review` (defaults to the current session model). |201| `review_model` | `string` | Optional model override used by `/review` (defaults to the current session model). |
154| `sandbox_mode` | `read-only | workspace-write | danger-full-access` | Sandbox policy for filesystem and network access during command execution. |202| `sandbox_mode` | `read-only | workspace-write | danger-full-access` | Sandbox policy for filesystem and network access during command execution. |
155| `sandbox_workspace_write.exclude_slash_tmp` | `boolean` | Exclude `/tmp` from writable roots in workspace-write mode. |203| `sandbox_workspace_write.exclude_slash_tmp` | `boolean` | Exclude `/tmp` from writable roots in workspace-write mode. |
156| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |204| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |
157| `sandbox_workspace_write.network_access` | `boolean` | Allow outbound network access inside the workspace-write sandbox. |205| `sandbox_workspace_write.network_access` | `boolean` | Allow outbound network access inside the workspace-write sandbox. |
158| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |206| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
207| `service_tier` | `flex | fast` | Preferred service tier for new turns. |
159| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |208| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |
160| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |209| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |
161| `shell_environment_policy.ignore_default_excludes` | `boolean` | Keep variables containing KEY/SECRET/TOKEN before other filters run. |210| `shell_environment_policy.ignore_default_excludes` | `boolean` | Keep variables containing KEY/SECRET/TOKEN before other filters run. |
166| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |215| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |
167| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |216| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |
168| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |217| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |
218| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |
169| `suppress_unstable_features_warning` | `boolean` | Suppress the warning that appears when under-development feature flags are enabled. |219| `suppress_unstable_features_warning` | `boolean` | Suppress the warning that appears when under-development feature flags are enabled. |
170| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |220| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |
171221| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. || `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
222| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
223| `tools.web_search` | `boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }` | Optional web search tool configuration. The legacy boolean form is still accepted, but the object form lets you set search context size, allowed domains, and approximate user location. |
172| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |224| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |
173| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |225| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |
174| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |226| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |
175227| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). || `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |
228| `tui.notification_condition` | `unfocused | always` | Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`. |
229| `tui.notification_method` | `auto | osc9 | bel` | Notification method for terminal notifications (default: auto). |
176| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |230| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |
177| `tui.show_tooltips` | `boolean` | Show onboarding tooltips in the TUI welcome screen (default: true). |231| `tui.show_tooltips` | `boolean` | Show onboarding tooltips in the TUI welcome screen (default: true). |
178| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |232| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
233| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |
234| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |
179| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |235| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |
180| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |236| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
237| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
238| `windows.sandbox_private_desktop` | `boolean` | Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior. |
181 239
182Key240Key
183 241
205 263
206Key264Key
207 265
266`agents.<name>.nickname_candidates`
267
268Type / Values
269
270`array<string>`
271
272Details
273
274Optional pool of display nicknames for spawned agents in that role.
275
276Key
277
278`agents.job_max_runtime_seconds`
279
280Type / Values
281
282`number`
283
284Details
285
286Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
287
288Key
289
208`agents.max_depth`290`agents.max_depth`
209 291
210Type / Values292Type / Values
225 307
226Details308Details
227 309
228310Maximum number of agent threads that can be open concurrently.Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
229 311
230Key312Key
231 313
241 323
242Key324Key
243 325
326`analytics.enabled`
327
328Type / Values
329
330`boolean`
331
332Details
333
334Enable or disable analytics for this machine/profile. When unset, the client default applies.
335
336Key
337
244`approval_policy`338`approval_policy`
245 339
246Type / Values340Type / Values
247 341
248342`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }``untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
343
344Details
345
346Controls 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.
347
348Key
349
350`approval_policy.granular.mcp_elicitations`
351
352Type / Values
353
354`boolean`
355
356Details
357
358When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
359
360Key
361
362`approval_policy.granular.request_permissions`
363
364Type / Values
365
366`boolean`
249 367
250Details368Details
251 369
252370Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.When `true`, prompts from the `request_permissions` tool are allowed to surface.
253 371
254Key372Key
255 373
256374`approval_policy.reject.mcp_elicitations``approval_policy.granular.rules`
257 375
258Type / Values376Type / Values
259 377
261 379
262Details380Details
263 381
264382When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
265 383
266Key384Key
267 385
268386`approval_policy.reject.rules``approval_policy.granular.sandbox_approval`
269 387
270Type / Values388Type / Values
271 389
273 391
274Details392Details
275 393
276394When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.When `true`, sandbox escalation approval prompts are allowed to surface.
277 395
278Key396Key
279 397
280398`approval_policy.reject.sandbox_approval``approval_policy.granular.skill_approval`
281 399
282Type / Values400Type / Values
283 401
285 403
286Details404Details
287 405
288406When `true`, sandbox escalation approval prompts are auto-rejected.When `true`, skill-script approval prompts are allowed to surface.
407
408Key
409
410`approvals_reviewer`
411
412Type / Values
413
414`user | auto_review`
415
416Details
417
418Who 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.
289 419
290Key420Key
291 421
409 539
410Key540Key
411 541
542`auto_review.policy`
543
544Type / Values
545
546`string`
547
548Details
549
550Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored.
551
552Key
553
412`background_terminal_max_timeout`554`background_terminal_max_timeout`
413 555
414Type / Values556Type / Values
457 599
458Key600Key
459 601
460602`compact_prompt``commit_attribution`
461 603
462Type / Values604Type / Values
463 605
465 607
466Details608Details
467 609
468610Inline override for the history compaction prompt.Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
469 611
470Key612Key
471 613
472614`developer_instructions``compact_prompt`
473 615
474Type / Values616Type / Values
475 617
477 619
478Details620Details
479 621
480622Additional developer instructions injected into the session (optional).Inline override for the history compaction prompt.
481 623
482Key624Key
483 625
484626`disable_paste_burst``default_permissions`
485 627
486Type / Values628Type / Values
487 629
488630`boolean``string`
489 631
490Details632Details
491 633
492634Disable burst-paste detection in the TUI.Name of the default permissions profile to apply to sandboxed tool calls.
493 635
494Key636Key
495 637
496638`experimental_compact_prompt_file``developer_instructions`
497 639
498Type / Values640Type / Values
499 641
500642`string (path)``string`
501 643
502Details644Details
503 645
504646Load the compaction prompt override from a file (experimental).Additional developer instructions injected into the session (optional).
505 647
506Key648Key
507 649
508650`experimental_use_freeform_apply_patch``disable_paste_burst`
509 651
510Type / Values652Type / Values
511 653
513 655
514Details656Details
515 657
516658Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.Disable burst-paste detection in the TUI.
517 659
518Key660Key
519 661
520662`experimental_use_unified_exec_tool``experimental_compact_prompt_file`
521 663
522Type / Values664Type / Values
523 665
524666`boolean``string (path)`
525 667
526Details668Details
527 669
528670Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.Load the compaction prompt override from a file (experimental).
529 671
530Key672Key
531 673
532674`features.apply_patch_freeform``experimental_use_unified_exec_tool`
533 675
534Type / Values676Type / Values
535 677
537 679
538Details680Details
539 681
540682Expose the freeform `apply_patch` tool (experimental).Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
541 683
542Key684Key
543 685
553 695
554Key696Key
555 697
556698`features.apps_mcp_gateway``features.codex_hooks`
557
558Type / Values
559
560`boolean`
561
562Details
563
564Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).
565
566Key
567
568`features.child_agents_md`
569 699
570Type / Values700Type / Values
571 701
573 703
574Details704Details
575 705
576706Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config.
577 707
578Key708Key
579 709
580710`features.collaboration_modes``features.enable_request_compression`
581 711
582Type / Values712Type / Values
583 713
585 715
586Details716Details
587 717
588718Enable collaboration modes such as plan mode (stable; on by default).Compress streaming request bodies with zstd when supported (stable; on by default).
589 719
590Key720Key
591 721
592722`features.elevated_windows_sandbox``features.fast_mode`
593 723
594Type / Values724Type / Values
595 725
597 727
598Details728Details
599 729
600730Enable the elevated Windows sandbox pipeline (experimental).Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
601 731
602Key732Key
603 733
604734`features.experimental_windows_sandbox``features.memories`
605 735
606Type / Values736Type / Values
607 737
609 739
610Details740Details
611 741
612742Run the Windows restricted-token sandbox (experimental).Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
613 743
614Key744Key
615 745
621 751
622Details752Details
623 753
624754Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
625 755
626Key756Key
627 757
637 767
638Key768Key
639 769
640770`features.powershell_utf8``features.prevent_idle_sleep`
641
642Type / Values
643
644`boolean`
645
646Details
647
648Force PowerShell UTF-8 output (defaults to true).
649
650Key
651
652`features.remote_models`
653
654Type / Values
655
656`boolean`
657
658Details
659
660Refresh remote model list before showing readiness (experimental).
661
662Key
663
664`features.request_rule`
665 771
666Type / Values772Type / Values
667 773
669 775
670Details776Details
671 777
672778Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
673 779
674Key780Key
675 781
676782`features.runtime_metrics``features.shell_snapshot`
677 783
678Type / Values784Type / Values
679 785
681 787
682Details788Details
683 789
684790Show runtime metrics summary in TUI turn separators (experimental).Snapshot shell environment to speed up repeated commands (stable; on by default).
685 791
686Key792Key
687 793
688794`features.search_tool``features.shell_tool`
689 795
690Type / Values796Type / Values
691 797
693 799
694Details800Details
695 801
696802Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).Enable the default `shell` tool for running commands (stable; on by default).
697 803
698Key804Key
699 805
700806`features.shell_snapshot``features.skill_mcp_dependency_install`
701 807
702Type / Values808Type / Values
703 809
705 811
706Details812Details
707 813
708814Snapshot shell environment to speed up repeated commands (beta).Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
709 815
710Key816Key
711 817
712818`features.shell_tool``features.undo`
713 819
714Type / Values820Type / Values
715 821
717 823
718Details824Details
719 825
720826Enable the default `shell` tool for running commands (stable; on by default).Enable undo support (stable; off by default).
721 827
722Key828Key
723 829
729 835
730Details836Details
731 837
732838Use the unified PTY-backed exec tool (beta).Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
733
734Key
735
736`features.use_linux_sandbox_bwrap`
737
738Type / Values
739
740`boolean`
741
742Details
743
744Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).
745 839
746Key840Key
747 841
865 959
866Key960Key
867 961
868962`include_apply_patch_tool``hooks`
869 963
870Type / Values964Type / Values
871 965
872966`boolean``table`
873 967
874Details968Details
875 969
876970Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events.
877 971
878Key972Key
879 973
1049 1143
1050Type / Values1144Type / Values
1051 1145
10521146`array<string>``array<string | { name = string, source = "local" | "remote" }>`
1053 1147
1054Details1148Details
1055 1149
10561150Additional environment variables to whitelist for an MCP stdio server.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.
1151
1152Key
1153
1154`mcp_servers.<id>.experimental_environment`
1155
1156Type / Values
1157
1158`local | remote`
1159
1160Details
1161
1162Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.
1057 1163
1058Key1164Key
1059 1165
1069 1175
1070Key1176Key
1071 1177
1178`mcp_servers.<id>.oauth_resource`
1179
1180Type / Values
1181
1182`string`
1183
1184Details
1185
1186Optional RFC 8707 OAuth resource parameter to include during MCP login.
1187
1188Key
1189
1072`mcp_servers.<id>.required`1190`mcp_servers.<id>.required`
1073 1191
1074Type / Values1192Type / Values
1081 1199
1082Key1200Key
1083 1201
1202`mcp_servers.<id>.scopes`
1203
1204Type / Values
1205
1206`array<string>`
1207
1208Details
1209
1210OAuth scopes to request when authenticating to that MCP server.
1211
1212Key
1213
1084`mcp_servers.<id>.startup_timeout_ms`1214`mcp_servers.<id>.startup_timeout_ms`
1085 1215
1086Type / Values1216Type / Values
1129 1259
1130Key1260Key
1131 1261
11321262`model``memories.consolidation_model`
1133 1263
1134Type / Values1264Type / Values
1135 1265
1137 1267
1138Details1268Details
1139 1269
11401270Model to use (e.g., `gpt-5-codex`).Optional model override for global memory consolidation.
1141 1271
1142Key1272Key
1143 1273
11441274`model_auto_compact_token_limit``memories.disable_on_external_context`
1145 1275
1146Type / Values1276Type / Values
1147 1277
11481278`number``boolean`
1149 1279
1150Details1280Details
1151 1281
11521282Token threshold that triggers automatic history compaction (unset uses model defaults).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`.
1153 1283
1154Key1284Key
1155 1285
11561286`model_catalog_json``memories.extract_model`
1157 1287
1158Type / Values1288Type / Values
1159 1289
11601290`string (path)``string`
1161 1291
1162Details1292Details
1163 1293
11641294Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.Optional model override for per-thread memory extraction.
1165 1295
1166Key1296Key
1167 1297
11681298`model_context_window``memories.generate_memories`
1169 1299
1170Type / Values1300Type / Values
1171 1301
11721302`number``boolean`
1173 1303
1174Details1304Details
1175 1305
11761306Context window tokens available to the active model.When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1177 1307
1178Key1308Key
1179 1309
11801310`model_instructions_file``memories.max_raw_memories_for_consolidation`
1181 1311
1182Type / Values1312Type / Values
1183 1313
11841314`string (path)``number`
1185 1315
1186Details1316Details
1187 1317
11881318Replacement for built-in instructions instead of `AGENTS.md`.Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1189 1319
1190Key1320Key
1191 1321
11921322`model_provider``memories.max_rollout_age_days`
1193 1323
1194Type / Values1324Type / Values
1195 1325
11961326`string``number`
1197 1327
1198Details1328Details
1199 1329
12001330Provider id from `model_providers` (default: `openai`).Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1201 1331
1202Key1332Key
1203 1333
12041334`model_providers.<id>.base_url``memories.max_rollouts_per_startup`
1205 1335
1206Type / Values1336Type / Values
1207 1337
12081338`string``number`
1209 1339
1210Details1340Details
1211 1341
12121342API base URL for the model provider.Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1213 1343
1214Key1344Key
1215 1345
12161346`model_providers.<id>.env_http_headers``memories.max_unused_days`
1217 1347
1218Type / Values1348Type / Values
1219 1349
12201350`map<string,string>``number`
1221 1351
1222Details1352Details
1223 1353
12241354HTTP headers populated from environment variables when present.Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1225 1355
1226Key1356Key
1227 1357
12281358`model_providers.<id>.env_key``memories.min_rate_limit_remaining_percent`
1229 1359
1230Type / Values1360Type / Values
1231 1361
12321362`string``number`
1233 1363
1234Details1364Details
1235 1365
12361366Environment variable supplying the provider API key.Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`.
1237 1367
1238Key1368Key
1239 1369
12401370`model_providers.<id>.env_key_instructions``memories.min_rollout_idle_hours`
1241 1371
1242Type / Values1372Type / Values
1243 1373
12441374`string``number`
1245 1375
1246Details1376Details
1247 1377
12481378Optional setup guidance for the provider API key.Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1249 1379
1250Key1380Key
1251 1381
12521382`model_providers.<id>.experimental_bearer_token``memories.use_memories`
1253 1383
1254Type / Values1384Type / Values
1255 1385
12561386`string``boolean`
1257 1387
1258Details1388Details
1259 1389
12601390Direct bearer token for the provider (discouraged; use `env_key`).When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1261 1391
1262Key1392Key
1263 1393
12641394`model_providers.<id>.http_headers``model`
1265 1395
1266Type / Values1396Type / Values
1267 1397
12681398`map<string,string>``string`
1269 1399
1270Details1400Details
1271 1401
12721402Static HTTP headers added to provider requests.Model to use (e.g., `gpt-5.5`).
1273 1403
1274Key1404Key
1275 1405
12761406`model_providers.<id>.name``model_auto_compact_token_limit`
1277 1407
1278Type / Values1408Type / Values
1279 1409
12801410`string``number`
1281 1411
1282Details1412Details
1283 1413
12841414Display name for a custom model provider.Token threshold that triggers automatic history compaction (unset uses model defaults).
1285 1415
1286Key1416Key
1287 1417
12881418`model_providers.<id>.query_params``model_catalog_json`
1289 1419
1290Type / Values1420Type / Values
1291 1421
12921422`map<string,string>``string (path)`
1293 1423
1294Details1424Details
1295 1425
12961426Extra query parameters appended to provider requests.Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1297 1427
1298Key1428Key
1299 1429
13001430`model_providers.<id>.request_max_retries``model_context_window`
1301 1431
1302Type / Values1432Type / Values
1303 1433
1305 1435
1306Details1436Details
1307 1437
13081438Retry count for HTTP requests to the provider (default: 4).Context window tokens available to the active model.
1309 1439
1310Key1440Key
1311 1441
13121442`model_providers.<id>.requires_openai_auth``model_instructions_file`
1313 1443
1314Type / Values1444Type / Values
1315 1445
13161446`boolean``string (path)`
1317 1447
1318Details1448Details
1319 1449
13201450The provider uses OpenAI authentication (defaults to false).Replacement for built-in instructions instead of `AGENTS.md`.
1321 1451
1322Key1452Key
1323 1453
13241454`model_providers.<id>.stream_idle_timeout_ms``model_provider`
1325 1455
1326Type / Values1456Type / Values
1327 1457
13281458`number``string`
1329 1459
1330Details1460Details
1331 1461
13321462Idle timeout for SSE streams in milliseconds (default: 300000).Provider id from `model_providers` (default: `openai`).
1333 1463
1334Key1464Key
1335 1465
13361466`model_providers.<id>.stream_max_retries``model_providers.<id>`
1337 1467
1338Type / Values1468Type / Values
1339 1469
13401470`number``table`
1341 1471
1342Details1472Details
1343 1473
13441474Retry count for SSE streaming interruptions (default: 5).Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1345 1475
1346Key1476Key
1347 1477
13481478`model_providers.<id>.wire_api``model_providers.<id>.auth`
1349 1479
1350Type / Values1480Type / Values
1351 1481
13521482`chat | responses``table`
1353 1483
1354Details1484Details
1355 1485
13561486Protocol used by the provider (defaults to `chat` if omitted).Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1357 1487
1358Key1488Key
1359 1489
13601490`model_reasoning_effort``model_providers.<id>.auth.args`
1361 1491
1362Type / Values1492Type / Values
1363 1493
13641494`minimal | low | medium | high | xhigh``array<string>`
1365 1495
1366Details1496Details
1367 1497
13681498Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).Arguments passed to the token command.
1369 1499
1370Key1500Key
1371 1501
13721502`model_reasoning_summary``model_providers.<id>.auth.command`
1373 1503
1374Type / Values1504Type / Values
1375 1505
13761506`auto | concise | detailed | none``string`
1377 1507
1378Details1508Details
1379 1509
13801510Select reasoning summary detail or disable summaries entirely.Command to run when Codex needs a bearer token. The command must print the token to stdout.
1381 1511
1382Key1512Key
1383 1513
13841514`model_supports_reasoning_summaries``model_providers.<id>.auth.cwd`
1385 1515
1386Type / Values1516Type / Values
1387 1517
13881518`boolean``string (path)`
1389 1519
1390Details1520Details
1391 1521
13921522Force Codex to send or not send reasoning metadata.Working directory for the token command.
1393 1523
1394Key1524Key
1395 1525
13961526`model_verbosity``model_providers.<id>.auth.refresh_interval_ms`
1397 1527
1398Type / Values1528Type / Values
1399 1529
14001530`low | medium | high``number`
1401 1531
1402Details1532Details
1403 1533
14041534Control GPT-5 Responses API verbosity (defaults to `medium`).How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1405 1535
1406Key1536Key
1407 1537
14081538`notice.hide_full_access_warning``model_providers.<id>.auth.timeout_ms`
1409 1539
1410Type / Values1540Type / Values
1411 1541
14121542`boolean``number`
1413 1543
1414Details1544Details
1415 1545
14161546Track acknowledgement of the full access warning prompt.Maximum token command runtime in milliseconds (default: 5000).
1417 1547
1418Key1548Key
1419 1549
14201550`notice.hide_gpt-5.1-codex-max_migration_prompt``model_providers.<id>.base_url`
1421 1551
1422Type / Values1552Type / Values
1423 1553
14241554`boolean``string`
1425 1555
1426Details1556Details
1427 1557
14281558Track acknowledgement of the gpt-5.1-codex-max migration prompt.API base URL for the model provider.
1429 1559
1430Key1560Key
1431 1561
14321562`notice.hide_gpt5_1_migration_prompt``model_providers.<id>.env_http_headers`
1433 1563
1434Type / Values1564Type / Values
1435 1565
14361566`boolean``map<string,string>`
1437 1567
1438Details1568Details
1439 1569
14401570Track acknowledgement of the GPT-5.1 migration prompt.HTTP headers populated from environment variables when present.
1441 1571
1442Key1572Key
1443 1573
14441574`notice.hide_rate_limit_model_nudge``model_providers.<id>.env_key`
1445 1575
1446Type / Values1576Type / Values
1447 1577
14481578`boolean``string`
1449 1579
1450Details1580Details
1451 1581
14521582Track opt-out of the rate limit model switch reminder.Environment variable supplying the provider API key.
1453 1583
1454Key1584Key
1455 1585
14561586`notice.hide_world_writable_warning``model_providers.<id>.env_key_instructions`
1457 1587
1458Type / Values1588Type / Values
1459 1589
14601590`boolean``string`
1461 1591
1462Details1592Details
1463 1593
14641594Track acknowledgement of the Windows world-writable directories warning.Optional setup guidance for the provider API key.
1465 1595
1466Key1596Key
1467 1597
14681598`notice.model_migrations``model_providers.<id>.experimental_bearer_token`
1469 1599
1470Type / Values1600Type / Values
1471 1601
14721602`map<string,string>``string`
1473 1603
1474Details1604Details
1475 1605
14761606Track acknowledged model migrations as old->new mappings.Direct bearer token for the provider (discouraged; use `env_key`).
1477 1607
1478Key1608Key
1479 1609
14801610`notify``model_providers.<id>.http_headers`
1481 1611
1482Type / Values1612Type / Values
1483 1613
14841614`array<string>``map<string,string>`
1485 1615
1486Details1616Details
1487 1617
14881618Command invoked for notifications; receives a JSON payload from Codex.Static HTTP headers added to provider requests.
1489 1619
1490Key1620Key
1491 1621
14921622`oss_provider``model_providers.<id>.name`
1493 1623
1494Type / Values1624Type / Values
1495 1625
14961626`lmstudio | ollama``string`
1497 1627
1498Details1628Details
1499 1629
15001630Default local provider used when running with `--oss` (defaults to prompting if unset).Display name for a custom model provider.
1501 1631
1502Key1632Key
1503 1633
15041634`otel.environment``model_providers.<id>.query_params`
1505 1635
1506Type / Values1636Type / Values
1507 1637
15081638`string``map<string,string>`
1509 1639
1510Details1640Details
1511 1641
15121642Environment tag applied to emitted OpenTelemetry events (default: `dev`).Extra query parameters appended to provider requests.
1513 1643
1514Key1644Key
1515 1645
15161646`otel.exporter``model_providers.<id>.request_max_retries`
1517 1647
1518Type / Values1648Type / Values
1519 1649
15201650`none | otlp-http | otlp-grpc``number`
1521 1651
1522Details1652Details
1523 1653
15241654Select the OpenTelemetry exporter and provide any endpoint metadata.Retry count for HTTP requests to the provider (default: 4).
1525 1655
1526Key1656Key
1527 1657
15281658`otel.exporter.<id>.endpoint``model_providers.<id>.requires_openai_auth`
1529 1659
1530Type / Values1660Type / Values
1531 1661
15321662`string``boolean`
1533 1663
1534Details1664Details
1535 1665
15361666Exporter endpoint for OTEL logs.The provider uses OpenAI authentication (defaults to false).
1537 1667
1538Key1668Key
1539 1669
15401670`otel.exporter.<id>.headers``model_providers.<id>.stream_idle_timeout_ms`
1541 1671
1542Type / Values1672Type / Values
1543 1673
15441674`map<string,string>``number`
1545 1675
1546Details1676Details
1547 1677
15481678Static headers included with OTEL exporter requests.Idle timeout for SSE streams in milliseconds (default: 300000).
1549 1679
1550Key1680Key
1551 1681
15521682`otel.exporter.<id>.protocol``model_providers.<id>.stream_max_retries`
1553 1683
1554Type / Values1684Type / Values
1555 1685
15561686`binary | json``number`
1557 1687
1558Details1688Details
1559 1689
15601690Protocol used by the OTLP/HTTP exporter.Retry count for SSE streaming interruptions (default: 5).
1561 1691
1562Key1692Key
1563 1693
15641694`otel.exporter.<id>.tls.ca-certificate``model_providers.<id>.supports_websockets`
1565 1695
1566Type / Values1696Type / Values
1567 1697
15681698`string``boolean`
1569 1699
1570Details1700Details
1571 1701
15721702CA certificate path for OTEL exporter TLS.Whether that provider supports the Responses API WebSocket transport.
1573 1703
1574Key1704Key
1575 1705
15761706`otel.exporter.<id>.tls.client-certificate``model_providers.<id>.wire_api`
1577 1707
1578Type / Values1708Type / Values
1579 1709
15801710`string``responses`
1581 1711
1582Details1712Details
1583 1713
15841714Client certificate path for OTEL exporter TLS.Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1585 1715
1586Key1716Key
1587 1717
15881718`otel.exporter.<id>.tls.client-private-key``model_reasoning_effort`
1589 1719
1590Type / Values1720Type / Values
1591 1721
15921722`string``minimal | low | medium | high | xhigh`
1593 1723
1594Details1724Details
1595 1725
15961726Client private key path for OTEL exporter TLS.Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).
1597 1727
1598Key1728Key
1599 1729
16001730`otel.log_user_prompt``model_reasoning_summary`
1601 1731
1602Type / Values1732Type / Values
1603 1733
16041734`boolean``auto | concise | detailed | none`
1605 1735
1606Details1736Details
1607 1737
16081738Opt in to exporting raw user prompts with OpenTelemetry logs.Select reasoning summary detail or disable summaries entirely.
1609 1739
1610Key1740Key
1611 1741
16121742`otel.trace_exporter``model_supports_reasoning_summaries`
1613 1743
1614Type / Values1744Type / Values
1615 1745
16161746`none | otlp-http | otlp-grpc``boolean`
1617 1747
1618Details1748Details
1619 1749
16201750Select the OpenTelemetry trace exporter and provide any endpoint metadata.Force Codex to send or not send reasoning metadata.
1621 1751
1622Key1752Key
1623 1753
16241754`otel.trace_exporter.<id>.endpoint``model_verbosity`
1625 1755
1626Type / Values1756Type / Values
1627 1757
16281758`string``low | medium | high`
1629 1759
1630Details1760Details
1631 1761
16321762Trace exporter endpoint for OTEL logs.Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1633 1763
1634Key1764Key
1635 1765
16361766`otel.trace_exporter.<id>.headers``notice.hide_full_access_warning`
1637 1767
1638Type / Values1768Type / Values
1639 1769
16401770`map<string,string>``boolean`
1641 1771
1642Details1772Details
1643 1773
16441774Static headers included with OTEL trace exporter requests.Track acknowledgement of the full access warning prompt.
1645 1775
1646Key1776Key
1647 1777
16481778`otel.trace_exporter.<id>.protocol``notice.hide_gpt-5.1-codex-max_migration_prompt`
1649 1779
1650Type / Values1780Type / Values
1651 1781
16521782`binary | json``boolean`
1653 1783
1654Details1784Details
1655 1785
16561786Protocol used by the OTLP/HTTP trace exporter.Track acknowledgement of the gpt-5.1-codex-max migration prompt.
1657 1787
1658Key1788Key
1659 1789
16601790`otel.trace_exporter.<id>.tls.ca-certificate``notice.hide_gpt5_1_migration_prompt`
1661 1791
1662Type / Values1792Type / Values
1663 1793
16641794`string``boolean`
1665 1795
1666Details1796Details
1667 1797
16681798CA certificate path for OTEL trace exporter TLS.Track acknowledgement of the GPT-5.1 migration prompt.
1669 1799
1670Key1800Key
1671 1801
16721802`otel.trace_exporter.<id>.tls.client-certificate``notice.hide_rate_limit_model_nudge`
1673 1803
1674Type / Values1804Type / Values
1675 1805
16761806`string``boolean`
1677 1807
1678Details1808Details
1679 1809
16801810Client certificate path for OTEL trace exporter TLS.Track opt-out of the rate limit model switch reminder.
1681 1811
1682Key1812Key
1683 1813
16841814`otel.trace_exporter.<id>.tls.client-private-key``notice.hide_world_writable_warning`
1685 1815
1686Type / Values1816Type / Values
1687 1817
16881818`string``boolean`
1689 1819
1690Details1820Details
1691 1821
16921822Client private key path for OTEL trace exporter TLS.Track acknowledgement of the Windows world-writable directories warning.
1693 1823
1694Key1824Key
1695 1825
16961826`personality``notice.model_migrations`
1697 1827
1698Type / Values1828Type / Values
1699 1829
17001830`none | friendly | pragmatic``map<string,string>`
1701 1831
1702Details1832Details
1703 1833
17041834Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.Track acknowledged model migrations as old->new mappings.
1705 1835
1706Key1836Key
1707 1837
17081838`profile``notify`
1709 1839
1710Type / Values1840Type / Values
1711 1841
17121842`string``array<string>`
1713 1843
1714Details1844Details
1715 1845
17161846Default profile applied at startup (equivalent to `--profile`).Command invoked for notifications; receives a JSON payload from Codex.
1717 1847
1718Key1848Key
1719 1849
17201850`profiles.<name>.*``openai_base_url`
1721 1851
1722Type / Values1852Type / Values
1723 1853
17241854`various``string`
1725 1855
1726Details1856Details
1727 1857
17281858Profile-scoped overrides for any of the supported configuration keys.Base URL override for the built-in `openai` model provider.
1729 1859
1730Key1860Key
1731 1861
17321862`profiles.<name>.experimental_use_freeform_apply_patch``oss_provider`
1733 1863
1734Type / Values1864Type / Values
1735 1865
17361866`boolean``lmstudio | ollama`
1737 1867
1738Details1868Details
1739 1869
17401870Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.Default local provider used when running with `--oss` (defaults to prompting if unset).
1741 1871
1742Key1872Key
1743 1873
17441874`profiles.<name>.experimental_use_unified_exec_tool``otel.environment`
1745 1875
1746Type / Values1876Type / Values
1747 1877
17481878`boolean``string`
1749 1879
1750Details1880Details
1751 1881
17521882Legacy name for enabling unified exec; prefer `[features].unified_exec`.Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1753 1883
1754Key1884Key
1755 1885
17561886`profiles.<name>.include_apply_patch_tool``otel.exporter`
1757 1887
1758Type / Values1888Type / Values
1759 1889
17601890`boolean``none | otlp-http | otlp-grpc`
1761 1891
1762Details1892Details
1763 1893
17641894Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.Select the OpenTelemetry exporter and provide any endpoint metadata.
1765 1895
1766Key1896Key
1767 1897
17681898`profiles.<name>.model_catalog_json``otel.exporter.<id>.endpoint`
1769 1899
1770Type / Values1900Type / Values
1771 1901
17721902`string (path)``string`
1773 1903
1774Details1904Details
1775 1905
17761906Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).Exporter endpoint for OTEL logs.
1777 1907
1778Key1908Key
1779 1909
17801910`profiles.<name>.oss_provider``otel.exporter.<id>.headers`
1781 1911
1782Type / Values1912Type / Values
1783 1913
17841914`lmstudio | ollama``map<string,string>`
1785 1915
1786Details1916Details
1787 1917
17881918Profile-scoped OSS provider for `--oss` sessions.Static headers included with OTEL exporter requests.
1789 1919
1790Key1920Key
1791 1921
17921922`profiles.<name>.personality``otel.exporter.<id>.protocol`
1793 1923
1794Type / Values1924Type / Values
1795 1925
17961926`none | friendly | pragmatic``binary | json`
1797 1927
1798Details1928Details
1799 1929
18001930Profile-scoped communication style override for supported models.Protocol used by the OTLP/HTTP exporter.
1801 1931
1802Key1932Key
1803 1933
18041934`profiles.<name>.web_search``otel.exporter.<id>.tls.ca-certificate`
1805 1935
1806Type / Values1936Type / Values
1807 1937
18081938`disabled | cached | live``string`
1809 1939
1810Details1940Details
1811 1941
18121942Profile-scoped web search mode override (default: `"cached"`).CA certificate path for OTEL exporter TLS.
1813 1943
1814Key1944Key
1815 1945
18161946`project_doc_fallback_filenames``otel.exporter.<id>.tls.client-certificate`
1817 1947
1818Type / Values1948Type / Values
1819 1949
18201950`array<string>``string`
1821 1951
1822Details1952Details
1823 1953
18241954Additional filenames to try when `AGENTS.md` is missing.Client certificate path for OTEL exporter TLS.
1825 1955
1826Key1956Key
1827 1957
18281958`project_doc_max_bytes``otel.exporter.<id>.tls.client-private-key`
1829 1959
1830Type / Values1960Type / Values
1831 1961
18321962`number``string`
1833 1963
1834Details1964Details
1835 1965
18361966Maximum bytes read from `AGENTS.md` when building project instructions.Client private key path for OTEL exporter TLS.
1837 1967
1838Key1968Key
1839 1969
18401970`project_root_markers``otel.log_user_prompt`
1841 1971
1842Type / Values1972Type / Values
1843 1973
18441974`array<string>``boolean`
1845 1975
1846Details1976Details
1847 1977
18481978List of project root marker filenames; used when searching parent directories for the project root.Opt in to exporting raw user prompts with OpenTelemetry logs.
1849 1979
1850Key1980Key
1851 1981
18521982`projects.<path>.trust_level``otel.metrics_exporter`
1853 1983
1854Type / Values1984Type / Values
1855 1985
18561986`string``none | statsig | otlp-http | otlp-grpc`
1857 1987
1858Details1988Details
1859 1989
18601990Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1861 1991
1862Key1992Key
1863 1993
18641994`review_model``otel.trace_exporter`
1865 1995
1866Type / Values1996Type / Values
1867 1997
18681998`string``none | otlp-http | otlp-grpc`
1869 1999
1870Details2000Details
1871 2001
18722002Optional model override used by `/review` (defaults to the current session model).Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1873 2003
1874Key2004Key
1875 2005
18762006`sandbox_mode``otel.trace_exporter.<id>.endpoint`
1877 2007
1878Type / Values2008Type / Values
1879 2009
18802010`read-only | workspace-write | danger-full-access``string`
1881 2011
1882Details2012Details
1883 2013
18842014Sandbox policy for filesystem and network access during command execution.Trace exporter endpoint for OTEL logs.
1885 2015
1886Key2016Key
1887 2017
18882018`sandbox_workspace_write.exclude_slash_tmp``otel.trace_exporter.<id>.headers`
1889 2019
1890Type / Values2020Type / Values
1891 2021
18922022`boolean``map<string,string>`
1893 2023
1894Details2024Details
1895 2025
18962026Exclude `/tmp` from writable roots in workspace-write mode.Static headers included with OTEL trace exporter requests.
1897 2027
1898Key2028Key
1899 2029
19002030`sandbox_workspace_write.exclude_tmpdir_env_var``otel.trace_exporter.<id>.protocol`
1901 2031
1902Type / Values2032Type / Values
1903 2033
19042034`boolean``binary | json`
1905 2035
1906Details2036Details
1907 2037
19082038Exclude `$TMPDIR` from writable roots in workspace-write mode.Protocol used by the OTLP/HTTP trace exporter.
1909 2039
1910Key2040Key
1911 2041
19122042`sandbox_workspace_write.network_access``otel.trace_exporter.<id>.tls.ca-certificate`
1913 2043
1914Type / Values2044Type / Values
1915 2045
19162046`boolean``string`
1917 2047
1918Details2048Details
1919 2049
19202050Allow outbound network access inside the workspace-write sandbox.CA certificate path for OTEL trace exporter TLS.
1921 2051
1922Key2052Key
1923 2053
19242054`sandbox_workspace_write.writable_roots``otel.trace_exporter.<id>.tls.client-certificate`
1925 2055
1926Type / Values2056Type / Values
1927 2057
19282058`array<string>``string`
2059
2060Details
2061
2062Client certificate path for OTEL trace exporter TLS.
2063
2064Key
2065
2066`otel.trace_exporter.<id>.tls.client-private-key`
2067
2068Type / Values
2069
2070`string`
2071
2072Details
2073
2074Client private key path for OTEL trace exporter TLS.
2075
2076Key
2077
2078`permissions.<name>.filesystem`
2079
2080Type / Values
2081
2082`table`
2083
2084Details
2085
2086Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
2087
2088Key
2089
2090`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`
2091
2092Type / Values
2093
2094`"read" | "write" | "none"`
2095
2096Details
2097
2098Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.
2099
2100Key
2101
2102`permissions.<name>.filesystem.<path-or-glob>`
2103
2104Type / Values
2105
2106`"read" | "write" | "none" | table`
2107
2108Details
2109
2110Grant 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.
2111
2112Key
2113
2114`permissions.<name>.filesystem.glob_scan_max_depth`
2115
2116Type / Values
2117
2118`number`
2119
2120Details
2121
2122Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.
2123
2124Key
2125
2126`permissions.<name>.network.allow_local_binding`
2127
2128Type / Values
2129
2130`boolean`
2131
2132Details
2133
2134Permit local bind/listen operations through the managed proxy.
2135
2136Key
2137
2138`permissions.<name>.network.allow_upstream_proxy`
2139
2140Type / Values
2141
2142`boolean`
2143
2144Details
2145
2146Allow the managed proxy to chain to another upstream proxy.
2147
2148Key
2149
2150`permissions.<name>.network.dangerously_allow_all_unix_sockets`
2151
2152Type / Values
2153
2154`boolean`
2155
2156Details
2157
2158Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
2159
2160Key
2161
2162`permissions.<name>.network.dangerously_allow_non_loopback_proxy`
2163
2164Type / Values
2165
2166`boolean`
2167
2168Details
2169
2170Permit non-loopback bind addresses for the managed proxy listener.
2171
2172Key
2173
2174`permissions.<name>.network.domains`
2175
2176Type / Values
2177
2178`map<string, allow | deny>`
2179
2180Details
2181
2182Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
2183
2184Key
2185
2186`permissions.<name>.network.enable_socks5`
2187
2188Type / Values
2189
2190`boolean`
2191
2192Details
2193
2194Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
2195
2196Key
2197
2198`permissions.<name>.network.enable_socks5_udp`
2199
2200Type / Values
2201
2202`boolean`
2203
2204Details
2205
2206Allow UDP over the SOCKS5 listener when enabled.
2207
2208Key
2209
2210`permissions.<name>.network.enabled`
2211
2212Type / Values
2213
2214`boolean`
2215
2216Details
2217
2218Enable network access for this named permissions profile.
2219
2220Key
2221
2222`permissions.<name>.network.mode`
2223
2224Type / Values
2225
2226`limited | full`
2227
2228Details
2229
2230Network proxy mode used for subprocess traffic.
2231
2232Key
2233
2234`permissions.<name>.network.proxy_url`
2235
2236Type / Values
2237
2238`string`
2239
2240Details
2241
2242HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
2243
2244Key
2245
2246`permissions.<name>.network.socks_url`
2247
2248Type / Values
2249
2250`string`
2251
2252Details
2253
2254SOCKS5 proxy endpoint used by this permissions profile.
2255
2256Key
2257
2258`permissions.<name>.network.unix_sockets`
2259
2260Type / Values
2261
2262`map<string, allow | none>`
2263
2264Details
2265
2266Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
2267
2268Key
2269
2270`personality`
2271
2272Type / Values
2273
2274`none | friendly | pragmatic`
2275
2276Details
2277
2278Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
2279
2280Key
2281
2282`plan_mode_reasoning_effort`
2283
2284Type / Values
2285
2286`none | minimal | low | medium | high | xhigh`
2287
2288Details
2289
2290Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
2291
2292Key
2293
2294`profile`
2295
2296Type / Values
2297
2298`string`
2299
2300Details
2301
2302Default profile applied at startup (equivalent to `--profile`).
2303
2304Key
2305
2306`profiles.<name>.*`
2307
2308Type / Values
2309
2310`various`
2311
2312Details
2313
2314Profile-scoped overrides for any of the supported configuration keys.
2315
2316Key
2317
2318`profiles.<name>.analytics.enabled`
2319
2320Type / Values
2321
2322`boolean`
2323
2324Details
2325
2326Profile-scoped analytics enablement override.
2327
2328Key
2329
2330`profiles.<name>.experimental_use_unified_exec_tool`
2331
2332Type / Values
2333
2334`boolean`
2335
2336Details
2337
2338Legacy name for enabling unified exec; prefer `[features].unified_exec`.
2339
2340Key
2341
2342`profiles.<name>.model_catalog_json`
2343
2344Type / Values
2345
2346`string (path)`
2347
2348Details
2349
2350Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
2351
2352Key
2353
2354`profiles.<name>.model_instructions_file`
2355
2356Type / Values
2357
2358`string (path)`
2359
2360Details
2361
2362Profile-scoped replacement for the built-in instruction file.
2363
2364Key
2365
2366`profiles.<name>.oss_provider`
2367
2368Type / Values
2369
2370`lmstudio | ollama`
2371
2372Details
2373
2374Profile-scoped OSS provider for `--oss` sessions.
2375
2376Key
2377
2378`profiles.<name>.personality`
2379
2380Type / Values
2381
2382`none | friendly | pragmatic`
2383
2384Details
2385
2386Profile-scoped communication style override for supported models.
2387
2388Key
2389
2390`profiles.<name>.plan_mode_reasoning_effort`
2391
2392Type / Values
2393
2394`none | minimal | low | medium | high | xhigh`
2395
2396Details
2397
2398Profile-scoped Plan-mode reasoning override.
2399
2400Key
2401
2402`profiles.<name>.service_tier`
2403
2404Type / Values
2405
2406`flex | fast`
2407
2408Details
2409
2410Profile-scoped service tier preference for new turns.
2411
2412Key
2413
2414`profiles.<name>.tools_view_image`
2415
2416Type / Values
2417
2418`boolean`
2419
2420Details
2421
2422Enable or disable the `view_image` tool in that profile.
2423
2424Key
2425
2426`profiles.<name>.web_search`
2427
2428Type / Values
2429
2430`disabled | cached | live`
2431
2432Details
2433
2434Profile-scoped web search mode override (default: `"cached"`).
2435
2436Key
2437
2438`profiles.<name>.windows.sandbox`
2439
2440Type / Values
2441
2442`unelevated | elevated`
2443
2444Details
2445
2446Profile-scoped Windows sandbox mode override.
2447
2448Key
2449
2450`project_doc_fallback_filenames`
2451
2452Type / Values
2453
2454`array<string>`
2455
2456Details
2457
2458Additional filenames to try when `AGENTS.md` is missing.
2459
2460Key
2461
2462`project_doc_max_bytes`
2463
2464Type / Values
2465
2466`number`
2467
2468Details
2469
2470Maximum bytes read from `AGENTS.md` when building project instructions.
2471
2472Key
2473
2474`project_root_markers`
2475
2476Type / Values
2477
2478`array<string>`
2479
2480Details
2481
2482List of project root marker filenames; used when searching parent directories for the project root.
2483
2484Key
2485
2486`projects.<path>.trust_level`
2487
2488Type / Values
2489
2490`string`
2491
2492Details
2493
2494Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules.
2495
2496Key
2497
2498`review_model`
2499
2500Type / Values
2501
2502`string`
2503
2504Details
2505
2506Optional model override used by `/review` (defaults to the current session model).
2507
2508Key
2509
2510`sandbox_mode`
2511
2512Type / Values
2513
2514`read-only | workspace-write | danger-full-access`
2515
2516Details
2517
2518Sandbox policy for filesystem and network access during command execution.
2519
2520Key
2521
2522`sandbox_workspace_write.exclude_slash_tmp`
2523
2524Type / Values
2525
2526`boolean`
2527
2528Details
2529
2530Exclude `/tmp` from writable roots in workspace-write mode.
2531
2532Key
2533
2534`sandbox_workspace_write.exclude_tmpdir_env_var`
2535
2536Type / Values
2537
2538`boolean`
2539
2540Details
2541
2542Exclude `$TMPDIR` from writable roots in workspace-write mode.
2543
2544Key
2545
2546`sandbox_workspace_write.network_access`
2547
2548Type / Values
2549
2550`boolean`
2551
2552Details
2553
2554Allow outbound network access inside the workspace-write sandbox.
2555
2556Key
2557
2558`sandbox_workspace_write.writable_roots`
2559
2560Type / Values
2561
2562`array<string>`
2563
2564Details
2565
2566Additional writable roots when `sandbox_mode = "workspace-write"`.
2567
2568Key
2569
2570`service_tier`
2571
2572Type / Values
2573
2574`flex | fast`
1929 2575
1930Details2576Details
1931 2577
19322578Additional writable roots when `sandbox_mode = "workspace-write"`.Preferred service tier for new turns.
1933 2579
1934Key2580Key
1935 2581
2053 2699
2054Key2700Key
2055 2701
2702`sqlite_home`
2703
2704Type / Values
2705
2706`string (path)`
2707
2708Details
2709
2710Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.
2711
2712Key
2713
2056`suppress_unstable_features_warning`2714`suppress_unstable_features_warning`
2057 2715
2058Type / Values2716Type / Values
2077 2735
2078Key2736Key
2079 2737
20802738`tools.web_search``tool_suggest.discoverables`
2739
2740Type / Values
2741
2742`array<table>`
2743
2744Details
2745
2746Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2747
2748Key
2749
2750`tools.view_image`
2081 2751
2082Type / Values2752Type / Values
2083 2753
2085 2755
2086Details2756Details
2087 2757
20882758Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.Enable the local-image attachment tool `view_image`.
2759
2760Key
2761
2762`tools.web_search`
2763
2764Type / Values
2765
2766`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2767
2768Details
2769
2770Optional web search tool configuration. The legacy boolean form is still accepted, but the object form lets you set search context size, allowed domains, and approximate user location.
2089 2771
2090Key2772Key
2091 2773
2125 2807
2126Key2808Key
2127 2809
2810`tui.model_availability_nux.<model>`
2811
2812Type / Values
2813
2814`integer`
2815
2816Details
2817
2818Internal startup-tooltip state keyed by model slug.
2819
2820Key
2821
2822`tui.notification_condition`
2823
2824Type / Values
2825
2826`unfocused | always`
2827
2828Details
2829
2830Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`.
2831
2832Key
2833
2128`tui.notification_method`2834`tui.notification_method`
2129 2835
2130Type / Values2836Type / Values
2133 2839
2134Details2840Details
2135 2841
21362842Notification method for unfocused terminal notifications (default: auto).Notification method for terminal notifications (default: auto).
2137 2843
2138Key2844Key
2139 2845
2173 2879
2174Key2880Key
2175 2881
2882`tui.terminal_title`
2883
2884Type / Values
2885
2886`array<string> | null`
2887
2888Details
2889
2890Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.
2891
2892Key
2893
2894`tui.theme`
2895
2896Type / Values
2897
2898`string`
2899
2900Details
2901
2902Syntax-highlighting theme override (kebab-case theme name).
2903
2904Key
2905
2176`web_search`2906`web_search`
2177 2907
2178Type / Values2908Type / Values
2195 2925
2196Track Windows onboarding acknowledgement (Windows only).2926Track Windows onboarding acknowledgement (Windows only).
2197 2927
2928Key
2929
2930`windows.sandbox`
2931
2932Type / Values
2933
2934`unelevated | elevated`
2935
2936Details
2937
2938Windows-only native sandbox mode when running Codex natively on Windows.
2939
2940Key
2941
2942`windows.sandbox_private_desktop`
2943
2944Type / Values
2945
2946`boolean`
2947
2948Details
2949
2950Run 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.
2951
2198Expand to view all2952Expand to view all
2199 2953
2200You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2954You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).
2214For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2968For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
2215requirements. See the security page for precedence details.2969requirements. See the security page for precedence details.
2216 2970
2971Use `[features]` in `requirements.toml` to pin feature flags by the same
2972canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
2973
2217| Key | Type / Values | Details |2974| Key | Type / Values | Details |
2218| --- | --- | --- |2975| --- | --- | --- |
22192976| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). || `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`). |
2977| `allowed_approvals_reviewers` | `array<string>` | Allowed values for `approvals_reviewer`, such as `user` and `auto_review`. |
2220| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2978| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
2221| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |2979| `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`. |
2980| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2981| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |
2982| `features.browser_use` | `boolean` | Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability. |
2983| `features.computer_use` | `boolean` | Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows. |
2984| `features.in_app_browser` | `boolean` | Set to `false` in `requirements.toml` to disable the in-app browser pane. |
2985| `guardian_policy_config` | `string` | Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored. |
2986| `hooks` | `table` | Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`. |
2987| `hooks.<Event>` | `array<table>` | Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`. |
2988| `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. |
2989| `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. |
2990| `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. |
2222| `mcp_servers` | `table` | Allowlist of MCP servers that may be enabled. Both the server name (`<id>`) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled. |2991| `mcp_servers` | `table` | Allowlist of MCP servers that may be enabled. Both the server name (`<id>`) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled. |
2223| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |2992| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |
2224| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |2993| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |
2225| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |2994| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |
2995| `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. |
2996| `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. |
2997| `remote_sandbox_config[].allowed_sandbox_modes` | `array<string>` | Allowed sandbox modes to apply when this host-specific entry matches. |
2998| `remote_sandbox_config[].hostname_patterns` | `array<string>` | Case-insensitive host name patterns. Supports `*` for any sequence of characters and `?` for one character. |
2226| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |2999| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |
2227| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |3000| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |
2228| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |3001| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |
2241 3014
2242Details3015Details
2243 3016
22443017Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`).
3018
3019Key
3020
3021`allowed_approvals_reviewers`
3022
3023Type / Values
3024
3025`array<string>`
3026
3027Details
3028
3029Allowed values for `approvals_reviewer`, such as `user` and `auto_review`.
2245 3030
2246Key3031Key
2247 3032
2269 3054
2270Key3055Key
2271 3056
3057`features`
3058
3059Type / Values
3060
3061`table`
3062
3063Details
3064
3065Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.
3066
3067Key
3068
3069`features.<name>`
3070
3071Type / Values
3072
3073`boolean`
3074
3075Details
3076
3077Require a specific canonical feature key to stay enabled or disabled.
3078
3079Key
3080
3081`features.browser_use`
3082
3083Type / Values
3084
3085`boolean`
3086
3087Details
3088
3089Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability.
3090
3091Key
3092
3093`features.computer_use`
3094
3095Type / Values
3096
3097`boolean`
3098
3099Details
3100
3101Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows.
3102
3103Key
3104
3105`features.in_app_browser`
3106
3107Type / Values
3108
3109`boolean`
3110
3111Details
3112
3113Set to `false` in `requirements.toml` to disable the in-app browser pane.
3114
3115Key
3116
3117`guardian_policy_config`
3118
3119Type / Values
3120
3121`string`
3122
3123Details
3124
3125Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored.
3126
3127Key
3128
3129`hooks`
3130
3131Type / Values
3132
3133`table`
3134
3135Details
3136
3137Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`.
3138
3139Key
3140
3141`hooks.<Event>`
3142
3143Type / Values
3144
3145`array<table>`
3146
3147Details
3148
3149Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`.
3150
3151Key
3152
3153`hooks.<Event>[].hooks`
3154
3155Type / Values
3156
3157`array<table>`
3158
3159Details
3160
3161Hook handlers for a matcher group. Command hooks are currently supported; prompt and agent hook handlers are parsed but skipped.
3162
3163Key
3164
3165`hooks.managed_dir`
3166
3167Type / Values
3168
3169`string (absolute path)`
3170
3171Details
3172
3173Directory containing managed hook scripts on macOS and Linux. Codex validates that it is absolute and exists before loading managed hooks.
3174
3175Key
3176
3177`hooks.windows_managed_dir`
3178
3179Type / Values
3180
3181`string (absolute path)`
3182
3183Details
3184
3185Directory containing managed hook scripts on Windows. Codex validates that it is absolute and exists before loading managed hooks.
3186
3187Key
3188
2272`mcp_servers`3189`mcp_servers`
2273 3190
2274Type / Values3191Type / Values
2317 3234
2318Key3235Key
2319 3236
3237`permissions.filesystem.deny_read`
3238
3239Type / Values
3240
3241`array<string>`
3242
3243Details
3244
3245Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config.
3246
3247Key
3248
3249`remote_sandbox_config`
3250
3251Type / Values
3252
3253`array<table>`
3254
3255Details
3256
3257Host-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.
3258
3259Key
3260
3261`remote_sandbox_config[].allowed_sandbox_modes`
3262
3263Type / Values
3264
3265`array<string>`
3266
3267Details
3268
3269Allowed sandbox modes to apply when this host-specific entry matches.
3270
3271Key
3272
3273`remote_sandbox_config[].hostname_patterns`
3274
3275Type / Values
3276
3277`array<string>`
3278
3279Details
3280
3281Case-insensitive host name patterns. Supports `*` for any sequence of characters and `?` for one character.
3282
3283Key
3284
2320`rules`3285`rules`
2321 3286
2322Type / Values3287Type / Values