config-reference.md +397 −280
15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |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. |16| `agents.job_max_runtime_seconds` | `number` | Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker. |
17| `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). |
1818| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. || `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |
19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |
20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
2121| `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. || `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. |
2222| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. || `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
2323| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. || `approval_policy.granular.request_permissions` | `boolean` | When `true`, prompts from the `request_permissions` tool are allowed to surface. |
2424| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. || `approval_policy.granular.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface. |
25| `approval_policy.granular.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are allowed to surface. |
26| `approval_policy.granular.skill_approval` | `boolean` | When `true`, skill-script approval prompts are allowed to surface. |
27| `approvals_reviewer` | `user | guardian_subagent` | Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent. |
25| `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`. |
26| `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. |
27| `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`. |
38| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |41| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |
39| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |42| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |
40| `compact_prompt` | `string` | Inline override for the history compaction prompt. |43| `compact_prompt` | `string` | Inline override for the history compaction prompt. |
44| `default_permissions` | `string` | Name of the default permissions profile to apply to sandboxed tool calls. |
41| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |45| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
42| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |46| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |
43| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |47| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |
44| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |48| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |
45| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |49| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |
4650| `features.apps_mcp_gateway` | `boolean` | Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental). || `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` (under development; off by default). |
47| `features.artifact` | `boolean` | Enable native artifact tools such as slides and spreadsheets (under development). |
48| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |
49| `features.collaboration_modes` | `boolean` | Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key. |
50| `features.default_mode_request_user_input` | `boolean` | Allow `request_user_input` in default collaboration mode (under development; off by default). |
51| `features.elevated_windows_sandbox` | `boolean` | Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it. |
52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |51| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
53| `features.experimental_windows_sandbox` | `boolean` | Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it. |
54| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |52| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
5553| `features.image_detail_original` | `boolean` | Allow image outputs with `detail = "original"` on supported models (under development). || `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
5654| `features.image_generation` | `boolean` | Enable the built-in image generation tool (under development). || `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
57| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait`, `close_agent`, and `spawn_agents_on_csv`) (experimental; off by default). |
58| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |55| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
59| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere. |
60| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |56| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
61| `features.remote_models` | `boolean` | Legacy toggle for an older remote-model readiness flow. Current builds do not use it. |
62| `features.request_rule` | `boolean` | Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset. |
63| `features.responses_websockets` | `boolean` | Prefer the Responses API WebSocket transport for supported providers (under development). |
64| `features.responses_websockets_v2` | `boolean` | Enable Responses API WebSocket v2 mode (under development). |
65| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |
66| `features.search_tool` | `boolean` | Legacy toggle for an older Apps discovery flow. Current builds do not use it. |
67| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |57| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
68| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |58| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |
69| `features.skill_env_var_dependency_prompt` | `boolean` | Prompt for missing skill environment-variable dependencies (under development). |
70| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |59| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
7160| `features.sqlite` | `boolean` | Enable SQLite-backed state persistence (stable; on by default). || `features.smart_approvals` | `boolean` | Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). |
72| `features.steer` | `boolean` | Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior. |
73| `features.undo` | `boolean` | Enable undo support (stable; off by default). |61| `features.undo` | `boolean` | Enable undo support (stable; off by default). |
74| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
75| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |
76| `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. |
77| `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"`. |
78| `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"`. |
106| `mcp_servers.<id>.startup_timeout_sec` | `number` | Override the default 10s startup timeout for an MCP server. |93| `mcp_servers.<id>.startup_timeout_sec` | `number` | Override the default 10s startup timeout for an MCP server. |
107| `mcp_servers.<id>.tool_timeout_sec` | `number` | Override the default 60s per-tool timeout for an MCP server. |94| `mcp_servers.<id>.tool_timeout_sec` | `number` | Override the default 60s per-tool timeout for an MCP server. |
108| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |95| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |
10996| `model` | `string` | Model to use (e.g., `gpt-5-codex`). || `memories.consolidation_model` | `string` | Optional model override for global memory consolidation. |
97| `memories.extract_model` | `string` | Optional model override for per-thread memory extraction. |
98| `memories.generate_memories` | `boolean` | When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`. |
99| `memories.max_raw_memories_for_consolidation` | `number` | Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`. |
100| `memories.max_rollout_age_days` | `number` | Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`. |
101| `memories.max_rollouts_per_startup` | `number` | Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`. |
102| `memories.max_unused_days` | `number` | Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`. |
103| `memories.min_rollout_idle_hours` | `number` | Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`. |
104| `memories.no_memories_if_mcp_or_web_search` | `boolean` | When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`. |
105| `memories.use_memories` | `boolean` | When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`. |
106| `model` | `string` | Model to use (e.g., `gpt-5.4`). |
110| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |107| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |
111| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |108| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |
112| `model_context_window` | `number` | Context window tokens available to the active model. |109| `model_context_window` | `number` | Context window tokens available to the active model. |
113| `model_instructions_file` | `string (path)` | Replacement for built-in instructions instead of `AGENTS.md`. |110| `model_instructions_file` | `string (path)` | Replacement for built-in instructions instead of `AGENTS.md`. |
114| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |111| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |
112| `model_providers.<id>` | `table` | Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden. |
113| `model_providers.<id>.auth` | `table` | Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`. |
114| `model_providers.<id>.auth.args` | `array<string>` | Arguments passed to the token command. |
115| `model_providers.<id>.auth.command` | `string` | Command to run when Codex needs a bearer token. The command must print the token to stdout. |
116| `model_providers.<id>.auth.cwd` | `string (path)` | Working directory for the token command. |
117| `model_providers.<id>.auth.refresh_interval_ms` | `number` | How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry. |
118| `model_providers.<id>.auth.timeout_ms` | `number` | Maximum token command runtime in milliseconds (default: 5000). |
115| `model_providers.<id>.base_url` | `string` | API base URL for the model provider. |119| `model_providers.<id>.base_url` | `string` | API base URL for the model provider. |
116| `model_providers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables when present. |120| `model_providers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables when present. |
117| `model_providers.<id>.env_key` | `string` | Environment variable supplying the provider API key. |121| `model_providers.<id>.env_key` | `string` | Environment variable supplying the provider API key. |
137| `notice.hide_world_writable_warning` | `boolean` | Track acknowledgement of the Windows world-writable directories warning. |141| `notice.hide_world_writable_warning` | `boolean` | Track acknowledgement of the Windows world-writable directories warning. |
138| `notice.model_migrations` | `map<string,string>` | Track acknowledged model migrations as old->new mappings. |142| `notice.model_migrations` | `map<string,string>` | Track acknowledged model migrations as old->new mappings. |
139| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |143| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |
144| `openai_base_url` | `string` | Base URL override for the built-in `openai` model provider. |
140| `oss_provider` | `lmstudio | ollama` | Default local provider used when running with `--oss` (defaults to prompting if unset). |145| `oss_provider` | `lmstudio | ollama` | Default local provider used when running with `--oss` (defaults to prompting if unset). |
141| `otel.environment` | `string` | Environment tag applied to emitted OpenTelemetry events (default: `dev`). |146| `otel.environment` | `string` | Environment tag applied to emitted OpenTelemetry events (default: `dev`). |
142| `otel.exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry exporter and provide any endpoint metadata. |147| `otel.exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry exporter and provide any endpoint metadata. |
155| `otel.trace_exporter.<id>.tls.ca-certificate` | `string` | CA certificate path for OTEL trace exporter TLS. |160| `otel.trace_exporter.<id>.tls.ca-certificate` | `string` | CA certificate path for OTEL trace exporter TLS. |
156| `otel.trace_exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL trace exporter TLS. |161| `otel.trace_exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL trace exporter TLS. |
157| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |162| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
158163| `permissions.network.admin_url` | `string` | Admin endpoint for the managed network proxy. || `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
159164| `permissions.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. || `permissions.<name>.filesystem.":project_roots".<subpath>` | `"read" | "write" | "none"` | Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself. |
160165| `permissions.network.allow_unix_sockets` | `array<string>` | Allowlist of Unix socket paths permitted through the managed proxy. || `permissions.<name>.filesystem.<path>` | `"read" | "write" | "none" | table` | Grant direct access for a path or special token, or scope nested entries under that root. |
161166| `permissions.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. || `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
162167| `permissions.network.allowed_domains` | `array<string>` | Allowlist of domains permitted through the managed proxy. || `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
163168| `permissions.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. || `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
164169| `permissions.network.dangerously_allow_non_loopback_admin` | `boolean` | Permit non-loopback bind addresses for the managed proxy admin listener. || `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
165170| `permissions.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. || `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. |
166171| `permissions.network.denied_domains` | `array<string>` | Denylist of domains blocked by the managed proxy. || `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
167172| `permissions.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener from the managed network proxy. || `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
168173| `permissions.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. || `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
169174| `permissions.network.enabled` | `boolean` | Enable the managed network proxy configuration for subprocesses. || `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
170175| `permissions.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. || `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
171176| `permissions.network.proxy_url` | `string` | HTTP proxy endpoint used by the managed network proxy. || `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |
172177| `permissions.network.socks_url` | `string` | SOCKS5 proxy endpoint used by the managed network proxy. || `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. |
173| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |178| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
174| `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. |179| `plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default. |
175| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |180| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
195| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |200| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |
196| `sandbox_workspace_write.network_access` | `boolean` | Allow outbound network access inside the workspace-write sandbox. |201| `sandbox_workspace_write.network_access` | `boolean` | Allow outbound network access inside the workspace-write sandbox. |
197| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |202| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
198203| `service_tier` | `flex | fast` | Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled. || `service_tier` | `flex | fast` | Preferred service tier for new turns. |
199| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |204| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |
200| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |205| `shell_environment_policy.experimental_use_profile` | `boolean` | Use the user shell profile when spawning subprocesses. |
201| `shell_environment_policy.ignore_default_excludes` | `boolean` | Keep variables containing KEY/SECRET/TOKEN before other filters run. |206| `shell_environment_policy.ignore_default_excludes` | `boolean` | Keep variables containing KEY/SECRET/TOKEN before other filters run. |
209| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |214| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |
210| `suppress_unstable_features_warning` | `boolean` | Suppress the warning that appears when under-development feature flags are enabled. |215| `suppress_unstable_features_warning` | `boolean` | Suppress the warning that appears when under-development feature flags are enabled. |
211| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |216| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |
217| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
212| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |218| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
213219| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. || `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. |
214| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |220| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |
215| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |221| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |
216| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |222| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |
219| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |225| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |
220| `tui.show_tooltips` | `boolean` | Show onboarding tooltips in the TUI welcome screen (default: true). |226| `tui.show_tooltips` | `boolean` | Show onboarding tooltips in the TUI welcome screen (default: true). |
221| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |227| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
228| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |
222| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |229| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |
223| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |230| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |
224| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |231| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
225| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |232| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
233| `windows.sandbox_private_desktop` | `boolean` | Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior. |
226 234
227Key235Key
228 236
294 302
295Details303Details
296 304
297305Maximum number of agent threads that can be open concurrently.Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
298 306
299Key307Key
300 308
326 334
327Type / Values335Type / Values
328 336
329337`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }``untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
330 338
331Details339Details
332 340
333341Controls 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.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.
334 342
335Key343Key
336 344
337345`approval_policy.reject.mcp_elicitations``approval_policy.granular.mcp_elicitations`
338 346
339Type / Values347Type / Values
340 348
342 350
343Details351Details
344 352
345353When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
346 354
347Key355Key
348 356
349357`approval_policy.reject.rules``approval_policy.granular.request_permissions`
350 358
351Type / Values359Type / Values
352 360
354 362
355Details363Details
356 364
357365When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.When `true`, prompts from the `request_permissions` tool are allowed to surface.
358 366
359Key367Key
360 368
361369`approval_policy.reject.sandbox_approval``approval_policy.granular.rules`
362 370
363Type / Values371Type / Values
364 372
366 374
367Details375Details
368 376
369377When `true`, sandbox escalation approval prompts are auto-rejected.When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
378
379Key
380
381`approval_policy.granular.sandbox_approval`
382
383Type / Values
384
385`boolean`
386
387Details
388
389When `true`, sandbox escalation approval prompts are allowed to surface.
390
391Key
392
393`approval_policy.granular.skill_approval`
394
395Type / Values
396
397`boolean`
398
399Details
400
401When `true`, skill-script approval prompts are allowed to surface.
402
403Key
404
405`approvals_reviewer`
406
407Type / Values
408
409`user | guardian_subagent`
410
411Details
412
413Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent.
370 414
371Key415Key
372 416
562 606
563Key607Key
564 608
609`default_permissions`
610
611Type / Values
612
613`string`
614
615Details
616
617Name of the default permissions profile to apply to sandboxed tool calls.
618
619Key
620
565`developer_instructions`621`developer_instructions`
566 622
567Type / Values623Type / Values
622 678
623Key679Key
624 680
625681`features.apps_mcp_gateway``features.codex_hooks`
626 682
627Type / Values683Type / Values
628 684
630 686
631Details687Details
632 688
633689Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).
634 690
635Key691Key
636 692
637693`features.artifact``features.enable_request_compression`
638 694
639Type / Values695Type / Values
640 696
642 698
643Details699Details
644 700
645701Enable native artifact tools such as slides and spreadsheets (under development).Compress streaming request bodies with zstd when supported (stable; on by default).
646 702
647Key703Key
648 704
649705`features.child_agents_md``features.fast_mode`
650 706
651Type / Values707Type / Values
652 708
654 710
655Details711Details
656 712
657713Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
658 714
659Key715Key
660 716
661717`features.collaboration_modes``features.memories`
662 718
663Type / Values719Type / Values
664 720
666 722
667Details723Details
668 724
669725Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key.Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
670 726
671Key727Key
672 728
673729`features.default_mode_request_user_input``features.multi_agent`
674 730
675Type / Values731Type / Values
676 732
678 734
679Details735Details
680 736
681737Allow `request_user_input` in default collaboration mode (under development; off by default).Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
682 738
683Key739Key
684 740
685741`features.elevated_windows_sandbox``features.personality`
686 742
687Type / Values743Type / Values
688 744
690 746
691Details747Details
692 748
693749Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it.Enable personality selection controls (stable; on by default).
694 750
695Key751Key
696 752
697753`features.enable_request_compression``features.prevent_idle_sleep`
698 754
699Type / Values755Type / Values
700 756
702 758
703Details759Details
704 760
705761Compress streaming request bodies with zstd when supported (stable; on by default).Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
706 762
707Key763Key
708 764
709765`features.experimental_windows_sandbox``features.shell_snapshot`
710 766
711Type / Values767Type / Values
712 768
714 770
715Details771Details
716 772
717773Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it.Snapshot shell environment to speed up repeated commands (stable; on by default).
718 774
719Key775Key
720 776
721777`features.fast_mode``features.shell_tool`
722 778
723Type / Values779Type / Values
724 780
726 782
727Details783Details
728 784
729785Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).Enable the default `shell` tool for running commands (stable; on by default).
730 786
731Key787Key
732 788
733789`features.image_detail_original``features.skill_mcp_dependency_install`
734 790
735Type / Values791Type / Values
736 792
738 794
739Details795Details
740 796
741797Allow image outputs with `detail = "original"` on supported models (under development).Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
742 798
743Key799Key
744 800
745801`features.image_generation``features.smart_approvals`
746 802
747Type / Values803Type / Values
748 804
750 806
751Details807Details
752 808
753809Enable the built-in image generation tool (under development).Route eligible approval requests through the guardian reviewer subagent (experimental; off by default).
754 810
755Key811Key
756 812
757813`features.multi_agent``features.undo`
758 814
759Type / Values815Type / Values
760 816
762 818
763Details819Details
764 820
765821Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait`, `close_agent`, and `spawn_agents_on_csv`) (experimental; off by default).Enable undo support (stable; off by default).
766 822
767Key823Key
768 824
769825`features.personality``features.unified_exec`
770 826
771Type / Values827Type / Values
772 828
774 830
775Details831Details
776 832
777833Enable personality selection controls (stable; on by default).Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
778 834
779Key835Key
780 836
781837`features.powershell_utf8``features.web_search`
782 838
783Type / Values839Type / Values
784 840
786 842
787Details843Details
788 844
789845Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere.Deprecated legacy toggle; prefer the top-level `web_search` setting.
790 846
791Key847Key
792 848
793849`features.prevent_idle_sleep``features.web_search_cached`
794 850
795Type / Values851Type / Values
796 852
798 854
799Details855Details
800 856
801857Prevent the machine from sleeping while a turn is actively running (experimental; off by default).Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.
802 858
803Key859Key
804 860
805861`features.remote_models``features.web_search_request`
806 862
807Type / Values863Type / Values
808 864
810 866
811Details867Details
812 868
813869Legacy toggle for an older remote-model readiness flow. Current builds do not use it.Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.
814 870
815Key871Key
816 872
817873`features.request_rule``feedback.enabled`
818 874
819Type / Values875Type / Values
820 876
822 878
823Details879Details
824 880
825881Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset.Enable feedback submission via `/feedback` across Codex surfaces (default: true).
826 882
827Key883Key
828 884
829885`features.responses_websockets``file_opener`
830 886
831Type / Values887Type / Values
832 888
833889`boolean``vscode | vscode-insiders | windsurf | cursor | none`
834 890
835Details891Details
836 892
837893Prefer the Responses API WebSocket transport for supported providers (under development).URI scheme used to open citations from Codex output (default: `vscode`).
838 894
839Key895Key
840 896
841897`features.responses_websockets_v2``forced_chatgpt_workspace_id`
842 898
843Type / Values899Type / Values
844 900
845901`boolean``string (uuid)`
846 902
847Details903Details
848 904
849905Enable Responses API WebSocket v2 mode (under development).Limit ChatGPT logins to a specific workspace identifier.
850 906
851Key907Key
852 908
853909`features.runtime_metrics``forced_login_method`
854 910
855Type / Values911Type / Values
856 912
857913`boolean``chatgpt | api`
858 914
859Details915Details
860 916
861917Show runtime metrics summary in TUI turn separators (experimental).Restrict Codex to a specific authentication method.
862 918
863Key919Key
864 920
865921`features.search_tool``hide_agent_reasoning`
866 922
867Type / Values923Type / Values
868 924
870 926
871Details927Details
872 928
873929Legacy toggle for an older Apps discovery flow. Current builds do not use it.Suppress reasoning events in both the TUI and `codex exec` output.
874 930
875Key931Key
876 932
877933`features.shell_snapshot``history.max_bytes`
878 934
879Type / Values935Type / Values
880 936
881937`boolean``number`
882 938
883Details939Details
884 940
885941Snapshot shell environment to speed up repeated commands (stable; on by default).If set, caps the history file size in bytes by dropping oldest entries.
886 942
887Key943Key
888 944
889945`features.shell_tool``history.persistence`
890 946
891Type / Values947Type / Values
892 948
893949`boolean``save-all | none`
894 950
895Details951Details
896 952
897953Enable the default `shell` tool for running commands (stable; on by default).Control whether Codex saves session transcripts to history.jsonl.
898 954
899Key955Key
900 956
901957`features.skill_env_var_dependency_prompt``instructions`
902 958
903Type / Values959Type / Values
904 960
905961`boolean``string`
906 962
907Details963Details
908 964
909965Prompt for missing skill environment-variable dependencies (under development).Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.
910 966
911Key967Key
912 968
913969`features.skill_mcp_dependency_install``log_dir`
914 970
915Type / Values971Type / Values
916 972
917973`boolean``string (path)`
918 974
919Details975Details
920 976
921977Allow prompting and installing missing MCP dependencies for skills (stable; on by default).Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.
922 978
923Key979Key
924 980
925981`features.sqlite``mcp_oauth_callback_port`
926 982
927Type / Values983Type / Values
928 984
929985`boolean``integer`
930 986
931Details987Details
932 988
933989Enable SQLite-backed state persistence (stable; on by default).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.
934 990
935Key991Key
936 992
937993`features.steer``mcp_oauth_callback_url`
938 994
939Type / Values995Type / Values
940 996
941997`boolean``string`
942 998
943Details999Details
944 1000
9451001Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior.Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
946 1002
947Key1003Key
948 1004
9491005`features.undo``mcp_oauth_credentials_store`
950 1006
951Type / Values1007Type / Values
952 1008
9531009`boolean``auto | file | keyring`
954 1010
955Details1011Details
956 1012
9571013Enable undo support (stable; off by default).Preferred store for MCP OAuth credentials.
958 1014
959Key1015Key
960 1016
9611017`features.unified_exec``mcp_servers.<id>.args`
962 1018
963Type / Values1019Type / Values
964 1020
9651021`boolean``array<string>`
966 1022
967Details1023Details
968 1024
9691025Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).Arguments passed to the MCP stdio server command.
970 1026
971Key1027Key
972 1028
9731029`features.use_linux_sandbox_bwrap``mcp_servers.<id>.bearer_token_env_var`
974 1030
975Type / Values1031Type / Values
976 1032
9771033`boolean``string`
978 1034
979Details1035Details
980 1036
9811037Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).Environment variable sourcing the bearer token for an MCP HTTP server.
982 1038
983Key1039Key
984 1040
9851041`features.web_search``mcp_servers.<id>.command`
986 1042
987Type / Values1043Type / Values
988 1044
9891045`boolean``string`
990 1046
991Details1047Details
992 1048
9931049Deprecated legacy toggle; prefer the top-level `web_search` setting.Launcher command for an MCP stdio server.
994 1050
995Key1051Key
996 1052
9971053`features.web_search_cached``mcp_servers.<id>.cwd`
998 1054
999Type / Values1055Type / Values
1000 1056
10011057`boolean``string`
1002 1058
1003Details1059Details
1004 1060
10051061Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.Working directory for the MCP stdio server process.
1006 1062
1007Key1063Key
1008 1064
10091065`features.web_search_request``mcp_servers.<id>.disabled_tools`
1010 1066
1011Type / Values1067Type / Values
1012 1068
10131069`boolean``array<string>`
1014 1070
1015Details1071Details
1016 1072
10171073Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.Deny list applied after `enabled_tools` for the MCP server.
1018 1074
1019Key1075Key
1020 1076
10211077`feedback.enabled``mcp_servers.<id>.enabled`
1022 1078
1023Type / Values1079Type / Values
1024 1080
1026 1082
1027Details1083Details
1028 1084
10291085Enable feedback submission via `/feedback` across Codex surfaces (default: true).Disable an MCP server without removing its configuration.
1030 1086
1031Key1087Key
1032 1088
10331089`file_opener``mcp_servers.<id>.enabled_tools`
1034 1090
1035Type / Values1091Type / Values
1036 1092
10371093`vscode | vscode-insiders | windsurf | cursor | none``array<string>`
1038 1094
1039Details1095Details
1040 1096
10411097URI scheme used to open citations from Codex output (default: `vscode`).Allow list of tool names exposed by the MCP server.
1042 1098
1043Key1099Key
1044 1100
10451101`forced_chatgpt_workspace_id``mcp_servers.<id>.env`
1046 1102
1047Type / Values1103Type / Values
1048 1104
10491105`string (uuid)``map<string,string>`
1050 1106
1051Details1107Details
1052 1108
10531109Limit ChatGPT logins to a specific workspace identifier.Environment variables forwarded to the MCP stdio server.
1054 1110
1055Key1111Key
1056 1112
10571113`forced_login_method``mcp_servers.<id>.env_http_headers`
1058 1114
1059Type / Values1115Type / Values
1060 1116
10611117`chatgpt | api``map<string,string>`
1062 1118
1063Details1119Details
1064 1120
10651121Restrict Codex to a specific authentication method.HTTP headers populated from environment variables for an MCP HTTP server.
1066 1122
1067Key1123Key
1068 1124
10691125`hide_agent_reasoning``mcp_servers.<id>.env_vars`
1070 1126
1071Type / Values1127Type / Values
1072 1128
10731129`boolean``array<string>`
1074 1130
1075Details1131Details
1076 1132
10771133Suppress reasoning events in both the TUI and `codex exec` output.Additional environment variables to whitelist for an MCP stdio server.
1078 1134
1079Key1135Key
1080 1136
10811137`history.max_bytes``mcp_servers.<id>.http_headers`
1082 1138
1083Type / Values1139Type / Values
1084 1140
10851141`number``map<string,string>`
1086 1142
1087Details1143Details
1088 1144
10891145If set, caps the history file size in bytes by dropping oldest entries.Static HTTP headers included with each MCP HTTP request.
1090 1146
1091Key1147Key
1092 1148
10931149`history.persistence``mcp_servers.<id>.oauth_resource`
1094 1150
1095Type / Values1151Type / Values
1096 1152
10971153`save-all | none``string`
1098 1154
1099Details1155Details
1100 1156
11011157Control whether Codex saves session transcripts to history.jsonl.Optional RFC 8707 OAuth resource parameter to include during MCP login.
1102 1158
1103Key1159Key
1104 1160
11051161`instructions``mcp_servers.<id>.required`
1106 1162
1107Type / Values1163Type / Values
1108 1164
11091165`string``boolean`
1110 1166
1111Details1167Details
1112 1168
11131169Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.When true, fail startup/resume if this enabled MCP server cannot initialize.
1114 1170
1115Key1171Key
1116 1172
11171173`log_dir``mcp_servers.<id>.scopes`
1118 1174
1119Type / Values1175Type / Values
1120 1176
11211177`string (path)``array<string>`
1122 1178
1123Details1179Details
1124 1180
11251181Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.OAuth scopes to request when authenticating to that MCP server.
1126 1182
1127Key1183Key
1128 1184
11291185`mcp_oauth_callback_port``mcp_servers.<id>.startup_timeout_ms`
1130 1186
1131Type / Values1187Type / Values
1132 1188
11331189`integer``number`
1134 1190
1135Details1191Details
1136 1192
11371193Optional 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.Alias for `startup_timeout_sec` in milliseconds.
1138 1194
1139Key1195Key
1140 1196
11411197`mcp_oauth_callback_url``mcp_servers.<id>.startup_timeout_sec`
1142 1198
1143Type / Values1199Type / Values
1144 1200
11451201`string``number`
1146 1202
1147Details1203Details
1148 1204
11491205Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.Override the default 10s startup timeout for an MCP server.
1150 1206
1151Key1207Key
1152 1208
11531209`mcp_oauth_credentials_store``mcp_servers.<id>.tool_timeout_sec`
1154 1210
1155Type / Values1211Type / Values
1156 1212
11571213`auto | file | keyring``number`
1158 1214
1159Details1215Details
1160 1216
11611217Preferred store for MCP OAuth credentials.Override the default 60s per-tool timeout for an MCP server.
1162 1218
1163Key1219Key
1164 1220
11651221`mcp_servers.<id>.args``mcp_servers.<id>.url`
1166 1222
1167Type / Values1223Type / Values
1168 1224
11691225`array<string>``string`
1170 1226
1171Details1227Details
1172 1228
11731229Arguments passed to the MCP stdio server command.Endpoint for an MCP streamable HTTP server.
1174 1230
1175Key1231Key
1176 1232
11771233`mcp_servers.<id>.bearer_token_env_var``memories.consolidation_model`
1178 1234
1179Type / Values1235Type / Values
1180 1236
1182 1238
1183Details1239Details
1184 1240
11851241Environment variable sourcing the bearer token for an MCP HTTP server.Optional model override for global memory consolidation.
1186 1242
1187Key1243Key
1188 1244
11891245`mcp_servers.<id>.command``memories.extract_model`
1190 1246
1191Type / Values1247Type / Values
1192 1248
1194 1250
1195Details1251Details
1196 1252
11971253Launcher command for an MCP stdio server.Optional model override for per-thread memory extraction.
1198 1254
1199Key1255Key
1200 1256
12011257`mcp_servers.<id>.cwd``memories.generate_memories`
1202 1258
1203Type / Values1259Type / Values
1204 1260
12051261`string``boolean`
1206 1262
1207Details1263Details
1208 1264
12091265Working directory for the MCP stdio server process.When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1210 1266
1211Key1267Key
1212 1268
12131269`mcp_servers.<id>.disabled_tools``memories.max_raw_memories_for_consolidation`
1214 1270
1215Type / Values1271Type / Values
1216 1272
12171273`array<string>``number`
1218 1274
1219Details1275Details
1220 1276
12211277Deny list applied after `enabled_tools` for the MCP server.Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1222 1278
1223Key1279Key
1224 1280
12251281`mcp_servers.<id>.enabled``memories.max_rollout_age_days`
1226 1282
1227Type / Values1283Type / Values
1228 1284
12291285`boolean``number`
1230 1286
1231Details1287Details
1232 1288
12331289Disable an MCP server without removing its configuration.Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1234 1290
1235Key1291Key
1236 1292
12371293`mcp_servers.<id>.enabled_tools``memories.max_rollouts_per_startup`
1238 1294
1239Type / Values1295Type / Values
1240 1296
12411297`array<string>``number`
1242 1298
1243Details1299Details
1244 1300
12451301Allow list of tool names exposed by the MCP server.Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1246 1302
1247Key1303Key
1248 1304
12491305`mcp_servers.<id>.env``memories.max_unused_days`
1250 1306
1251Type / Values1307Type / Values
1252 1308
12531309`map<string,string>``number`
1254 1310
1255Details1311Details
1256 1312
12571313Environment variables forwarded to the MCP stdio server.Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1258 1314
1259Key1315Key
1260 1316
12611317`mcp_servers.<id>.env_http_headers``memories.min_rollout_idle_hours`
1262 1318
1263Type / Values1319Type / Values
1264 1320
12651321`map<string,string>``number`
1266 1322
1267Details1323Details
1268 1324
12691325HTTP headers populated from environment variables for an MCP HTTP server.Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1270 1326
1271Key1327Key
1272 1328
12731329`mcp_servers.<id>.env_vars``memories.no_memories_if_mcp_or_web_search`
1274 1330
1275Type / Values1331Type / Values
1276 1332
12771333`array<string>``boolean`
1278 1334
1279Details1335Details
1280 1336
12811337Additional environment variables to whitelist for an MCP stdio server.When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`.
1282 1338
1283Key1339Key
1284 1340
12851341`mcp_servers.<id>.http_headers``memories.use_memories`
1286 1342
1287Type / Values1343Type / Values
1288 1344
12891345`map<string,string>``boolean`
1290 1346
1291Details1347Details
1292 1348
12931349Static HTTP headers included with each MCP HTTP request.When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1294 1350
1295Key1351Key
1296 1352
12971353`mcp_servers.<id>.oauth_resource``model`
1298 1354
1299Type / Values1355Type / Values
1300 1356
1302 1358
1303Details1359Details
1304 1360
13051361Optional RFC 8707 OAuth resource parameter to include during MCP login.Model to use (e.g., `gpt-5.4`).
1306 1362
1307Key1363Key
1308 1364
13091365`mcp_servers.<id>.required``model_auto_compact_token_limit`
1310 1366
1311Type / Values1367Type / Values
1312 1368
13131369`boolean``number`
1314 1370
1315Details1371Details
1316 1372
13171373When true, fail startup/resume if this enabled MCP server cannot initialize.Token threshold that triggers automatic history compaction (unset uses model defaults).
1318 1374
1319Key1375Key
1320 1376
13211377`mcp_servers.<id>.scopes``model_catalog_json`
1322 1378
1323Type / Values1379Type / Values
1324 1380
13251381`array<string>``string (path)`
1326 1382
1327Details1383Details
1328 1384
13291385OAuth scopes to request when authenticating to that MCP server.Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1330 1386
1331Key1387Key
1332 1388
13331389`mcp_servers.<id>.startup_timeout_ms``model_context_window`
1334 1390
1335Type / Values1391Type / Values
1336 1392
1338 1394
1339Details1395Details
1340 1396
13411397Alias for `startup_timeout_sec` in milliseconds.Context window tokens available to the active model.
1342 1398
1343Key1399Key
1344 1400
13451401`mcp_servers.<id>.startup_timeout_sec``model_instructions_file`
1346 1402
1347Type / Values1403Type / Values
1348 1404
13491405`number``string (path)`
1350 1406
1351Details1407Details
1352 1408
13531409Override the default 10s startup timeout for an MCP server.Replacement for built-in instructions instead of `AGENTS.md`.
1354 1410
1355Key1411Key
1356 1412
13571413`mcp_servers.<id>.tool_timeout_sec``model_provider`
1358 1414
1359Type / Values1415Type / Values
1360 1416
13611417`number``string`
1362 1418
1363Details1419Details
1364 1420
13651421Override the default 60s per-tool timeout for an MCP server.Provider id from `model_providers` (default: `openai`).
1366 1422
1367Key1423Key
1368 1424
13691425`mcp_servers.<id>.url``model_providers.<id>`
1370 1426
1371Type / Values1427Type / Values
1372 1428
13731429`string``table`
1374 1430
1375Details1431Details
1376 1432
13771433Endpoint for an MCP streamable HTTP server.Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1378 1434
1379Key1435Key
1380 1436
13811437`model``model_providers.<id>.auth`
1382 1438
1383Type / Values1439Type / Values
1384 1440
13851441`string``table`
1386 1442
1387Details1443Details
1388 1444
13891445Model to use (e.g., `gpt-5-codex`).Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1390 1446
1391Key1447Key
1392 1448
13931449`model_auto_compact_token_limit``model_providers.<id>.auth.args`
1394 1450
1395Type / Values1451Type / Values
1396 1452
13971453`number``array<string>`
1398 1454
1399Details1455Details
1400 1456
14011457Token threshold that triggers automatic history compaction (unset uses model defaults).Arguments passed to the token command.
1402 1458
1403Key1459Key
1404 1460
14051461`model_catalog_json``model_providers.<id>.auth.command`
1406 1462
1407Type / Values1463Type / Values
1408 1464
14091465`string (path)``string`
1410 1466
1411Details1467Details
1412 1468
14131469Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.Command to run when Codex needs a bearer token. The command must print the token to stdout.
1414 1470
1415Key1471Key
1416 1472
14171473`model_context_window``model_providers.<id>.auth.cwd`
1418 1474
1419Type / Values1475Type / Values
1420 1476
14211477`number``string (path)`
1422 1478
1423Details1479Details
1424 1480
14251481Context window tokens available to the active model.Working directory for the token command.
1426 1482
1427Key1483Key
1428 1484
14291485`model_instructions_file``model_providers.<id>.auth.refresh_interval_ms`
1430 1486
1431Type / Values1487Type / Values
1432 1488
14331489`string (path)``number`
1434 1490
1435Details1491Details
1436 1492
14371493Replacement for built-in instructions instead of `AGENTS.md`.How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1438 1494
1439Key1495Key
1440 1496
14411497`model_provider``model_providers.<id>.auth.timeout_ms`
1442 1498
1443Type / Values1499Type / Values
1444 1500
14451501`string``number`
1446 1502
1447Details1503Details
1448 1504
14491505Provider id from `model_providers` (default: `openai`).Maximum token command runtime in milliseconds (default: 5000).
1450 1506
1451Key1507Key
1452 1508
1750 1806
1751Key1807Key
1752 1808
1809`openai_base_url`
1810
1811Type / Values
1812
1813`string`
1814
1815Details
1816
1817Base URL override for the built-in `openai` model provider.
1818
1819Key
1820
1753`oss_provider`1821`oss_provider`
1754 1822
1755Type / Values1823Type / Values
1966 2034
1967Key2035Key
1968 2036
19692037`permissions.network.admin_url``permissions.<name>.filesystem`
1970 2038
1971Type / Values2039Type / Values
1972 2040
19732041`string``table`
1974 2042
1975Details2043Details
1976 2044
19772045Admin endpoint for the managed network proxy.Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
1978 2046
1979Key2047Key
1980 2048
19812049`permissions.network.allow_local_binding``permissions.<name>.filesystem.":project_roots".<subpath>`
1982 2050
1983Type / Values2051Type / Values
1984 2052
19852053`boolean``"read" | "write" | "none"`
1986 2054
1987Details2055Details
1988 2056
19892057Permit local bind/listen operations through the managed proxy.Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.
1990 2058
1991Key2059Key
1992 2060
19932061`permissions.network.allow_unix_sockets``permissions.<name>.filesystem.<path>`
1994 2062
1995Type / Values2063Type / Values
1996 2064
19972065`array<string>``"read" | "write" | "none" | table`
1998 2066
1999Details2067Details
2000 2068
20012069Allowlist of Unix socket paths permitted through the managed proxy.Grant direct access for a path or special token, or scope nested entries under that root.
2002 2070
2003Key2071Key
2004 2072
20052073`permissions.network.allow_upstream_proxy``permissions.<name>.network.allow_local_binding`
2006 2074
2007Type / Values2075Type / Values
2008 2076
2010 2078
2011Details2079Details
2012 2080
20132081Allow the managed proxy to chain to another upstream proxy.Permit local bind/listen operations through the managed proxy.
2014 2082
2015Key2083Key
2016 2084
20172085`permissions.network.allowed_domains``permissions.<name>.network.allow_upstream_proxy`
2018 2086
2019Type / Values2087Type / Values
2020 2088
20212089`array<string>``boolean`
2022 2090
2023Details2091Details
2024 2092
20252093Allowlist of domains permitted through the managed proxy.Allow the managed proxy to chain to another upstream proxy.
2026 2094
2027Key2095Key
2028 2096
20292097`permissions.network.dangerously_allow_all_unix_sockets``permissions.<name>.network.dangerously_allow_all_unix_sockets`
2030 2098
2031Type / Values2099Type / Values
2032 2100
2038 2106
2039Key2107Key
2040 2108
20412109`permissions.network.dangerously_allow_non_loopback_admin``permissions.<name>.network.dangerously_allow_non_loopback_proxy`
2042 2110
2043Type / Values2111Type / Values
2044 2112
2046 2114
2047Details2115Details
2048 2116
20492117Permit non-loopback bind addresses for the managed proxy admin listener.Permit non-loopback bind addresses for the managed proxy listener.
2050 2118
2051Key2119Key
2052 2120
20532121`permissions.network.dangerously_allow_non_loopback_proxy``permissions.<name>.network.domains`
2054 2122
2055Type / Values2123Type / Values
2056 2124
20572125`boolean``map<string, allow | deny>`
2058 2126
2059Details2127Details
2060 2128
20612129Permit non-loopback bind addresses for the managed proxy listener.Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
2062 2130
2063Key2131Key
2064 2132
20652133`permissions.network.denied_domains``permissions.<name>.network.enable_socks5`
2066 2134
2067Type / Values2135Type / Values
2068 2136
20692137`array<string>``boolean`
2070 2138
2071Details2139Details
2072 2140
20732141Denylist of domains blocked by the managed proxy.Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
2074 2142
2075Key2143Key
2076 2144
20772145`permissions.network.enable_socks5``permissions.<name>.network.enable_socks5_udp`
2078 2146
2079Type / Values2147Type / Values
2080 2148
2082 2150
2083Details2151Details
2084 2152
20852153Expose a SOCKS5 listener from the managed network proxy.Allow UDP over the SOCKS5 listener when enabled.
2086 2154
2087Key2155Key
2088 2156
20892157`permissions.network.enable_socks5_udp``permissions.<name>.network.enabled`
2090 2158
2091Type / Values2159Type / Values
2092 2160
2094 2162
2095Details2163Details
2096 2164
20972165Allow UDP over the SOCKS5 listener when enabled.Enable network access for this named permissions profile.
2098 2166
2099Key2167Key
2100 2168
21012169`permissions.network.enabled``permissions.<name>.network.mode`
2102 2170
2103Type / Values2171Type / Values
2104 2172
21052173`boolean``limited | full`
2106 2174
2107Details2175Details
2108 2176
21092177Enable the managed network proxy configuration for subprocesses.Network proxy mode used for subprocess traffic.
2110 2178
2111Key2179Key
2112 2180
21132181`permissions.network.mode``permissions.<name>.network.proxy_url`
2114 2182
2115Type / Values2183Type / Values
2116 2184
21172185`limited | full``string`
2118 2186
2119Details2187Details
2120 2188
21212189Network proxy mode used for subprocess traffic.HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
2122 2190
2123Key2191Key
2124 2192
21252193`permissions.network.proxy_url``permissions.<name>.network.socks_url`
2126 2194
2127Type / Values2195Type / Values
2128 2196
2130 2198
2131Details2199Details
2132 2200
21332201HTTP proxy endpoint used by the managed network proxy.SOCKS5 proxy endpoint used by this permissions profile.
2134 2202
2135Key2203Key
2136 2204
21372205`permissions.network.socks_url``permissions.<name>.network.unix_sockets`
2138 2206
2139Type / Values2207Type / Values
2140 2208
21412209`string``map<string, allow | none>`
2142 2210
2143Details2211Details
2144 2212
21452213SOCKS5 proxy endpoint used by the managed network proxy.Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
2146 2214
2147Key2215Key
2148 2216
2454 2522
2455Details2523Details
2456 2524
24572525Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled.Preferred service tier for new turns.
2458 2526
2459Key2527Key
2460 2528
2614 2682
2615Key2683Key
2616 2684
2685`tool_suggest.discoverables`
2686
2687Type / Values
2688
2689`array<table>`
2690
2691Details
2692
2693Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2694
2695Key
2696
2617`tools.view_image`2697`tools.view_image`
2618 2698
2619Type / Values2699Type / Values
2630 2710
2631Type / Values2711Type / Values
2632 2712
26332713`boolean``boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2634 2714
2635Details2715Details
2636 2716
26372717Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.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.
2638 2718
2639Key2719Key
2640 2720
2734 2814
2735Key2815Key
2736 2816
2817`tui.terminal_title`
2818
2819Type / Values
2820
2821`array<string> | null`
2822
2823Details
2824
2825Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.
2826
2827Key
2828
2737`tui.theme`2829`tui.theme`
2738 2830
2739Type / Values2831Type / Values
2780 2872
2781Windows-only native sandbox mode when running Codex natively on Windows.2873Windows-only native sandbox mode when running Codex natively on Windows.
2782 2874
2875Key
2876
2877`windows.sandbox_private_desktop`
2878
2879Type / Values
2880
2881`boolean`
2882
2883Details
2884
2885Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior.
2886
2783Expand to view all2887Expand to view all
2784 2888
2785You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2889You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).
2804 2908
2805| Key | Type / Values | Details |2909| Key | Type / Values | Details |
2806| --- | --- | --- |2910| --- | --- | --- |
28072911| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). || `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`). |
2912| `allowed_approvals_reviewers` | `array<string>` | Allowed values for `approvals_reviewer` (for example `user` and `guardian_subagent`). |
2808| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2913| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
2809| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |2914| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |
2810| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |2915| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2831 2936
2832Details2937Details
2833 2938
28342939Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`).
2940
2941Key
2942
2943`allowed_approvals_reviewers`
2944
2945Type / Values
2946
2947`array<string>`
2948
2949Details
2950
2951Allowed values for `approvals_reviewer` (for example `user` and `guardian_subagent`).
2835 2952
2836Key2953Key
2837 2954