6 6
7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.7User-level configuration lives in `~/.codex/config.toml`. You can also add project-scoped overrides in `.codex/config.toml` files. Codex loads project-scoped config files only when you trust the project.
8 8
9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/security#network-access).9For sandbox and approval keys (`approval_policy`, `sandbox_mode`, and `sandbox_workspace_write.*`), pair this reference with [Sandbox and approvals](https://developers.openai.com/codex/agent-approvals-security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/agent-approvals-security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/agent-approvals-security#network-access).
10 10
11| Key | Type / Values | Details |11| Key | Type / Values | Details |
12| --- | --- | --- |12| --- | --- | --- |
13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |13| `agents.<name>.config_file` | `string (path)` | Path to a TOML config layer for that role; relative paths resolve from the config file that declares the role. |
14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |14| `agents.<name>.description` | `string` | Role guidance shown to Codex when choosing and spawning that agent type. |
15| `agents.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 | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |
22| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. |
23| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. |
24| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. |
25| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |
26| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |
27| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |
28| `apps.<id>.default_tools_approval_mode` | `auto | prompt | approve` | Default approval behavior for tools in this app unless a per-tool override exists. |
29| `apps.<id>.default_tools_enabled` | `boolean` | Default enabled state for tools in this app unless a per-tool override exists. |
30| `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). |31| `apps.<id>.enabled` | `boolean` | Enable or disable a specific app/connector by id (default: true). |
32| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |
33| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |
34| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |
35| `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. |36| `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). |37| `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). |38| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |
39| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |
22| `compact_prompt` | `string` | Inline override for the history compaction prompt. |40| `compact_prompt` | `string` | Inline override for the history compaction prompt. |
23| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |41| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
24| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |42| `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). |43| `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`. |44| `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). |45| `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). |46| `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). |
47| `features.artifact` | `boolean` | Enable native artifact tools such as slides and spreadsheets (under development). |
31| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |48| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |
32| `features.collaboration_modes` | `boolean` | Enable collaboration modes such as plan mode (stable; on by default). |49| `features.collaboration_modes` | `boolean` | Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key. |
33| `features.elevated_windows_sandbox` | `boolean` | Enable the elevated Windows sandbox pipeline (experimental). |50| `features.default_mode_request_user_input` | `boolean` | Allow `request_user_input` in default collaboration mode (under development; off by default). |
34| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |51| `features.elevated_windows_sandbox` | `boolean` | Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it. |
35| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default). |52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
53| `features.experimental_windows_sandbox` | `boolean` | Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it. |
54| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
55| `features.image_detail_original` | `boolean` | Allow image outputs with `detail = "original"` on supported models (under development). |
56| `features.image_generation` | `boolean` | Enable the built-in image generation tool (under development). |
36| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |57| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
37| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output (defaults to true). |58| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere. |
38| `features.remote_models` | `boolean` | Refresh remote model list before showing readiness (experimental). |59| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
39| `features.request_rule` | `boolean` | Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default). |60| `features.remote_models` | `boolean` | Legacy toggle for an older remote-model readiness flow. Current builds do not use it. |
61| `features.request_rule` | `boolean` | Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset. |
62| `features.responses_websockets` | `boolean` | Prefer the Responses API WebSocket transport for supported providers (under development). |
63| `features.responses_websockets_v2` | `boolean` | Enable Responses API WebSocket v2 mode (under development). |
40| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |64| `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). |65| `features.search_tool` | `boolean` | Legacy toggle for an older Apps discovery flow. Current builds do not use it. |
42| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (beta). |66| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
43| `features.shell_tool` | `boolean` | Enable the default `shell` tool for running commands (stable; on by default). |67| `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). |68| `features.skill_env_var_dependency_prompt` | `boolean` | Prompt for missing skill environment-variable dependencies (under development). |
69| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
70| `features.sqlite` | `boolean` | Enable SQLite-backed state persistence (stable; on by default). |
71| `features.steer` | `boolean` | Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior. |
72| `features.undo` | `boolean` | Enable undo support (stable; off by default). |
73| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
45| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |74| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |
46| `features.web_search` | `boolean` | Deprecated legacy toggle; prefer the top-level `web_search` setting. |75| `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"`. |76| `features.web_search_cached` | `boolean` | Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`. |
53| `hide_agent_reasoning` | `boolean` | Suppress reasoning events in both the TUI and `codex exec` output. |82| `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. |83| `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. |84| `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`. |85| `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`. |86| `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. |87| `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. |
88| `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. |89| `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. |90| `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. |91| `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. |98| `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. |99| `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. |100| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |
101| `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. |102| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |
103| `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. |104| `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. |105| `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. |106| `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. |107| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |
77| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |108| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |
78| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |109| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |
110| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |
79| `model_context_window` | `number` | Context window tokens available to the active model. |111| `model_context_window` | `number` | Context window tokens available to the active model. |
80| `model_instructions_file` | `string (path)` | Replacement for built-in instructions instead of `AGENTS.md`. |112| `model_instructions_file` | `string (path)` | Replacement for built-in instructions instead of `AGENTS.md`. |
81| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |113| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |
91| `model_providers.<id>.requires_openai_auth` | `boolean` | The provider uses OpenAI authentication (defaults to false). |123| `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). |124| `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). |125| `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). |126| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |
127| `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). |128| `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. |129| `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. |130| `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`). |131| `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. |132| `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. |133| `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. |134| `notice.hide_gpt5_1_migration_prompt` | `boolean` | Track acknowledgement of the GPT-5.1 migration prompt. |
113| `otel.exporter.<id>.tls.client-certificate` | `string` | Client certificate path for OTEL exporter TLS. |146| `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. |147| `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. |148| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |
149| `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. |150| `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. |151| `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. |152| `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. |154| `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. |155| `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. |156| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
157| `permissions.network.admin_url` | `string` | Admin endpoint for the managed network proxy. |
158| `permissions.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
159| `permissions.network.allow_unix_sockets` | `array<string>` | Allowlist of Unix socket paths permitted through the managed proxy. |
160| `permissions.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
161| `permissions.network.allowed_domains` | `array<string>` | Allowlist of domains permitted through the managed proxy. |
162| `permissions.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
163| `permissions.network.dangerously_allow_non_loopback_admin` | `boolean` | Permit non-loopback bind addresses for the managed proxy admin listener. |
164| `permissions.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
165| `permissions.network.denied_domains` | `array<string>` | Denylist of domains blocked by the managed proxy. |
166| `permissions.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener from the managed network proxy. |
167| `permissions.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
168| `permissions.network.enabled` | `boolean` | Enable the managed network proxy configuration for subprocesses. |
169| `permissions.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
170| `permissions.network.proxy_url` | `string` | HTTP proxy endpoint used by the managed network proxy. |
171| `permissions.network.socks_url` | `string` | SOCKS5 proxy endpoint used by the managed network proxy. |
123| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |172| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
173| `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`). |174| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
125| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |175| `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`. |176| `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`. |177| `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`. |178| `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). |
179| `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. |180| `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. |181| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |
182| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |
183| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |
184| `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"`). |185| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |
186| `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. |187| `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. |188| `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. |189| `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. |194| `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. |195| `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"`. |196| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
197| `service_tier` | `flex | fast` | Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled. |
142| `shell_environment_policy.exclude` | `array<string>` | Glob patterns for removing environment variables after the defaults. |198| `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. |199| `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. |200| `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. |205| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |
150| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |206| `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`. |207| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |
208| `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. |209| `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. |210| `tool_output_token_limit` | `number` | Token budget for storing individual tool/function outputs in history. |
211| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
154| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |212| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |
155| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |213| `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). |214| `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). |215| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |
216| `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). |217| `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. |218| `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). |219| `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. |220| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
221| `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. |222| `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). |223| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
224| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
164 225
165Key226Key
166 227
188 249
189Key250Key
190 251
191`agents.max_threads`252`agents.<name>.nickname_candidates`
192 253
193Type / Values254Type / Values
194 255
195`number`256`array<string>`
196 257
197Details258Details
198 259
199Maximum number of agent threads that can be open concurrently.260Optional pool of display nicknames for spawned agents in that role.
200 261
201Key262Key
202 263
203`approval_policy`264`agents.job_max_runtime_seconds`
204 265
205Type / Values266Type / Values
206 267
207`untrusted | on-request | never`268`number`
208 269
209Details270Details
210 271
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.272Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
212 273
213Key274Key
214 275
215`apps.<id>.disabled_reason`276`agents.max_depth`
216 277
217Type / Values278Type / Values
218 279
219`unknown | user`280`number`
220 281
221Details282Details
222 283
223Optional reason attached when an app/connector is disabled.284Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).
224 285
225Key286Key
226 287
227`apps.<id>.enabled`288`agents.max_threads`
228 289
229Type / Values290Type / Values
230 291
231`boolean`292`number`
232 293
233Details294Details
234 295
235Enable or disable a specific app/connector by id (default: true).296Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
236 297
237Key298Key
238 299
239`chatgpt_base_url`300`allow_login_shell`
240 301
241Type / Values302Type / Values
242 303
243`string`304`boolean`
244 305
245Details306Details
246 307
247Override the base URL used during the ChatGPT login flow.308Allow 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 309
249Key310Key
250 311
251`check_for_update_on_startup`312`analytics.enabled`
252 313
253Type / Values314Type / Values
254 315
256 317
257Details318Details
258 319
259Check for Codex updates on startup (set to false only when updates are centrally managed).320Enable or disable analytics for this machine/profile. When unset, the client default applies.
260 321
261Key322Key
262 323
263`cli_auth_credentials_store`324`approval_policy`
264 325
265Type / Values326Type / Values
266 327
267`file | keyring | auto`328`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }`
268 329
269Details330Details
270 331
271Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).332Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.
272 333
273Key334Key
274 335
275`compact_prompt`336`approval_policy.reject.mcp_elicitations`
276 337
277Type / Values338Type / Values
278 339
279`string`340`boolean`
280 341
281Details342Details
282 343
283Inline override for the history compaction prompt.344When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.
284 345
285Key346Key
286 347
287`developer_instructions`348`approval_policy.reject.rules`
288 349
289Type / Values350Type / Values
290 351
291`string`352`boolean`
292 353
293Details354Details
294 355
295Additional developer instructions injected into the session (optional).356When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.
296 357
297Key358Key
298 359
299`disable_paste_burst`360`approval_policy.reject.sandbox_approval`
300 361
301Type / Values362Type / Values
302 363
304 365
305Details366Details
306 367
307Disable burst-paste detection in the TUI.368When `true`, sandbox escalation approval prompts are auto-rejected.
308 369
309Key370Key
310 371
311`experimental_compact_prompt_file`372`apps._default.destructive_enabled`
312 373
313Type / Values374Type / Values
314 375
315`string (path)`376`boolean`
316 377
317Details378Details
318 379
319Load the compaction prompt override from a file (experimental).380Default allow/deny for app tools with `destructive_hint = true`.
320 381
321Key382Key
322 383
323`experimental_use_freeform_apply_patch`384`apps._default.enabled`
324 385
325Type / Values386Type / Values
326 387
328 389
329Details390Details
330 391
331Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.392Default app enabled state for all apps unless overridden per app.
332 393
333Key394Key
334 395
335`experimental_use_unified_exec_tool`396`apps._default.open_world_enabled`
336 397
337Type / Values398Type / Values
338 399
340 401
341Details402Details
342 403
343Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.404Default allow/deny for app tools with `open_world_hint = true`.
344 405
345Key406Key
346 407
347`features.apply_patch_freeform`408`apps.<id>.default_tools_approval_mode`
348 409
349Type / Values410Type / Values
350 411
351`boolean`412`auto | prompt | approve`
352 413
353Details414Details
354 415
355Expose the freeform `apply_patch` tool (experimental).416Default approval behavior for tools in this app unless a per-tool override exists.
356 417
357Key418Key
358 419
359`features.apps`420`apps.<id>.default_tools_enabled`
360 421
361Type / Values422Type / Values
362 423
364 425
365Details426Details
366 427
367Enable ChatGPT Apps/connectors support (experimental).428Default enabled state for tools in this app unless a per-tool override exists.
368 429
369Key430Key
370 431
371`features.apps_mcp_gateway`432`apps.<id>.destructive_enabled`
372 433
373Type / Values434Type / Values
374 435
376 437
377Details438Details
378 439
379Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).440Allow or block tools in this app that advertise `destructive_hint = true`.
380 441
381Key442Key
382 443
383`features.child_agents_md`444`apps.<id>.enabled`
384 445
385Type / Values446Type / Values
386 447
388 449
389Details450Details
390 451
391Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).452Enable or disable a specific app/connector by id (default: true).
392 453
393Key454Key
394 455
395`features.collaboration_modes`456`apps.<id>.open_world_enabled`
396 457
397Type / Values458Type / Values
398 459
400 461
401Details462Details
402 463
403Enable collaboration modes such as plan mode (stable; on by default).464Allow or block tools in this app that advertise `open_world_hint = true`.
404 465
405Key466Key
406 467
407`features.elevated_windows_sandbox`468`apps.<id>.tools.<tool>.approval_mode`
408 469
409Type / Values470Type / Values
410 471
411`boolean`472`auto | prompt | approve`
412 473
413Details474Details
414 475
415Enable the elevated Windows sandbox pipeline (experimental).476Per-tool approval behavior override for a single app tool.
416 477
417Key478Key
418 479
419`features.experimental_windows_sandbox`480`apps.<id>.tools.<tool>.enabled`
420 481
421Type / Values482Type / Values
422 483
424 485
425Details486Details
426 487
427Run the Windows restricted-token sandbox (experimental).488Per-tool enabled override for an app tool (for example `repos/list`).
428 489
429Key490Key
430 491
431`features.multi_agent`492`background_terminal_max_timeout`
432 493
433Type / Values494Type / Values
434 495
435`boolean`496`number`
436 497
437Details498Details
438 499
439Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).500Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key.
440 501
441Key502Key
442 503
443`features.personality`504`chatgpt_base_url`
444 505
445Type / Values506Type / Values
446 507
447`boolean`508`string`
448 509
449Details510Details
450 511
451Enable personality selection controls (stable; on by default).512Override the base URL used during the ChatGPT login flow.
452 513
453Key514Key
454 515
455`features.powershell_utf8`516`check_for_update_on_startup`
456 517
457Type / Values518Type / Values
458 519
460 521
461Details522Details
462 523
463Force PowerShell UTF-8 output (defaults to true).524Check for Codex updates on startup (set to false only when updates are centrally managed).
464 525
465Key526Key
466 527
467`features.remote_models`528`cli_auth_credentials_store`
468 529
469Type / Values530Type / Values
470 531
471`boolean`532`file | keyring | auto`
472 533
473Details534Details
474 535
475Refresh remote model list before showing readiness (experimental).536Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).
476 537
477Key538Key
478 539
479`features.request_rule`540`commit_attribution`
480 541
481Type / Values542Type / Values
482 543
483`boolean`544`string`
484 545
485Details546Details
486 547
487Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).548Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
488 549
489Key550Key
490 551
491`features.runtime_metrics`552`compact_prompt`
492 553
493Type / Values554Type / Values
494 555
495`boolean`556`string`
496 557
497Details558Details
498 559
499Show runtime metrics summary in TUI turn separators (experimental).560Inline override for the history compaction prompt.
500 561
501Key562Key
502 563
503`features.search_tool`564`developer_instructions`
504 565
505Type / Values566Type / Values
506 567
507`boolean`568`string`
508 569
509Details570Details
510 571
511Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).572Additional developer instructions injected into the session (optional).
512 573
513Key574Key
514 575
515`features.shell_snapshot`576`disable_paste_burst`
516 577
517Type / Values578Type / Values
518 579
520 581
521Details582Details
522 583
523Snapshot shell environment to speed up repeated commands (beta).584Disable burst-paste detection in the TUI.
524 585
525Key586Key
526 587
527`features.shell_tool`588`experimental_compact_prompt_file`
528 589
529Type / Values590Type / Values
530 591
531`boolean`592`string (path)`
532 593
533Details594Details
534 595
535Enable the default `shell` tool for running commands (stable; on by default).596Load the compaction prompt override from a file (experimental).
536 597
537Key598Key
538 599
539`features.unified_exec`600`experimental_use_unified_exec_tool`
540 601
541Type / Values602Type / Values
542 603
544 605
545Details606Details
546 607
547Use the unified PTY-backed exec tool (beta).608Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
548 609
549Key610Key
550 611
551`features.use_linux_sandbox_bwrap`612`features.apps`
552 613
553Type / Values614Type / Values
554 615
556 617
557Details618Details
558 619
559Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).620Enable ChatGPT Apps/connectors support (experimental).
560 621
561Key622Key
562 623
563`features.web_search`624`features.apps_mcp_gateway`
564 625
565Type / Values626Type / Values
566 627
568 629
569Details630Details
570 631
571Deprecated legacy toggle; prefer the top-level `web_search` setting.632Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).
572 633
573Key634Key
574 635
575`features.web_search_cached`636`features.artifact`
576 637
577Type / Values638Type / Values
578 639
580 641
581Details642Details
582 643
583Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.644Enable native artifact tools such as slides and spreadsheets (under development).
584 645
585Key646Key
586 647
587`features.web_search_request`648`features.child_agents_md`
588 649
589Type / Values650Type / Values
590 651
592 653
593Details654Details
594 655
595Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.656Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).
596 657
597Key658Key
598 659
599`feedback.enabled`660`features.collaboration_modes`
600 661
601Type / Values662Type / Values
602 663
604 665
605Details666Details
606 667
607Enable feedback submission via `/feedback` across Codex surfaces (default: true).668Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key.
608 669
609Key670Key
610 671
611`file_opener`672`features.default_mode_request_user_input`
612 673
613Type / Values674Type / Values
614 675
615`vscode | vscode-insiders | windsurf | cursor | none`676`boolean`
616 677
617Details678Details
618 679
619URI scheme used to open citations from Codex output (default: `vscode`).680Allow `request_user_input` in default collaboration mode (under development; off by default).
620 681
621Key682Key
622 683
623`forced_chatgpt_workspace_id`684`features.elevated_windows_sandbox`
624 685
625Type / Values686Type / Values
626 687
627`string (uuid)`688`boolean`
628 689
629Details690Details
630 691
631Limit ChatGPT logins to a specific workspace identifier.692Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it.
632 693
633Key694Key
634 695
635`forced_login_method`696`features.enable_request_compression`
636 697
637Type / Values698Type / Values
638 699
639`chatgpt | api`700`boolean`
640 701
641Details702Details
642 703
643Restrict Codex to a specific authentication method.704Compress streaming request bodies with zstd when supported (stable; on by default).
644 705
645Key706Key
646 707
647`hide_agent_reasoning`708`features.experimental_windows_sandbox`
648 709
649Type / Values710Type / Values
650 711
652 713
653Details714Details
654 715
655Suppress reasoning events in both the TUI and `codex exec` output.716Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it.
656 717
657Key718Key
658 719
659`history.max_bytes`720`features.fast_mode`
660 721
661Type / Values722Type / Values
662 723
663`number`724`boolean`
664 725
665Details726Details
666 727
667If set, caps the history file size in bytes by dropping oldest entries.728Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
668 729
669Key730Key
670 731
671`history.persistence`732`features.image_detail_original`
672 733
673Type / Values734Type / Values
674 735
675`save-all | none`736`boolean`
676 737
677Details738Details
678 739
679Control whether Codex saves session transcripts to history.jsonl.740Allow image outputs with `detail = "original"` on supported models (under development).
680 741
681Key742Key
682 743
683`include_apply_patch_tool`744`features.image_generation`
684 745
685Type / Values746Type / Values
686 747
688 749
689Details750Details
690 751
691Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.752Enable the built-in image generation tool (under development).
692 753
693Key754Key
694 755
695`instructions`756`features.personality`
696 757
697Type / Values758Type / Values
698 759
699`string`760`boolean`
700 761
701Details762Details
702 763
703Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.764Enable personality selection controls (stable; on by default).
704 765
705Key766Key
706 767
707`log_dir`768`features.powershell_utf8`
708 769
709Type / Values770Type / Values
710 771
711`string (path)`772`boolean`
712 773
713Details774Details
714 775
715Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.776Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere.
716 777
717Key778Key
718 779
719`mcp_oauth_callback_port`780`features.prevent_idle_sleep`
720 781
721Type / Values782Type / Values
722 783
723`integer`784`boolean`
724 785
725Details786Details
726 787
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.788Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
728 789
729Key790Key
730 791
731`mcp_oauth_credentials_store`792`features.remote_models`
732 793
733Type / Values794Type / Values
734 795
735`auto | file | keyring`796`boolean`
736 797
737Details798Details
738 799
739Preferred store for MCP OAuth credentials.800Legacy toggle for an older remote-model readiness flow. Current builds do not use it.
740 801
741Key802Key
742 803
743`mcp_servers.<id>.args`804`features.request_rule`
744 805
745Type / Values806Type / Values
746 807
747`array<string>`808`boolean`
748 809
749Details810Details
750 811
751Arguments passed to the MCP stdio server command.812Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset.
752 813
753Key814Key
754 815
755`mcp_servers.<id>.bearer_token_env_var`816`features.responses_websockets`
756 817
757Type / Values818Type / Values
758 819
759`string`820`boolean`
760 821
761Details822Details
762 823
763Environment variable sourcing the bearer token for an MCP HTTP server.824Prefer the Responses API WebSocket transport for supported providers (under development).
764 825
765Key826Key
766 827
767`mcp_servers.<id>.command`828`features.responses_websockets_v2`
768 829
769Type / Values830Type / Values
770 831
771`string`832`boolean`
772 833
773Details834Details
774 835
775Launcher command for an MCP stdio server.836Enable Responses API WebSocket v2 mode (under development).
776 837
777Key838Key
778 839
779`mcp_servers.<id>.cwd`840`features.runtime_metrics`
780 841
781Type / Values842Type / Values
782 843
783`string`844`boolean`
784 845
785Details846Details
786 847
787Working directory for the MCP stdio server process.848Show runtime metrics summary in TUI turn separators (experimental).
788 849
789Key850Key
790 851
791`mcp_servers.<id>.disabled_tools`852`features.search_tool`
792 853
793Type / Values854Type / Values
794 855
795`array<string>`856`boolean`
796 857
797Details858Details
798 859
799Deny list applied after `enabled_tools` for the MCP server.860Legacy toggle for an older Apps discovery flow. Current builds do not use it.
800 861
801Key862Key
802 863
803`mcp_servers.<id>.enabled`864`features.shell_snapshot`
804 865
805Type / Values866Type / Values
806 867
808 869
809Details870Details
810 871
811Disable an MCP server without removing its configuration.872Snapshot shell environment to speed up repeated commands (stable; on by default).
812 873
813Key874Key
814 875
815`mcp_servers.<id>.enabled_tools`876`features.shell_tool`
816 877
817Type / Values878Type / Values
818 879
819`array<string>`880`boolean`
820 881
821Details882Details
822 883
823Allow list of tool names exposed by the MCP server.884Enable the default `shell` tool for running commands (stable; on by default).
824 885
825Key886Key
826 887
827`mcp_servers.<id>.env`888`features.skill_env_var_dependency_prompt`
828 889
829Type / Values890Type / Values
830 891
831`map<string,string>`892`boolean`
832 893
833Details894Details
834 895
835Environment variables forwarded to the MCP stdio server.896Prompt for missing skill environment-variable dependencies (under development).
836 897
837Key898Key
838 899
839`mcp_servers.<id>.env_http_headers`900`features.skill_mcp_dependency_install`
840 901
841Type / Values902Type / Values
842 903
843`map<string,string>`904`boolean`
844 905
845Details906Details
846 907
847HTTP headers populated from environment variables for an MCP HTTP server.908Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
848 909
849Key910Key
850 911
851`mcp_servers.<id>.env_vars`912`features.sqlite`
852 913
853Type / Values914Type / Values
854 915
855`array<string>`916`boolean`
856 917
857Details918Details
858 919
859Additional environment variables to whitelist for an MCP stdio server.920Enable SQLite-backed state persistence (stable; on by default).
860 921
861Key922Key
862 923
863`mcp_servers.<id>.http_headers`924`features.steer`
864 925
865Type / Values926Type / Values
866 927
867`map<string,string>`928`boolean`
868 929
869Details930Details
870 931
871Static HTTP headers included with each MCP HTTP request.932Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior.
872 933
873Key934Key
874 935
875`mcp_servers.<id>.required`936`features.undo`
876 937
877Type / Values938Type / Values
878 939
880 941
881Details942Details
882 943
883When true, fail startup/resume if this enabled MCP server cannot initialize.944Enable undo support (stable; off by default).
884 945
885Key946Key
886 947
887`mcp_servers.<id>.startup_timeout_ms`948`features.unified_exec`
888 949
889Type / Values950Type / Values
890 951
891`number`952`boolean`
892 953
893Details954Details
894 955
895Alias for `startup_timeout_sec` in milliseconds.956Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
896 957
897Key958Key
898 959
899`mcp_servers.<id>.startup_timeout_sec`960`features.use_linux_sandbox_bwrap`
900 961
901Type / Values962Type / Values
902 963
903`number`964`boolean`
904 965
905Details966Details
906 967
907Override the default 10s startup timeout for an MCP server.968Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).
908 969
909Key970Key
910 971
911`mcp_servers.<id>.tool_timeout_sec`972`features.web_search`
912 973
913Type / Values974Type / Values
914 975
915`number`976`boolean`
916 977
917Details978Details
918 979
919Override the default 60s per-tool timeout for an MCP server.980Deprecated legacy toggle; prefer the top-level `web_search` setting.
920 981
921Key982Key
922 983
923`mcp_servers.<id>.url`984`features.web_search_cached`
924 985
925Type / Values986Type / Values
926 987
927`string`988`boolean`
928 989
929Details990Details
930 991
931Endpoint for an MCP streamable HTTP server.992Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.
932 993
933Key994Key
934 995
935`model`996`features.web_search_request`
936 997
937Type / Values998Type / Values
938 999
939`string`1000`boolean`
940 1001
941Details1002Details
942 1003
943Model to use (e.g., `gpt-5-codex`).1004Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.
944 1005
945Key1006Key
946 1007
947`model_auto_compact_token_limit`1008`feedback.enabled`
948 1009
949Type / Values1010Type / Values
950 1011
951`number`1012`boolean`
952 1013
953Details1014Details
954 1015
955Token threshold that triggers automatic history compaction (unset uses model defaults).1016Enable feedback submission via `/feedback` across Codex surfaces (default: true).
956 1017
957Key1018Key
958 1019
959`model_context_window`1020`file_opener`
960 1021
961Type / Values1022Type / Values
962 1023
963`number`1024`vscode | vscode-insiders | windsurf | cursor | none`
964 1025
965Details1026Details
966 1027
967Context window tokens available to the active model.1028URI scheme used to open citations from Codex output (default: `vscode`).
968 1029
969Key1030Key
970 1031
971`model_instructions_file`1032`forced_chatgpt_workspace_id`
972 1033
973Type / Values1034Type / Values
974 1035
975`string (path)`1036`string (uuid)`
976 1037
977Details1038Details
978 1039
979Replacement for built-in instructions instead of `AGENTS.md`.1040Limit ChatGPT logins to a specific workspace identifier.
980 1041
981Key1042Key
982 1043
983`model_provider`1044`forced_login_method`
984 1045
985Type / Values1046Type / Values
986 1047
987`string`1048`chatgpt | api`
988 1049
989Details1050Details
990 1051
991Provider id from `model_providers` (default: `openai`).1052Restrict Codex to a specific authentication method.
992 1053
993Key1054Key
994 1055
995`model_providers.<id>.base_url`1056`hide_agent_reasoning`
1057
1058Type / Values
1059
1060`boolean`
1061
1062Details
1063
1064Suppress reasoning events in both the TUI and `codex exec` output.
1065
1066Key
1067
1068`history.max_bytes`
1069
1070Type / Values
1071
1072`number`
1073
1074Details
1075
1076If set, caps the history file size in bytes by dropping oldest entries.
1077
1078Key
1079
1080`history.persistence`
1081
1082Type / Values
1083
1084`save-all | none`
1085
1086Details
1087
1088Control whether Codex saves session transcripts to history.jsonl.
1089
1090Key
1091
1092`instructions`
996 1093
997Type / Values1094Type / Values
998 1095
1000 1097
1001Details1098Details
1002 1099
1003API base URL for the model provider.1100Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.
1004 1101
1005Key1102Key
1006 1103
1007`model_providers.<id>.env_http_headers`1104`log_dir`
1008 1105
1009Type / Values1106Type / Values
1010 1107
1011`map<string,string>`1108`string (path)`
1012 1109
1013Details1110Details
1014 1111
1015HTTP headers populated from environment variables when present.1112Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.
1016 1113
1017Key1114Key
1018 1115
1019`model_providers.<id>.env_key`1116`mcp_oauth_callback_port`
1117
1118Type / Values
1119
1120`integer`
1121
1122Details
1123
1124Optional 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.
1125
1126Key
1127
1128`mcp_oauth_callback_url`
1020 1129
1021Type / Values1130Type / Values
1022 1131
1024 1133
1025Details1134Details
1026 1135
1027Environment variable supplying the provider API key.1136Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
1028 1137
1029Key1138Key
1030 1139
1031`model_providers.<id>.env_key_instructions`1140`mcp_oauth_credentials_store`
1141
1142Type / Values
1143
1144`auto | file | keyring`
1145
1146Details
1147
1148Preferred store for MCP OAuth credentials.
1149
1150Key
1151
1152`mcp_servers.<id>.args`
1153
1154Type / Values
1155
1156`array<string>`
1157
1158Details
1159
1160Arguments passed to the MCP stdio server command.
1161
1162Key
1163
1164`mcp_servers.<id>.bearer_token_env_var`
1032 1165
1033Type / Values1166Type / Values
1034 1167
1036 1169
1037Details1170Details
1038 1171
1039Optional setup guidance for the provider API key.1172Environment variable sourcing the bearer token for an MCP HTTP server.
1040 1173
1041Key1174Key
1042 1175
1043`model_providers.<id>.experimental_bearer_token`1176`mcp_servers.<id>.command`
1044 1177
1045Type / Values1178Type / Values
1046 1179
1048 1181
1049Details1182Details
1050 1183
1051Direct bearer token for the provider (discouraged; use `env_key`).1184Launcher command for an MCP stdio server.
1052 1185
1053Key1186Key
1054 1187
1055`model_providers.<id>.http_headers`1188`mcp_servers.<id>.cwd`
1189
1190Type / Values
1191
1192`string`
1193
1194Details
1195
1196Working directory for the MCP stdio server process.
1197
1198Key
1199
1200`mcp_servers.<id>.disabled_tools`
1201
1202Type / Values
1203
1204`array<string>`
1205
1206Details
1207
1208Deny list applied after `enabled_tools` for the MCP server.
1209
1210Key
1211
1212`mcp_servers.<id>.enabled`
1213
1214Type / Values
1215
1216`boolean`
1217
1218Details
1219
1220Disable an MCP server without removing its configuration.
1221
1222Key
1223
1224`mcp_servers.<id>.enabled_tools`
1225
1226Type / Values
1227
1228`array<string>`
1229
1230Details
1231
1232Allow list of tool names exposed by the MCP server.
1233
1234Key
1235
1236`mcp_servers.<id>.env`
1056 1237
1057Type / Values1238Type / Values
1058 1239
1060 1241
1061Details1242Details
1062 1243
1063Static HTTP headers added to provider requests.1244Environment variables forwarded to the MCP stdio server.
1064 1245
1065Key1246Key
1066 1247
1067`model_providers.<id>.name`1248`mcp_servers.<id>.env_http_headers`
1068 1249
1069Type / Values1250Type / Values
1070 1251
1071`string`1252`map<string,string>`
1072 1253
1073Details1254Details
1074 1255
1075Display name for a custom model provider.1256HTTP headers populated from environment variables for an MCP HTTP server.
1076 1257
1077Key1258Key
1078 1259
1079`model_providers.<id>.query_params`1260`mcp_servers.<id>.env_vars`
1261
1262Type / Values
1263
1264`array<string>`
1265
1266Details
1267
1268Additional environment variables to whitelist for an MCP stdio server.
1269
1270Key
1271
1272`mcp_servers.<id>.http_headers`
1080 1273
1081Type / Values1274Type / Values
1082 1275
1084 1277
1085Details1278Details
1086 1279
1087Extra query parameters appended to provider requests.1280Static HTTP headers included with each MCP HTTP request.
1088 1281
1089Key1282Key
1090 1283
1091`model_providers.<id>.request_max_retries`1284`mcp_servers.<id>.oauth_resource`
1092 1285
1093Type / Values1286Type / Values
1094 1287
1095`number`1288`string`
1096 1289
1097Details1290Details
1098 1291
1099Retry count for HTTP requests to the provider (default: 4).1292Optional RFC 8707 OAuth resource parameter to include during MCP login.
1100 1293
1101Key1294Key
1102 1295
1103`model_providers.<id>.requires_openai_auth`1296`mcp_servers.<id>.required`
1104 1297
1105Type / Values1298Type / Values
1106 1299
1108 1301
1109Details1302Details
1110 1303
1111The provider uses OpenAI authentication (defaults to false).1304When true, fail startup/resume if this enabled MCP server cannot initialize.
1112 1305
1113Key1306Key
1114 1307
1115`model_providers.<id>.stream_idle_timeout_ms`1308`mcp_servers.<id>.scopes`
1309
1310Type / Values
1311
1312`array<string>`
1313
1314Details
1315
1316OAuth scopes to request when authenticating to that MCP server.
1317
1318Key
1319
1320`mcp_servers.<id>.startup_timeout_ms`
1321
1322Type / Values
1323
1324`number`
1325
1326Details
1327
1328Alias for `startup_timeout_sec` in milliseconds.
1329
1330Key
1331
1332`mcp_servers.<id>.startup_timeout_sec`
1333
1334Type / Values
1335
1336`number`
1337
1338Details
1339
1340Override the default 10s startup timeout for an MCP server.
1341
1342Key
1343
1344`mcp_servers.<id>.tool_timeout_sec`
1345
1346Type / Values
1347
1348`number`
1349
1350Details
1351
1352Override the default 60s per-tool timeout for an MCP server.
1353
1354Key
1355
1356`mcp_servers.<id>.url`
1357
1358Type / Values
1359
1360`string`
1361
1362Details
1363
1364Endpoint for an MCP streamable HTTP server.
1365
1366Key
1367
1368`model`
1369
1370Type / Values
1371
1372`string`
1373
1374Details
1375
1376Model to use (e.g., `gpt-5-codex`).
1377
1378Key
1379
1380`model_auto_compact_token_limit`
1381
1382Type / Values
1383
1384`number`
1385
1386Details
1387
1388Token threshold that triggers automatic history compaction (unset uses model defaults).
1389
1390Key
1391
1392`model_catalog_json`
1393
1394Type / Values
1395
1396`string (path)`
1397
1398Details
1399
1400Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1401
1402Key
1403
1404`model_context_window`
1405
1406Type / Values
1407
1408`number`
1409
1410Details
1411
1412Context window tokens available to the active model.
1413
1414Key
1415
1416`model_instructions_file`
1417
1418Type / Values
1419
1420`string (path)`
1421
1422Details
1423
1424Replacement for built-in instructions instead of `AGENTS.md`.
1425
1426Key
1427
1428`model_provider`
1429
1430Type / Values
1431
1432`string`
1433
1434Details
1435
1436Provider id from `model_providers` (default: `openai`).
1437
1438Key
1439
1440`model_providers.<id>.base_url`
1441
1442Type / Values
1443
1444`string`
1445
1446Details
1447
1448API base URL for the model provider.
1449
1450Key
1451
1452`model_providers.<id>.env_http_headers`
1453
1454Type / Values
1455
1456`map<string,string>`
1457
1458Details
1459
1460HTTP headers populated from environment variables when present.
1461
1462Key
1463
1464`model_providers.<id>.env_key`
1465
1466Type / Values
1467
1468`string`
1469
1470Details
1471
1472Environment variable supplying the provider API key.
1473
1474Key
1475
1476`model_providers.<id>.env_key_instructions`
1477
1478Type / Values
1479
1480`string`
1481
1482Details
1483
1484Optional setup guidance for the provider API key.
1485
1486Key
1487
1488`model_providers.<id>.experimental_bearer_token`
1489
1490Type / Values
1491
1492`string`
1493
1494Details
1495
1496Direct bearer token for the provider (discouraged; use `env_key`).
1497
1498Key
1499
1500`model_providers.<id>.http_headers`
1501
1502Type / Values
1503
1504`map<string,string>`
1505
1506Details
1507
1508Static HTTP headers added to provider requests.
1509
1510Key
1511
1512`model_providers.<id>.name`
1513
1514Type / Values
1515
1516`string`
1517
1518Details
1519
1520Display name for a custom model provider.
1521
1522Key
1523
1524`model_providers.<id>.query_params`
1525
1526Type / Values
1527
1528`map<string,string>`
1529
1530Details
1531
1532Extra query parameters appended to provider requests.
1533
1534Key
1535
1536`model_providers.<id>.request_max_retries`
1537
1538Type / Values
1539
1540`number`
1541
1542Details
1543
1544Retry count for HTTP requests to the provider (default: 4).
1545
1546Key
1547
1548`model_providers.<id>.requires_openai_auth`
1549
1550Type / Values
1551
1552`boolean`
1553
1554Details
1555
1556The provider uses OpenAI authentication (defaults to false).
1557
1558Key
1559
1560`model_providers.<id>.stream_idle_timeout_ms`
1561
1562Type / Values
1563
1564`number`
1565
1566Details
1567
1568Idle timeout for SSE streams in milliseconds (default: 300000).
1569
1570Key
1571
1572`model_providers.<id>.stream_max_retries`
1573
1574Type / Values
1575
1576`number`
1577
1578Details
1579
1580Retry count for SSE streaming interruptions (default: 5).
1581
1582Key
1583
1584`model_providers.<id>.supports_websockets`
1585
1586Type / Values
1587
1588`boolean`
1589
1590Details
1591
1592Whether that provider supports the Responses API WebSocket transport.
1593
1594Key
1595
1596`model_providers.<id>.wire_api`
1597
1598Type / Values
1599
1600`responses`
1601
1602Details
1603
1604Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1605
1606Key
1607
1608`model_reasoning_effort`
1609
1610Type / Values
1611
1612`minimal | low | medium | high | xhigh`
1613
1614Details
1615
1616Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).
1617
1618Key
1619
1620`model_reasoning_summary`
1621
1622Type / Values
1623
1624`auto | concise | detailed | none`
1625
1626Details
1627
1628Select reasoning summary detail or disable summaries entirely.
1629
1630Key
1631
1632`model_supports_reasoning_summaries`
1633
1634Type / Values
1635
1636`boolean`
1637
1638Details
1639
1640Force Codex to send or not send reasoning metadata.
1641
1642Key
1643
1644`model_verbosity`
1645
1646Type / Values
1647
1648`low | medium | high`
1649
1650Details
1651
1652Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1653
1654Key
1655
1656`notice.hide_full_access_warning`
1657
1658Type / Values
1659
1660`boolean`
1661
1662Details
1663
1664Track acknowledgement of the full access warning prompt.
1665
1666Key
1667
1668`notice.hide_gpt-5.1-codex-max_migration_prompt`
1669
1670Type / Values
1671
1672`boolean`
1673
1674Details
1675
1676Track acknowledgement of the gpt-5.1-codex-max migration prompt.
1677
1678Key
1679
1680`notice.hide_gpt5_1_migration_prompt`
1681
1682Type / Values
1683
1684`boolean`
1685
1686Details
1687
1688Track acknowledgement of the GPT-5.1 migration prompt.
1689
1690Key
1691
1692`notice.hide_rate_limit_model_nudge`
1693
1694Type / Values
1695
1696`boolean`
1697
1698Details
1699
1700Track opt-out of the rate limit model switch reminder.
1701
1702Key
1703
1704`notice.hide_world_writable_warning`
1705
1706Type / Values
1707
1708`boolean`
1709
1710Details
1711
1712Track acknowledgement of the Windows world-writable directories warning.
1713
1714Key
1715
1716`notice.model_migrations`
1717
1718Type / Values
1719
1720`map<string,string>`
1721
1722Details
1723
1724Track acknowledged model migrations as old->new mappings.
1725
1726Key
1727
1728`notify`
1729
1730Type / Values
1731
1732`array<string>`
1733
1734Details
1735
1736Command invoked for notifications; receives a JSON payload from Codex.
1737
1738Key
1739
1740`oss_provider`
1741
1742Type / Values
1743
1744`lmstudio | ollama`
1745
1746Details
1747
1748Default local provider used when running with `--oss` (defaults to prompting if unset).
1749
1750Key
1751
1752`otel.environment`
1753
1754Type / Values
1755
1756`string`
1757
1758Details
1759
1760Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1761
1762Key
1763
1764`otel.exporter`
1765
1766Type / Values
1767
1768`none | otlp-http | otlp-grpc`
1769
1770Details
1771
1772Select the OpenTelemetry exporter and provide any endpoint metadata.
1773
1774Key
1775
1776`otel.exporter.<id>.endpoint`
1777
1778Type / Values
1779
1780`string`
1781
1782Details
1783
1784Exporter endpoint for OTEL logs.
1785
1786Key
1787
1788`otel.exporter.<id>.headers`
1789
1790Type / Values
1791
1792`map<string,string>`
1793
1794Details
1795
1796Static headers included with OTEL exporter requests.
1797
1798Key
1799
1800`otel.exporter.<id>.protocol`
1801
1802Type / Values
1803
1804`binary | json`
1805
1806Details
1807
1808Protocol used by the OTLP/HTTP exporter.
1809
1810Key
1811
1812`otel.exporter.<id>.tls.ca-certificate`
1813
1814Type / Values
1815
1816`string`
1817
1818Details
1819
1820CA certificate path for OTEL exporter TLS.
1821
1822Key
1823
1824`otel.exporter.<id>.tls.client-certificate`
1116 1825
1117Type / Values1826Type / Values
1118 1827
1119`number`1828`string`
1120 1829
1121Details1830Details
1122 1831
1123Idle timeout for SSE streams in milliseconds (default: 300000).1832Client certificate path for OTEL exporter TLS.
1124 1833
1125Key1834Key
1126 1835
1127`model_providers.<id>.stream_max_retries`1836`otel.exporter.<id>.tls.client-private-key`
1128 1837
1129Type / Values1838Type / Values
1130 1839
1131`number`1840`string`
1132 1841
1133Details1842Details
1134 1843
1135Retry count for SSE streaming interruptions (default: 5).1844Client private key path for OTEL exporter TLS.
1136 1845
1137Key1846Key
1138 1847
1139`model_providers.<id>.wire_api`1848`otel.log_user_prompt`
1140 1849
1141Type / Values1850Type / Values
1142 1851
1143`chat | responses`1852`boolean`
1144 1853
1145Details1854Details
1146 1855
1147Protocol used by the provider (defaults to `chat` if omitted).1856Opt in to exporting raw user prompts with OpenTelemetry logs.
1148 1857
1149Key1858Key
1150 1859
1151`model_reasoning_effort`1860`otel.metrics_exporter`
1152 1861
1153Type / Values1862Type / Values
1154 1863
1155`minimal | low | medium | high | xhigh`1864`none | statsig | otlp-http | otlp-grpc`
1156 1865
1157Details1866Details
1158 1867
1159Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1868Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1160 1869
1161Key1870Key
1162 1871
1163`model_reasoning_summary`1872`otel.trace_exporter`
1164 1873
1165Type / Values1874Type / Values
1166 1875
1167`auto | concise | detailed | none`1876`none | otlp-http | otlp-grpc`
1168 1877
1169Details1878Details
1170 1879
1171Select reasoning summary detail or disable summaries entirely.1880Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1172 1881
1173Key1882Key
1174 1883
1175`model_supports_reasoning_summaries`1884`otel.trace_exporter.<id>.endpoint`
1176 1885
1177Type / Values1886Type / Values
1178 1887
1179`boolean`1888`string`
1180 1889
1181Details1890Details
1182 1891
1183Force Codex to send or not send reasoning metadata.1892Trace exporter endpoint for OTEL logs.
1184 1893
1185Key1894Key
1186 1895
1187`model_verbosity`1896`otel.trace_exporter.<id>.headers`
1188 1897
1189Type / Values1898Type / Values
1190 1899
1191`low | medium | high`1900`map<string,string>`
1192 1901
1193Details1902Details
1194 1903
1195Control GPT-5 Responses API verbosity (defaults to `medium`).1904Static headers included with OTEL trace exporter requests.
1196 1905
1197Key1906Key
1198 1907
1199`notice.hide_full_access_warning`1908`otel.trace_exporter.<id>.protocol`
1200 1909
1201Type / Values1910Type / Values
1202 1911
1203`boolean`1912`binary | json`
1204 1913
1205Details1914Details
1206 1915
1207Track acknowledgement of the full access warning prompt.1916Protocol used by the OTLP/HTTP trace exporter.
1208 1917
1209Key1918Key
1210 1919
1211`notice.hide_gpt-5.1-codex-max_migration_prompt`1920`otel.trace_exporter.<id>.tls.ca-certificate`
1212 1921
1213Type / Values1922Type / Values
1214 1923
1215`boolean`1924`string`
1216 1925
1217Details1926Details
1218 1927
1219Track acknowledgement of the gpt-5.1-codex-max migration prompt.1928CA certificate path for OTEL trace exporter TLS.
1220 1929
1221Key1930Key
1222 1931
1223`notice.hide_gpt5_1_migration_prompt`1932`otel.trace_exporter.<id>.tls.client-certificate`
1224 1933
1225Type / Values1934Type / Values
1226 1935
1227`boolean`1936`string`
1228 1937
1229Details1938Details
1230 1939
1231Track acknowledgement of the GPT-5.1 migration prompt.1940Client certificate path for OTEL trace exporter TLS.
1232 1941
1233Key1942Key
1234 1943
1235`notice.hide_rate_limit_model_nudge`1944`otel.trace_exporter.<id>.tls.client-private-key`
1236 1945
1237Type / Values1946Type / Values
1238 1947
1239`boolean`1948`string`
1240 1949
1241Details1950Details
1242 1951
1243Track opt-out of the rate limit model switch reminder.1952Client private key path for OTEL trace exporter TLS.
1244 1953
1245Key1954Key
1246 1955
1247`notice.hide_world_writable_warning`1956`permissions.network.admin_url`
1248 1957
1249Type / Values1958Type / Values
1250 1959
1251`boolean`1960`string`
1252 1961
1253Details1962Details
1254 1963
1255Track acknowledgement of the Windows world-writable directories warning.1964Admin endpoint for the managed network proxy.
1256 1965
1257Key1966Key
1258 1967
1259`notice.model_migrations`1968`permissions.network.allow_local_binding`
1260 1969
1261Type / Values1970Type / Values
1262 1971
1263`map<string,string>`1972`boolean`
1264 1973
1265Details1974Details
1266 1975
1267Track acknowledged model migrations as old->new mappings.1976Permit local bind/listen operations through the managed proxy.
1268 1977
1269Key1978Key
1270 1979
1271`notify`1980`permissions.network.allow_unix_sockets`
1272 1981
1273Type / Values1982Type / Values
1274 1983
1276 1985
1277Details1986Details
1278 1987
1279Command invoked for notifications; receives a JSON payload from Codex.1988Allowlist of Unix socket paths permitted through the managed proxy.
1280 1989
1281Key1990Key
1282 1991
1283`oss_provider`1992`permissions.network.allow_upstream_proxy`
1284 1993
1285Type / Values1994Type / Values
1286 1995
1287`lmstudio | ollama`1996`boolean`
1288 1997
1289Details1998Details
1290 1999
1291Default local provider used when running with `--oss` (defaults to prompting if unset).2000Allow the managed proxy to chain to another upstream proxy.
1292 2001
1293Key2002Key
1294 2003
1295`otel.environment`2004`permissions.network.allowed_domains`
1296 2005
1297Type / Values2006Type / Values
1298 2007
1299`string`2008`array<string>`
1300 2009
1301Details2010Details
1302 2011
1303Environment tag applied to emitted OpenTelemetry events (default: `dev`).2012Allowlist of domains permitted through the managed proxy.
1304 2013
1305Key2014Key
1306 2015
1307`otel.exporter`2016`permissions.network.dangerously_allow_all_unix_sockets`
1308 2017
1309Type / Values2018Type / Values
1310 2019
1311`none | otlp-http | otlp-grpc`2020`boolean`
1312 2021
1313Details2022Details
1314 2023
1315Select the OpenTelemetry exporter and provide any endpoint metadata.2024Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
1316 2025
1317Key2026Key
1318 2027
1319`otel.exporter.<id>.endpoint`2028`permissions.network.dangerously_allow_non_loopback_admin`
1320 2029
1321Type / Values2030Type / Values
1322 2031
1323`string`2032`boolean`
1324 2033
1325Details2034Details
1326 2035
1327Exporter endpoint for OTEL logs.2036Permit non-loopback bind addresses for the managed proxy admin listener.
1328 2037
1329Key2038Key
1330 2039
1331`otel.exporter.<id>.headers`2040`permissions.network.dangerously_allow_non_loopback_proxy`
1332 2041
1333Type / Values2042Type / Values
1334 2043
1335`map<string,string>`2044`boolean`
1336 2045
1337Details2046Details
1338 2047
1339Static headers included with OTEL exporter requests.2048Permit non-loopback bind addresses for the managed proxy listener.
1340 2049
1341Key2050Key
1342 2051
1343`otel.exporter.<id>.protocol`2052`permissions.network.denied_domains`
1344 2053
1345Type / Values2054Type / Values
1346 2055
1347`binary | json`2056`array<string>`
1348 2057
1349Details2058Details
1350 2059
1351Protocol used by the OTLP/HTTP exporter.2060Denylist of domains blocked by the managed proxy.
1352 2061
1353Key2062Key
1354 2063
1355`otel.exporter.<id>.tls.ca-certificate`2064`permissions.network.enable_socks5`
1356 2065
1357Type / Values2066Type / Values
1358 2067
1359`string`2068`boolean`
1360 2069
1361Details2070Details
1362 2071
1363CA certificate path for OTEL exporter TLS.2072Expose a SOCKS5 listener from the managed network proxy.
1364 2073
1365Key2074Key
1366 2075
1367`otel.exporter.<id>.tls.client-certificate`2076`permissions.network.enable_socks5_udp`
1368 2077
1369Type / Values2078Type / Values
1370 2079
1371`string`2080`boolean`
1372 2081
1373Details2082Details
1374 2083
1375Client certificate path for OTEL exporter TLS.2084Allow UDP over the SOCKS5 listener when enabled.
1376 2085
1377Key2086Key
1378 2087
1379`otel.exporter.<id>.tls.client-private-key`2088`permissions.network.enabled`
1380 2089
1381Type / Values2090Type / Values
1382 2091
1383`string`2092`boolean`
1384 2093
1385Details2094Details
1386 2095
1387Client private key path for OTEL exporter TLS.2096Enable the managed network proxy configuration for subprocesses.
1388 2097
1389Key2098Key
1390 2099
1391`otel.log_user_prompt`2100`permissions.network.mode`
1392 2101
1393Type / Values2102Type / Values
1394 2103
1395`boolean`2104`limited | full`
1396 2105
1397Details2106Details
1398 2107
1399Opt in to exporting raw user prompts with OpenTelemetry logs.2108Network proxy mode used for subprocess traffic.
1400 2109
1401Key2110Key
1402 2111
1403`otel.trace_exporter`2112`permissions.network.proxy_url`
1404 2113
1405Type / Values2114Type / Values
1406 2115
1407`none | otlp-http | otlp-grpc`2116`string`
1408 2117
1409Details2118Details
1410 2119
1411Select the OpenTelemetry trace exporter and provide any endpoint metadata.2120HTTP proxy endpoint used by the managed network proxy.
1412 2121
1413Key2122Key
1414 2123
1415`otel.trace_exporter.<id>.endpoint`2124`permissions.network.socks_url`
1416 2125
1417Type / Values2126Type / Values
1418 2127
1420 2129
1421Details2130Details
1422 2131
1423Trace exporter endpoint for OTEL logs.2132SOCKS5 proxy endpoint used by the managed network proxy.
1424 2133
1425Key2134Key
1426 2135
1427`otel.trace_exporter.<id>.headers`2136`personality`
1428 2137
1429Type / Values2138Type / Values
1430 2139
1431`map<string,string>`2140`none | friendly | pragmatic`
1432 2141
1433Details2142Details
1434 2143
1435Static headers included with OTEL trace exporter requests.2144Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
1436 2145
1437Key2146Key
1438 2147
1439`otel.trace_exporter.<id>.protocol`2148`plan_mode_reasoning_effort`
1440 2149
1441Type / Values2150Type / Values
1442 2151
1443`binary | json`2152`none | minimal | low | medium | high | xhigh`
1444 2153
1445Details2154Details
1446 2155
1447Protocol used by the OTLP/HTTP trace exporter.2156Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
1448 2157
1449Key2158Key
1450 2159
1451`otel.trace_exporter.<id>.tls.ca-certificate`2160`profile`
1452 2161
1453Type / Values2162Type / Values
1454 2163
1456 2165
1457Details2166Details
1458 2167
1459CA certificate path for OTEL trace exporter TLS.2168Default profile applied at startup (equivalent to `--profile`).
1460 2169
1461Key2170Key
1462 2171
1463`otel.trace_exporter.<id>.tls.client-certificate`2172`profiles.<name>.*`
1464 2173
1465Type / Values2174Type / Values
1466 2175
1467`string`2176`various`
1468 2177
1469Details2178Details
1470 2179
1471Client certificate path for OTEL trace exporter TLS.2180Profile-scoped overrides for any of the supported configuration keys.
1472 2181
1473Key2182Key
1474 2183
1475`otel.trace_exporter.<id>.tls.client-private-key`2184`profiles.<name>.analytics.enabled`
1476 2185
1477Type / Values2186Type / Values
1478 2187
1479`string`2188`boolean`
1480 2189
1481Details2190Details
1482 2191
1483Client private key path for OTEL trace exporter TLS.2192Profile-scoped analytics enablement override.
1484 2193
1485Key2194Key
1486 2195
1487`personality`2196`profiles.<name>.experimental_use_unified_exec_tool`
1488 2197
1489Type / Values2198Type / Values
1490 2199
1491`none | friendly | pragmatic`2200`boolean`
1492 2201
1493Details2202Details
1494 2203
1495Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.2204Legacy name for enabling unified exec; prefer `[features].unified_exec`.
1496 2205
1497Key2206Key
1498 2207
1499`profile`2208`profiles.<name>.model_catalog_json`
1500 2209
1501Type / Values2210Type / Values
1502 2211
1503`string`2212`string (path)`
1504 2213
1505Details2214Details
1506 2215
1507Default profile applied at startup (equivalent to `--profile`).2216Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
1508 2217
1509Key2218Key
1510 2219
1511`profiles.<name>.*`2220`profiles.<name>.model_instructions_file`
1512 2221
1513Type / Values2222Type / Values
1514 2223
1515`various`2224`string (path)`
1516 2225
1517Details2226Details
1518 2227
1519Profile-scoped overrides for any of the supported configuration keys.2228Profile-scoped replacement for the built-in instruction file.
1520 2229
1521Key2230Key
1522 2231
1523`profiles.<name>.experimental_use_freeform_apply_patch`2232`profiles.<name>.oss_provider`
1524 2233
1525Type / Values2234Type / Values
1526 2235
1527`boolean`2236`lmstudio | ollama`
1528 2237
1529Details2238Details
1530 2239
1531Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2240Profile-scoped OSS provider for `--oss` sessions.
1532 2241
1533Key2242Key
1534 2243
1535`profiles.<name>.experimental_use_unified_exec_tool`2244`profiles.<name>.personality`
1536 2245
1537Type / Values2246Type / Values
1538 2247
1539`boolean`2248`none | friendly | pragmatic`
1540 2249
1541Details2250Details
1542 2251
1543Legacy name for enabling unified exec; prefer `[features].unified_exec`.2252Profile-scoped communication style override for supported models.
1544 2253
1545Key2254Key
1546 2255
1547`profiles.<name>.include_apply_patch_tool`2256`profiles.<name>.plan_mode_reasoning_effort`
1548 2257
1549Type / Values2258Type / Values
1550 2259
1551`boolean`2260`none | minimal | low | medium | high | xhigh`
1552 2261
1553Details2262Details
1554 2263
1555Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2264Profile-scoped Plan-mode reasoning override.
1556 2265
1557Key2266Key
1558 2267
1559`profiles.<name>.oss_provider`2268`profiles.<name>.service_tier`
1560 2269
1561Type / Values2270Type / Values
1562 2271
1563`lmstudio | ollama`2272`flex | fast`
1564 2273
1565Details2274Details
1566 2275
1567Profile-scoped OSS provider for `--oss` sessions.2276Profile-scoped service tier preference for new turns.
1568 2277
1569Key2278Key
1570 2279
1571`profiles.<name>.personality`2280`profiles.<name>.tools_view_image`
1572 2281
1573Type / Values2282Type / Values
1574 2283
1575`none | friendly | pragmatic`2284`boolean`
1576 2285
1577Details2286Details
1578 2287
1579Profile-scoped communication style override for supported models.2288Enable or disable the `view_image` tool in that profile.
1580 2289
1581Key2290Key
1582 2291
1592 2301
1593Key2302Key
1594 2303
2304`profiles.<name>.windows.sandbox`
2305
2306Type / Values
2307
2308`unelevated | elevated`
2309
2310Details
2311
2312Profile-scoped Windows sandbox mode override.
2313
2314Key
2315
1595`project_doc_fallback_filenames`2316`project_doc_fallback_filenames`
1596 2317
1597Type / Values2318Type / Values
1712 2433
1713Key2434Key
1714 2435
2436`service_tier`
2437
2438Type / Values
2439
2440`flex | fast`
2441
2442Details
2443
2444Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled.
2445
2446Key
2447
1715`shell_environment_policy.exclude`2448`shell_environment_policy.exclude`
1716 2449
1717Type / Values2450Type / Values
1832 2565
1833Key2566Key
1834 2567
2568`sqlite_home`
2569
2570Type / Values
2571
2572`string (path)`
2573
2574Details
2575
2576Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.
2577
2578Key
2579
1835`suppress_unstable_features_warning`2580`suppress_unstable_features_warning`
1836 2581
1837Type / Values2582Type / Values
1856 2601
1857Key2602Key
1858 2603
2604`tools.view_image`
2605
2606Type / Values
2607
2608`boolean`
2609
2610Details
2611
2612Enable the local-image attachment tool `view_image`.
2613
2614Key
2615
1859`tools.web_search`2616`tools.web_search`
1860 2617
1861Type / Values2618Type / Values
1904 2661
1905Key2662Key
1906 2663
2664`tui.model_availability_nux.<model>`
2665
2666Type / Values
2667
2668`integer`
2669
2670Details
2671
2672Internal startup-tooltip state keyed by model slug.
2673
2674Key
2675
1907`tui.notification_method`2676`tui.notification_method`
1908 2677
1909Type / Values2678Type / Values
1952 2721
1953Key2722Key
1954 2723
2724`tui.theme`
2725
2726Type / Values
2727
2728`string`
2729
2730Details
2731
2732Syntax-highlighting theme override (kebab-case theme name).
2733
2734Key
2735
1955`web_search`2736`web_search`
1956 2737
1957Type / Values2738Type / Values
1974 2755
1975Track Windows onboarding acknowledgement (Windows only).2756Track Windows onboarding acknowledgement (Windows only).
1976 2757
2758Key
2759
2760`windows.sandbox`
2761
2762Type / Values
2763
2764`unelevated | elevated`
2765
2766Details
2767
2768Windows-only native sandbox mode when running Codex natively on Windows.
2769
1977Expand to view all2770Expand to view all
1978 2771
1979You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2772You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).
1988 2781
1989## `requirements.toml`2782## `requirements.toml`
1990 2783
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).2784`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 2785
1993For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2786For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
1994requirements. See the security page for precedence details.2787requirements. See the security page for precedence details.
1995 2788
2789Use `[features]` in `requirements.toml` to pin feature flags by the same
2790canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
2791
1996| Key | Type / Values | Details |2792| Key | Type / Values | Details |
1997| --- | --- | --- |2793| --- | --- | --- |
1998| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. |2794| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). |
1999| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2795| `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`. |2796| `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`. |
2797| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2798| `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. |2799| `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). |2800| `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. |2801| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |
2020 2818
2021Details2819Details
2022 2820
2023Allowed values for `approval\_policy`.2821Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).
2024 2822
2025Key2823Key
2026 2824
2048 2846
2049Key2847Key
2050 2848
2849`features`
2850
2851Type / Values
2852
2853`table`
2854
2855Details
2856
2857Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.
2858
2859Key
2860
2861`features.<name>`
2862
2863Type / Values
2864
2865`boolean`
2866
2867Details
2868
2869Require a specific canonical feature key to stay enabled or disabled.
2870
2871Key
2872
2051`mcp_servers`2873`mcp_servers`
2052 2874
2053Type / Values2875Type / Values