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