6 6
7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.
8 8
9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/security#network-access).9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/agent-approvals-security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/agent-approvals-security#network-access).
10 10
11| Key | Type / Values | Details |11| Key | Type / Values | Details |
12| --- | --- | --- |12| --- | --- | --- |
13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |
14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |
15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |
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). |
16| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. |18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |
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. |
18| `approval_policy` | `untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
19| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. |21| `approval_policy` | `untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { granular = { ... } }` to allow or auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |
20| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. |22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
21| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. |23| `approval_policy.granular.request_permissions` | `boolean` | When `true`, prompts from the `request_permissions` tool are allowed to surface. |
24| `approval_policy.granular.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface. |
25| `approval_policy.granular.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are allowed to surface. |
26| `approval_policy.granular.skill_approval` | `boolean` | When `true`, skill-script approval prompts are allowed to surface. |
27| `approvals_reviewer` | `user | 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). |
44| `features.apps_mcp_gateway` | `boolean` | Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental). |51| `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config. |
45| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
46| `features.collaboration_modes` | `boolean` | Enable collaboration modes such as plan mode (stable; on by default). |53| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
47| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). |54| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
48| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |55| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
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). |
51| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output (defaults to true). |57| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
52| `features.remote_models` | `boolean` | Refresh remote model list before showing readiness (experimental). |58| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
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). |
58| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (beta). |60| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
59| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |61| `features.undo` | `boolean` | Enable undo support (stable; off by default). |
62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
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. |
70| `include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |73| `hooks` | `table` | Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events. |
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. |
85| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. |88| `mcp_servers.<id>.env_vars` | `array<string | { name = string, source = "local" | "remote" }>` | Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio. |
89| `mcp_servers.<id>.experimental_environment` | `local | remote` | Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented. |
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. |
92| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |98| `memories.consolidation_model` | `string` | Optional model override for global memory consolidation. |
99| `memories.disable_on_external_context` | `boolean` | When `true`, threads that use external context such as MCP tool calls, web search, or tool search are kept out of memory generation. Defaults to `false`. Legacy alias: `memories.no_memories_if_mcp_or_web_search`. |
100| `memories.extract_model` | `string` | Optional model override for per-thread memory extraction. |
101| `memories.generate_memories` | `boolean` | When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`. |
102| `memories.max_raw_memories_for_consolidation` | `number` | Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`. |
103| `memories.max_rollout_age_days` | `number` | Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`. |
104| `memories.max_rollouts_per_startup` | `number` | Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`. |
105| `memories.max_unused_days` | `number` | Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`. |
106| `memories.min_rollout_idle_hours` | `number` | Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`. |
107| `memories.use_memories` | `boolean` | When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`. |
108| `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). |109| `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. |110| `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. |111| `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`. |112| `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`). |113| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |
114| `model_providers.<id>` | `table` | Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden. |
115| `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`. |
116| `model_providers.<id>.auth.args` | `array<string>` | Arguments passed to the token command. |
117| `model_providers.<id>.auth.command` | `string` | Command to run when Codex needs a bearer token. The command must print the token to stdout. |
118| `model_providers.<id>.auth.cwd` | `string (path)` | Working directory for the token command. |
119| `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. |
120| `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. |121| `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. |122| `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. |123| `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). |130| `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). |131| `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). |132| `model_providers.<id>.stream_max_retries` | `number` | Retry count for SSE streaming interruptions (default: 5). |
110| `model_providers.<id>.wire_api` | `chat | responses` | Protocol used by the provider (defaults to `chat` if omitted). |133| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |
134| `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). |135| `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. |136| `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. |137| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |
114| `model_verbosity` | `low | medium | high` | Control GPT-5 Responses API verbosity (defaults to `medium`). |138| `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. |139| `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. |140| `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. |141| `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. |143| `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. |144| `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. |145| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |
146| `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). |147| `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`). |148| `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. |149| `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. |154| `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. |155| `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. |156| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |
157| `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. |158| `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. |159| `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. |160| `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. |162| `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. |163| `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. |164| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
165| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
166| `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"`. |
167| `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. |
168| `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. |
169| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
170| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
171| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
172| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
173| `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. |
174| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
175| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
176| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
177| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
178| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
179| `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |
180| `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`. |181| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
182| `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`). |183| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
141| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |184| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |
142| `profiles.<name>.experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |185| `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`. |186| `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). |187| `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_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. |189| `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. |190| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |
191| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |
192| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |
193| `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"`). |194| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |
195| `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. |196| `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. |197| `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. |198| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |
152| `projects.<path>.trust_level` | `string` | Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers. |199| `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). |200| `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. |201| `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. |202| `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. |203| `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. |204| `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"`. |205| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
206| `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. |207| `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. |208| `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. |209| `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. |214| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |
167| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |215| `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`. |216| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |
217| `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. |218| `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. |219| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |
171| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |220| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
221| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
222| `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. |223| `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). |224| `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). |225| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |
175| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |226| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |
227| `tui.notification_condition` | `unfocused | always` | Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`. |
228| `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. |229| `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). |230| `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. |231| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
232| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |
233| `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. |234| `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). |235| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
236| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
237| `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 238
182Key239Key
183 240
205 262
206Key263Key
207 264
265`agents.<name>.nickname_candidates`
266
267Type / Values
268
269`array<string>`
270
271Details
272
273Optional pool of display nicknames for spawned agents in that role.
274
275Key
276
277`agents.job_max_runtime_seconds`
278
279Type / Values
280
281`number`
282
283Details
284
285Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
286
287Key
288
208`agents.max_depth`289`agents.max_depth`
209 290
210Type / Values291Type / Values
225 306
226Details307Details
227 308
228Maximum number of agent threads that can be open concurrently.309Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
229 310
230Key311Key
231 312
241 322
242Key323Key
243 324
325`analytics.enabled`
326
327Type / Values
328
329`boolean`
330
331Details
332
333Enable or disable analytics for this machine/profile. When unset, the client default applies.
334
335Key
336
244`approval_policy`337`approval_policy`
245 338
246Type / Values339Type / Values
247 340
248`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }`341`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
342
343Details
344
345Controls 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.
346
347Key
348
349`approval_policy.granular.mcp_elicitations`
350
351Type / Values
352
353`boolean`
354
355Details
356
357When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
358
359Key
360
361`approval_policy.granular.request_permissions`
362
363Type / Values
364
365`boolean`
249 366
250Details367Details
251 368
252Controls 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.369When `true`, prompts from the `request_permissions` tool are allowed to surface.
253 370
254Key371Key
255 372
256`approval_policy.reject.mcp_elicitations`373`approval_policy.granular.rules`
257 374
258Type / Values375Type / Values
259 376
261 378
262Details379Details
263 380
264When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.381When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
265 382
266Key383Key
267 384
268`approval_policy.reject.rules`385`approval_policy.granular.sandbox_approval`
269 386
270Type / Values387Type / Values
271 388
273 390
274Details391Details
275 392
276When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.393When `true`, sandbox escalation approval prompts are allowed to surface.
277 394
278Key395Key
279 396
280`approval_policy.reject.sandbox_approval`397`approval_policy.granular.skill_approval`
281 398
282Type / Values399Type / Values
283 400
285 402
286Details403Details
287 404
288When `true`, sandbox escalation approval prompts are auto-rejected.405When `true`, skill-script approval prompts are allowed to surface.
406
407Key
408
409`approvals_reviewer`
410
411Type / Values
412
413`user | auto_review`
414
415Details
416
417Who 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 418
290Key419Key
291 420
409 538
410Key539Key
411 540
541`auto_review.policy`
542
543Type / Values
544
545`string`
546
547Details
548
549Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored.
550
551Key
552
412`background_terminal_max_timeout`553`background_terminal_max_timeout`
413 554
414Type / Values555Type / Values
457 598
458Key599Key
459 600
460`compact_prompt`601`commit_attribution`
461 602
462Type / Values603Type / Values
463 604
465 606
466Details607Details
467 608
468Inline override for the history compaction prompt.609Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
469 610
470Key611Key
471 612
472`developer_instructions`613`compact_prompt`
473 614
474Type / Values615Type / Values
475 616
477 618
478Details619Details
479 620
480Additional developer instructions injected into the session (optional).621Inline override for the history compaction prompt.
481 622
482Key623Key
483 624
484`disable_paste_burst`625`default_permissions`
485 626
486Type / Values627Type / Values
487 628
488`boolean`629`string`
489 630
490Details631Details
491 632
492Disable burst-paste detection in the TUI.633Name of the default permissions profile to apply to sandboxed tool calls.
493 634
494Key635Key
495 636
496`experimental_compact_prompt_file`637`developer_instructions`
497 638
498Type / Values639Type / Values
499 640
500`string (path)`641`string`
501 642
502Details643Details
503 644
504Load the compaction prompt override from a file (experimental).645Additional developer instructions injected into the session (optional).
505 646
506Key647Key
507 648
508`experimental_use_freeform_apply_patch`649`disable_paste_burst`
509 650
510Type / Values651Type / Values
511 652
513 654
514Details655Details
515 656
516Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.657Disable burst-paste detection in the TUI.
517 658
518Key659Key
519 660
520`experimental_use_unified_exec_tool`661`experimental_compact_prompt_file`
521 662
522Type / Values663Type / Values
523 664
524`boolean`665`string (path)`
525 666
526Details667Details
527 668
528Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.669Load the compaction prompt override from a file (experimental).
529 670
530Key671Key
531 672
532`features.apply_patch_freeform`673`experimental_use_unified_exec_tool`
533 674
534Type / Values675Type / Values
535 676
537 678
538Details679Details
539 680
540Expose the freeform `apply_patch` tool (experimental).681Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
541 682
542Key683Key
543 684
553 694
554Key695Key
555 696
556`features.apps_mcp_gateway`697`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 698
570Type / Values699Type / Values
571 700
573 702
574Details703Details
575 704
576Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).705Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config.
577 706
578Key707Key
579 708
580`features.collaboration_modes`709`features.enable_request_compression`
581 710
582Type / Values711Type / Values
583 712
585 714
586Details715Details
587 716
588Enable collaboration modes such as plan mode (stable; on by default).717Compress streaming request bodies with zstd when supported (stable; on by default).
589 718
590Key719Key
591 720
592`features.elevated_windows_sandbox`721`features.fast_mode`
593 722
594Type / Values723Type / Values
595 724
597 726
598Details727Details
599 728
600Enable the elevated Windows sandbox pipeline (experimental).729Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
601 730
602Key731Key
603 732
604`features.experimental_windows_sandbox`733`features.memories`
605 734
606Type / Values735Type / Values
607 736
609 738
610Details739Details
611 740
612Run the Windows restricted-token sandbox (experimental).741Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
613 742
614Key743Key
615 744
621 750
622Details751Details
623 752
624Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).753Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
625 754
626Key755Key
627 756
637 766
638Key767Key
639 768
640`features.powershell_utf8`769`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 770
666Type / Values771Type / Values
667 772
669 774
670Details775Details
671 776
672Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).777Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
673 778
674Key779Key
675 780
676`features.runtime_metrics`781`features.shell_snapshot`
677 782
678Type / Values783Type / Values
679 784
681 786
682Details787Details
683 788
684Show runtime metrics summary in TUI turn separators (experimental).789Snapshot shell environment to speed up repeated commands (stable; on by default).
685 790
686Key791Key
687 792
688`features.search_tool`793`features.shell_tool`
689 794
690Type / Values795Type / Values
691 796
693 798
694Details799Details
695 800
696Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).801Enable the default `shell` tool for running commands (stable; on by default).
697 802
698Key803Key
699 804
700`features.shell_snapshot`805`features.skill_mcp_dependency_install`
701 806
702Type / Values807Type / Values
703 808
705 810
706Details811Details
707 812
708Snapshot shell environment to speed up repeated commands (beta).813Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
709 814
710Key815Key
711 816
712`features.shell_tool`817`features.undo`
713 818
714Type / Values819Type / Values
715 820
717 822
718Details823Details
719 824
720Enable the default `shell` tool for running commands (stable; on by default).825Enable undo support (stable; off by default).
721 826
722Key827Key
723 828
729 834
730Details835Details
731 836
732Use the unified PTY-backed exec tool (beta).837Use 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 838
746Key839Key
747 840
865 958
866Key959Key
867 960
868`include_apply_patch_tool`961`hooks`
869 962
870Type / Values963Type / Values
871 964
872`boolean`965`table`
873 966
874Details967Details
875 968
876Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.969Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events.
877 970
878Key971Key
879 972
1049 1142
1050Type / Values1143Type / Values
1051 1144
1052`array<string>`1145`array<string | { name = string, source = "local" | "remote" }>`
1053 1146
1054Details1147Details
1055 1148
1056Additional environment variables to whitelist for an MCP stdio server.1149Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio.
1150
1151Key
1152
1153`mcp_servers.<id>.experimental_environment`
1154
1155Type / Values
1156
1157`local | remote`
1158
1159Details
1160
1161Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.
1057 1162
1058Key1163Key
1059 1164
1069 1174
1070Key1175Key
1071 1176
1177`mcp_servers.<id>.oauth_resource`
1178
1179Type / Values
1180
1181`string`
1182
1183Details
1184
1185Optional RFC 8707 OAuth resource parameter to include during MCP login.
1186
1187Key
1188
1072`mcp_servers.<id>.required`1189`mcp_servers.<id>.required`
1073 1190
1074Type / Values1191Type / Values
1081 1198
1082Key1199Key
1083 1200
1201`mcp_servers.<id>.scopes`
1202
1203Type / Values
1204
1205`array<string>`
1206
1207Details
1208
1209OAuth scopes to request when authenticating to that MCP server.
1210
1211Key
1212
1084`mcp_servers.<id>.startup_timeout_ms`1213`mcp_servers.<id>.startup_timeout_ms`
1085 1214
1086Type / Values1215Type / Values
1129 1258
1130Key1259Key
1131 1260
1132`model`1261`memories.consolidation_model`
1133 1262
1134Type / Values1263Type / Values
1135 1264
1137 1266
1138Details1267Details
1139 1268
1140Model to use (e.g., `gpt-5-codex`).1269Optional model override for global memory consolidation.
1141 1270
1142Key1271Key
1143 1272
1144`model_auto_compact_token_limit`1273`memories.disable_on_external_context`
1145 1274
1146Type / Values1275Type / Values
1147 1276
1148`number`1277`boolean`
1149 1278
1150Details1279Details
1151 1280
1152Token threshold that triggers automatic history compaction (unset uses model defaults).1281When `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 1282
1154Key1283Key
1155 1284
1156`model_catalog_json`1285`memories.extract_model`
1157 1286
1158Type / Values1287Type / Values
1159 1288
1160`string (path)`1289`string`
1161 1290
1162Details1291Details
1163 1292
1164Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.1293Optional model override for per-thread memory extraction.
1165 1294
1166Key1295Key
1167 1296
1168`model_context_window`1297`memories.generate_memories`
1169 1298
1170Type / Values1299Type / Values
1171 1300
1172`number`1301`boolean`
1173 1302
1174Details1303Details
1175 1304
1176Context window tokens available to the active model.1305When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1177 1306
1178Key1307Key
1179 1308
1180`model_instructions_file`1309`memories.max_raw_memories_for_consolidation`
1181 1310
1182Type / Values1311Type / Values
1183 1312
1184`string (path)`1313`number`
1185 1314
1186Details1315Details
1187 1316
1188Replacement for built-in instructions instead of `AGENTS.md`.1317Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1189 1318
1190Key1319Key
1191 1320
1192`model_provider`1321`memories.max_rollout_age_days`
1193 1322
1194Type / Values1323Type / Values
1195 1324
1196`string`1325`number`
1197 1326
1198Details1327Details
1199 1328
1200Provider id from `model_providers` (default: `openai`).1329Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1201 1330
1202Key1331Key
1203 1332
1204`model_providers.<id>.base_url`1333`memories.max_rollouts_per_startup`
1205 1334
1206Type / Values1335Type / Values
1207 1336
1208`string`1337`number`
1209 1338
1210Details1339Details
1211 1340
1212API base URL for the model provider.1341Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1213 1342
1214Key1343Key
1215 1344
1216`model_providers.<id>.env_http_headers`1345`memories.max_unused_days`
1217 1346
1218Type / Values1347Type / Values
1219 1348
1220`map<string,string>`1349`number`
1221 1350
1222Details1351Details
1223 1352
1224HTTP headers populated from environment variables when present.1353Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1225 1354
1226Key1355Key
1227 1356
1228`model_providers.<id>.env_key`1357`memories.min_rollout_idle_hours`
1229 1358
1230Type / Values1359Type / Values
1231 1360
1232`string`1361`number`
1233 1362
1234Details1363Details
1235 1364
1236Environment variable supplying the provider API key.1365Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1237 1366
1238Key1367Key
1239 1368
1240`model_providers.<id>.env_key_instructions`1369`memories.use_memories`
1241 1370
1242Type / Values1371Type / Values
1243 1372
1244`string`1373`boolean`
1245 1374
1246Details1375Details
1247 1376
1248Optional setup guidance for the provider API key.1377When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1249 1378
1250Key1379Key
1251 1380
1252`model_providers.<id>.experimental_bearer_token`1381`model`
1253 1382
1254Type / Values1383Type / Values
1255 1384
1257 1386
1258Details1387Details
1259 1388
1260Direct bearer token for the provider (discouraged; use `env_key`).1389Model to use (e.g., `gpt-5.5`).
1261 1390
1262Key1391Key
1263 1392
1264`model_providers.<id>.http_headers`1393`model_auto_compact_token_limit`
1265 1394
1266Type / Values1395Type / Values
1267 1396
1268`map<string,string>`1397`number`
1269 1398
1270Details1399Details
1271 1400
1272Static HTTP headers added to provider requests.1401Token threshold that triggers automatic history compaction (unset uses model defaults).
1273 1402
1274Key1403Key
1275 1404
1276`model_providers.<id>.name`1405`model_catalog_json`
1277 1406
1278Type / Values1407Type / Values
1279 1408
1280`string`1409`string (path)`
1281 1410
1282Details1411Details
1283 1412
1284Display name for a custom model provider.1413Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1285 1414
1286Key1415Key
1287 1416
1288`model_providers.<id>.query_params`1417`model_context_window`
1289 1418
1290Type / Values1419Type / Values
1291 1420
1292`map<string,string>`1421`number`
1293 1422
1294Details1423Details
1295 1424
1296Extra query parameters appended to provider requests.1425Context window tokens available to the active model.
1297 1426
1298Key1427Key
1299 1428
1300`model_providers.<id>.request_max_retries`1429`model_instructions_file`
1301 1430
1302Type / Values1431Type / Values
1303 1432
1304`number`1433`string (path)`
1305 1434
1306Details1435Details
1307 1436
1308Retry count for HTTP requests to the provider (default: 4).1437Replacement for built-in instructions instead of `AGENTS.md`.
1309 1438
1310Key1439Key
1311 1440
1312`model_providers.<id>.requires_openai_auth`1441`model_provider`
1313 1442
1314Type / Values1443Type / Values
1315 1444
1316`boolean`1445`string`
1317 1446
1318Details1447Details
1319 1448
1320The provider uses OpenAI authentication (defaults to false).1449Provider id from `model_providers` (default: `openai`).
1321 1450
1322Key1451Key
1323 1452
1324`model_providers.<id>.stream_idle_timeout_ms`1453`model_providers.<id>`
1325 1454
1326Type / Values1455Type / Values
1327 1456
1328`number`1457`table`
1329 1458
1330Details1459Details
1331 1460
1332Idle timeout for SSE streams in milliseconds (default: 300000).1461Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1333 1462
1334Key1463Key
1335 1464
1336`model_providers.<id>.stream_max_retries`1465`model_providers.<id>.auth`
1337 1466
1338Type / Values1467Type / Values
1339 1468
1340`number`1469`table`
1341 1470
1342Details1471Details
1343 1472
1344Retry count for SSE streaming interruptions (default: 5).1473Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1345 1474
1346Key1475Key
1347 1476
1348`model_providers.<id>.wire_api`1477`model_providers.<id>.auth.args`
1349 1478
1350Type / Values1479Type / Values
1351 1480
1352`chat | responses`1481`array<string>`
1353 1482
1354Details1483Details
1355 1484
1356Protocol used by the provider (defaults to `chat` if omitted).1485Arguments passed to the token command.
1357 1486
1358Key1487Key
1359 1488
1360`model_reasoning_effort`1489`model_providers.<id>.auth.command`
1361 1490
1362Type / Values1491Type / Values
1363 1492
1364`minimal | low | medium | high | xhigh`1493`string`
1365 1494
1366Details1495Details
1367 1496
1368Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1497Command to run when Codex needs a bearer token. The command must print the token to stdout.
1369 1498
1370Key1499Key
1371 1500
1372`model_reasoning_summary`1501`model_providers.<id>.auth.cwd`
1373 1502
1374Type / Values1503Type / Values
1375 1504
1376`auto | concise | detailed | none`1505`string (path)`
1377 1506
1378Details1507Details
1379 1508
1380Select reasoning summary detail or disable summaries entirely.1509Working directory for the token command.
1381 1510
1382Key1511Key
1383 1512
1384`model_supports_reasoning_summaries`1513`model_providers.<id>.auth.refresh_interval_ms`
1385 1514
1386Type / Values1515Type / Values
1387 1516
1388`boolean`1517`number`
1389 1518
1390Details1519Details
1391 1520
1392Force Codex to send or not send reasoning metadata.1521How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1393 1522
1394Key1523Key
1395 1524
1396`model_verbosity`1525`model_providers.<id>.auth.timeout_ms`
1397 1526
1398Type / Values1527Type / Values
1399 1528
1400`low | medium | high`1529`number`
1401 1530
1402Details1531Details
1403 1532
1404Control GPT-5 Responses API verbosity (defaults to `medium`).1533Maximum token command runtime in milliseconds (default: 5000).
1405 1534
1406Key1535Key
1407 1536
1408`notice.hide_full_access_warning`1537`model_providers.<id>.base_url`
1409 1538
1410Type / Values1539Type / Values
1411 1540
1412`boolean`1541`string`
1413 1542
1414Details1543Details
1415 1544
1416Track acknowledgement of the full access warning prompt.1545API base URL for the model provider.
1417 1546
1418Key1547Key
1419 1548
1420`notice.hide_gpt-5.1-codex-max_migration_prompt`1549`model_providers.<id>.env_http_headers`
1421 1550
1422Type / Values1551Type / Values
1423 1552
1424`boolean`1553`map<string,string>`
1425 1554
1426Details1555Details
1427 1556
1428Track acknowledgement of the gpt-5.1-codex-max migration prompt.1557HTTP headers populated from environment variables when present.
1429 1558
1430Key1559Key
1431 1560
1432`notice.hide_gpt5_1_migration_prompt`1561`model_providers.<id>.env_key`
1433 1562
1434Type / Values1563Type / Values
1435 1564
1436`boolean`1565`string`
1437 1566
1438Details1567Details
1439 1568
1440Track acknowledgement of the GPT-5.1 migration prompt.1569Environment variable supplying the provider API key.
1441 1570
1442Key1571Key
1443 1572
1444`notice.hide_rate_limit_model_nudge`1573`model_providers.<id>.env_key_instructions`
1445 1574
1446Type / Values1575Type / Values
1447 1576
1448`boolean`1577`string`
1449 1578
1450Details1579Details
1451 1580
1452Track opt-out of the rate limit model switch reminder.1581Optional setup guidance for the provider API key.
1453 1582
1454Key1583Key
1455 1584
1456`notice.hide_world_writable_warning`1585`model_providers.<id>.experimental_bearer_token`
1457 1586
1458Type / Values1587Type / Values
1459 1588
1460`boolean`1589`string`
1461 1590
1462Details1591Details
1463 1592
1464Track acknowledgement of the Windows world-writable directories warning.1593Direct bearer token for the provider (discouraged; use `env_key`).
1465 1594
1466Key1595Key
1467 1596
1468`notice.model_migrations`1597`model_providers.<id>.http_headers`
1469 1598
1470Type / Values1599Type / Values
1471 1600
1473 1602
1474Details1603Details
1475 1604
1476Track acknowledged model migrations as old->new mappings.1605Static HTTP headers added to provider requests.
1477 1606
1478Key1607Key
1479 1608
1480`notify`1609`model_providers.<id>.name`
1481 1610
1482Type / Values1611Type / Values
1483 1612
1484`array<string>`1613`string`
1485 1614
1486Details1615Details
1487 1616
1488Command invoked for notifications; receives a JSON payload from Codex.1617Display name for a custom model provider.
1489 1618
1490Key1619Key
1491 1620
1492`oss_provider`1621`model_providers.<id>.query_params`
1493 1622
1494Type / Values1623Type / Values
1495 1624
1496`lmstudio | ollama`1625`map<string,string>`
1497 1626
1498Details1627Details
1499 1628
1500Default local provider used when running with `--oss` (defaults to prompting if unset).1629Extra query parameters appended to provider requests.
1501 1630
1502Key1631Key
1503 1632
1504`otel.environment`1633`model_providers.<id>.request_max_retries`
1505 1634
1506Type / Values1635Type / Values
1507 1636
1508`string`1637`number`
1509 1638
1510Details1639Details
1511 1640
1512Environment tag applied to emitted OpenTelemetry events (default: `dev`).1641Retry count for HTTP requests to the provider (default: 4).
1513 1642
1514Key1643Key
1515 1644
1516`otel.exporter`1645`model_providers.<id>.requires_openai_auth`
1517 1646
1518Type / Values1647Type / Values
1519 1648
1520`none | otlp-http | otlp-grpc`1649`boolean`
1521 1650
1522Details1651Details
1523 1652
1524Select the OpenTelemetry exporter and provide any endpoint metadata.1653The provider uses OpenAI authentication (defaults to false).
1525 1654
1526Key1655Key
1527 1656
1528`otel.exporter.<id>.endpoint`1657`model_providers.<id>.stream_idle_timeout_ms`
1529 1658
1530Type / Values1659Type / Values
1531 1660
1532`string`1661`number`
1533 1662
1534Details1663Details
1535 1664
1536Exporter endpoint for OTEL logs.1665Idle timeout for SSE streams in milliseconds (default: 300000).
1537 1666
1538Key1667Key
1539 1668
1540`otel.exporter.<id>.headers`1669`model_providers.<id>.stream_max_retries`
1541 1670
1542Type / Values1671Type / Values
1543 1672
1544`map<string,string>`1673`number`
1545 1674
1546Details1675Details
1547 1676
1548Static headers included with OTEL exporter requests.1677Retry count for SSE streaming interruptions (default: 5).
1549 1678
1550Key1679Key
1551 1680
1552`otel.exporter.<id>.protocol`1681`model_providers.<id>.supports_websockets`
1553 1682
1554Type / Values1683Type / Values
1555 1684
1556`binary | json`1685`boolean`
1557 1686
1558Details1687Details
1559 1688
1560Protocol used by the OTLP/HTTP exporter.1689Whether that provider supports the Responses API WebSocket transport.
1561 1690
1562Key1691Key
1563 1692
1564`otel.exporter.<id>.tls.ca-certificate`1693`model_providers.<id>.wire_api`
1565 1694
1566Type / Values1695Type / Values
1567 1696
1568`string`1697`responses`
1569 1698
1570Details1699Details
1571 1700
1572CA certificate path for OTEL exporter TLS.1701Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1573 1702
1574Key1703Key
1575 1704
1576`otel.exporter.<id>.tls.client-certificate`1705`model_reasoning_effort`
1577 1706
1578Type / Values1707Type / Values
1579 1708
1580`string`1709`minimal | low | medium | high | xhigh`
1581 1710
1582Details1711Details
1583 1712
1584Client certificate path for OTEL exporter TLS.1713Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).
1585 1714
1586Key1715Key
1587 1716
1588`otel.exporter.<id>.tls.client-private-key`1717`model_reasoning_summary`
1589 1718
1590Type / Values1719Type / Values
1591 1720
1592`string`1721`auto | concise | detailed | none`
1593 1722
1594Details1723Details
1595 1724
1596Client private key path for OTEL exporter TLS.1725Select reasoning summary detail or disable summaries entirely.
1597 1726
1598Key1727Key
1599 1728
1600`otel.log_user_prompt`1729`model_supports_reasoning_summaries`
1601 1730
1602Type / Values1731Type / Values
1603 1732
1605 1734
1606Details1735Details
1607 1736
1608Opt in to exporting raw user prompts with OpenTelemetry logs.1737Force Codex to send or not send reasoning metadata.
1609 1738
1610Key1739Key
1611 1740
1612`otel.trace_exporter`1741`model_verbosity`
1613 1742
1614Type / Values1743Type / Values
1615 1744
1616`none | otlp-http | otlp-grpc`1745`low | medium | high`
1617 1746
1618Details1747Details
1619 1748
1620Select the OpenTelemetry trace exporter and provide any endpoint metadata.1749Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1621 1750
1622Key1751Key
1623 1752
1624`otel.trace_exporter.<id>.endpoint`1753`notice.hide_full_access_warning`
1625 1754
1626Type / Values1755Type / Values
1627 1756
1628`string`1757`boolean`
1629 1758
1630Details1759Details
1631 1760
1632Trace exporter endpoint for OTEL logs.1761Track acknowledgement of the full access warning prompt.
1633 1762
1634Key1763Key
1635 1764
1636`otel.trace_exporter.<id>.headers`1765`notice.hide_gpt-5.1-codex-max_migration_prompt`
1637 1766
1638Type / Values1767Type / Values
1639 1768
1640`map<string,string>`1769`boolean`
1641 1770
1642Details1771Details
1643 1772
1644Static headers included with OTEL trace exporter requests.1773Track acknowledgement of the gpt-5.1-codex-max migration prompt.
1645 1774
1646Key1775Key
1647 1776
1648`otel.trace_exporter.<id>.protocol`1777`notice.hide_gpt5_1_migration_prompt`
1649 1778
1650Type / Values1779Type / Values
1651 1780
1652`binary | json`1781`boolean`
1653 1782
1654Details1783Details
1655 1784
1656Protocol used by the OTLP/HTTP trace exporter.1785Track acknowledgement of the GPT-5.1 migration prompt.
1657 1786
1658Key1787Key
1659 1788
1660`otel.trace_exporter.<id>.tls.ca-certificate`1789`notice.hide_rate_limit_model_nudge`
1661 1790
1662Type / Values1791Type / Values
1663 1792
1664`string`1793`boolean`
1665 1794
1666Details1795Details
1667 1796
1668CA certificate path for OTEL trace exporter TLS.1797Track opt-out of the rate limit model switch reminder.
1669 1798
1670Key1799Key
1671 1800
1672`otel.trace_exporter.<id>.tls.client-certificate`1801`notice.hide_world_writable_warning`
1673 1802
1674Type / Values1803Type / Values
1675 1804
1676`string`1805`boolean`
1677 1806
1678Details1807Details
1679 1808
1680Client certificate path for OTEL trace exporter TLS.1809Track acknowledgement of the Windows world-writable directories warning.
1681 1810
1682Key1811Key
1683 1812
1684`otel.trace_exporter.<id>.tls.client-private-key`1813`notice.model_migrations`
1685 1814
1686Type / Values1815Type / Values
1687 1816
1688`string`1817`map<string,string>`
1689 1818
1690Details1819Details
1691 1820
1692Client private key path for OTEL trace exporter TLS.1821Track acknowledged model migrations as old->new mappings.
1693 1822
1694Key1823Key
1695 1824
1696`personality`1825`notify`
1697 1826
1698Type / Values1827Type / Values
1699 1828
1700`none | friendly | pragmatic`1829`array<string>`
1701 1830
1702Details1831Details
1703 1832
1704Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.1833Command invoked for notifications; receives a JSON payload from Codex.
1705 1834
1706Key1835Key
1707 1836
1708`profile`1837`openai_base_url`
1709 1838
1710Type / Values1839Type / Values
1711 1840
1713 1842
1714Details1843Details
1715 1844
1716Default profile applied at startup (equivalent to `--profile`).1845Base URL override for the built-in `openai` model provider.
1717 1846
1718Key1847Key
1719 1848
1720`profiles.<name>.*`1849`oss_provider`
1721 1850
1722Type / Values1851Type / Values
1723 1852
1724`various`1853`lmstudio | ollama`
1725 1854
1726Details1855Details
1727 1856
1728Profile-scoped overrides for any of the supported configuration keys.1857Default local provider used when running with `--oss` (defaults to prompting if unset).
1729 1858
1730Key1859Key
1731 1860
1732`profiles.<name>.experimental_use_freeform_apply_patch`1861`otel.environment`
1733 1862
1734Type / Values1863Type / Values
1735 1864
1736`boolean`1865`string`
1737 1866
1738Details1867Details
1739 1868
1740Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1869Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1741 1870
1742Key1871Key
1743 1872
1744`profiles.<name>.experimental_use_unified_exec_tool`1873`otel.exporter`
1745 1874
1746Type / Values1875Type / Values
1747 1876
1748`boolean`1877`none | otlp-http | otlp-grpc`
1749 1878
1750Details1879Details
1751 1880
1752Legacy name for enabling unified exec; prefer `[features].unified_exec`.1881Select the OpenTelemetry exporter and provide any endpoint metadata.
1753 1882
1754Key1883Key
1755 1884
1756`profiles.<name>.include_apply_patch_tool`1885`otel.exporter.<id>.endpoint`
1757 1886
1758Type / Values1887Type / Values
1759 1888
1760`boolean`1889`string`
1761 1890
1762Details1891Details
1763 1892
1764Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1893Exporter endpoint for OTEL logs.
1765 1894
1766Key1895Key
1767 1896
1768`profiles.<name>.model_catalog_json`1897`otel.exporter.<id>.headers`
1769 1898
1770Type / Values1899Type / Values
1771 1900
1772`string (path)`1901`map<string,string>`
1773 1902
1774Details1903Details
1775 1904
1776Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).1905Static headers included with OTEL exporter requests.
1777 1906
1778Key1907Key
1779 1908
1780`profiles.<name>.oss_provider`1909`otel.exporter.<id>.protocol`
1781 1910
1782Type / Values1911Type / Values
1783 1912
1784`lmstudio | ollama`1913`binary | json`
1785 1914
1786Details1915Details
1787 1916
1788Profile-scoped OSS provider for `--oss` sessions.1917Protocol used by the OTLP/HTTP exporter.
1789 1918
1790Key1919Key
1791 1920
1792`profiles.<name>.personality`1921`otel.exporter.<id>.tls.ca-certificate`
1793 1922
1794Type / Values1923Type / Values
1795 1924
1796`none | friendly | pragmatic`1925`string`
1797 1926
1798Details1927Details
1799 1928
1800Profile-scoped communication style override for supported models.1929CA certificate path for OTEL exporter TLS.
1801 1930
1802Key1931Key
1803 1932
1804`profiles.<name>.web_search`1933`otel.exporter.<id>.tls.client-certificate`
1805 1934
1806Type / Values1935Type / Values
1807 1936
1808`disabled | cached | live`1937`string`
1809 1938
1810Details1939Details
1811 1940
1812Profile-scoped web search mode override (default: `"cached"`).1941Client certificate path for OTEL exporter TLS.
1813 1942
1814Key1943Key
1815 1944
1816`project_doc_fallback_filenames`1945`otel.exporter.<id>.tls.client-private-key`
1817 1946
1818Type / Values1947Type / Values
1819 1948
1820`array<string>`1949`string`
1821 1950
1822Details1951Details
1823 1952
1824Additional filenames to try when `AGENTS.md` is missing.1953Client private key path for OTEL exporter TLS.
1825 1954
1826Key1955Key
1827 1956
1828`project_doc_max_bytes`1957`otel.log_user_prompt`
1829 1958
1830Type / Values1959Type / Values
1831 1960
1832`number`1961`boolean`
1833 1962
1834Details1963Details
1835 1964
1836Maximum bytes read from `AGENTS.md` when building project instructions.1965Opt in to exporting raw user prompts with OpenTelemetry logs.
1837 1966
1838Key1967Key
1839 1968
1840`project_root_markers`1969`otel.metrics_exporter`
1841 1970
1842Type / Values1971Type / Values
1843 1972
1844`array<string>`1973`none | statsig | otlp-http | otlp-grpc`
1845 1974
1846Details1975Details
1847 1976
1848List of project root marker filenames; used when searching parent directories for the project root.1977Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1849 1978
1850Key1979Key
1851 1980
1852`projects.<path>.trust_level`1981`otel.trace_exporter`
1853 1982
1854Type / Values1983Type / Values
1855 1984
1856`string`1985`none | otlp-http | otlp-grpc`
1857 1986
1858Details1987Details
1859 1988
1860Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.1989Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1861 1990
1862Key1991Key
1863 1992
1864`review_model`1993`otel.trace_exporter.<id>.endpoint`
1865 1994
1866Type / Values1995Type / Values
1867 1996
1869 1998
1870Details1999Details
1871 2000
1872Optional model override used by `/review` (defaults to the current session model).2001Trace exporter endpoint for OTEL logs.
1873 2002
1874Key2003Key
1875 2004
1876`sandbox_mode`2005`otel.trace_exporter.<id>.headers`
1877 2006
1878Type / Values2007Type / Values
1879 2008
1880`read-only | workspace-write | danger-full-access`2009`map<string,string>`
1881 2010
1882Details2011Details
1883 2012
1884Sandbox policy for filesystem and network access during command execution.2013Static headers included with OTEL trace exporter requests.
1885 2014
1886Key2015Key
1887 2016
1888`sandbox_workspace_write.exclude_slash_tmp`2017`otel.trace_exporter.<id>.protocol`
1889 2018
1890Type / Values2019Type / Values
1891 2020
1892`boolean`2021`binary | json`
1893 2022
1894Details2023Details
1895 2024
1896Exclude `/tmp` from writable roots in workspace-write mode.2025Protocol used by the OTLP/HTTP trace exporter.
1897 2026
1898Key2027Key
1899 2028
1900`sandbox_workspace_write.exclude_tmpdir_env_var`2029`otel.trace_exporter.<id>.tls.ca-certificate`
1901 2030
1902Type / Values2031Type / Values
1903 2032
1904`boolean`2033`string`
1905 2034
1906Details2035Details
1907 2036
1908Exclude `$TMPDIR` from writable roots in workspace-write mode.2037CA certificate path for OTEL trace exporter TLS.
1909 2038
1910Key2039Key
1911 2040
1912`sandbox_workspace_write.network_access`2041`otel.trace_exporter.<id>.tls.client-certificate`
1913 2042
1914Type / Values2043Type / Values
1915 2044
1916`boolean`2045`string`
1917 2046
1918Details2047Details
1919 2048
1920Allow outbound network access inside the workspace-write sandbox.2049Client certificate path for OTEL trace exporter TLS.
1921 2050
1922Key2051Key
1923 2052
1924`sandbox_workspace_write.writable_roots`2053`otel.trace_exporter.<id>.tls.client-private-key`
1925 2054
1926Type / Values2055Type / Values
1927 2056
1928`array<string>`2057`string`
1929 2058
1930Details2059Details
1931 2060
1932Additional writable roots when `sandbox_mode = "workspace-write"`.2061Client private key path for OTEL trace exporter TLS.
1933 2062
1934Key2063Key
1935 2064
1936`shell_environment_policy.exclude`2065`permissions.<name>.filesystem`
1937 2066
1938Type / Values2067Type / Values
1939 2068
1940`array<string>`2069`table`
2070
2071Details
2072
2073Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
2074
2075Key
2076
2077`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`
2078
2079Type / Values
2080
2081`"read" | "write" | "none"`
2082
2083Details
2084
2085Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.
2086
2087Key
2088
2089`permissions.<name>.filesystem.<path-or-glob>`
2090
2091Type / Values
2092
2093`"read" | "write" | "none" | table`
2094
2095Details
2096
2097Grant 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.
2098
2099Key
2100
2101`permissions.<name>.filesystem.glob_scan_max_depth`
2102
2103Type / Values
2104
2105`number`
2106
2107Details
2108
2109Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.
2110
2111Key
2112
2113`permissions.<name>.network.allow_local_binding`
2114
2115Type / Values
2116
2117`boolean`
2118
2119Details
2120
2121Permit local bind/listen operations through the managed proxy.
2122
2123Key
2124
2125`permissions.<name>.network.allow_upstream_proxy`
2126
2127Type / Values
2128
2129`boolean`
2130
2131Details
2132
2133Allow the managed proxy to chain to another upstream proxy.
2134
2135Key
2136
2137`permissions.<name>.network.dangerously_allow_all_unix_sockets`
2138
2139Type / Values
2140
2141`boolean`
2142
2143Details
2144
2145Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
2146
2147Key
2148
2149`permissions.<name>.network.dangerously_allow_non_loopback_proxy`
2150
2151Type / Values
2152
2153`boolean`
2154
2155Details
2156
2157Permit non-loopback bind addresses for the managed proxy listener.
2158
2159Key
2160
2161`permissions.<name>.network.domains`
2162
2163Type / Values
2164
2165`map<string, allow | deny>`
2166
2167Details
2168
2169Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
2170
2171Key
2172
2173`permissions.<name>.network.enable_socks5`
2174
2175Type / Values
2176
2177`boolean`
2178
2179Details
2180
2181Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
2182
2183Key
2184
2185`permissions.<name>.network.enable_socks5_udp`
2186
2187Type / Values
2188
2189`boolean`
2190
2191Details
2192
2193Allow UDP over the SOCKS5 listener when enabled.
2194
2195Key
2196
2197`permissions.<name>.network.enabled`
2198
2199Type / Values
2200
2201`boolean`
2202
2203Details
2204
2205Enable network access for this named permissions profile.
2206
2207Key
2208
2209`permissions.<name>.network.mode`
2210
2211Type / Values
2212
2213`limited | full`
2214
2215Details
2216
2217Network proxy mode used for subprocess traffic.
2218
2219Key
2220
2221`permissions.<name>.network.proxy_url`
2222
2223Type / Values
2224
2225`string`
2226
2227Details
2228
2229HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
2230
2231Key
2232
2233`permissions.<name>.network.socks_url`
2234
2235Type / Values
2236
2237`string`
2238
2239Details
2240
2241SOCKS5 proxy endpoint used by this permissions profile.
2242
2243Key
2244
2245`permissions.<name>.network.unix_sockets`
2246
2247Type / Values
2248
2249`map<string, allow | none>`
2250
2251Details
2252
2253Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
2254
2255Key
2256
2257`personality`
2258
2259Type / Values
2260
2261`none | friendly | pragmatic`
2262
2263Details
2264
2265Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
2266
2267Key
2268
2269`plan_mode_reasoning_effort`
2270
2271Type / Values
2272
2273`none | minimal | low | medium | high | xhigh`
2274
2275Details
2276
2277Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
2278
2279Key
2280
2281`profile`
2282
2283Type / Values
2284
2285`string`
2286
2287Details
2288
2289Default profile applied at startup (equivalent to `--profile`).
2290
2291Key
2292
2293`profiles.<name>.*`
2294
2295Type / Values
2296
2297`various`
2298
2299Details
2300
2301Profile-scoped overrides for any of the supported configuration keys.
2302
2303Key
2304
2305`profiles.<name>.analytics.enabled`
2306
2307Type / Values
2308
2309`boolean`
2310
2311Details
2312
2313Profile-scoped analytics enablement override.
2314
2315Key
2316
2317`profiles.<name>.experimental_use_unified_exec_tool`
2318
2319Type / Values
2320
2321`boolean`
2322
2323Details
2324
2325Legacy name for enabling unified exec; prefer `[features].unified_exec`.
2326
2327Key
2328
2329`profiles.<name>.model_catalog_json`
2330
2331Type / Values
2332
2333`string (path)`
2334
2335Details
2336
2337Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
2338
2339Key
2340
2341`profiles.<name>.model_instructions_file`
2342
2343Type / Values
2344
2345`string (path)`
2346
2347Details
2348
2349Profile-scoped replacement for the built-in instruction file.
2350
2351Key
2352
2353`profiles.<name>.oss_provider`
2354
2355Type / Values
2356
2357`lmstudio | ollama`
2358
2359Details
2360
2361Profile-scoped OSS provider for `--oss` sessions.
2362
2363Key
2364
2365`profiles.<name>.personality`
2366
2367Type / Values
2368
2369`none | friendly | pragmatic`
2370
2371Details
2372
2373Profile-scoped communication style override for supported models.
2374
2375Key
2376
2377`profiles.<name>.plan_mode_reasoning_effort`
2378
2379Type / Values
2380
2381`none | minimal | low | medium | high | xhigh`
2382
2383Details
2384
2385Profile-scoped Plan-mode reasoning override.
2386
2387Key
2388
2389`profiles.<name>.service_tier`
2390
2391Type / Values
2392
2393`flex | fast`
2394
2395Details
2396
2397Profile-scoped service tier preference for new turns.
2398
2399Key
2400
2401`profiles.<name>.tools_view_image`
2402
2403Type / Values
2404
2405`boolean`
2406
2407Details
2408
2409Enable or disable the `view_image` tool in that profile.
2410
2411Key
2412
2413`profiles.<name>.web_search`
2414
2415Type / Values
2416
2417`disabled | cached | live`
2418
2419Details
2420
2421Profile-scoped web search mode override (default: `"cached"`).
2422
2423Key
2424
2425`profiles.<name>.windows.sandbox`
2426
2427Type / Values
2428
2429`unelevated | elevated`
2430
2431Details
2432
2433Profile-scoped Windows sandbox mode override.
2434
2435Key
2436
2437`project_doc_fallback_filenames`
2438
2439Type / Values
2440
2441`array<string>`
2442
2443Details
2444
2445Additional filenames to try when `AGENTS.md` is missing.
2446
2447Key
2448
2449`project_doc_max_bytes`
2450
2451Type / Values
2452
2453`number`
2454
2455Details
2456
2457Maximum bytes read from `AGENTS.md` when building project instructions.
2458
2459Key
2460
2461`project_root_markers`
2462
2463Type / Values
2464
2465`array<string>`
2466
2467Details
2468
2469List of project root marker filenames; used when searching parent directories for the project root.
2470
2471Key
2472
2473`projects.<path>.trust_level`
2474
2475Type / Values
2476
2477`string`
2478
2479Details
2480
2481Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules.
2482
2483Key
2484
2485`review_model`
2486
2487Type / Values
2488
2489`string`
2490
2491Details
2492
2493Optional model override used by `/review` (defaults to the current session model).
2494
2495Key
2496
2497`sandbox_mode`
2498
2499Type / Values
2500
2501`read-only | workspace-write | danger-full-access`
2502
2503Details
2504
2505Sandbox policy for filesystem and network access during command execution.
2506
2507Key
2508
2509`sandbox_workspace_write.exclude_slash_tmp`
2510
2511Type / Values
2512
2513`boolean`
2514
2515Details
2516
2517Exclude `/tmp` from writable roots in workspace-write mode.
2518
2519Key
2520
2521`sandbox_workspace_write.exclude_tmpdir_env_var`
2522
2523Type / Values
2524
2525`boolean`
2526
2527Details
2528
2529Exclude `$TMPDIR` from writable roots in workspace-write mode.
2530
2531Key
2532
2533`sandbox_workspace_write.network_access`
2534
2535Type / Values
2536
2537`boolean`
2538
2539Details
2540
2541Allow outbound network access inside the workspace-write sandbox.
2542
2543Key
2544
2545`sandbox_workspace_write.writable_roots`
2546
2547Type / Values
2548
2549`array<string>`
2550
2551Details
2552
2553Additional writable roots when `sandbox_mode = "workspace-write"`.
2554
2555Key
2556
2557`service_tier`
2558
2559Type / Values
2560
2561`flex | fast`
2562
2563Details
2564
2565Preferred service tier for new turns.
2566
2567Key
2568
2569`shell_environment_policy.exclude`
2570
2571Type / Values
2572
2573`array<string>`
1941 2574
1942Details2575Details
1943 2576
2005 2638
2006Key2639Key
2007 2640
2008`show_raw_agent_reasoning`2641`show_raw_agent_reasoning`
2642
2643Type / Values
2644
2645`boolean`
2646
2647Details
2648
2649Surface raw reasoning content when the active model emits it.
2650
2651Key
2652
2653`skills.config`
2654
2655Type / Values
2656
2657`array<object>`
2658
2659Details
2660
2661Per-skill enablement overrides stored in config.toml.
2662
2663Key
2664
2665`skills.config.<index>.enabled`
2666
2667Type / Values
2668
2669`boolean`
2670
2671Details
2672
2673Enable or disable the referenced skill.
2674
2675Key
2676
2677`skills.config.<index>.path`
2009 2678
2010Type / Values2679Type / Values
2011 2680
2012`boolean`2681`string (path)`
2013 2682
2014Details2683Details
2015 2684
2016Surface raw reasoning content when the active model emits it.2685Path to a skill folder containing `SKILL.md`.
2017 2686
2018Key2687Key
2019 2688
2020`skills.config`2689`sqlite_home`
2021 2690
2022Type / Values2691Type / Values
2023 2692
2024`array<object>`2693`string (path)`
2025 2694
2026Details2695Details
2027 2696
2028Per-skill enablement overrides stored in config.toml.2697Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.
2029 2698
2030Key2699Key
2031 2700
2032`skills.config.<index>.enabled`2701`suppress_unstable_features_warning`
2033 2702
2034Type / Values2703Type / Values
2035 2704
2037 2706
2038Details2707Details
2039 2708
2040Enable or disable the referenced skill.2709Suppress the warning that appears when under-development feature flags are enabled.
2041 2710
2042Key2711Key
2043 2712
2044`skills.config.<index>.path`2713`tool_output_token_limit`
2045 2714
2046Type / Values2715Type / Values
2047 2716
2048`string (path)`2717`number`
2049 2718
2050Details2719Details
2051 2720
2052Path to a skill folder containing `SKILL.md`.2721Token budget for storing individual tool/function outputs in history.
2053 2722
2054Key2723Key
2055 2724
2056`suppress_unstable_features_warning`2725`tool_suggest.discoverables`
2057 2726
2058Type / Values2727Type / Values
2059 2728
2060`boolean`2729`array<table>`
2061 2730
2062Details2731Details
2063 2732
2064Suppress the warning that appears when under-development feature flags are enabled.2733Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2065 2734
2066Key2735Key
2067 2736
2068`tool_output_token_limit`2737`tools.view_image`
2069 2738
2070Type / Values2739Type / Values
2071 2740
2072`number`2741`boolean`
2073 2742
2074Details2743Details
2075 2744
2076Token budget for storing individual tool/function outputs in history.2745Enable the local-image attachment tool `view_image`.
2077 2746
2078Key2747Key
2079 2748
2081 2750
2082Type / Values2751Type / Values
2083 2752
2084`boolean`2753`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2085 2754
2086Details2755Details
2087 2756
2088Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2757Optional 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 2758
2090Key2759Key
2091 2760
2125 2794
2126Key2795Key
2127 2796
2797`tui.model_availability_nux.<model>`
2798
2799Type / Values
2800
2801`integer`
2802
2803Details
2804
2805Internal startup-tooltip state keyed by model slug.
2806
2807Key
2808
2809`tui.notification_condition`
2810
2811Type / Values
2812
2813`unfocused | always`
2814
2815Details
2816
2817Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`.
2818
2819Key
2820
2128`tui.notification_method`2821`tui.notification_method`
2129 2822
2130Type / Values2823Type / Values
2133 2826
2134Details2827Details
2135 2828
2136Notification method for unfocused terminal notifications (default: auto).2829Notification method for terminal notifications (default: auto).
2137 2830
2138Key2831Key
2139 2832
2173 2866
2174Key2867Key
2175 2868
2869`tui.terminal_title`
2870
2871Type / Values
2872
2873`array<string> | null`
2874
2875Details
2876
2877Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.
2878
2879Key
2880
2881`tui.theme`
2882
2883Type / Values
2884
2885`string`
2886
2887Details
2888
2889Syntax-highlighting theme override (kebab-case theme name).
2890
2891Key
2892
2176`web_search`2893`web_search`
2177 2894
2178Type / Values2895Type / Values
2195 2912
2196Track Windows onboarding acknowledgement (Windows only).2913Track Windows onboarding acknowledgement (Windows only).
2197 2914
2915Key
2916
2917`windows.sandbox`
2918
2919Type / Values
2920
2921`unelevated | elevated`
2922
2923Details
2924
2925Windows-only native sandbox mode when running Codex natively on Windows.
2926
2927Key
2928
2929`windows.sandbox_private_desktop`
2930
2931Type / Values
2932
2933`boolean`
2934
2935Details
2936
2937Run 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.
2938
2198Expand to view all2939Expand to view all
2199 2940
2200You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2941You 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-fetched2955For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
2215requirements. See the security page for precedence details.2956requirements. See the security page for precedence details.
2216 2957
2958Use `[features]` in `requirements.toml` to pin feature flags by the same
2959canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
2960
2217| Key | Type / Values | Details |2961| Key | Type / Values | Details |
2218| --- | --- | --- |2962| --- | --- | --- |
2219| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). |2963| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`). |
2964| `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`. |2965| `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`. |2966| `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`. |
2967| `feature_requirements` | `table` | Alias for `features` in `requirements.toml`. Use it to pin feature values by canonical feature key. |
2968| `feature_requirements.browser_use` | `boolean` | Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability. You can also set `features.browser_use`. |
2969| `feature_requirements.computer_use` | `boolean` | Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows. You can also set `features.computer_use`. |
2970| `feature_requirements.in_app_browser` | `boolean` | Set to `false` in `requirements.toml` to disable the in-app browser pane. You can also set `features.in_app_browser`. |
2971| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2972| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |
2973| `guardian_policy_config` | `string` | Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored. |
2974| `hooks` | `table` | Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`. |
2975| `hooks.<Event>` | `array<table>` | Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`. |
2976| `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. |
2977| `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. |
2978| `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. |2979| `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). |2980| `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. |2981| `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. |2982| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |
2983| `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. |
2984| `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. |
2985| `remote_sandbox_config[].allowed_sandbox_modes` | `array<string>` | Allowed sandbox modes to apply when this host-specific entry matches. |
2986| `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. |2987| `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`. |2988| `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). |2989| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |
2241 3002
2242Details3003Details
2243 3004
2244Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).3005Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`).
3006
3007Key
3008
3009`allowed_approvals_reviewers`
3010
3011Type / Values
3012
3013`array<string>`
3014
3015Details
3016
3017Allowed values for `approvals_reviewer`, such as `user` and `auto_review`.
2245 3018
2246Key3019Key
2247 3020
2269 3042
2270Key3043Key
2271 3044
3045`feature_requirements`
3046
3047Type / Values
3048
3049`table`
3050
3051Details
3052
3053Alias for `features` in `requirements.toml`. Use it to pin feature values by canonical feature key.
3054
3055Key
3056
3057`feature_requirements.browser_use`
3058
3059Type / Values
3060
3061`boolean`
3062
3063Details
3064
3065Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability. You can also set `features.browser_use`.
3066
3067Key
3068
3069`feature_requirements.computer_use`
3070
3071Type / Values
3072
3073`boolean`
3074
3075Details
3076
3077Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows. You can also set `features.computer_use`.
3078
3079Key
3080
3081`feature_requirements.in_app_browser`
3082
3083Type / Values
3084
3085`boolean`
3086
3087Details
3088
3089Set to `false` in `requirements.toml` to disable the in-app browser pane. You can also set `features.in_app_browser`.
3090
3091Key
3092
3093`features`
3094
3095Type / Values
3096
3097`table`
3098
3099Details
3100
3101Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.
3102
3103Key
3104
3105`features.<name>`
3106
3107Type / Values
3108
3109`boolean`
3110
3111Details
3112
3113Require a specific canonical feature key to stay enabled or disabled.
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