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