config-reference.md +1307 −353
6 6
7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.
8 8
9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/agent-approvals-security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/agent-approvals-security#network-access).
10
9| Key | Type / Values | Details |11| Key | Type / Values | Details |
10| --- | --- | --- |12| --- | --- | --- |
11| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |
12| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |
1315| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. || `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |
1416| `approval_policy` | `untrusted | on-request | never` | Controls when Codex pauses for approval before executing commands. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. || `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. |
1517| `apps.<id>.disabled_reason` | `unknown | user` | Optional reason attached when an app/connector is disabled. || `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |
18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |
19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |
20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
21| `approval_policy` | `untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { granular = { ... } }` to allow or auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |
22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
23| `approval_policy.granular.request_permissions` | `boolean` | When `true`, prompts from the `request_permissions` tool are allowed to surface. |
24| `approval_policy.granular.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface. |
25| `approval_policy.granular.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are allowed to surface. |
26| `approval_policy.granular.skill_approval` | `boolean` | When `true`, skill-script approval prompts are allowed to surface. |
27| `approvals_reviewer` | `user | guardian_subagent` | Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent. |
28| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |
29| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |
30| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |
31| `apps.<id>.default_tools_approval_mode` | `auto | prompt | approve` | Default approval behavior for tools in this app unless a per-tool override exists. |
32| `apps.<id>.default_tools_enabled` | `boolean` | Default enabled state for tools in this app unless a per-tool override exists. |
33| `apps.<id>.destructive_enabled` | `boolean` | Allow or block tools in this app that advertise `destructive_hint = true`. |
16| `apps.<id>.enabled` | `boolean` | Enable or disable a specific app/connector by id (default: true). |34| `apps.<id>.enabled` | `boolean` | Enable or disable a specific app/connector by id (default: true). |
35| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |
36| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |
37| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |
38| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |
17| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |39| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |
18| `check_for_update_on_startup` | `boolean` | Check for Codex updates on startup (set to false only when updates are centrally managed). |40| `check_for_update_on_startup` | `boolean` | Check for Codex updates on startup (set to false only when updates are centrally managed). |
19| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |41| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |
42| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |
20| `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. |
21| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |45| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
22| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |46| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |
23| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |47| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |
24| `experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`. |
25| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |48| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |
26| `features.apply_patch_freeform` | `boolean` | Expose the freeform `apply_patch` tool (experimental). |
27| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |49| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |
2850| `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). |
2951| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). || `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
3052| `features.collaboration_modes` | `boolean` | Enable collaboration modes such as plan mode (stable; on by default). || `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
3153| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). || `features.guardian_approval` | `boolean` | Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). Use with `approvals_reviewer = "guardian_subagent"`. |
3254| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). || `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
3355| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default). || `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
34| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |56| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
3557| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output (defaults to true). || `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
3658| `features.remote_models` | `boolean` | Refresh remote model list before showing readiness (experimental). || `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
37| `features.request_rule` | `boolean` | Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default). |
38| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |
39| `features.search_tool` | `boolean` | Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental). |
40| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (beta). |
41| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |59| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |
4260| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (beta). || `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
4361| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). || `features.undo` | `boolean` | Enable undo support (stable; off by default). |
62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
44| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |63| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |
45| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |64| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |
46| `features.web_search_request` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`. |65| `features.web_search_request` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`. |
51| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |70| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |
52| `history.max_bytes` | `number` | If set, caps the history file size in bytes by dropping oldest entries. |71| `history.max_bytes` | `number` | If set, caps the history file size in bytes by dropping oldest entries. |
53| `history.persistence` | `save-all | none` | Control whether Codex saves session transcripts to history.jsonl. |72| `history.persistence` | `save-all | none` | Control whether Codex saves session transcripts to history.jsonl. |
54| `include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |
55| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |73| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |
56| `log_dir` | `string (path)` | Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`. |74| `log_dir` | `string (path)` | Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`. |
57| `mcp_oauth_callback_port` | `integer` | Optional fixed port for the local HTTP callback server used during MCP OAuth login. When unset, Codex binds to an ephemeral port chosen by the OS. |75| `mcp_oauth_callback_port` | `integer` | Optional fixed port for the local HTTP callback server used during MCP OAuth login. When unset, Codex binds to an ephemeral port chosen by the OS. |
76| `mcp_oauth_callback_url` | `string` | Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port. |
58| `mcp_oauth_credentials_store` | `auto | file | keyring` | Preferred store for MCP OAuth credentials. |77| `mcp_oauth_credentials_store` | `auto | file | keyring` | Preferred store for MCP OAuth credentials. |
59| `mcp_servers.<id>.args` | `array<string>` | Arguments passed to the MCP stdio server command. |78| `mcp_servers.<id>.args` | `array<string>` | Arguments passed to the MCP stdio server command. |
60| `mcp_servers.<id>.bearer_token_env_var` | `string` | Environment variable sourcing the bearer token for an MCP HTTP server. |79| `mcp_servers.<id>.bearer_token_env_var` | `string` | Environment variable sourcing the bearer token for an MCP HTTP server. |
67| `mcp_servers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables for an MCP HTTP server. |86| `mcp_servers.<id>.env_http_headers` | `map<string,string>` | HTTP headers populated from environment variables for an MCP HTTP server. |
68| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. |87| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. |
69| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |88| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |
89| `mcp_servers.<id>.oauth_resource` | `string` | Optional RFC 8707 OAuth resource parameter to include during MCP login. |
70| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |90| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |
91| `mcp_servers.<id>.scopes` | `array<string>` | OAuth scopes to request when authenticating to that MCP server. |
71| `mcp_servers.<id>.startup_timeout_ms` | `number` | Alias for `startup_timeout_sec` in milliseconds. |92| `mcp_servers.<id>.startup_timeout_ms` | `number` | Alias for `startup_timeout_sec` in milliseconds. |
72| `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. |
73| `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. |
74| `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. |
7596| `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`). |
76| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |107| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |
108| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |
77| `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. |
78| `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`. |
79| `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). |
80| `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. |
81| `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. |
82| `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. |
89| `model_providers.<id>.requires_openai_auth` | `boolean` | The provider uses OpenAI authentication (defaults to false). |128| `model_providers.<id>.requires_openai_auth` | `boolean` | The provider uses OpenAI authentication (defaults to false). |
90| `model_providers.<id>.stream_idle_timeout_ms` | `number` | Idle timeout for SSE streams in milliseconds (default: 300000). |129| `model_providers.<id>.stream_idle_timeout_ms` | `number` | Idle timeout for SSE streams in milliseconds (default: 300000). |
91| `model_providers.<id>.stream_max_retries` | `number` | Retry count for SSE streaming interruptions (default: 5). |130| `model_providers.<id>.stream_max_retries` | `number` | Retry count for SSE streaming interruptions (default: 5). |
92131| `model_providers.<id>.wire_api` | `chat | responses` | Protocol used by the provider (defaults to `chat` if omitted). || `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |
132| `model_providers.<id>.wire_api` | `responses` | Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted. |
93| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |133| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |
94| `model_reasoning_summary` | `auto | concise | detailed | none` | Select reasoning summary detail or disable summaries entirely. |134| `model_reasoning_summary` | `auto | concise | detailed | none` | Select reasoning summary detail or disable summaries entirely. |
95| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |135| `model_supports_reasoning_summaries` | `boolean` | Force Codex to send or not send reasoning metadata. |
96136| `model_verbosity` | `low | medium | high` | Control GPT-5 Responses API verbosity (defaults to `medium`). || `model_verbosity` | `low | medium | high` | Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used. |
97| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |137| `notice.hide_full_access_warning` | `boolean` | Track acknowledgement of the full access warning prompt. |
98| `notice.hide_gpt-5.1-codex-max_migration_prompt` | `boolean` | Track acknowledgement of the gpt-5.1-codex-max migration prompt. |138| `notice.hide_gpt-5.1-codex-max_migration_prompt` | `boolean` | Track acknowledgement of the gpt-5.1-codex-max migration prompt. |
99| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |139| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |
101| `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. |
102| `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. |
103| `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. |
104| `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). |
105| `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`). |
106| `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. |
111| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |152| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |
112| `otel.exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL exporter TLS. |153| `otel.exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL exporter TLS. |
113| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |154| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |
155| `otel.metrics_exporter` | `none | statsig | otlp-http | otlp-grpc` | Select the OpenTelemetry metrics exporter (defaults to `statsig`). |
114| `otel.trace_exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry trace exporter and provide any endpoint metadata. |156| `otel.trace_exporter` | `none | otlp-http | otlp-grpc` | Select the OpenTelemetry trace exporter and provide any endpoint metadata. |
115| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |157| `otel.trace_exporter.<id>.endpoint` | `string` | Trace exporter endpoint for OTEL logs. |
116| `otel.trace_exporter.<id>.headers` | `map<string,string>` | Static headers included with OTEL trace exporter requests. |158| `otel.trace_exporter.<id>.headers` | `map<string,string>` | Static headers included with OTEL trace exporter requests. |
118| `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. |
119| `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. |
120| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |162| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
163| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
164| `permissions.<name>.filesystem.":project_roots".<subpath>` | `"read" | "write" | "none"` | Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself. |
165| `permissions.<name>.filesystem.<path>` | `"read" | "write" | "none" | table` | Grant direct access for a path or special token, or scope nested entries under that root. |
166| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
167| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
168| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
169| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
170| `permissions.<name>.network.domains` | `map<string, allow | deny>` | Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values. |
171| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
172| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
173| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
174| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
175| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
176| `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |
177| `permissions.<name>.network.unix_sockets` | `map<string, allow | none>` | Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values. |
121| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |178| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
179| `plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default. |
122| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |180| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
123| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |181| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |
124182| `profiles.<name>.experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. || `profiles.<name>.analytics.enabled` | `boolean` | Profile-scoped analytics enablement override. |
125| `profiles.<name>.experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec`. |183| `profiles.<name>.experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec`. |
126184| `profiles.<name>.include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. || `profiles.<name>.model_catalog_json` | `string (path)` | Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile). |
185| `profiles.<name>.model_instructions_file` | `string (path)` | Profile-scoped replacement for the built-in instruction file. |
127| `profiles.<name>.oss_provider` | `lmstudio | ollama` | Profile-scoped OSS provider for `--oss` sessions. |186| `profiles.<name>.oss_provider` | `lmstudio | ollama` | Profile-scoped OSS provider for `--oss` sessions. |
128| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |187| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |
188| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |
189| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |
190| `profiles.<name>.tools_view_image` | `boolean` | Enable or disable the `view_image` tool in that profile. |
129| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |191| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |
192| `profiles.<name>.windows.sandbox` | `unelevated | elevated` | Profile-scoped Windows sandbox mode override. |
130| `project_doc_fallback_filenames` | `array<string>` | Additional filenames to try when `AGENTS.md` is missing. |193| `project_doc_fallback_filenames` | `array<string>` | Additional filenames to try when `AGENTS.md` is missing. |
131| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |194| `project_doc_max_bytes` | `number` | Maximum bytes read from `AGENTS.md` when building project instructions. |
132| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |195| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |
137| `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. |
138| `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. |
139| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |202| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
203| `service_tier` | `flex | fast` | Preferred service tier for new turns. |
140| `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. |
141| `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. |
142| `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. |
147| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |211| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |
148| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |212| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |
149| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |213| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |
214| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |
150| `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. |
151| `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. |
152217| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. || `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
218| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
219| `tools.web_search` | `boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }` | Optional web search tool configuration. The legacy boolean form is still accepted, but the object form lets you set search context size, allowed domains, and approximate user location. |
153| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |220| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |
154| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |221| `tui.alternate_screen` | `auto | always | never` | Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback). |
155| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |222| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |
223| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |
156| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |224| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |
157| `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. |
158| `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). |
159| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |227| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
228| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |
229| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |
160| `web_search` | `disabled | cached | live` | Web search mode (default: `"cached"`; cached uses an OpenAI-maintained index and does not fetch live pages; if you use `--yolo` or another full access sandbox setting, it defaults to `"live"`). Use `"live"` to fetch the most recent data from the web, or `"disabled"` to remove the tool. |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. |
161| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |231| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
232| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
233| `windows.sandbox_private_desktop` | `boolean` | Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior. |
162 234
163Key235Key
164 236
186 258
187Key259Key
188 260
189261`agents.max_threads``agents.<name>.nickname_candidates`
190 262
191Type / Values263Type / Values
192 264
193265`number``array<string>`
194 266
195Details267Details
196 268
197269Maximum number of agent threads that can be open concurrently.Optional pool of display nicknames for spawned agents in that role.
198 270
199Key271Key
200 272
201273`approval_policy``agents.job_max_runtime_seconds`
202 274
203Type / Values275Type / Values
204 276
205277`untrusted | on-request | never``number`
206 278
207Details279Details
208 280
209281Controls when Codex pauses for approval before executing commands. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
210 282
211Key283Key
212 284
213285`apps.<id>.disabled_reason``agents.max_depth`
214 286
215Type / Values287Type / Values
216 288
217289`unknown | user``number`
218 290
219Details291Details
220 292
221293Optional reason attached when an app/connector is disabled.Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).
222 294
223Key295Key
224 296
225297`apps.<id>.enabled``agents.max_threads`
226 298
227Type / Values299Type / Values
228 300
229301`boolean``number`
230 302
231Details303Details
232 304
233305Enable or disable a specific app/connector by id (default: true).Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
234 306
235Key307Key
236 308
237309`chatgpt_base_url``allow_login_shell`
238 310
239Type / Values311Type / Values
240 312
241313`string``boolean`
242 314
243Details315Details
244 316
245317Override the base URL used during the ChatGPT login flow.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.
246 318
247Key319Key
248 320
249321`check_for_update_on_startup``analytics.enabled`
250 322
251Type / Values323Type / Values
252 324
254 326
255Details327Details
256 328
257329Check for Codex updates on startup (set to false only when updates are centrally managed).Enable or disable analytics for this machine/profile. When unset, the client default applies.
258 330
259Key331Key
260 332
261333`cli_auth_credentials_store``approval_policy`
262 334
263Type / Values335Type / Values
264 336
265337`file | keyring | auto``untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
266 338
267Details339Details
268 340
269341Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).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.
270 342
271Key343Key
272 344
273345`compact_prompt``approval_policy.granular.mcp_elicitations`
274 346
275Type / Values347Type / Values
276 348
277349`string``boolean`
278 350
279Details351Details
280 352
281353Inline override for the history compaction prompt.When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
282 354
283Key355Key
284 356
285357`developer_instructions``approval_policy.granular.request_permissions`
286 358
287Type / Values359Type / Values
288 360
289361`string``boolean`
290 362
291Details363Details
292 364
293365Additional developer instructions injected into the session (optional).When `true`, prompts from the `request_permissions` tool are allowed to surface.
294 366
295Key367Key
296 368
297369`disable_paste_burst``approval_policy.granular.rules`
298 370
299Type / Values371Type / Values
300 372
302 374
303Details375Details
304 376
305377Disable burst-paste detection in the TUI.When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
306 378
307Key379Key
308 380
309381`experimental_compact_prompt_file``approval_policy.granular.sandbox_approval`
310 382
311Type / Values383Type / Values
312 384
313385`string (path)``boolean`
314 386
315Details387Details
316 388
317389Load the compaction prompt override from a file (experimental).When `true`, sandbox escalation approval prompts are allowed to surface.
318 390
319Key391Key
320 392
321393`experimental_use_freeform_apply_patch``approval_policy.granular.skill_approval`
322 394
323Type / Values395Type / Values
324 396
326 398
327Details399Details
328 400
329401Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.When `true`, skill-script approval prompts are allowed to surface.
330 402
331Key403Key
332 404
333405`experimental_use_unified_exec_tool``approvals_reviewer`
334 406
335Type / Values407Type / Values
336 408
337409`boolean``user | guardian_subagent`
338 410
339Details411Details
340 412
341413Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent.
342 414
343Key415Key
344 416
345417`features.apply_patch_freeform``apps._default.destructive_enabled`
346 418
347Type / Values419Type / Values
348 420
350 422
351Details423Details
352 424
353425Expose the freeform `apply_patch` tool (experimental).Default allow/deny for app tools with `destructive_hint = true`.
354 426
355Key427Key
356 428
357429`features.apps``apps._default.enabled`
358 430
359Type / Values431Type / Values
360 432
362 434
363Details435Details
364 436
365437Enable ChatGPT Apps/connectors support (experimental).Default app enabled state for all apps unless overridden per app.
366 438
367Key439Key
368 440
369441`features.apps_mcp_gateway``apps._default.open_world_enabled`
370 442
371Type / Values443Type / Values
372 444
374 446
375Details447Details
376 448
377449Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).Default allow/deny for app tools with `open_world_hint = true`.
378 450
379Key451Key
380 452
381453`features.child_agents_md``apps.<id>.default_tools_approval_mode`
382 454
383Type / Values455Type / Values
384 456
385457`boolean``auto | prompt | approve`
386 458
387Details459Details
388 460
389461Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).Default approval behavior for tools in this app unless a per-tool override exists.
390 462
391Key463Key
392 464
393465`features.collaboration_modes``apps.<id>.default_tools_enabled`
394 466
395Type / Values467Type / Values
396 468
398 470
399Details471Details
400 472
401473Enable collaboration modes such as plan mode (stable; on by default).Default enabled state for tools in this app unless a per-tool override exists.
402 474
403Key475Key
404 476
405477`features.elevated_windows_sandbox``apps.<id>.destructive_enabled`
406 478
407Type / Values479Type / Values
408 480
410 482
411Details483Details
412 484
413485Enable the elevated Windows sandbox pipeline (experimental).Allow or block tools in this app that advertise `destructive_hint = true`.
414 486
415Key487Key
416 488
417489`features.experimental_windows_sandbox``apps.<id>.enabled`
418 490
419Type / Values491Type / Values
420 492
422 494
423Details495Details
424 496
425497Run the Windows restricted-token sandbox (experimental).Enable or disable a specific app/connector by id (default: true).
426 498
427Key499Key
428 500
429501`features.multi_agent``apps.<id>.open_world_enabled`
430 502
431Type / Values503Type / Values
432 504
434 506
435Details507Details
436 508
437509Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).Allow or block tools in this app that advertise `open_world_hint = true`.
438 510
439Key511Key
440 512
441513`features.personality``apps.<id>.tools.<tool>.approval_mode`
442 514
443Type / Values515Type / Values
444 516
445517`boolean``auto | prompt | approve`
446 518
447Details519Details
448 520
449521Enable personality selection controls (stable; on by default).Per-tool approval behavior override for a single app tool.
450 522
451Key523Key
452 524
453525`features.powershell_utf8``apps.<id>.tools.<tool>.enabled`
454 526
455Type / Values527Type / Values
456 528
458 530
459Details531Details
460 532
461533Force PowerShell UTF-8 output (defaults to true).Per-tool enabled override for an app tool (for example `repos/list`).
462 534
463Key535Key
464 536
465537`features.remote_models``background_terminal_max_timeout`
466 538
467Type / Values539Type / Values
468 540
469541`boolean``number`
470 542
471Details543Details
472 544
473545Refresh remote model list before showing readiness (experimental).Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key.
474 546
475Key547Key
476 548
477549`features.request_rule``chatgpt_base_url`
478 550
479Type / Values551Type / Values
480 552
481553`boolean``string`
482 554
483Details555Details
484 556
485557Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).Override the base URL used during the ChatGPT login flow.
486 558
487Key559Key
488 560
489561`features.runtime_metrics``check_for_update_on_startup`
490 562
491Type / Values563Type / Values
492 564
494 566
495Details567Details
496 568
497569Show runtime metrics summary in TUI turn separators (experimental).Check for Codex updates on startup (set to false only when updates are centrally managed).
498 570
499Key571Key
500 572
501573`features.search_tool``cli_auth_credentials_store`
502 574
503Type / Values575Type / Values
504 576
505577`boolean``file | keyring | auto`
506 578
507Details579Details
508 580
509581Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).
510 582
511Key583Key
512 584
513585`features.shell_snapshot``commit_attribution`
514 586
515Type / Values587Type / Values
516 588
517589`boolean``string`
518 590
519Details591Details
520 592
521593Snapshot shell environment to speed up repeated commands (beta).Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
522 594
523Key595Key
524 596
525597`features.shell_tool``compact_prompt`
526 598
527Type / Values599Type / Values
528 600
529601`boolean``string`
530 602
531Details603Details
532 604
533605Enable the default `shell` tool for running commands (stable; on by default).Inline override for the history compaction prompt.
534 606
535Key607Key
536 608
537609`features.unified_exec``default_permissions`
538 610
539Type / Values611Type / Values
540 612
541613`boolean``string`
542 614
543Details615Details
544 616
545617Use the unified PTY-backed exec tool (beta).Name of the default permissions profile to apply to sandboxed tool calls.
546 618
547Key619Key
548 620
549621`features.use_linux_sandbox_bwrap``developer_instructions`
550 622
551Type / Values623Type / Values
552 624
553625`boolean``string`
554 626
555Details627Details
556 628
557629Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).Additional developer instructions injected into the session (optional).
558 630
559Key631Key
560 632
561633`features.web_search``disable_paste_burst`
562 634
563Type / Values635Type / Values
564 636
566 638
567Details639Details
568 640
569641Deprecated legacy toggle; prefer the top-level `web_search` setting.Disable burst-paste detection in the TUI.
570 642
571Key643Key
572 644
573645`features.web_search_cached``experimental_compact_prompt_file`
574 646
575Type / Values647Type / Values
576 648
577649`boolean``string (path)`
578 650
579Details651Details
580 652
581653Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.Load the compaction prompt override from a file (experimental).
582 654
583Key655Key
584 656
585657`features.web_search_request``experimental_use_unified_exec_tool`
586 658
587Type / Values659Type / Values
588 660
590 662
591Details663Details
592 664
593665Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
594 666
595Key667Key
596 668
597669`feedback.enabled``features.apps`
598 670
599Type / Values671Type / Values
600 672
602 674
603Details675Details
604 676
605677Enable feedback submission via `/feedback` across Codex surfaces (default: true).Enable ChatGPT Apps/connectors support (experimental).
606 678
607Key679Key
608 680
609681`file_opener``features.codex_hooks`
610 682
611Type / Values683Type / Values
612 684
613685`vscode | vscode-insiders | windsurf | cursor | none``boolean`
614 686
615Details687Details
616 688
617689URI scheme used to open citations from Codex output (default: `vscode`).Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).
618 690
619Key691Key
620 692
621693`forced_chatgpt_workspace_id``features.enable_request_compression`
622 694
623Type / Values695Type / Values
624 696
625697`string (uuid)``boolean`
626 698
627Details699Details
628 700
629701Limit ChatGPT logins to a specific workspace identifier.Compress streaming request bodies with zstd when supported (stable; on by default).
630 702
631Key703Key
632 704
633705`forced_login_method``features.fast_mode`
634 706
635Type / Values707Type / Values
636 708
637709`chatgpt | api``boolean`
638 710
639Details711Details
640 712
641713Restrict Codex to a specific authentication method.Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
642 714
643Key715Key
644 716
645717`hide_agent_reasoning``features.guardian_approval`
646 718
647Type / Values719Type / Values
648 720
650 722
651Details723Details
652 724
653725Suppress reasoning events in both the TUI and `codex exec` output.Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). Use with `approvals_reviewer = "guardian_subagent"`.
654 726
655Key727Key
656 728
657729`history.max_bytes``features.memories`
658 730
659Type / Values731Type / Values
660 732
661733`number``boolean`
662 734
663Details735Details
664 736
665737If set, caps the history file size in bytes by dropping oldest entries.Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
666 738
667Key739Key
668 740
669741`history.persistence``features.multi_agent`
670 742
671Type / Values743Type / Values
672 744
673745`save-all | none``boolean`
674 746
675Details747Details
676 748
677749Control whether Codex saves session transcripts to history.jsonl.Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
678 750
679Key751Key
680 752
681753`include_apply_patch_tool``features.personality`
682 754
683Type / Values755Type / Values
684 756
686 758
687Details759Details
688 760
689761Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.Enable personality selection controls (stable; on by default).
690 762
691Key763Key
692 764
693765`instructions``features.prevent_idle_sleep`
694 766
695Type / Values767Type / Values
696 768
697769`string``boolean`
698 770
699Details771Details
700 772
701773Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
702 774
703Key775Key
704 776
705777`log_dir``features.shell_snapshot`
706 778
707Type / Values779Type / Values
708 780
709781`string (path)``boolean`
710 782
711Details783Details
712 784
713785Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.Snapshot shell environment to speed up repeated commands (stable; on by default).
714 786
715Key787Key
716 788
717789`mcp_oauth_callback_port``features.shell_tool`
718 790
719Type / Values791Type / Values
720 792
721793`integer``boolean`
722 794
723Details795Details
724 796
725797Optional 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.Enable the default `shell` tool for running commands (stable; on by default).
726 798
727Key799Key
728 800
729801`mcp_oauth_credentials_store``features.skill_mcp_dependency_install`
730 802
731Type / Values803Type / Values
732 804
733805`auto | file | keyring``boolean`
734 806
735Details807Details
736 808
737809Preferred store for MCP OAuth credentials.Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
738 810
739Key811Key
740 812
741813`mcp_servers.<id>.args``features.undo`
742 814
743Type / Values815Type / Values
744 816
745817`array<string>``boolean`
746 818
747Details819Details
748 820
749821Arguments passed to the MCP stdio server command.Enable undo support (stable; off by default).
750 822
751Key823Key
752 824
753825`mcp_servers.<id>.bearer_token_env_var``features.unified_exec`
754 826
755Type / Values827Type / Values
756 828
757829`string``boolean`
758 830
759Details831Details
760 832
761833Environment variable sourcing the bearer token for an MCP HTTP server.Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
762 834
763Key835Key
764 836
765837`mcp_servers.<id>.command``features.web_search`
766 838
767Type / Values839Type / Values
768 840
769841`string``boolean`
770 842
771Details843Details
772 844
773845Launcher command for an MCP stdio server.Deprecated legacy toggle; prefer the top-level `web_search` setting.
774 846
775Key847Key
776 848
777849`mcp_servers.<id>.cwd``features.web_search_cached`
778 850
779Type / Values851Type / Values
780 852
781853`string``boolean`
782 854
783Details855Details
784 856
785857Working directory for the MCP stdio server process.Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.
786 858
787Key859Key
788 860
789861`mcp_servers.<id>.disabled_tools``features.web_search_request`
790 862
791Type / Values863Type / Values
792 864
793865`array<string>``boolean`
794 866
795Details867Details
796 868
797869Deny list applied after `enabled_tools` for the MCP server.Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.
798 870
799Key871Key
800 872
801873`mcp_servers.<id>.enabled``feedback.enabled`
802 874
803Type / Values875Type / Values
804 876
806 878
807Details879Details
808 880
809881Disable an MCP server without removing its configuration.Enable feedback submission via `/feedback` across Codex surfaces (default: true).
810 882
811Key883Key
812 884
813885`mcp_servers.<id>.enabled_tools``file_opener`
814 886
815Type / Values887Type / Values
816 888
817889`array<string>``vscode | vscode-insiders | windsurf | cursor | none`
818 890
819Details891Details
820 892
821893Allow list of tool names exposed by the MCP server.URI scheme used to open citations from Codex output (default: `vscode`).
822 894
823Key895Key
824 896
825897`mcp_servers.<id>.env``forced_chatgpt_workspace_id`
826 898
827Type / Values899Type / Values
828 900
829901`map<string,string>``string (uuid)`
830 902
831Details903Details
832 904
833905Environment variables forwarded to the MCP stdio server.Limit ChatGPT logins to a specific workspace identifier.
834 906
835Key907Key
836 908
837909`mcp_servers.<id>.env_http_headers``forced_login_method`
838 910
839Type / Values911Type / Values
840 912
841913`map<string,string>``chatgpt | api`
842 914
843Details915Details
844 916
845917HTTP headers populated from environment variables for an MCP HTTP server.Restrict Codex to a specific authentication method.
846 918
847Key919Key
848 920
849921`mcp_servers.<id>.env_vars``hide_agent_reasoning`
850 922
851Type / Values923Type / Values
852 924
853925`array<string>``boolean`
854 926
855Details927Details
856 928
857929Additional environment variables to whitelist for an MCP stdio server.Suppress reasoning events in both the TUI and `codex exec` output.
858 930
859Key931Key
860 932
861933`mcp_servers.<id>.http_headers``history.max_bytes`
862 934
863Type / Values935Type / Values
864 936
865937`map<string,string>``number`
866 938
867Details939Details
868 940
869941Static HTTP headers included with each MCP HTTP request.If set, caps the history file size in bytes by dropping oldest entries.
870 942
871Key943Key
872 944
873945`mcp_servers.<id>.required``history.persistence`
874 946
875Type / Values947Type / Values
876 948
877949`boolean``save-all | none`
878 950
879Details951Details
880 952
881953When true, fail startup/resume if this enabled MCP server cannot initialize.Control whether Codex saves session transcripts to history.jsonl.
882 954
883Key955Key
884 956
885957`mcp_servers.<id>.startup_timeout_ms``instructions`
886 958
887Type / Values959Type / Values
888 960
889961`number``string`
890 962
891Details963Details
892 964
893965Alias for `startup_timeout_sec` in milliseconds.Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.
894 966
895Key967Key
896 968
897969`mcp_servers.<id>.startup_timeout_sec``log_dir`
898 970
899Type / Values971Type / Values
900 972
901973`number``string (path)`
902 974
903Details975Details
904 976
905977Override the default 10s startup timeout for an MCP server.Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.
906 978
907Key979Key
908 980
909981`mcp_servers.<id>.tool_timeout_sec``mcp_oauth_callback_port`
910 982
911Type / Values983Type / Values
912 984
913985`number``integer`
914 986
915Details987Details
916 988
917989Override the default 60s per-tool timeout for an MCP server.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.
918 990
919Key991Key
920 992
921993`mcp_servers.<id>.url``mcp_oauth_callback_url`
922 994
923Type / Values995Type / Values
924 996
926 998
927Details999Details
928 1000
9291001Endpoint for an MCP streamable HTTP server.Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
930 1002
931Key1003Key
932 1004
9331005`model``mcp_oauth_credentials_store`
934 1006
935Type / Values1007Type / Values
936 1008
9371009`string``auto | file | keyring`
938 1010
939Details1011Details
940 1012
9411013Model to use (e.g., `gpt-5-codex`).Preferred store for MCP OAuth credentials.
942 1014
943Key1015Key
944 1016
9451017`model_auto_compact_token_limit``mcp_servers.<id>.args`
946 1018
947Type / Values1019Type / Values
948 1020
9491021`number``array<string>`
950 1022
951Details1023Details
952 1024
9531025Token threshold that triggers automatic history compaction (unset uses model defaults).Arguments passed to the MCP stdio server command.
954 1026
955Key1027Key
956 1028
9571029`model_context_window``mcp_servers.<id>.bearer_token_env_var`
958 1030
959Type / Values1031Type / Values
960 1032
9611033`number``string`
962 1034
963Details1035Details
964 1036
9651037Context window tokens available to the active model.Environment variable sourcing the bearer token for an MCP HTTP server.
966 1038
967Key1039Key
968 1040
9691041`model_instructions_file``mcp_servers.<id>.command`
970 1042
971Type / Values1043Type / Values
972 1044
9731045`string (path)``string`
974 1046
975Details1047Details
976 1048
9771049Replacement for built-in instructions instead of `AGENTS.md`.Launcher command for an MCP stdio server.
978 1050
979Key1051Key
980 1052
9811053`model_provider``mcp_servers.<id>.cwd`
982 1054
983Type / Values1055Type / Values
984 1056
986 1058
987Details1059Details
988 1060
9891061Provider id from `model_providers` (default: `openai`).Working directory for the MCP stdio server process.
990 1062
991Key1063Key
992 1064
9931065`model_providers.<id>.base_url``mcp_servers.<id>.disabled_tools`
994 1066
995Type / Values1067Type / Values
996 1068
9971069`string``array<string>`
998 1070
999Details1071Details
1000 1072
10011073API base URL for the model provider.Deny list applied after `enabled_tools` for the MCP server.
1002 1074
1003Key1075Key
1004 1076
10051077`model_providers.<id>.env_http_headers``mcp_servers.<id>.enabled`
1078
1079Type / Values
1080
1081`boolean`
1082
1083Details
1084
1085Disable an MCP server without removing its configuration.
1086
1087Key
1088
1089`mcp_servers.<id>.enabled_tools`
1090
1091Type / Values
1092
1093`array<string>`
1094
1095Details
1096
1097Allow list of tool names exposed by the MCP server.
1098
1099Key
1100
1101`mcp_servers.<id>.env`
1006 1102
1007Type / Values1103Type / Values
1008 1104
1010 1106
1011Details1107Details
1012 1108
10131109HTTP headers populated from environment variables when present.Environment variables forwarded to the MCP stdio server.
1014 1110
1015Key1111Key
1016 1112
10171113`model_providers.<id>.env_key``mcp_servers.<id>.env_http_headers`
1018 1114
1019Type / Values1115Type / Values
1020 1116
10211117`string``map<string,string>`
1022 1118
1023Details1119Details
1024 1120
10251121Environment variable supplying the provider API key.HTTP headers populated from environment variables for an MCP HTTP server.
1026 1122
1027Key1123Key
1028 1124
10291125`model_providers.<id>.env_key_instructions``mcp_servers.<id>.env_vars`
1126
1127Type / Values
1128
1129`array<string>`
1130
1131Details
1132
1133Additional environment variables to whitelist for an MCP stdio server.
1134
1135Key
1136
1137`mcp_servers.<id>.http_headers`
1138
1139Type / Values
1140
1141`map<string,string>`
1142
1143Details
1144
1145Static HTTP headers included with each MCP HTTP request.
1146
1147Key
1148
1149`mcp_servers.<id>.oauth_resource`
1030 1150
1031Type / Values1151Type / Values
1032 1152
1034 1154
1035Details1155Details
1036 1156
10371157Optional setup guidance for the provider API key.Optional RFC 8707 OAuth resource parameter to include during MCP login.
1038 1158
1039Key1159Key
1040 1160
10411161`model_providers.<id>.experimental_bearer_token``mcp_servers.<id>.required`
1162
1163Type / Values
1164
1165`boolean`
1166
1167Details
1168
1169When true, fail startup/resume if this enabled MCP server cannot initialize.
1170
1171Key
1172
1173`mcp_servers.<id>.scopes`
1174
1175Type / Values
1176
1177`array<string>`
1178
1179Details
1180
1181OAuth scopes to request when authenticating to that MCP server.
1182
1183Key
1184
1185`mcp_servers.<id>.startup_timeout_ms`
1186
1187Type / Values
1188
1189`number`
1190
1191Details
1192
1193Alias for `startup_timeout_sec` in milliseconds.
1194
1195Key
1196
1197`mcp_servers.<id>.startup_timeout_sec`
1198
1199Type / Values
1200
1201`number`
1202
1203Details
1204
1205Override the default 10s startup timeout for an MCP server.
1206
1207Key
1208
1209`mcp_servers.<id>.tool_timeout_sec`
1210
1211Type / Values
1212
1213`number`
1214
1215Details
1216
1217Override the default 60s per-tool timeout for an MCP server.
1218
1219Key
1220
1221`mcp_servers.<id>.url`
1042 1222
1043Type / Values1223Type / Values
1044 1224
1046 1226
1047Details1227Details
1048 1228
10491229Direct bearer token for the provider (discouraged; use `env_key`).Endpoint for an MCP streamable HTTP server.
1050 1230
1051Key1231Key
1052 1232
10531233`model_providers.<id>.http_headers``memories.consolidation_model`
1054 1234
1055Type / Values1235Type / Values
1056 1236
10571237`map<string,string>``string`
1058 1238
1059Details1239Details
1060 1240
10611241Static HTTP headers added to provider requests.Optional model override for global memory consolidation.
1062 1242
1063Key1243Key
1064 1244
10651245`model_providers.<id>.name``memories.extract_model`
1066 1246
1067Type / Values1247Type / Values
1068 1248
1070 1250
1071Details1251Details
1072 1252
10731253Display name for a custom model provider.Optional model override for per-thread memory extraction.
1074 1254
1075Key1255Key
1076 1256
10771257`model_providers.<id>.query_params``memories.generate_memories`
1078 1258
1079Type / Values1259Type / Values
1080 1260
10811261`map<string,string>``boolean`
1082 1262
1083Details1263Details
1084 1264
10851265Extra query parameters appended to provider requests.When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1086 1266
1087Key1267Key
1088 1268
10891269`model_providers.<id>.request_max_retries``memories.max_raw_memories_for_consolidation`
1090 1270
1091Type / Values1271Type / Values
1092 1272
1094 1274
1095Details1275Details
1096 1276
10971277Retry count for HTTP requests to the provider (default: 4).Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1098 1278
1099Key1279Key
1100 1280
11011281`model_providers.<id>.requires_openai_auth``memories.max_rollout_age_days`
1282
1283Type / Values
1284
1285`number`
1286
1287Details
1288
1289Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1290
1291Key
1292
1293`memories.max_rollouts_per_startup`
1294
1295Type / Values
1296
1297`number`
1298
1299Details
1300
1301Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1302
1303Key
1304
1305`memories.max_unused_days`
1306
1307Type / Values
1308
1309`number`
1310
1311Details
1312
1313Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1314
1315Key
1316
1317`memories.min_rollout_idle_hours`
1318
1319Type / Values
1320
1321`number`
1322
1323Details
1324
1325Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1326
1327Key
1328
1329`memories.no_memories_if_mcp_or_web_search`
1102 1330
1103Type / Values1331Type / Values
1104 1332
1106 1334
1107Details1335Details
1108 1336
11091337The provider uses OpenAI authentication (defaults to false).When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`.
1110 1338
1111Key1339Key
1112 1340
11131341`model_providers.<id>.stream_idle_timeout_ms``memories.use_memories`
1342
1343Type / Values
1344
1345`boolean`
1346
1347Details
1348
1349When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1350
1351Key
1352
1353`model`
1354
1355Type / Values
1356
1357`string`
1358
1359Details
1360
1361Model to use (e.g., `gpt-5.4`).
1362
1363Key
1364
1365`model_auto_compact_token_limit`
1114 1366
1115Type / Values1367Type / Values
1116 1368
1118 1370
1119Details1371Details
1120 1372
11211373Idle timeout for SSE streams in milliseconds (default: 300000).Token threshold that triggers automatic history compaction (unset uses model defaults).
1122 1374
1123Key1375Key
1124 1376
11251377`model_providers.<id>.stream_max_retries``model_catalog_json`
1378
1379Type / Values
1380
1381`string (path)`
1382
1383Details
1384
1385Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1386
1387Key
1388
1389`model_context_window`
1126 1390
1127Type / Values1391Type / Values
1128 1392
1130 1394
1131Details1395Details
1132 1396
11331397Retry count for SSE streaming interruptions (default: 5).Context window tokens available to the active model.
1134 1398
1135Key1399Key
1136 1400
11371401`model_providers.<id>.wire_api``model_instructions_file`
1138 1402
1139Type / Values1403Type / Values
1140 1404
11411405`chat | responses``string (path)`
1142 1406
1143Details1407Details
1144 1408
11451409Protocol used by the provider (defaults to `chat` if omitted).Replacement for built-in instructions instead of `AGENTS.md`.
1146 1410
1147Key1411Key
1148 1412
11491413`model_reasoning_effort``model_provider`
1150 1414
1151Type / Values1415Type / Values
1152 1416
11531417`minimal | low | medium | high | xhigh``string`
1154 1418
1155Details1419Details
1156 1420
11571421Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).Provider id from `model_providers` (default: `openai`).
1158 1422
1159Key1423Key
1160 1424
11611425`model_reasoning_summary``model_providers.<id>`
1162 1426
1163Type / Values1427Type / Values
1164 1428
11651429`auto | concise | detailed | none``table`
1166 1430
1167Details1431Details
1168 1432
11691433Select reasoning summary detail or disable summaries entirely.Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1170 1434
1171Key1435Key
1172 1436
11731437`model_supports_reasoning_summaries``model_providers.<id>.auth`
1174 1438
1175Type / Values1439Type / Values
1176 1440
11771441`boolean``table`
1178 1442
1179Details1443Details
1180 1444
11811445Force Codex to send or not send reasoning metadata.Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1182 1446
1183Key1447Key
1184 1448
11851449`model_verbosity``model_providers.<id>.auth.args`
1186 1450
1187Type / Values1451Type / Values
1188 1452
11891453`low | medium | high``array<string>`
1190 1454
1191Details1455Details
1192 1456
11931457Control GPT-5 Responses API verbosity (defaults to `medium`).Arguments passed to the token command.
1194 1458
1195Key1459Key
1196 1460
11971461`notice.hide_full_access_warning``model_providers.<id>.auth.command`
1462
1463Type / Values
1464
1465`string`
1466
1467Details
1468
1469Command to run when Codex needs a bearer token. The command must print the token to stdout.
1470
1471Key
1472
1473`model_providers.<id>.auth.cwd`
1474
1475Type / Values
1476
1477`string (path)`
1478
1479Details
1480
1481Working directory for the token command.
1482
1483Key
1484
1485`model_providers.<id>.auth.refresh_interval_ms`
1486
1487Type / Values
1488
1489`number`
1490
1491Details
1492
1493How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1494
1495Key
1496
1497`model_providers.<id>.auth.timeout_ms`
1498
1499Type / Values
1500
1501`number`
1502
1503Details
1504
1505Maximum token command runtime in milliseconds (default: 5000).
1506
1507Key
1508
1509`model_providers.<id>.base_url`
1510
1511Type / Values
1512
1513`string`
1514
1515Details
1516
1517API base URL for the model provider.
1518
1519Key
1520
1521`model_providers.<id>.env_http_headers`
1522
1523Type / Values
1524
1525`map<string,string>`
1526
1527Details
1528
1529HTTP headers populated from environment variables when present.
1530
1531Key
1532
1533`model_providers.<id>.env_key`
1534
1535Type / Values
1536
1537`string`
1538
1539Details
1540
1541Environment variable supplying the provider API key.
1542
1543Key
1544
1545`model_providers.<id>.env_key_instructions`
1546
1547Type / Values
1548
1549`string`
1550
1551Details
1552
1553Optional setup guidance for the provider API key.
1554
1555Key
1556
1557`model_providers.<id>.experimental_bearer_token`
1558
1559Type / Values
1560
1561`string`
1562
1563Details
1564
1565Direct bearer token for the provider (discouraged; use `env_key`).
1566
1567Key
1568
1569`model_providers.<id>.http_headers`
1570
1571Type / Values
1572
1573`map<string,string>`
1574
1575Details
1576
1577Static HTTP headers added to provider requests.
1578
1579Key
1580
1581`model_providers.<id>.name`
1582
1583Type / Values
1584
1585`string`
1586
1587Details
1588
1589Display name for a custom model provider.
1590
1591Key
1592
1593`model_providers.<id>.query_params`
1594
1595Type / Values
1596
1597`map<string,string>`
1598
1599Details
1600
1601Extra query parameters appended to provider requests.
1602
1603Key
1604
1605`model_providers.<id>.request_max_retries`
1606
1607Type / Values
1608
1609`number`
1610
1611Details
1612
1613Retry count for HTTP requests to the provider (default: 4).
1614
1615Key
1616
1617`model_providers.<id>.requires_openai_auth`
1618
1619Type / Values
1620
1621`boolean`
1622
1623Details
1624
1625The provider uses OpenAI authentication (defaults to false).
1626
1627Key
1628
1629`model_providers.<id>.stream_idle_timeout_ms`
1630
1631Type / Values
1632
1633`number`
1634
1635Details
1636
1637Idle timeout for SSE streams in milliseconds (default: 300000).
1638
1639Key
1640
1641`model_providers.<id>.stream_max_retries`
1642
1643Type / Values
1644
1645`number`
1646
1647Details
1648
1649Retry count for SSE streaming interruptions (default: 5).
1650
1651Key
1652
1653`model_providers.<id>.supports_websockets`
1654
1655Type / Values
1656
1657`boolean`
1658
1659Details
1660
1661Whether that provider supports the Responses API WebSocket transport.
1662
1663Key
1664
1665`model_providers.<id>.wire_api`
1666
1667Type / Values
1668
1669`responses`
1670
1671Details
1672
1673Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1674
1675Key
1676
1677`model_reasoning_effort`
1678
1679Type / Values
1680
1681`minimal | low | medium | high | xhigh`
1682
1683Details
1684
1685Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).
1686
1687Key
1688
1689`model_reasoning_summary`
1690
1691Type / Values
1692
1693`auto | concise | detailed | none`
1694
1695Details
1696
1697Select reasoning summary detail or disable summaries entirely.
1698
1699Key
1700
1701`model_supports_reasoning_summaries`
1702
1703Type / Values
1704
1705`boolean`
1706
1707Details
1708
1709Force Codex to send or not send reasoning metadata.
1710
1711Key
1712
1713`model_verbosity`
1714
1715Type / Values
1716
1717`low | medium | high`
1718
1719Details
1720
1721Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1722
1723Key
1724
1725`notice.hide_full_access_warning`
1726
1727Type / Values
1728
1729`boolean`
1730
1731Details
1732
1733Track acknowledgement of the full access warning prompt.
1734
1735Key
1736
1737`notice.hide_gpt-5.1-codex-max_migration_prompt`
1738
1739Type / Values
1740
1741`boolean`
1742
1743Details
1744
1745Track acknowledgement of the gpt-5.1-codex-max migration prompt.
1746
1747Key
1748
1749`notice.hide_gpt5_1_migration_prompt`
1750
1751Type / Values
1752
1753`boolean`
1754
1755Details
1756
1757Track acknowledgement of the GPT-5.1 migration prompt.
1758
1759Key
1760
1761`notice.hide_rate_limit_model_nudge`
1762
1763Type / Values
1764
1765`boolean`
1766
1767Details
1768
1769Track opt-out of the rate limit model switch reminder.
1770
1771Key
1772
1773`notice.hide_world_writable_warning`
1774
1775Type / Values
1776
1777`boolean`
1778
1779Details
1780
1781Track acknowledgement of the Windows world-writable directories warning.
1782
1783Key
1784
1785`notice.model_migrations`
1786
1787Type / Values
1788
1789`map<string,string>`
1790
1791Details
1792
1793Track acknowledged model migrations as old->new mappings.
1794
1795Key
1796
1797`notify`
1798
1799Type / Values
1800
1801`array<string>`
1802
1803Details
1804
1805Command invoked for notifications; receives a JSON payload from Codex.
1806
1807Key
1808
1809`openai_base_url`
1810
1811Type / Values
1812
1813`string`
1814
1815Details
1816
1817Base URL override for the built-in `openai` model provider.
1818
1819Key
1820
1821`oss_provider`
1822
1823Type / Values
1824
1825`lmstudio | ollama`
1826
1827Details
1828
1829Default local provider used when running with `--oss` (defaults to prompting if unset).
1830
1831Key
1832
1833`otel.environment`
1834
1835Type / Values
1836
1837`string`
1838
1839Details
1840
1841Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1842
1843Key
1844
1845`otel.exporter`
1846
1847Type / Values
1848
1849`none | otlp-http | otlp-grpc`
1850
1851Details
1852
1853Select the OpenTelemetry exporter and provide any endpoint metadata.
1854
1855Key
1856
1857`otel.exporter.<id>.endpoint`
1858
1859Type / Values
1860
1861`string`
1862
1863Details
1864
1865Exporter endpoint for OTEL logs.
1866
1867Key
1868
1869`otel.exporter.<id>.headers`
1870
1871Type / Values
1872
1873`map<string,string>`
1874
1875Details
1876
1877Static headers included with OTEL exporter requests.
1878
1879Key
1880
1881`otel.exporter.<id>.protocol`
1882
1883Type / Values
1884
1885`binary | json`
1886
1887Details
1888
1889Protocol used by the OTLP/HTTP exporter.
1890
1891Key
1892
1893`otel.exporter.<id>.tls.ca-certificate`
1894
1895Type / Values
1896
1897`string`
1898
1899Details
1900
1901CA certificate path for OTEL exporter TLS.
1902
1903Key
1904
1905`otel.exporter.<id>.tls.client-certificate`
1906
1907Type / Values
1908
1909`string`
1910
1911Details
1912
1913Client certificate path for OTEL exporter TLS.
1914
1915Key
1916
1917`otel.exporter.<id>.tls.client-private-key`
1918
1919Type / Values
1920
1921`string`
1922
1923Details
1924
1925Client private key path for OTEL exporter TLS.
1926
1927Key
1928
1929`otel.log_user_prompt`
1930
1931Type / Values
1932
1933`boolean`
1934
1935Details
1936
1937Opt in to exporting raw user prompts with OpenTelemetry logs.
1938
1939Key
1940
1941`otel.metrics_exporter`
1942
1943Type / Values
1944
1945`none | statsig | otlp-http | otlp-grpc`
1946
1947Details
1948
1949Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1950
1951Key
1952
1953`otel.trace_exporter`
1954
1955Type / Values
1956
1957`none | otlp-http | otlp-grpc`
1958
1959Details
1960
1961Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1962
1963Key
1964
1965`otel.trace_exporter.<id>.endpoint`
1966
1967Type / Values
1968
1969`string`
1970
1971Details
1972
1973Trace exporter endpoint for OTEL logs.
1974
1975Key
1976
1977`otel.trace_exporter.<id>.headers`
1978
1979Type / Values
1980
1981`map<string,string>`
1982
1983Details
1984
1985Static headers included with OTEL trace exporter requests.
1986
1987Key
1988
1989`otel.trace_exporter.<id>.protocol`
1990
1991Type / Values
1992
1993`binary | json`
1994
1995Details
1996
1997Protocol used by the OTLP/HTTP trace exporter.
1998
1999Key
2000
2001`otel.trace_exporter.<id>.tls.ca-certificate`
1198 2002
1199Type / Values2003Type / Values
1200 2004
12012005`boolean``string`
1202 2006
1203Details2007Details
1204 2008
12052009Track acknowledgement of the full access warning prompt.CA certificate path for OTEL trace exporter TLS.
1206 2010
1207Key2011Key
1208 2012
12092013`notice.hide_gpt-5.1-codex-max_migration_prompt``otel.trace_exporter.<id>.tls.client-certificate`
1210 2014
1211Type / Values2015Type / Values
1212 2016
12132017`boolean``string`
1214 2018
1215Details2019Details
1216 2020
12172021Track acknowledgement of the gpt-5.1-codex-max migration prompt.Client certificate path for OTEL trace exporter TLS.
1218 2022
1219Key2023Key
1220 2024
12212025`notice.hide_gpt5_1_migration_prompt``otel.trace_exporter.<id>.tls.client-private-key`
1222 2026
1223Type / Values2027Type / Values
1224 2028
12252029`boolean``string`
1226 2030
1227Details2031Details
1228 2032
12292033Track acknowledgement of the GPT-5.1 migration prompt.Client private key path for OTEL trace exporter TLS.
1230 2034
1231Key2035Key
1232 2036
12332037`notice.hide_rate_limit_model_nudge``permissions.<name>.filesystem`
1234 2038
1235Type / Values2039Type / Values
1236 2040
12372041`boolean``table`
1238 2042
1239Details2043Details
1240 2044
12412045Track opt-out of the rate limit model switch reminder.Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
1242 2046
1243Key2047Key
1244 2048
12452049`notice.hide_world_writable_warning``permissions.<name>.filesystem.":project_roots".<subpath>`
1246 2050
1247Type / Values2051Type / Values
1248 2052
12492053`boolean``"read" | "write" | "none"`
1250 2054
1251Details2055Details
1252 2056
12532057Track acknowledgement of the Windows world-writable directories warning.Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.
1254 2058
1255Key2059Key
1256 2060
12572061`notice.model_migrations``permissions.<name>.filesystem.<path>`
1258 2062
1259Type / Values2063Type / Values
1260 2064
12612065`map<string,string>``"read" | "write" | "none" | table`
1262 2066
1263Details2067Details
1264 2068
12652069Track acknowledged model migrations as old->new mappings.Grant direct access for a path or special token, or scope nested entries under that root.
1266 2070
1267Key2071Key
1268 2072
12692073`notify``permissions.<name>.network.allow_local_binding`
1270 2074
1271Type / Values2075Type / Values
1272 2076
12732077`array<string>``boolean`
1274 2078
1275Details2079Details
1276 2080
12772081Command invoked for notifications; receives a JSON payload from Codex.Permit local bind/listen operations through the managed proxy.
1278 2082
1279Key2083Key
1280 2084
12812085`oss_provider``permissions.<name>.network.allow_upstream_proxy`
1282 2086
1283Type / Values2087Type / Values
1284 2088
12852089`lmstudio | ollama``boolean`
1286 2090
1287Details2091Details
1288 2092
12892093Default local provider used when running with `--oss` (defaults to prompting if unset).Allow the managed proxy to chain to another upstream proxy.
1290 2094
1291Key2095Key
1292 2096
12932097`otel.environment``permissions.<name>.network.dangerously_allow_all_unix_sockets`
1294 2098
1295Type / Values2099Type / Values
1296 2100
12972101`string``boolean`
1298 2102
1299Details2103Details
1300 2104
13012105Environment tag applied to emitted OpenTelemetry events (default: `dev`).Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
1302 2106
1303Key2107Key
1304 2108
13052109`otel.exporter``permissions.<name>.network.dangerously_allow_non_loopback_proxy`
1306 2110
1307Type / Values2111Type / Values
1308 2112
13092113`none | otlp-http | otlp-grpc``boolean`
1310 2114
1311Details2115Details
1312 2116
13132117Select the OpenTelemetry exporter and provide any endpoint metadata.Permit non-loopback bind addresses for the managed proxy listener.
1314 2118
1315Key2119Key
1316 2120
13172121`otel.exporter.<id>.endpoint``permissions.<name>.network.domains`
1318 2122
1319Type / Values2123Type / Values
1320 2124
13212125`string``map<string, allow | deny>`
1322 2126
1323Details2127Details
1324 2128
13252129Exporter endpoint for OTEL logs.Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
1326 2130
1327Key2131Key
1328 2132
13292133`otel.exporter.<id>.headers``permissions.<name>.network.enable_socks5`
1330 2134
1331Type / Values2135Type / Values
1332 2136
13332137`map<string,string>``boolean`
1334 2138
1335Details2139Details
1336 2140
13372141Static headers included with OTEL exporter requests.Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
1338 2142
1339Key2143Key
1340 2144
13412145`otel.exporter.<id>.protocol``permissions.<name>.network.enable_socks5_udp`
1342 2146
1343Type / Values2147Type / Values
1344 2148
13452149`binary | json``boolean`
1346 2150
1347Details2151Details
1348 2152
13492153Protocol used by the OTLP/HTTP exporter.Allow UDP over the SOCKS5 listener when enabled.
1350 2154
1351Key2155Key
1352 2156
13532157`otel.exporter.<id>.tls.ca-certificate``permissions.<name>.network.enabled`
1354 2158
1355Type / Values2159Type / Values
1356 2160
13572161`string``boolean`
1358 2162
1359Details2163Details
1360 2164
13612165CA certificate path for OTEL exporter TLS.Enable network access for this named permissions profile.
1362 2166
1363Key2167Key
1364 2168
13652169`otel.exporter.<id>.tls.client-certificate``permissions.<name>.network.mode`
1366 2170
1367Type / Values2171Type / Values
1368 2172
13692173`string``limited | full`
1370 2174
1371Details2175Details
1372 2176
13732177Client certificate path for OTEL exporter TLS.Network proxy mode used for subprocess traffic.
1374 2178
1375Key2179Key
1376 2180
13772181`otel.exporter.<id>.tls.client-private-key``permissions.<name>.network.proxy_url`
1378 2182
1379Type / Values2183Type / Values
1380 2184
1382 2186
1383Details2187Details
1384 2188
13852189Client private key path for OTEL exporter TLS.HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
1386 2190
1387Key2191Key
1388 2192
13892193`otel.log_user_prompt``permissions.<name>.network.socks_url`
1390 2194
1391Type / Values2195Type / Values
1392 2196
13932197`boolean``string`
1394 2198
1395Details2199Details
1396 2200
13972201Opt in to exporting raw user prompts with OpenTelemetry logs.SOCKS5 proxy endpoint used by this permissions profile.
1398 2202
1399Key2203Key
1400 2204
14012205`otel.trace_exporter``permissions.<name>.network.unix_sockets`
1402 2206
1403Type / Values2207Type / Values
1404 2208
14052209`none | otlp-http | otlp-grpc``map<string, allow | none>`
1406 2210
1407Details2211Details
1408 2212
14092213Select the OpenTelemetry trace exporter and provide any endpoint metadata.Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
1410 2214
1411Key2215Key
1412 2216
14132217`otel.trace_exporter.<id>.endpoint``personality`
1414 2218
1415Type / Values2219Type / Values
1416 2220
14172221`string``none | friendly | pragmatic`
1418 2222
1419Details2223Details
1420 2224
14212225Trace exporter endpoint for OTEL logs.Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
1422 2226
1423Key2227Key
1424 2228
14252229`otel.trace_exporter.<id>.headers``plan_mode_reasoning_effort`
1426 2230
1427Type / Values2231Type / Values
1428 2232
14292233`map<string,string>``none | minimal | low | medium | high | xhigh`
1430 2234
1431Details2235Details
1432 2236
14332237Static headers included with OTEL trace exporter requests.Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
1434 2238
1435Key2239Key
1436 2240
14372241`otel.trace_exporter.<id>.protocol``profile`
1438 2242
1439Type / Values2243Type / Values
1440 2244
14412245`binary | json``string`
1442 2246
1443Details2247Details
1444 2248
14452249Protocol used by the OTLP/HTTP trace exporter.Default profile applied at startup (equivalent to `--profile`).
1446 2250
1447Key2251Key
1448 2252
14492253`otel.trace_exporter.<id>.tls.ca-certificate``profiles.<name>.*`
1450 2254
1451Type / Values2255Type / Values
1452 2256
14532257`string``various`
1454 2258
1455Details2259Details
1456 2260
14572261CA certificate path for OTEL trace exporter TLS.Profile-scoped overrides for any of the supported configuration keys.
1458 2262
1459Key2263Key
1460 2264
14612265`otel.trace_exporter.<id>.tls.client-certificate``profiles.<name>.analytics.enabled`
1462 2266
1463Type / Values2267Type / Values
1464 2268
14652269`string``boolean`
1466 2270
1467Details2271Details
1468 2272
14692273Client certificate path for OTEL trace exporter TLS.Profile-scoped analytics enablement override.
1470 2274
1471Key2275Key
1472 2276
14732277`otel.trace_exporter.<id>.tls.client-private-key``profiles.<name>.experimental_use_unified_exec_tool`
1474 2278
1475Type / Values2279Type / Values
1476 2280
14772281`string``boolean`
1478 2282
1479Details2283Details
1480 2284
14812285Client private key path for OTEL trace exporter TLS.Legacy name for enabling unified exec; prefer `[features].unified_exec`.
1482 2286
1483Key2287Key
1484 2288
14852289`personality``profiles.<name>.model_catalog_json`
1486 2290
1487Type / Values2291Type / Values
1488 2292
14892293`none | friendly | pragmatic``string (path)`
1490 2294
1491Details2295Details
1492 2296
14932297Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
1494 2298
1495Key2299Key
1496 2300
14972301`profile``profiles.<name>.model_instructions_file`
1498 2302
1499Type / Values2303Type / Values
1500 2304
15012305`string``string (path)`
1502 2306
1503Details2307Details
1504 2308
15052309Default profile applied at startup (equivalent to `--profile`).Profile-scoped replacement for the built-in instruction file.
1506 2310
1507Key2311Key
1508 2312
15092313`profiles.<name>.*``profiles.<name>.oss_provider`
1510 2314
1511Type / Values2315Type / Values
1512 2316
15132317`various``lmstudio | ollama`
1514 2318
1515Details2319Details
1516 2320
15172321Profile-scoped overrides for any of the supported configuration keys.Profile-scoped OSS provider for `--oss` sessions.
1518 2322
1519Key2323Key
1520 2324
15212325`profiles.<name>.experimental_use_freeform_apply_patch``profiles.<name>.personality`
1522 2326
1523Type / Values2327Type / Values
1524 2328
15252329`boolean``none | friendly | pragmatic`
1526 2330
1527Details2331Details
1528 2332
15292333Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.Profile-scoped communication style override for supported models.
1530 2334
1531Key2335Key
1532 2336
15332337`profiles.<name>.experimental_use_unified_exec_tool``profiles.<name>.plan_mode_reasoning_effort`
1534 2338
1535Type / Values2339Type / Values
1536 2340
15372341`boolean``none | minimal | low | medium | high | xhigh`
1538 2342
1539Details2343Details
1540 2344
15412345Legacy name for enabling unified exec; prefer `[features].unified_exec`.Profile-scoped Plan-mode reasoning override.
1542 2346
1543Key2347Key
1544 2348
15452349`profiles.<name>.include_apply_patch_tool``profiles.<name>.service_tier`
1546 2350
1547Type / Values2351Type / Values
1548 2352
15492353`boolean``flex | fast`
1550 2354
1551Details2355Details
1552 2356
15532357Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.Profile-scoped service tier preference for new turns.
1554 2358
1555Key2359Key
1556 2360
15572361`profiles.<name>.oss_provider``profiles.<name>.tools_view_image`
1558 2362
1559Type / Values2363Type / Values
1560 2364
15612365`lmstudio | ollama``boolean`
1562 2366
1563Details2367Details
1564 2368
15652369Profile-scoped OSS provider for `--oss` sessions.Enable or disable the `view_image` tool in that profile.
1566 2370
1567Key2371Key
1568 2372
15692373`profiles.<name>.personality``profiles.<name>.web_search`
1570 2374
1571Type / Values2375Type / Values
1572 2376
15732377`none | friendly | pragmatic``disabled | cached | live`
1574 2378
1575Details2379Details
1576 2380
15772381Profile-scoped communication style override for supported models.Profile-scoped web search mode override (default: `"cached"`).
1578 2382
1579Key2383Key
1580 2384
15812385`profiles.<name>.web_search``profiles.<name>.windows.sandbox`
1582 2386
1583Type / Values2387Type / Values
1584 2388
15852389`disabled | cached | live``unelevated | elevated`
1586 2390
1587Details2391Details
1588 2392
15892393Profile-scoped web search mode override (default: `"cached"`).Profile-scoped Windows sandbox mode override.
1590 2394
1591Key2395Key
1592 2396
1710 2514
1711Key2515Key
1712 2516
2517`service_tier`
2518
2519Type / Values
2520
2521`flex | fast`
2522
2523Details
2524
2525Preferred service tier for new turns.
2526
2527Key
2528
1713`shell_environment_policy.exclude`2529`shell_environment_policy.exclude`
1714 2530
1715Type / Values2531Type / Values
1830 2646
1831Key2647Key
1832 2648
2649`sqlite_home`
2650
2651Type / Values
2652
2653`string (path)`
2654
2655Details
2656
2657Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.
2658
2659Key
2660
1833`suppress_unstable_features_warning`2661`suppress_unstable_features_warning`
1834 2662
1835Type / Values2663Type / Values
1854 2682
1855Key2683Key
1856 2684
18572685`tools.web_search``tool_suggest.discoverables`
2686
2687Type / Values
2688
2689`array<table>`
2690
2691Details
2692
2693Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2694
2695Key
2696
2697`tools.view_image`
1858 2698
1859Type / Values2699Type / Values
1860 2700
1862 2702
1863Details2703Details
1864 2704
18652705Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.Enable the local-image attachment tool `view_image`.
2706
2707Key
2708
2709`tools.web_search`
2710
2711Type / Values
2712
2713`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2714
2715Details
2716
2717Optional web search tool configuration. The legacy boolean form is still accepted, but the object form lets you set search context size, allowed domains, and approximate user location.
1866 2718
1867Key2719Key
1868 2720
1902 2754
1903Key2755Key
1904 2756
2757`tui.model_availability_nux.<model>`
2758
2759Type / Values
2760
2761`integer`
2762
2763Details
2764
2765Internal startup-tooltip state keyed by model slug.
2766
2767Key
2768
1905`tui.notification_method`2769`tui.notification_method`
1906 2770
1907Type / Values2771Type / Values
1950 2814
1951Key2815Key
1952 2816
2817`tui.terminal_title`
2818
2819Type / Values
2820
2821`array<string> | null`
2822
2823Details
2824
2825Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.
2826
2827Key
2828
2829`tui.theme`
2830
2831Type / Values
2832
2833`string`
2834
2835Details
2836
2837Syntax-highlighting theme override (kebab-case theme name).
2838
2839Key
2840
1953`web_search`2841`web_search`
1954 2842
1955Type / Values2843Type / Values
1972 2860
1973Track Windows onboarding acknowledgement (Windows only).2861Track Windows onboarding acknowledgement (Windows only).
1974 2862
2863Key
2864
2865`windows.sandbox`
2866
2867Type / Values
2868
2869`unelevated | elevated`
2870
2871Details
2872
2873Windows-only native sandbox mode when running Codex natively on Windows.
2874
2875Key
2876
2877`windows.sandbox_private_desktop`
2878
2879Type / Values
2880
2881`boolean`
2882
2883Details
2884
2885Run the final sandboxed child process on a private desktop by default on native Windows. Set `false` only for compatibility with the older `Winsta0\\Default` behavior.
2886
1975Expand to view all2887Expand to view all
1976 2888
1977You 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).
1986 2898
1987## `requirements.toml`2899## `requirements.toml`
1988 2900
19892901`requirements.toml` is an admin-enforced configuration file that constrains security-sensitive settings users can’t override. For details, locations, and examples, see [Admin-enforced requirements](https://developers.openai.com/codex/security#admin-enforced-requirements-requirementstoml).`requirements.toml` is an admin-enforced configuration file that constrains security-sensitive settings users can't override. For details, locations, and examples, see [Admin-enforced requirements](https://developers.openai.com/codex/enterprise/managed-configuration#admin-enforced-requirements-requirementstoml).
1990 2902
1991For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2903For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
1992requirements. See the security page for precedence details.2904requirements. See the security page for precedence details.
1993 2905
2906Use `[features]` in `requirements.toml` to pin feature flags by the same
2907canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
2908
1994| Key | Type / Values | Details |2909| Key | Type / Values | Details |
1995| --- | --- | --- |2910| --- | --- | --- |
19962911| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. || `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`). |
1997| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2913| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
1998| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |2914| `allowed_web_search_modes` | `array<string>` | Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`. |
2915| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2916| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |
1999| `mcp_servers` | `table` | Allowlist of MCP servers that may be enabled. Both the server name (`<id>`) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled. |2917| `mcp_servers` | `table` | Allowlist of MCP servers that may be enabled. Both the server name (`<id>`) and its identity must match for the MCP server to be enabled. Any configured MCP server not in the allowlist (or with a mismatched identity) is disabled. |
2000| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |2918| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |
2001| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |2919| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |
2018 2936
2019Details2937Details
2020 2938
20212939Allowed values for `approval\_policy`.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`).
2022 2952
2023Key2953Key
2024 2954
2046 2976
2047Key2977Key
2048 2978
2979`features`
2980
2981Type / Values
2982
2983`table`
2984
2985Details
2986
2987Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.
2988
2989Key
2990
2991`features.<name>`
2992
2993Type / Values
2994
2995`boolean`
2996
2997Details
2998
2999Require a specific canonical feature key to stay enabled or disabled.
3000
3001Key
3002
2049`mcp_servers`3003`mcp_servers`
2050 3004
2051Type / Values3005Type / Values