1# Configuration Reference1# Configuration Reference
2 2
3Complete reference for Codex config.toml and requirements.toml
4
5Use this page as a searchable reference for Codex configuration files. For conceptual guidance and examples, start with [Config basics](https://developers.openai.com/codex/config-basic) and [Advanced Config](https://developers.openai.com/codex/config-advanced).3Use this page as a searchable reference for Codex configuration files. For conceptual guidance and examples, start with [Config basics](https://developers.openai.com/codex/config-basic) and [Advanced Config](https://developers.openai.com/codex/config-advanced).
6 4
7## `config.toml`5## `config.toml`
8 6
9User-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.
10 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
11| Key | Type / Values | Details |11| Key | Type / Values | Details |
12| --- | --- | --- |12| --- | --- | --- |
13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |
14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |
15| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. |15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |
16| `approval_policy` | `untrusted | on-request | never` | Controls when Codex pauses for approval before executing commands. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |16| `agents.job_max_runtime_seconds` | `number` | Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker. |
17| `apps.<id>.disabled_reason` | `unknown | user` | Optional reason attached when an app/connector is disabled. |17| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |
18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |
19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |
20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
21| `approval_policy` | `untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { granular = { ... } }` to allow or auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |
22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
23| `approval_policy.granular.request_permissions` | `boolean` | When `true`, prompts from the `request_permissions` tool are allowed to surface. |
24| `approval_policy.granular.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface. |
25| `approval_policy.granular.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are allowed to surface. |
26| `approval_policy.granular.skill_approval` | `boolean` | When `true`, skill-script approval prompts are allowed to surface. |
27| `approvals_reviewer` | `user | 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`. |
18| `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. |
19| `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. |
20| `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). |
21| `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. |
22| `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. |
23| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |45| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
24| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |46| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |
25| `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). |
26| `experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`. |
27| `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`. |
28| `features.apply_patch_freeform` | `boolean` | Expose the freeform `apply_patch` tool (experimental). |
29| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |49| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |
30| `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). |50| `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` (under development; off by default). |
31| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |51| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
32| `features.collaboration_modes` | `boolean` | Enable collaboration modes such as plan mode (stable; on by default). |52| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
33| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). |53| `features.guardian_approval` | `boolean` | Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). Use with `approvals_reviewer = "guardian_subagent"`. |
34| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |54| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
35| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default). |55| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
36| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |56| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
37| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output (defaults to true). |57| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
38| `features.remote_models` | `boolean` | Refresh remote model list before showing readiness (experimental). |58| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
39| `features.request_rule` | `boolean` | Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default). |
40| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |
41| `features.search_tool` | `boolean` | Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental). |
42| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (beta). |
43| `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). |
44| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (beta). |60| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
45| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |61| `features.undo` | `boolean` | Enable undo support (stable; off by default). |
62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
46| `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. |
47| `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"`. |
48| `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"`. |
53| `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. |
54| `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. |
55| `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. |
56| `include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |
57| `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`. |
58| `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`. |
59| `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. |
60| `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. |
61| `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. |
62| `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. |
69| `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. |
70| `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. |
71| `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. |
72| `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. |
73| `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. |
74| `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. |
75| `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. |
76| `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. |
77| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |96| `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`). |
78| `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. |
79| `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. |
80| `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`. |
81| `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). |
82| `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. |
83| `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. |
84| `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. |
91| `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). |
92| `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). |
93| `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). |
94| `model_providers.<id>.wire_api` | `chat | responses` | Protocol used by the provider (defaults to `chat` if omitted). |131| `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. |
95| `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). |
96| `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. |
97| `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. |
98| `model_verbosity` | `low | medium | high` | Control GPT-5 Responses API verbosity (defaults to `medium`). |136| `model_verbosity` | `low | medium | high` | Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used. |
99| `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. |
100| `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. |
101| `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. |
103| `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. |
104| `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. |
105| `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. |
106| `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). |
107| `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`). |
108| `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. |
113| `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. |
114| `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. |
115| `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`). |
116| `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. |
117| `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. |
118| `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. |
120| `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. |
121| `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. |
122| `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. |
123| `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. |
124| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |180| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
125| `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. |
126| `profiles.<name>.experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |182| `profiles.<name>.analytics.enabled` | `boolean` | Profile-scoped analytics enablement override. |
127| `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`. |
128| `profiles.<name>.include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |184| `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. |
129| `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. |
130| `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. |
131| `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. |
132| `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. |
133| `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. |
134| `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. |
139| `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. |
140| `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. |
141| `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. |
142| `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. |
143| `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. |
144| `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. |
149| `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. |
150| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |212| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |
151| `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. |
152| `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. |
153| `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. |
154| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |217| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
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. |
155| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |220| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |
156| `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). |
157| `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. |
158| `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). |
159| `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. |
160| `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). |
161| `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). |
162| `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. |
163| `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. |
164 234
165Key235Key
166 236
188 258
189Key259Key
190 260
191`agents.max_threads`261`agents.<name>.nickname_candidates`
192 262
193Type / Values263Type / Values
194 264
195`number`265`array<string>`
196 266
197Details267Details
198 268
199Maximum number of agent threads that can be open concurrently.269Optional pool of display nicknames for spawned agents in that role.
200 270
201Key271Key
202 272
203`approval_policy`273`agents.job_max_runtime_seconds`
204 274
205Type / Values275Type / Values
206 276
207`untrusted | on-request | never`277`number`
208 278
209Details279Details
210 280
211Controls when Codex pauses for approval before executing commands. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.281Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
212 282
213Key283Key
214 284
215`apps.<id>.disabled_reason`285`agents.max_depth`
216 286
217Type / Values287Type / Values
218 288
219`unknown | user`289`number`
220 290
221Details291Details
222 292
223Optional reason attached when an app/connector is disabled.293Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).
224 294
225Key295Key
226 296
227`apps.<id>.enabled`297`agents.max_threads`
228 298
229Type / Values299Type / Values
230 300
231`boolean`301`number`
232 302
233Details303Details
234 304
235Enable or disable a specific app/connector by id (default: true).305Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
236 306
237Key307Key
238 308
239`chatgpt_base_url`309`allow_login_shell`
240 310
241Type / Values311Type / Values
242 312
243`string`313`boolean`
244 314
245Details315Details
246 316
247Override the base URL used during the ChatGPT login flow.317Allow 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.
248 318
249Key319Key
250 320
251`check_for_update_on_startup`321`analytics.enabled`
252 322
253Type / Values323Type / Values
254 324
256 326
257Details327Details
258 328
259Check for Codex updates on startup (set to false only when updates are centrally managed).329Enable or disable analytics for this machine/profile. When unset, the client default applies.
260 330
261Key331Key
262 332
263`cli_auth_credentials_store`333`approval_policy`
264 334
265Type / Values335Type / Values
266 336
267`file | keyring | auto`337`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
268 338
269Details339Details
270 340
271Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).341Controls 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.
272 342
273Key343Key
274 344
275`compact_prompt`345`approval_policy.granular.mcp_elicitations`
276 346
277Type / Values347Type / Values
278 348
279`string`349`boolean`
280 350
281Details351Details
282 352
283Inline override for the history compaction prompt.353When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
284 354
285Key355Key
286 356
287`developer_instructions`357`approval_policy.granular.request_permissions`
288 358
289Type / Values359Type / Values
290 360
291`string`361`boolean`
292 362
293Details363Details
294 364
295Additional developer instructions injected into the session (optional).365When `true`, prompts from the `request_permissions` tool are allowed to surface.
296 366
297Key367Key
298 368
299`disable_paste_burst`369`approval_policy.granular.rules`
300 370
301Type / Values371Type / Values
302 372
304 374
305Details375Details
306 376
307Disable burst-paste detection in the TUI.377When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
308 378
309Key379Key
310 380
311`experimental_compact_prompt_file`381`approval_policy.granular.sandbox_approval`
312 382
313Type / Values383Type / Values
314 384
315`string (path)`385`boolean`
316 386
317Details387Details
318 388
319Load the compaction prompt override from a file (experimental).389When `true`, sandbox escalation approval prompts are allowed to surface.
320 390
321Key391Key
322 392
323`experimental_use_freeform_apply_patch`393`approval_policy.granular.skill_approval`
324 394
325Type / Values395Type / Values
326 396
328 398
329Details399Details
330 400
331Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.401When `true`, skill-script approval prompts are allowed to surface.
332 402
333Key403Key
334 404
335`experimental_use_unified_exec_tool`405`approvals_reviewer`
336 406
337Type / Values407Type / Values
338 408
339`boolean`409`user | guardian_subagent`
340 410
341Details411Details
342 412
343Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.413Select who reviews eligible approval prompts. Defaults to `user`; `guardian_subagent` routes supported reviews through the Guardian reviewer subagent.
344 414
345Key415Key
346 416
347`features.apply_patch_freeform`417`apps._default.destructive_enabled`
348 418
349Type / Values419Type / Values
350 420
352 422
353Details423Details
354 424
355Expose the freeform `apply_patch` tool (experimental).425Default allow/deny for app tools with `destructive_hint = true`.
356 426
357Key427Key
358 428
359`features.apps`429`apps._default.enabled`
360 430
361Type / Values431Type / Values
362 432
364 434
365Details435Details
366 436
367Enable ChatGPT Apps/connectors support (experimental).437Default app enabled state for all apps unless overridden per app.
368 438
369Key439Key
370 440
371`features.apps_mcp_gateway`441`apps._default.open_world_enabled`
372 442
373Type / Values443Type / Values
374 444
376 446
377Details447Details
378 448
379Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).449Default allow/deny for app tools with `open_world_hint = true`.
380 450
381Key451Key
382 452
383`features.child_agents_md`453`apps.<id>.default_tools_approval_mode`
384 454
385Type / Values455Type / Values
386 456
387`boolean`457`auto | prompt | approve`
388 458
389Details459Details
390 460
391Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).461Default approval behavior for tools in this app unless a per-tool override exists.
392 462
393Key463Key
394 464
395`features.collaboration_modes`465`apps.<id>.default_tools_enabled`
396 466
397Type / Values467Type / Values
398 468
400 470
401Details471Details
402 472
403Enable collaboration modes such as plan mode (stable; on by default).473Default enabled state for tools in this app unless a per-tool override exists.
404 474
405Key475Key
406 476
407`features.elevated_windows_sandbox`477`apps.<id>.destructive_enabled`
408 478
409Type / Values479Type / Values
410 480
412 482
413Details483Details
414 484
415Enable the elevated Windows sandbox pipeline (experimental).485Allow or block tools in this app that advertise `destructive_hint = true`.
416 486
417Key487Key
418 488
419`features.experimental_windows_sandbox`489`apps.<id>.enabled`
420 490
421Type / Values491Type / Values
422 492
424 494
425Details495Details
426 496
427Run the Windows restricted-token sandbox (experimental).497Enable or disable a specific app/connector by id (default: true).
428 498
429Key499Key
430 500
431`features.multi_agent`501`apps.<id>.open_world_enabled`
432 502
433Type / Values503Type / Values
434 504
436 506
437Details507Details
438 508
439Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).509Allow or block tools in this app that advertise `open_world_hint = true`.
440 510
441Key511Key
442 512
443`features.personality`513`apps.<id>.tools.<tool>.approval_mode`
444 514
445Type / Values515Type / Values
446 516
447`boolean`517`auto | prompt | approve`
448 518
449Details519Details
450 520
451Enable personality selection controls (stable; on by default).521Per-tool approval behavior override for a single app tool.
452 522
453Key523Key
454 524
455`features.powershell_utf8`525`apps.<id>.tools.<tool>.enabled`
456 526
457Type / Values527Type / Values
458 528
460 530
461Details531Details
462 532
463Force PowerShell UTF-8 output (defaults to true).533Per-tool enabled override for an app tool (for example `repos/list`).
464 534
465Key535Key
466 536
467`features.remote_models`537`background_terminal_max_timeout`
468 538
469Type / Values539Type / Values
470 540
471`boolean`541`number`
472 542
473Details543Details
474 544
475Refresh remote model list before showing readiness (experimental).545Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key.
476 546
477Key547Key
478 548
479`features.request_rule`549`chatgpt_base_url`
480 550
481Type / Values551Type / Values
482 552
483`boolean`553`string`
484 554
485Details555Details
486 556
487Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).557Override the base URL used during the ChatGPT login flow.
488 558
489Key559Key
490 560
491`features.runtime_metrics`561`check_for_update_on_startup`
492 562
493Type / Values563Type / Values
494 564
496 566
497Details567Details
498 568
499Show runtime metrics summary in TUI turn separators (experimental).569Check for Codex updates on startup (set to false only when updates are centrally managed).
500 570
501Key571Key
502 572
503`features.search_tool`573`cli_auth_credentials_store`
504 574
505Type / Values575Type / Values
506 576
507`boolean`577`file | keyring | auto`
508 578
509Details579Details
510 580
511Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).581Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).
512 582
513Key583Key
514 584
515`features.shell_snapshot`585`commit_attribution`
516 586
517Type / Values587Type / Values
518 588
519`boolean`589`string`
520 590
521Details591Details
522 592
523Snapshot shell environment to speed up repeated commands (beta).593Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
524 594
525Key595Key
526 596
527`features.shell_tool`597`compact_prompt`
528 598
529Type / Values599Type / Values
530 600
531`boolean`601`string`
532 602
533Details603Details
534 604
535Enable the default `shell` tool for running commands (stable; on by default).605Inline override for the history compaction prompt.
536 606
537Key607Key
538 608
539`features.unified_exec`609`default_permissions`
540 610
541Type / Values611Type / Values
542 612
543`boolean`613`string`
544 614
545Details615Details
546 616
547Use the unified PTY-backed exec tool (beta).617Name of the default permissions profile to apply to sandboxed tool calls.
548 618
549Key619Key
550 620
551`features.use_linux_sandbox_bwrap`621`developer_instructions`
552 622
553Type / Values623Type / Values
554 624
555`boolean`625`string`
556 626
557Details627Details
558 628
559Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).629Additional developer instructions injected into the session (optional).
560 630
561Key631Key
562 632
563`features.web_search`633`disable_paste_burst`
564 634
565Type / Values635Type / Values
566 636
568 638
569Details639Details
570 640
571Deprecated legacy toggle; prefer the top-level `web_search` setting.641Disable burst-paste detection in the TUI.
572 642
573Key643Key
574 644
575`features.web_search_cached`645`experimental_compact_prompt_file`
576 646
577Type / Values647Type / Values
578 648
579`boolean`649`string (path)`
580 650
581Details651Details
582 652
583Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.653Load the compaction prompt override from a file (experimental).
584 654
585Key655Key
586 656
587`features.web_search_request`657`experimental_use_unified_exec_tool`
588 658
589Type / Values659Type / Values
590 660
592 662
593Details663Details
594 664
595Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.665Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
596 666
597Key667Key
598 668
599`feedback.enabled`669`features.apps`
600 670
601Type / Values671Type / Values
602 672
604 674
605Details675Details
606 676
607Enable feedback submission via `/feedback` across Codex surfaces (default: true).677Enable ChatGPT Apps/connectors support (experimental).
608 678
609Key679Key
610 680
611`file_opener`681`features.codex_hooks`
612 682
613Type / Values683Type / Values
614 684
615`vscode | vscode-insiders | windsurf | cursor | none`685`boolean`
616 686
617Details687Details
618 688
619URI scheme used to open citations from Codex output (default: `vscode`).689Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).
620 690
621Key691Key
622 692
623`forced_chatgpt_workspace_id`693`features.enable_request_compression`
624 694
625Type / Values695Type / Values
626 696
627`string (uuid)`697`boolean`
628 698
629Details699Details
630 700
631Limit ChatGPT logins to a specific workspace identifier.701Compress streaming request bodies with zstd when supported (stable; on by default).
632 702
633Key703Key
634 704
635`forced_login_method`705`features.fast_mode`
636 706
637Type / Values707Type / Values
638 708
639`chatgpt | api`709`boolean`
640 710
641Details711Details
642 712
643Restrict Codex to a specific authentication method.713Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
644 714
645Key715Key
646 716
647`hide_agent_reasoning`717`features.guardian_approval`
648 718
649Type / Values719Type / Values
650 720
652 722
653Details723Details
654 724
655Suppress reasoning events in both the TUI and `codex exec` output.725Route eligible approval requests through the guardian reviewer subagent (experimental; off by default). Use with `approvals_reviewer = "guardian_subagent"`.
656 726
657Key727Key
658 728
659`history.max_bytes`729`features.memories`
660 730
661Type / Values731Type / Values
662 732
663`number`733`boolean`
664 734
665Details735Details
666 736
667If set, caps the history file size in bytes by dropping oldest entries.737Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
668 738
669Key739Key
670 740
671`history.persistence`741`features.multi_agent`
672 742
673Type / Values743Type / Values
674 744
675`save-all | none`745`boolean`
676 746
677Details747Details
678 748
679Control whether Codex saves session transcripts to history.jsonl.749Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
680 750
681Key751Key
682 752
683`include_apply_patch_tool`753`features.personality`
684 754
685Type / Values755Type / Values
686 756
688 758
689Details759Details
690 760
691Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.761Enable personality selection controls (stable; on by default).
692 762
693Key763Key
694 764
695`instructions`765`features.prevent_idle_sleep`
696 766
697Type / Values767Type / Values
698 768
699`string`769`boolean`
700 770
701Details771Details
702 772
703Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.773Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
704 774
705Key775Key
706 776
707`log_dir`777`features.shell_snapshot`
708 778
709Type / Values779Type / Values
710 780
711`string (path)`781`boolean`
712 782
713Details783Details
714 784
715Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.785Snapshot shell environment to speed up repeated commands (stable; on by default).
716 786
717Key787Key
718 788
719`mcp_oauth_callback_port`789`features.shell_tool`
720 790
721Type / Values791Type / Values
722 792
723`integer`793`boolean`
724 794
725Details795Details
726 796
727Optional 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.797Enable the default `shell` tool for running commands (stable; on by default).
728 798
729Key799Key
730 800
731`mcp_oauth_credentials_store`801`features.skill_mcp_dependency_install`
732 802
733Type / Values803Type / Values
734 804
735`auto | file | keyring`805`boolean`
736 806
737Details807Details
738 808
739Preferred store for MCP OAuth credentials.809Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
740 810
741Key811Key
742 812
743`mcp_servers.<id>.args`813`features.undo`
744 814
745Type / Values815Type / Values
746 816
747`array<string>`817`boolean`
748 818
749Details819Details
750 820
751Arguments passed to the MCP stdio server command.821Enable undo support (stable; off by default).
752 822
753Key823Key
754 824
755`mcp_servers.<id>.bearer_token_env_var`825`features.unified_exec`
756 826
757Type / Values827Type / Values
758 828
759`string`829`boolean`
760 830
761Details831Details
762 832
763Environment variable sourcing the bearer token for an MCP HTTP server.833Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
764 834
765Key835Key
766 836
767`mcp_servers.<id>.command`837`features.web_search`
768 838
769Type / Values839Type / Values
770 840
771`string`841`boolean`
772 842
773Details843Details
774 844
775Launcher command for an MCP stdio server.845Deprecated legacy toggle; prefer the top-level `web_search` setting.
776 846
777Key847Key
778 848
779`mcp_servers.<id>.cwd`849`features.web_search_cached`
780 850
781Type / Values851Type / Values
782 852
783`string`853`boolean`
784 854
785Details855Details
786 856
787Working directory for the MCP stdio server process.857Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.
788 858
789Key859Key
790 860
791`mcp_servers.<id>.disabled_tools`861`features.web_search_request`
792 862
793Type / Values863Type / Values
794 864
795`array<string>`865`boolean`
796 866
797Details867Details
798 868
799Deny list applied after `enabled_tools` for the MCP server.869Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.
800 870
801Key871Key
802 872
803`mcp_servers.<id>.enabled`873`feedback.enabled`
804 874
805Type / Values875Type / Values
806 876
808 878
809Details879Details
810 880
811Disable an MCP server without removing its configuration.881Enable feedback submission via `/feedback` across Codex surfaces (default: true).
812 882
813Key883Key
814 884
815`mcp_servers.<id>.enabled_tools`885`file_opener`
816 886
817Type / Values887Type / Values
818 888
819`array<string>`889`vscode | vscode-insiders | windsurf | cursor | none`
820 890
821Details891Details
822 892
823Allow list of tool names exposed by the MCP server.893URI scheme used to open citations from Codex output (default: `vscode`).
824 894
825Key895Key
826 896
827`mcp_servers.<id>.env`897`forced_chatgpt_workspace_id`
828 898
829Type / Values899Type / Values
830 900
831`map<string,string>`901`string (uuid)`
832 902
833Details903Details
834 904
835Environment variables forwarded to the MCP stdio server.905Limit ChatGPT logins to a specific workspace identifier.
836 906
837Key907Key
838 908
839`mcp_servers.<id>.env_http_headers`909`forced_login_method`
840 910
841Type / Values911Type / Values
842 912
843`map<string,string>`913`chatgpt | api`
844 914
845Details915Details
846 916
847HTTP headers populated from environment variables for an MCP HTTP server.917Restrict Codex to a specific authentication method.
848 918
849Key919Key
850 920
851`mcp_servers.<id>.env_vars`921`hide_agent_reasoning`
852 922
853Type / Values923Type / Values
854 924
855`array<string>`925`boolean`
856 926
857Details927Details
858 928
859Additional environment variables to whitelist for an MCP stdio server.929Suppress reasoning events in both the TUI and `codex exec` output.
860 930
861Key931Key
862 932
863`mcp_servers.<id>.http_headers`933`history.max_bytes`
864 934
865Type / Values935Type / Values
866 936
867`map<string,string>`937`number`
868 938
869Details939Details
870 940
871Static HTTP headers included with each MCP HTTP request.941If set, caps the history file size in bytes by dropping oldest entries.
872 942
873Key943Key
874 944
875`mcp_servers.<id>.required`945`history.persistence`
876 946
877Type / Values947Type / Values
878 948
879`boolean`949`save-all | none`
880 950
881Details951Details
882 952
883When true, fail startup/resume if this enabled MCP server cannot initialize.953Control whether Codex saves session transcripts to history.jsonl.
884 954
885Key955Key
886 956
887`mcp_servers.<id>.startup_timeout_ms`957`instructions`
888 958
889Type / Values959Type / Values
890 960
891`number`961`string`
892 962
893Details963Details
894 964
895Alias for `startup_timeout_sec` in milliseconds.965Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.
896 966
897Key967Key
898 968
899`mcp_servers.<id>.startup_timeout_sec`969`log_dir`
900 970
901Type / Values971Type / Values
902 972
903`number`973`string (path)`
904 974
905Details975Details
906 976
907Override the default 10s startup timeout for an MCP server.977Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.
908 978
909Key979Key
910 980
911`mcp_servers.<id>.tool_timeout_sec`981`mcp_oauth_callback_port`
912 982
913Type / Values983Type / Values
914 984
915`number`985`integer`
916 986
917Details987Details
918 988
919Override the default 60s per-tool timeout for an MCP server.989Optional 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.
920 990
921Key991Key
922 992
923`mcp_servers.<id>.url`993`mcp_oauth_callback_url`
924 994
925Type / Values995Type / Values
926 996
928 998
929Details999Details
930 1000
931Endpoint for an MCP streamable HTTP server.1001Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
932 1002
933Key1003Key
934 1004
935`model`1005`mcp_oauth_credentials_store`
936 1006
937Type / Values1007Type / Values
938 1008
939`string`1009`auto | file | keyring`
940 1010
941Details1011Details
942 1012
943Model to use (e.g., `gpt-5-codex`).1013Preferred store for MCP OAuth credentials.
944 1014
945Key1015Key
946 1016
947`model_auto_compact_token_limit`1017`mcp_servers.<id>.args`
948 1018
949Type / Values1019Type / Values
950 1020
951`number`1021`array<string>`
952 1022
953Details1023Details
954 1024
955Token threshold that triggers automatic history compaction (unset uses model defaults).1025Arguments passed to the MCP stdio server command.
956 1026
957Key1027Key
958 1028
959`model_context_window`1029`mcp_servers.<id>.bearer_token_env_var`
960 1030
961Type / Values1031Type / Values
962 1032
963`number`1033`string`
964 1034
965Details1035Details
966 1036
967Context window tokens available to the active model.1037Environment variable sourcing the bearer token for an MCP HTTP server.
968 1038
969Key1039Key
970 1040
971`model_instructions_file`1041`mcp_servers.<id>.command`
972 1042
973Type / Values1043Type / Values
974 1044
975`string (path)`1045`string`
976 1046
977Details1047Details
978 1048
979Replacement for built-in instructions instead of `AGENTS.md`.1049Launcher command for an MCP stdio server.
980 1050
981Key1051Key
982 1052
983`model_provider`1053`mcp_servers.<id>.cwd`
984 1054
985Type / Values1055Type / Values
986 1056
988 1058
989Details1059Details
990 1060
991Provider id from `model_providers` (default: `openai`).1061Working directory for the MCP stdio server process.
992 1062
993Key1063Key
994 1064
995`model_providers.<id>.base_url`1065`mcp_servers.<id>.disabled_tools`
996 1066
997Type / Values1067Type / Values
998 1068
999`string`1069`array<string>`
1000 1070
1001Details1071Details
1002 1072
1003API base URL for the model provider.1073Deny list applied after `enabled_tools` for the MCP server.
1004 1074
1005Key1075Key
1006 1076
1007`model_providers.<id>.env_http_headers`1077`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`
1008 1102
1009Type / Values1103Type / Values
1010 1104
1012 1106
1013Details1107Details
1014 1108
1015HTTP headers populated from environment variables when present.1109Environment variables forwarded to the MCP stdio server.
1016 1110
1017Key1111Key
1018 1112
1019`model_providers.<id>.env_key`1113`mcp_servers.<id>.env_http_headers`
1020 1114
1021Type / Values1115Type / Values
1022 1116
1023`string`1117`map<string,string>`
1024 1118
1025Details1119Details
1026 1120
1027Environment variable supplying the provider API key.1121HTTP headers populated from environment variables for an MCP HTTP server.
1028 1122
1029Key1123Key
1030 1124
1031`model_providers.<id>.env_key_instructions`1125`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`
1032 1150
1033Type / Values1151Type / Values
1034 1152
1036 1154
1037Details1155Details
1038 1156
1039Optional setup guidance for the provider API key.1157Optional RFC 8707 OAuth resource parameter to include during MCP login.
1040 1158
1041Key1159Key
1042 1160
1043`model_providers.<id>.experimental_bearer_token`1161`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`
1044 1222
1045Type / Values1223Type / Values
1046 1224
1048 1226
1049Details1227Details
1050 1228
1051Direct bearer token for the provider (discouraged; use `env_key`).1229Endpoint for an MCP streamable HTTP server.
1052 1230
1053Key1231Key
1054 1232
1055`model_providers.<id>.http_headers`1233`memories.consolidation_model`
1056 1234
1057Type / Values1235Type / Values
1058 1236
1059`map<string,string>`1237`string`
1060 1238
1061Details1239Details
1062 1240
1063Static HTTP headers added to provider requests.1241Optional model override for global memory consolidation.
1064 1242
1065Key1243Key
1066 1244
1067`model_providers.<id>.name`1245`memories.extract_model`
1068 1246
1069Type / Values1247Type / Values
1070 1248
1072 1250
1073Details1251Details
1074 1252
1075Display name for a custom model provider.1253Optional model override for per-thread memory extraction.
1076 1254
1077Key1255Key
1078 1256
1079`model_providers.<id>.query_params`1257`memories.generate_memories`
1080 1258
1081Type / Values1259Type / Values
1082 1260
1083`map<string,string>`1261`boolean`
1084 1262
1085Details1263Details
1086 1264
1087Extra query parameters appended to provider requests.1265When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1088 1266
1089Key1267Key
1090 1268
1091`model_providers.<id>.request_max_retries`1269`memories.max_raw_memories_for_consolidation`
1092 1270
1093Type / Values1271Type / Values
1094 1272
1096 1274
1097Details1275Details
1098 1276
1099Retry count for HTTP requests to the provider (default: 4).1277Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1100 1278
1101Key1279Key
1102 1280
1103`model_providers.<id>.requires_openai_auth`1281`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`
1104 1330
1105Type / Values1331Type / Values
1106 1332
1108 1334
1109Details1335Details
1110 1336
1111The provider uses OpenAI authentication (defaults to false).1337When `true`, threads that use MCP tool calls or web search are kept out of memory generation. Defaults to `false`.
1112 1338
1113Key1339Key
1114 1340
1115`model_providers.<id>.stream_idle_timeout_ms`1341`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`
1116 1366
1117Type / Values1367Type / Values
1118 1368
1120 1370
1121Details1371Details
1122 1372
1123Idle timeout for SSE streams in milliseconds (default: 300000).1373Token threshold that triggers automatic history compaction (unset uses model defaults).
1124 1374
1125Key1375Key
1126 1376
1127`model_providers.<id>.stream_max_retries`1377`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`
1128 1390
1129Type / Values1391Type / Values
1130 1392
1132 1394
1133Details1395Details
1134 1396
1135Retry count for SSE streaming interruptions (default: 5).1397Context window tokens available to the active model.
1136 1398
1137Key1399Key
1138 1400
1139`model_providers.<id>.wire_api`1401`model_instructions_file`
1140 1402
1141Type / Values1403Type / Values
1142 1404
1143`chat | responses`1405`string (path)`
1144 1406
1145Details1407Details
1146 1408
1147Protocol used by the provider (defaults to `chat` if omitted).1409Replacement for built-in instructions instead of `AGENTS.md`.
1148 1410
1149Key1411Key
1150 1412
1151`model_reasoning_effort`1413`model_provider`
1152 1414
1153Type / Values1415Type / Values
1154 1416
1155`minimal | low | medium | high | xhigh`1417`string`
1156 1418
1157Details1419Details
1158 1420
1159Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1421Provider id from `model_providers` (default: `openai`).
1160 1422
1161Key1423Key
1162 1424
1163`model_reasoning_summary`1425`model_providers.<id>`
1164 1426
1165Type / Values1427Type / Values
1166 1428
1167`auto | concise | detailed | none`1429`table`
1168 1430
1169Details1431Details
1170 1432
1171Select reasoning summary detail or disable summaries entirely.1433Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1172 1434
1173Key1435Key
1174 1436
1175`model_supports_reasoning_summaries`1437`model_providers.<id>.auth`
1176 1438
1177Type / Values1439Type / Values
1178 1440
1179`boolean`1441`table`
1180 1442
1181Details1443Details
1182 1444
1183Force Codex to send or not send reasoning metadata.1445Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1184 1446
1185Key1447Key
1186 1448
1187`model_verbosity`1449`model_providers.<id>.auth.args`
1188 1450
1189Type / Values1451Type / Values
1190 1452
1191`low | medium | high`1453`array<string>`
1192 1454
1193Details1455Details
1194 1456
1195Control GPT-5 Responses API verbosity (defaults to `medium`).1457Arguments passed to the token command.
1196 1458
1197Key1459Key
1198 1460
1199`notice.hide_full_access_warning`1461`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`
1200 2002
1201Type / Values2003Type / Values
1202 2004
1203`boolean`2005`string`
1204 2006
1205Details2007Details
1206 2008
1207Track acknowledgement of the full access warning prompt.2009CA certificate path for OTEL trace exporter TLS.
1208 2010
1209Key2011Key
1210 2012
1211`notice.hide_gpt-5.1-codex-max_migration_prompt`2013`otel.trace_exporter.<id>.tls.client-certificate`
1212 2014
1213Type / Values2015Type / Values
1214 2016
1215`boolean`2017`string`
1216 2018
1217Details2019Details
1218 2020
1219Track acknowledgement of the gpt-5.1-codex-max migration prompt.2021Client certificate path for OTEL trace exporter TLS.
1220 2022
1221Key2023Key
1222 2024
1223`notice.hide_gpt5_1_migration_prompt`2025`otel.trace_exporter.<id>.tls.client-private-key`
1224 2026
1225Type / Values2027Type / Values
1226 2028
1227`boolean`2029`string`
1228 2030
1229Details2031Details
1230 2032
1231Track acknowledgement of the GPT-5.1 migration prompt.2033Client private key path for OTEL trace exporter TLS.
1232 2034
1233Key2035Key
1234 2036
1235`notice.hide_rate_limit_model_nudge`2037`permissions.<name>.filesystem`
1236 2038
1237Type / Values2039Type / Values
1238 2040
1239`boolean`2041`table`
1240 2042
1241Details2043Details
1242 2044
1243Track opt-out of the rate limit model switch reminder.2045Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
1244 2046
1245Key2047Key
1246 2048
1247`notice.hide_world_writable_warning`2049`permissions.<name>.filesystem.":project_roots".<subpath>`
1248 2050
1249Type / Values2051Type / Values
1250 2052
1251`boolean`2053`"read" | "write" | "none"`
1252 2054
1253Details2055Details
1254 2056
1255Track acknowledgement of the Windows world-writable directories warning.2057Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself.
1256 2058
1257Key2059Key
1258 2060
1259`notice.model_migrations`2061`permissions.<name>.filesystem.<path>`
1260 2062
1261Type / Values2063Type / Values
1262 2064
1263`map<string,string>`2065`"read" | "write" | "none" | table`
1264 2066
1265Details2067Details
1266 2068
1267Track acknowledged model migrations as old->new mappings.2069Grant direct access for a path or special token, or scope nested entries under that root.
1268 2070
1269Key2071Key
1270 2072
1271`notify`2073`permissions.<name>.network.allow_local_binding`
1272 2074
1273Type / Values2075Type / Values
1274 2076
1275`array<string>`2077`boolean`
1276 2078
1277Details2079Details
1278 2080
1279Command invoked for notifications; receives a JSON payload from Codex.2081Permit local bind/listen operations through the managed proxy.
1280 2082
1281Key2083Key
1282 2084
1283`oss_provider`2085`permissions.<name>.network.allow_upstream_proxy`
1284 2086
1285Type / Values2087Type / Values
1286 2088
1287`lmstudio | ollama`2089`boolean`
1288 2090
1289Details2091Details
1290 2092
1291Default local provider used when running with `--oss` (defaults to prompting if unset).2093Allow the managed proxy to chain to another upstream proxy.
1292 2094
1293Key2095Key
1294 2096
1295`otel.environment`2097`permissions.<name>.network.dangerously_allow_all_unix_sockets`
1296 2098
1297Type / Values2099Type / Values
1298 2100
1299`string`2101`boolean`
1300 2102
1301Details2103Details
1302 2104
1303Environment tag applied to emitted OpenTelemetry events (default: `dev`).2105Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
1304 2106
1305Key2107Key
1306 2108
1307`otel.exporter`2109`permissions.<name>.network.dangerously_allow_non_loopback_proxy`
1308 2110
1309Type / Values2111Type / Values
1310 2112
1311`none | otlp-http | otlp-grpc`2113`boolean`
1312 2114
1313Details2115Details
1314 2116
1315Select the OpenTelemetry exporter and provide any endpoint metadata.2117Permit non-loopback bind addresses for the managed proxy listener.
1316 2118
1317Key2119Key
1318 2120
1319`otel.exporter.<id>.endpoint`2121`permissions.<name>.network.domains`
1320 2122
1321Type / Values2123Type / Values
1322 2124
1323`string`2125`map<string, allow | deny>`
1324 2126
1325Details2127Details
1326 2128
1327Exporter endpoint for OTEL logs.2129Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
1328 2130
1329Key2131Key
1330 2132
1331`otel.exporter.<id>.headers`2133`permissions.<name>.network.enable_socks5`
1332 2134
1333Type / Values2135Type / Values
1334 2136
1335`map<string,string>`2137`boolean`
1336 2138
1337Details2139Details
1338 2140
1339Static headers included with OTEL exporter requests.2141Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
1340 2142
1341Key2143Key
1342 2144
1343`otel.exporter.<id>.protocol`2145`permissions.<name>.network.enable_socks5_udp`
1344 2146
1345Type / Values2147Type / Values
1346 2148
1347`binary | json`2149`boolean`
1348 2150
1349Details2151Details
1350 2152
1351Protocol used by the OTLP/HTTP exporter.2153Allow UDP over the SOCKS5 listener when enabled.
1352 2154
1353Key2155Key
1354 2156
1355`otel.exporter.<id>.tls.ca-certificate`2157`permissions.<name>.network.enabled`
1356 2158
1357Type / Values2159Type / Values
1358 2160
1359`string`2161`boolean`
1360 2162
1361Details2163Details
1362 2164
1363CA certificate path for OTEL exporter TLS.2165Enable network access for this named permissions profile.
1364 2166
1365Key2167Key
1366 2168
1367`otel.exporter.<id>.tls.client-certificate`2169`permissions.<name>.network.mode`
1368 2170
1369Type / Values2171Type / Values
1370 2172
1371`string`2173`limited | full`
1372 2174
1373Details2175Details
1374 2176
1375Client certificate path for OTEL exporter TLS.2177Network proxy mode used for subprocess traffic.
1376 2178
1377Key2179Key
1378 2180
1379`otel.exporter.<id>.tls.client-private-key`2181`permissions.<name>.network.proxy_url`
1380 2182
1381Type / Values2183Type / Values
1382 2184
1384 2186
1385Details2187Details
1386 2188
1387Client private key path for OTEL exporter TLS.2189HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
1388 2190
1389Key2191Key
1390 2192
1391`otel.log_user_prompt`2193`permissions.<name>.network.socks_url`
1392 2194
1393Type / Values2195Type / Values
1394 2196
1395`boolean`2197`string`
1396 2198
1397Details2199Details
1398 2200
1399Opt in to exporting raw user prompts with OpenTelemetry logs.2201SOCKS5 proxy endpoint used by this permissions profile.
1400 2202
1401Key2203Key
1402 2204
1403`otel.trace_exporter`2205`permissions.<name>.network.unix_sockets`
1404 2206
1405Type / Values2207Type / Values
1406 2208
1407`none | otlp-http | otlp-grpc`2209`map<string, allow | none>`
1408 2210
1409Details2211Details
1410 2212
1411Select the OpenTelemetry trace exporter and provide any endpoint metadata.2213Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
1412 2214
1413Key2215Key
1414 2216
1415`otel.trace_exporter.<id>.endpoint`2217`personality`
1416 2218
1417Type / Values2219Type / Values
1418 2220
1419`string`2221`none | friendly | pragmatic`
1420 2222
1421Details2223Details
1422 2224
1423Trace exporter endpoint for OTEL logs.2225Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
1424 2226
1425Key2227Key
1426 2228
1427`otel.trace_exporter.<id>.headers`2229`plan_mode_reasoning_effort`
1428 2230
1429Type / Values2231Type / Values
1430 2232
1431`map<string,string>`2233`none | minimal | low | medium | high | xhigh`
1432 2234
1433Details2235Details
1434 2236
1435Static headers included with OTEL trace exporter requests.2237Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
1436 2238
1437Key2239Key
1438 2240
1439`otel.trace_exporter.<id>.protocol`2241`profile`
1440 2242
1441Type / Values2243Type / Values
1442 2244
1443`binary | json`2245`string`
1444 2246
1445Details2247Details
1446 2248
1447Protocol used by the OTLP/HTTP trace exporter.2249Default profile applied at startup (equivalent to `--profile`).
1448 2250
1449Key2251Key
1450 2252
1451`otel.trace_exporter.<id>.tls.ca-certificate`2253`profiles.<name>.*`
1452 2254
1453Type / Values2255Type / Values
1454 2256
1455`string`2257`various`
1456 2258
1457Details2259Details
1458 2260
1459CA certificate path for OTEL trace exporter TLS.2261Profile-scoped overrides for any of the supported configuration keys.
1460 2262
1461Key2263Key
1462 2264
1463`otel.trace_exporter.<id>.tls.client-certificate`2265`profiles.<name>.analytics.enabled`
1464 2266
1465Type / Values2267Type / Values
1466 2268
1467`string`2269`boolean`
1468 2270
1469Details2271Details
1470 2272
1471Client certificate path for OTEL trace exporter TLS.2273Profile-scoped analytics enablement override.
1472 2274
1473Key2275Key
1474 2276
1475`otel.trace_exporter.<id>.tls.client-private-key`2277`profiles.<name>.experimental_use_unified_exec_tool`
1476 2278
1477Type / Values2279Type / Values
1478 2280
1479`string`2281`boolean`
1480 2282
1481Details2283Details
1482 2284
1483Client private key path for OTEL trace exporter TLS.2285Legacy name for enabling unified exec; prefer `[features].unified_exec`.
1484 2286
1485Key2287Key
1486 2288
1487`personality`2289`profiles.<name>.model_catalog_json`
1488 2290
1489Type / Values2291Type / Values
1490 2292
1491`none | friendly | pragmatic`2293`string (path)`
1492 2294
1493Details2295Details
1494 2296
1495Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.2297Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
1496 2298
1497Key2299Key
1498 2300
1499`profile`2301`profiles.<name>.model_instructions_file`
1500 2302
1501Type / Values2303Type / Values
1502 2304
1503`string`2305`string (path)`
1504 2306
1505Details2307Details
1506 2308
1507Default profile applied at startup (equivalent to `--profile`).2309Profile-scoped replacement for the built-in instruction file.
1508 2310
1509Key2311Key
1510 2312
1511`profiles.<name>.*`2313`profiles.<name>.oss_provider`
1512 2314
1513Type / Values2315Type / Values
1514 2316
1515`various`2317`lmstudio | ollama`
1516 2318
1517Details2319Details
1518 2320
1519Profile-scoped overrides for any of the supported configuration keys.2321Profile-scoped OSS provider for `--oss` sessions.
1520 2322
1521Key2323Key
1522 2324
1523`profiles.<name>.experimental_use_freeform_apply_patch`2325`profiles.<name>.personality`
1524 2326
1525Type / Values2327Type / Values
1526 2328
1527`boolean`2329`none | friendly | pragmatic`
1528 2330
1529Details2331Details
1530 2332
1531Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2333Profile-scoped communication style override for supported models.
1532 2334
1533Key2335Key
1534 2336
1535`profiles.<name>.experimental_use_unified_exec_tool`2337`profiles.<name>.plan_mode_reasoning_effort`
1536 2338
1537Type / Values2339Type / Values
1538 2340
1539`boolean`2341`none | minimal | low | medium | high | xhigh`
1540 2342
1541Details2343Details
1542 2344
1543Legacy name for enabling unified exec; prefer `[features].unified_exec`.2345Profile-scoped Plan-mode reasoning override.
1544 2346
1545Key2347Key
1546 2348
1547`profiles.<name>.include_apply_patch_tool`2349`profiles.<name>.service_tier`
1548 2350
1549Type / Values2351Type / Values
1550 2352
1551`boolean`2353`flex | fast`
1552 2354
1553Details2355Details
1554 2356
1555Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2357Profile-scoped service tier preference for new turns.
1556 2358
1557Key2359Key
1558 2360
1559`profiles.<name>.oss_provider`2361`profiles.<name>.tools_view_image`
1560 2362
1561Type / Values2363Type / Values
1562 2364
1563`lmstudio | ollama`2365`boolean`
1564 2366
1565Details2367Details
1566 2368
1567Profile-scoped OSS provider for `--oss` sessions.2369Enable or disable the `view_image` tool in that profile.
1568 2370
1569Key2371Key
1570 2372
1571`profiles.<name>.personality`2373`profiles.<name>.web_search`
1572 2374
1573Type / Values2375Type / Values
1574 2376
1575`none | friendly | pragmatic`2377`disabled | cached | live`
1576 2378
1577Details2379Details
1578 2380
1579Profile-scoped communication style override for supported models.2381Profile-scoped web search mode override (default: `"cached"`).
1580 2382
1581Key2383Key
1582 2384
1583`profiles.<name>.web_search`2385`profiles.<name>.windows.sandbox`
1584 2386
1585Type / Values2387Type / Values
1586 2388
1587`disabled | cached | live`2389`unelevated | elevated`
1588 2390
1589Details2391Details
1590 2392
1591Profile-scoped web search mode override (default: `"cached"`).2393Profile-scoped Windows sandbox mode override.
1592 2394
1593Key2395Key
1594 2396
1712 2514
1713Key2515Key
1714 2516
2517`service_tier`
2518
2519Type / Values
2520
2521`flex | fast`
2522
2523Details
2524
2525Preferred service tier for new turns.
2526
2527Key
2528
1715`shell_environment_policy.exclude`2529`shell_environment_policy.exclude`
1716 2530
1717Type / Values2531Type / Values
1832 2646
1833Key2647Key
1834 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
1835`suppress_unstable_features_warning`2661`suppress_unstable_features_warning`
1836 2662
1837Type / Values2663Type / Values
1856 2682
1857Key2683Key
1858 2684
1859`tools.web_search`2685`tool_suggest.discoverables`
2686
2687Type / Values
2688
2689`array<table>`
2690
2691Details
2692
2693Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2694
2695Key
2696
2697`tools.view_image`
1860 2698
1861Type / Values2699Type / Values
1862 2700
1864 2702
1865Details2703Details
1866 2704
1867Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2705Enable 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.
1868 2718
1869Key2719Key
1870 2720
1904 2754
1905Key2755Key
1906 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
1907`tui.notification_method`2769`tui.notification_method`
1908 2770
1909Type / Values2771Type / Values
1952 2814
1953Key2815Key
1954 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
1955`web_search`2841`web_search`
1956 2842
1957Type / Values2843Type / Values
1974 2860
1975Track Windows onboarding acknowledgement (Windows only).2861Track Windows onboarding acknowledgement (Windows only).
1976 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
1977Expand to view all2887Expand to view all
1978 2888
1979You 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).
1988 2898
1989## `requirements.toml`2899## `requirements.toml`
1990 2900
1991`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).2901`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).
1992 2902
1993For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2903For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
1994requirements. See the security page for precedence details.2904requirements. See the security page for precedence details.
1995 2905
2906Use `[features]` in `requirements.toml` to pin feature flags by the same
2907canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
2908
1996| Key | Type / Values | Details |2909| Key | Type / Values | Details |
1997| --- | --- | --- |2910| --- | --- | --- |
1998| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. |2911| `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`). |
1999| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2913| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
2000| `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. |
2001| `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. |
2002| `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). |
2003| `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. |
2020 2936
2021Details2937Details
2022 2938
2023Allowed values for `approval\_policy`.2939Allowed 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`).
2024 2952
2025Key2953Key
2026 2954
2048 2976
2049Key2977Key
2050 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
2051`mcp_servers`3003`mcp_servers`
2052 3004
2053Type / Values3005Type / Values