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 | auto_review` | Who reviews eligible approval prompts under `on-request` or granular approval policies. Defaults to `user`; `auto_review` uses the reviewer subagent. This setting doesn't change sandboxing or review actions already allowed inside the sandbox. |
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| `auto_review.policy` | `string` | Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored. |
39| `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. |40| `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). |41| `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). |42| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |
43| `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. |44| `compact_prompt` | `string` | Inline override for the history compaction prompt. |
45| `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). |46| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
22| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |47| `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). |48| `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`. |49| `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). |50| `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). |51| `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). |52| `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). |53| `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). |54| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
32| `features.experimental_windows_sandbox` | `boolean` | Run the Windows restricted-token sandbox (experimental). |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). |
33| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off 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. |
65| `mcp_servers.<id>.enabled_tools` | `array<string>` | Allow list of tool names exposed by the MCP server. |84| `mcp_servers.<id>.enabled_tools` | `array<string>` | Allow list of tool names exposed by the MCP server. |
66| `mcp_servers.<id>.env` | `map<string,string>` | Environment variables forwarded to the MCP stdio server. |85| `mcp_servers.<id>.env` | `map<string,string>` | Environment variables forwarded to the MCP stdio 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 | { name = string, source = "local" | "remote" }>` | Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio. |
88| `mcp_servers.<id>.experimental_environment` | `local | remote` | Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented. |
69| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |89| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |
90| `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. |91| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |
92| `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. |93| `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. |94| `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. |95| `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. |96| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |
75| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |97| `memories.consolidation_model` | `string` | Optional model override for global memory consolidation. |
98| `memories.disable_on_external_context` | `boolean` | When `true`, threads that use external context such as MCP tool calls, web search, or tool search are kept out of memory generation. Defaults to `false`. Legacy alias: `memories.no_memories_if_mcp_or_web_search`. |
99| `memories.extract_model` | `string` | Optional model override for per-thread memory extraction. |
100| `memories.generate_memories` | `boolean` | When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`. |
101| `memories.max_raw_memories_for_consolidation` | `number` | Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`. |
102| `memories.max_rollout_age_days` | `number` | Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`. |
103| `memories.max_rollouts_per_startup` | `number` | Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`. |
104| `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`. |
105| `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`. |
106| `memories.use_memories` | `boolean` | When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`. |
107| `model` | `string` | Model to use (e.g., `gpt-5.5`). |
76| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |108| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |
109| `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. |110| `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`. |111| `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`). |112| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |
113| `model_providers.<id>` | `table` | Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden. |
114| `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`. |
115| `model_providers.<id>.auth.args` | `array<string>` | Arguments passed to the token command. |
116| `model_providers.<id>.auth.command` | `string` | Command to run when Codex needs a bearer token. The command must print the token to stdout. |
117| `model_providers.<id>.auth.cwd` | `string (path)` | Working directory for the token command. |
118| `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. |
119| `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. |120| `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. |121| `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. |122| `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). |129| `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). |130| `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). |131| `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). |132| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |
133| `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). |134| `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. |135| `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. |136| `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`). |137| `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. |138| `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. |139| `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. |140| `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. |142| `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. |143| `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. |144| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |
145| `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). |146| `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`). |147| `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. |148| `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. |153| `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. |154| `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. |155| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |
156| `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. |157| `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. |158| `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. |159| `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. |161| `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. |162| `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. |163| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
164| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
165| `permissions.<name>.filesystem.":project_roots".<subpath-or-glob>` | `"read" | "write" | "none"` | Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`. |
166| `permissions.<name>.filesystem.<path-or-glob>` | `"read" | "write" | "none" | table` | Grant direct access for a path, glob pattern, or special token, or scope nested entries under that root. Use `"none"` to deny reads for matching paths. |
167| `permissions.<name>.filesystem.glob_scan_max_depth` | `number` | Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set. |
168| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
169| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
170| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
171| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
172| `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. |
173| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
174| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
175| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
176| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
177| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
178| `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |
179| `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`. |180| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
181| `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`). |182| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
123| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |183| `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`. |184| `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`. |185| `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`. |186| `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). |
187| `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. |188| `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. |189| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |
190| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |
191| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |
192| `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"`). |193| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |
194| `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. |195| `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. |196| `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. |197| `project_root_markers` | `array<string>` | List of project root marker filenames; used when searching parent directories for the project root. |
133| `projects.<path>.trust_level` | `string` | Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers. |198| `projects.<path>.trust_level` | `string` | Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules. |
134| `review_model` | `string` | Optional model override used by `/review` (defaults to the current session model). |199| `review_model` | `string` | Optional model override used by `/review` (defaults to the current session model). |
135| `sandbox_mode` | `read-only | workspace-write | danger-full-access` | Sandbox policy for filesystem and network access during command execution. |200| `sandbox_mode` | `read-only | workspace-write | danger-full-access` | Sandbox policy for filesystem and network access during command execution. |
136| `sandbox_workspace_write.exclude_slash_tmp` | `boolean` | Exclude `/tmp` from writable roots in workspace-write mode. |201| `sandbox_workspace_write.exclude_slash_tmp` | `boolean` | Exclude `/tmp` from writable roots in workspace-write mode. |
137| `sandbox_workspace_write.exclude_tmpdir_env_var` | `boolean` | Exclude `$TMPDIR` from writable roots in workspace-write mode. |202| `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. |203| `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"`. |204| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
205| `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. |206| `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. |207| `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. |208| `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. |213| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |
148| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |214| `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`. |215| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |
216| `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. |217| `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. |218| `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. |219| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
220| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
221| `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. |222| `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). |223| `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). |224| `tui.animations` | `boolean` | Enable terminal animations (welcome screen, shimmer, spinner) (default: true). |
156| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |225| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |
226| `tui.notification_condition` | `unfocused | always` | Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`. |
227| `tui.notification_method` | `auto | osc9 | bel` | Notification method for terminal notifications (default: auto). |
157| `tui.notifications` | `boolean | array<string>` | Enable TUI notifications; optionally restrict to specific event types. |228| `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). |229| `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. |230| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
231| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |
232| `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. |233| `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). |234| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
235| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
236| `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 237
163Key238Key
164 239
186 261
187Key262Key
188 263
189`agents.max_threads`264`agents.<name>.nickname_candidates`
190 265
191Type / Values266Type / Values
192 267
193`number`268`array<string>`
194 269
195Details270Details
196 271
197Maximum number of agent threads that can be open concurrently.272Optional pool of display nicknames for spawned agents in that role.
198 273
199Key274Key
200 275
201`approval_policy`276`agents.job_max_runtime_seconds`
202 277
203Type / Values278Type / Values
204 279
205`untrusted | on-request | never`280`number`
206 281
207Details282Details
208 283
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.284Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
210 285
211Key286Key
212 287
213`apps.<id>.disabled_reason`288`agents.max_depth`
214 289
215Type / Values290Type / Values
216 291
217`unknown | user`292`number`
218 293
219Details294Details
220 295
221Optional reason attached when an app/connector is disabled.296Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).
222 297
223Key298Key
224 299
225`apps.<id>.enabled`300`agents.max_threads`
226 301
227Type / Values302Type / Values
228 303
229`boolean`304`number`
230 305
231Details306Details
232 307
233Enable or disable a specific app/connector by id (default: true).308Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
234 309
235Key310Key
236 311
237`chatgpt_base_url`312`allow_login_shell`
238 313
239Type / Values314Type / Values
240 315
241`string`316`boolean`
242 317
243Details318Details
244 319
245Override the base URL used during the ChatGPT login flow.320Allow 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 321
247Key322Key
248 323
249`check_for_update_on_startup`324`analytics.enabled`
250 325
251Type / Values326Type / Values
252 327
254 329
255Details330Details
256 331
257Check for Codex updates on startup (set to false only when updates are centrally managed).332Enable or disable analytics for this machine/profile. When unset, the client default applies.
258 333
259Key334Key
260 335
261`cli_auth_credentials_store`336`approval_policy`
262 337
263Type / Values338Type / Values
264 339
265`file | keyring | auto`340`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
266 341
267Details342Details
268 343
269Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).344Controls 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 345
271Key346Key
272 347
273`compact_prompt`348`approval_policy.granular.mcp_elicitations`
274 349
275Type / Values350Type / Values
276 351
277`string`352`boolean`
278 353
279Details354Details
280 355
281Inline override for the history compaction prompt.356When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
282 357
283Key358Key
284 359
285`developer_instructions`360`approval_policy.granular.request_permissions`
286 361
287Type / Values362Type / Values
288 363
289`string`364`boolean`
290 365
291Details366Details
292 367
293Additional developer instructions injected into the session (optional).368When `true`, prompts from the `request_permissions` tool are allowed to surface.
294 369
295Key370Key
296 371
297`disable_paste_burst`372`approval_policy.granular.rules`
298 373
299Type / Values374Type / Values
300 375
302 377
303Details378Details
304 379
305Disable burst-paste detection in the TUI.380When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
306 381
307Key382Key
308 383
309`experimental_compact_prompt_file`384`approval_policy.granular.sandbox_approval`
310 385
311Type / Values386Type / Values
312 387
313`string (path)`388`boolean`
314 389
315Details390Details
316 391
317Load the compaction prompt override from a file (experimental).392When `true`, sandbox escalation approval prompts are allowed to surface.
318 393
319Key394Key
320 395
321`experimental_use_freeform_apply_patch`396`approval_policy.granular.skill_approval`
322 397
323Type / Values398Type / Values
324 399
326 401
327Details402Details
328 403
329Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.404When `true`, skill-script approval prompts are allowed to surface.
330 405
331Key406Key
332 407
333`experimental_use_unified_exec_tool`408`approvals_reviewer`
334 409
335Type / Values410Type / Values
336 411
337`boolean`412`user | auto_review`
338 413
339Details414Details
340 415
341Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.416Who reviews eligible approval prompts under `on-request` or granular approval policies. Defaults to `user`; `auto_review` uses the reviewer subagent. This setting doesn't change sandboxing or review actions already allowed inside the sandbox.
342 417
343Key418Key
344 419
345`features.apply_patch_freeform`420`apps._default.destructive_enabled`
346 421
347Type / Values422Type / Values
348 423
350 425
351Details426Details
352 427
353Expose the freeform `apply_patch` tool (experimental).428Default allow/deny for app tools with `destructive_hint = true`.
354 429
355Key430Key
356 431
357`features.apps`432`apps._default.enabled`
358 433
359Type / Values434Type / Values
360 435
362 437
363Details438Details
364 439
365Enable ChatGPT Apps/connectors support (experimental).440Default app enabled state for all apps unless overridden per app.
366 441
367Key442Key
368 443
369`features.apps_mcp_gateway`444`apps._default.open_world_enabled`
370 445
371Type / Values446Type / Values
372 447
374 449
375Details450Details
376 451
377Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).452Default allow/deny for app tools with `open_world_hint = true`.
378 453
379Key454Key
380 455
381`features.child_agents_md`456`apps.<id>.default_tools_approval_mode`
382 457
383Type / Values458Type / Values
384 459
385`boolean`460`auto | prompt | approve`
386 461
387Details462Details
388 463
389Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).464Default approval behavior for tools in this app unless a per-tool override exists.
390 465
391Key466Key
392 467
393`features.collaboration_modes`468`apps.<id>.default_tools_enabled`
394 469
395Type / Values470Type / Values
396 471
398 473
399Details474Details
400 475
401Enable collaboration modes such as plan mode (stable; on by default).476Default enabled state for tools in this app unless a per-tool override exists.
402 477
403Key478Key
404 479
405`features.elevated_windows_sandbox`480`apps.<id>.destructive_enabled`
406 481
407Type / Values482Type / Values
408 483
410 485
411Details486Details
412 487
413Enable the elevated Windows sandbox pipeline (experimental).488Allow or block tools in this app that advertise `destructive_hint = true`.
414 489
415Key490Key
416 491
417`features.experimental_windows_sandbox`492`apps.<id>.enabled`
418 493
419Type / Values494Type / Values
420 495
422 497
423Details498Details
424 499
425Run the Windows restricted-token sandbox (experimental).500Enable or disable a specific app/connector by id (default: true).
426 501
427Key502Key
428 503
429`features.multi_agent`504`apps.<id>.open_world_enabled`
430 505
431Type / Values506Type / Values
432 507
434 509
435Details510Details
436 511
437Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).512Allow or block tools in this app that advertise `open_world_hint = true`.
438 513
439Key514Key
440 515
441`features.personality`516`apps.<id>.tools.<tool>.approval_mode`
442 517
443Type / Values518Type / Values
444 519
445`boolean`520`auto | prompt | approve`
446 521
447Details522Details
448 523
449Enable personality selection controls (stable; on by default).524Per-tool approval behavior override for a single app tool.
450 525
451Key526Key
452 527
453`features.powershell_utf8`528`apps.<id>.tools.<tool>.enabled`
454 529
455Type / Values530Type / Values
456 531
458 533
459Details534Details
460 535
461Force PowerShell UTF-8 output (defaults to true).536Per-tool enabled override for an app tool (for example `repos/list`).
462 537
463Key538Key
464 539
465`features.remote_models`540`auto_review.policy`
466 541
467Type / Values542Type / Values
468 543
469`boolean`544`string`
470 545
471Details546Details
472 547
473Refresh remote model list before showing readiness (experimental).548Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored.
474 549
475Key550Key
476 551
477`features.request_rule`552`background_terminal_max_timeout`
478 553
479Type / Values554Type / Values
480 555
481`boolean`556`number`
482 557
483Details558Details
484 559
485Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).560Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key.
486 561
487Key562Key
488 563
489`features.runtime_metrics`564`chatgpt_base_url`
490 565
491Type / Values566Type / Values
492 567
493`boolean`568`string`
494 569
495Details570Details
496 571
497Show runtime metrics summary in TUI turn separators (experimental).572Override the base URL used during the ChatGPT login flow.
498 573
499Key574Key
500 575
501`features.search_tool`576`check_for_update_on_startup`
502 577
503Type / Values578Type / Values
504 579
506 581
507Details582Details
508 583
509Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).584Check for Codex updates on startup (set to false only when updates are centrally managed).
510 585
511Key586Key
512 587
513`features.shell_snapshot`588`cli_auth_credentials_store`
514 589
515Type / Values590Type / Values
516 591
517`boolean`592`file | keyring | auto`
518 593
519Details594Details
520 595
521Snapshot shell environment to speed up repeated commands (beta).596Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).
522 597
523Key598Key
524 599
525`features.shell_tool`600`commit_attribution`
526 601
527Type / Values602Type / Values
528 603
529`boolean`604`string`
530 605
531Details606Details
532 607
533Enable the default `shell` tool for running commands (stable; on by default).608Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
534 609
535Key610Key
536 611
537`features.unified_exec`612`compact_prompt`
538 613
539Type / Values614Type / Values
540 615
541`boolean`616`string`
542 617
543Details618Details
544 619
545Use the unified PTY-backed exec tool (beta).620Inline override for the history compaction prompt.
546 621
547Key622Key
548 623
549`features.use_linux_sandbox_bwrap`624`default_permissions`
550 625
551Type / Values626Type / Values
552 627
553`boolean`628`string`
554 629
555Details630Details
556 631
557Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).632Name of the default permissions profile to apply to sandboxed tool calls.
558 633
559Key634Key
560 635
561`features.web_search`636`developer_instructions`
562 637
563Type / Values638Type / Values
564 639
565`boolean`640`string`
566 641
567Details642Details
568 643
569Deprecated legacy toggle; prefer the top-level `web_search` setting.644Additional developer instructions injected into the session (optional).
570 645
571Key646Key
572 647
573`features.web_search_cached`648`disable_paste_burst`
574 649
575Type / Values650Type / Values
576 651
578 653
579Details654Details
580 655
581Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.656Disable burst-paste detection in the TUI.
582 657
583Key658Key
584 659
585`features.web_search_request`660`experimental_compact_prompt_file`
586 661
587Type / Values662Type / Values
588 663
589`boolean`664`string (path)`
590 665
591Details666Details
592 667
593Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.668Load the compaction prompt override from a file (experimental).
594 669
595Key670Key
596 671
597`feedback.enabled`672`experimental_use_unified_exec_tool`
598 673
599Type / Values674Type / Values
600 675
602 677
603Details678Details
604 679
605Enable feedback submission via `/feedback` across Codex surfaces (default: true).680Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
606 681
607Key682Key
608 683
609`file_opener`684`features.apps`
610 685
611Type / Values686Type / Values
612 687
613`vscode | vscode-insiders | windsurf | cursor | none`688`boolean`
614 689
615Details690Details
616 691
617URI scheme used to open citations from Codex output (default: `vscode`).692Enable ChatGPT Apps/connectors support (experimental).
618 693
619Key694Key
620 695
621`forced_chatgpt_workspace_id`696`features.codex_hooks`
622 697
623Type / Values698Type / Values
624 699
625`string (uuid)`700`boolean`
626 701
627Details702Details
628 703
629Limit ChatGPT logins to a specific workspace identifier.704Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).
630 705
631Key706Key
632 707
633`forced_login_method`708`features.enable_request_compression`
634 709
635Type / Values710Type / Values
636 711
637`chatgpt | api`712`boolean`
638 713
639Details714Details
640 715
641Restrict Codex to a specific authentication method.716Compress streaming request bodies with zstd when supported (stable; on by default).
642 717
643Key718Key
644 719
645`hide_agent_reasoning`720`features.fast_mode`
646 721
647Type / Values722Type / Values
648 723
650 725
651Details726Details
652 727
653Suppress reasoning events in both the TUI and `codex exec` output.728Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
654 729
655Key730Key
656 731
657`history.max_bytes`732`features.memories`
658 733
659Type / Values734Type / Values
660 735
661`number`736`boolean`
662 737
663Details738Details
664 739
665If set, caps the history file size in bytes by dropping oldest entries.740Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
666 741
667Key742Key
668 743
669`history.persistence`744`features.multi_agent`
670 745
671Type / Values746Type / Values
672 747
673`save-all | none`748`boolean`
674 749
675Details750Details
676 751
677Control whether Codex saves session transcripts to history.jsonl.752Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
678 753
679Key754Key
680 755
681`include_apply_patch_tool`756`features.personality`
682 757
683Type / Values758Type / Values
684 759
686 761
687Details762Details
688 763
689Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.764Enable personality selection controls (stable; on by default).
690 765
691Key766Key
692 767
693`instructions`768`features.prevent_idle_sleep`
694 769
695Type / Values770Type / Values
696 771
697`string`772`boolean`
698 773
699Details774Details
700 775
701Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.776Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
702 777
703Key778Key
704 779
705`log_dir`780`features.shell_snapshot`
706 781
707Type / Values782Type / Values
708 783
709`string (path)`784`boolean`
710 785
711Details786Details
712 787
713Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.788Snapshot shell environment to speed up repeated commands (stable; on by default).
714 789
715Key790Key
716 791
717`mcp_oauth_callback_port`792`features.shell_tool`
718 793
719Type / Values794Type / Values
720 795
721`integer`796`boolean`
722 797
723Details798Details
724 799
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.800Enable the default `shell` tool for running commands (stable; on by default).
726 801
727Key802Key
728 803
729`mcp_oauth_credentials_store`804`features.skill_mcp_dependency_install`
730 805
731Type / Values806Type / Values
732 807
733`auto | file | keyring`808`boolean`
734 809
735Details810Details
736 811
737Preferred store for MCP OAuth credentials.812Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
738 813
739Key814Key
740 815
741`mcp_servers.<id>.args`816`features.undo`
742 817
743Type / Values818Type / Values
744 819
745`array<string>`820`boolean`
746 821
747Details822Details
748 823
749Arguments passed to the MCP stdio server command.824Enable undo support (stable; off by default).
750 825
751Key826Key
752 827
753`mcp_servers.<id>.bearer_token_env_var`828`features.unified_exec`
754 829
755Type / Values830Type / Values
756 831
757`string`832`boolean`
758 833
759Details834Details
760 835
761Environment variable sourcing the bearer token for an MCP HTTP server.836Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
762 837
763Key838Key
764 839
765`mcp_servers.<id>.command`840`features.web_search`
766 841
767Type / Values842Type / Values
768 843
769`string`844`boolean`
770 845
771Details846Details
772 847
773Launcher command for an MCP stdio server.848Deprecated legacy toggle; prefer the top-level `web_search` setting.
774 849
775Key850Key
776 851
777`mcp_servers.<id>.cwd`852`features.web_search_cached`
778 853
779Type / Values854Type / Values
780 855
781`string`856`boolean`
782 857
783Details858Details
784 859
785Working directory for the MCP stdio server process.860Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.
786 861
787Key862Key
788 863
789`mcp_servers.<id>.disabled_tools`864`features.web_search_request`
790 865
791Type / Values866Type / Values
792 867
793`array<string>`868`boolean`
794 869
795Details870Details
796 871
797Deny list applied after `enabled_tools` for the MCP server.872Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.
798 873
799Key874Key
800 875
801`mcp_servers.<id>.enabled`876`feedback.enabled`
802 877
803Type / Values878Type / Values
804 879
806 881
807Details882Details
808 883
809Disable an MCP server without removing its configuration.884Enable feedback submission via `/feedback` across Codex surfaces (default: true).
810 885
811Key886Key
812 887
813`mcp_servers.<id>.enabled_tools`888`file_opener`
814 889
815Type / Values890Type / Values
816 891
817`array<string>`892`vscode | vscode-insiders | windsurf | cursor | none`
818 893
819Details894Details
820 895
821Allow list of tool names exposed by the MCP server.896URI scheme used to open citations from Codex output (default: `vscode`).
822 897
823Key898Key
824 899
825`mcp_servers.<id>.env`900`forced_chatgpt_workspace_id`
826 901
827Type / Values902Type / Values
828 903
829`map<string,string>`904`string (uuid)`
830 905
831Details906Details
832 907
833Environment variables forwarded to the MCP stdio server.908Limit ChatGPT logins to a specific workspace identifier.
834 909
835Key910Key
836 911
837`mcp_servers.<id>.env_http_headers`912`forced_login_method`
838 913
839Type / Values914Type / Values
840 915
841`map<string,string>`916`chatgpt | api`
842 917
843Details918Details
844 919
845HTTP headers populated from environment variables for an MCP HTTP server.920Restrict Codex to a specific authentication method.
846 921
847Key922Key
848 923
849`mcp_servers.<id>.env_vars`924`hide_agent_reasoning`
850 925
851Type / Values926Type / Values
852 927
853`array<string>`928`boolean`
854 929
855Details930Details
856 931
857Additional environment variables to whitelist for an MCP stdio server.932Suppress reasoning events in both the TUI and `codex exec` output.
858 933
859Key934Key
860 935
861`mcp_servers.<id>.http_headers`936`history.max_bytes`
862 937
863Type / Values938Type / Values
864 939
865`map<string,string>`940`number`
866 941
867Details942Details
868 943
869Static HTTP headers included with each MCP HTTP request.944If set, caps the history file size in bytes by dropping oldest entries.
870 945
871Key946Key
872 947
873`mcp_servers.<id>.required`948`history.persistence`
874 949
875Type / Values950Type / Values
876 951
877`boolean`952`save-all | none`
878 953
879Details954Details
880 955
881When true, fail startup/resume if this enabled MCP server cannot initialize.956Control whether Codex saves session transcripts to history.jsonl.
882 957
883Key958Key
884 959
885`mcp_servers.<id>.startup_timeout_ms`960`instructions`
886 961
887Type / Values962Type / Values
888 963
889`number`964`string`
890 965
891Details966Details
892 967
893Alias for `startup_timeout_sec` in milliseconds.968Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.
894 969
895Key970Key
896 971
897`mcp_servers.<id>.startup_timeout_sec`972`log_dir`
898 973
899Type / Values974Type / Values
900 975
901`number`976`string (path)`
902 977
903Details978Details
904 979
905Override the default 10s startup timeout for an MCP server.980Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.
906 981
907Key982Key
908 983
909`mcp_servers.<id>.tool_timeout_sec`984`mcp_oauth_callback_port`
910 985
911Type / Values986Type / Values
912 987
913`number`988`integer`
914 989
915Details990Details
916 991
917Override the default 60s per-tool timeout for an MCP server.992Optional 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 993
919Key994Key
920 995
921`mcp_servers.<id>.url`996`mcp_oauth_callback_url`
922 997
923Type / Values998Type / Values
924 999
926 1001
927Details1002Details
928 1003
929Endpoint for an MCP streamable HTTP server.1004Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
930 1005
931Key1006Key
932 1007
933`model`1008`mcp_oauth_credentials_store`
934 1009
935Type / Values1010Type / Values
936 1011
937`string`1012`auto | file | keyring`
938 1013
939Details1014Details
940 1015
941Model to use (e.g., `gpt-5-codex`).1016Preferred store for MCP OAuth credentials.
942 1017
943Key1018Key
944 1019
945`model_auto_compact_token_limit`1020`mcp_servers.<id>.args`
946 1021
947Type / Values1022Type / Values
948 1023
949`number`1024`array<string>`
950 1025
951Details1026Details
952 1027
953Token threshold that triggers automatic history compaction (unset uses model defaults).1028Arguments passed to the MCP stdio server command.
954 1029
955Key1030Key
956 1031
957`model_context_window`1032`mcp_servers.<id>.bearer_token_env_var`
958 1033
959Type / Values1034Type / Values
960 1035
961`number`1036`string`
962 1037
963Details1038Details
964 1039
965Context window tokens available to the active model.1040Environment variable sourcing the bearer token for an MCP HTTP server.
966 1041
967Key1042Key
968 1043
969`model_instructions_file`1044`mcp_servers.<id>.command`
970 1045
971Type / Values1046Type / Values
972 1047
973`string (path)`1048`string`
974 1049
975Details1050Details
976 1051
977Replacement for built-in instructions instead of `AGENTS.md`.1052Launcher command for an MCP stdio server.
978 1053
979Key1054Key
980 1055
981`model_provider`1056`mcp_servers.<id>.cwd`
982 1057
983Type / Values1058Type / Values
984 1059
986 1061
987Details1062Details
988 1063
989Provider id from `model_providers` (default: `openai`).1064Working directory for the MCP stdio server process.
990 1065
991Key1066Key
992 1067
993`model_providers.<id>.base_url`1068`mcp_servers.<id>.disabled_tools`
994 1069
995Type / Values1070Type / Values
996 1071
997`string`1072`array<string>`
1073
1074Details
1075
1076Deny list applied after `enabled_tools` for the MCP server.
1077
1078Key
1079
1080`mcp_servers.<id>.enabled`
1081
1082Type / Values
1083
1084`boolean`
1085
1086Details
1087
1088Disable an MCP server without removing its configuration.
1089
1090Key
1091
1092`mcp_servers.<id>.enabled_tools`
1093
1094Type / Values
1095
1096`array<string>`
1097
1098Details
1099
1100Allow list of tool names exposed by the MCP server.
1101
1102Key
1103
1104`mcp_servers.<id>.env`
1105
1106Type / Values
1107
1108`map<string,string>`
1109
1110Details
1111
1112Environment variables forwarded to the MCP stdio server.
1113
1114Key
1115
1116`mcp_servers.<id>.env_http_headers`
1117
1118Type / Values
1119
1120`map<string,string>`
1121
1122Details
1123
1124HTTP headers populated from environment variables for an MCP HTTP server.
1125
1126Key
1127
1128`mcp_servers.<id>.env_vars`
1129
1130Type / Values
1131
1132`array<string | { name = string, source = "local" | "remote" }>`
1133
1134Details
1135
1136Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio.
1137
1138Key
1139
1140`mcp_servers.<id>.experimental_environment`
1141
1142Type / Values
1143
1144`local | remote`
1145
1146Details
1147
1148Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.
1149
1150Key
1151
1152`mcp_servers.<id>.http_headers`
1153
1154Type / Values
1155
1156`map<string,string>`
1157
1158Details
1159
1160Static HTTP headers included with each MCP HTTP request.
1161
1162Key
1163
1164`mcp_servers.<id>.oauth_resource`
1165
1166Type / Values
1167
1168`string`
1169
1170Details
1171
1172Optional RFC 8707 OAuth resource parameter to include during MCP login.
1173
1174Key
1175
1176`mcp_servers.<id>.required`
1177
1178Type / Values
1179
1180`boolean`
1181
1182Details
1183
1184When true, fail startup/resume if this enabled MCP server cannot initialize.
1185
1186Key
1187
1188`mcp_servers.<id>.scopes`
1189
1190Type / Values
1191
1192`array<string>`
1193
1194Details
1195
1196OAuth scopes to request when authenticating to that MCP server.
1197
1198Key
1199
1200`mcp_servers.<id>.startup_timeout_ms`
1201
1202Type / Values
1203
1204`number`
1205
1206Details
1207
1208Alias for `startup_timeout_sec` in milliseconds.
1209
1210Key
1211
1212`mcp_servers.<id>.startup_timeout_sec`
1213
1214Type / Values
1215
1216`number`
1217
1218Details
1219
1220Override the default 10s startup timeout for an MCP server.
1221
1222Key
1223
1224`mcp_servers.<id>.tool_timeout_sec`
1225
1226Type / Values
1227
1228`number`
1229
1230Details
1231
1232Override the default 60s per-tool timeout for an MCP server.
1233
1234Key
1235
1236`mcp_servers.<id>.url`
1237
1238Type / Values
1239
1240`string`
1241
1242Details
1243
1244Endpoint for an MCP streamable HTTP server.
1245
1246Key
1247
1248`memories.consolidation_model`
1249
1250Type / Values
1251
1252`string`
1253
1254Details
1255
1256Optional model override for global memory consolidation.
1257
1258Key
1259
1260`memories.disable_on_external_context`
1261
1262Type / Values
1263
1264`boolean`
1265
1266Details
1267
1268When `true`, threads that use external context such as MCP tool calls, web search, or tool search are kept out of memory generation. Defaults to `false`. Legacy alias: `memories.no_memories_if_mcp_or_web_search`.
1269
1270Key
1271
1272`memories.extract_model`
1273
1274Type / Values
1275
1276`string`
1277
1278Details
1279
1280Optional model override for per-thread memory extraction.
1281
1282Key
1283
1284`memories.generate_memories`
1285
1286Type / Values
1287
1288`boolean`
1289
1290Details
1291
1292When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1293
1294Key
1295
1296`memories.max_raw_memories_for_consolidation`
1297
1298Type / Values
1299
1300`number`
1301
1302Details
1303
1304Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1305
1306Key
1307
1308`memories.max_rollout_age_days`
1309
1310Type / Values
1311
1312`number`
1313
1314Details
1315
1316Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1317
1318Key
1319
1320`memories.max_rollouts_per_startup`
1321
1322Type / Values
1323
1324`number`
1325
1326Details
1327
1328Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1329
1330Key
1331
1332`memories.max_unused_days`
1333
1334Type / Values
1335
1336`number`
1337
1338Details
1339
1340Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1341
1342Key
1343
1344`memories.min_rollout_idle_hours`
1345
1346Type / Values
1347
1348`number`
1349
1350Details
1351
1352Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1353
1354Key
1355
1356`memories.use_memories`
1357
1358Type / Values
1359
1360`boolean`
1361
1362Details
1363
1364When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1365
1366Key
1367
1368`model`
1369
1370Type / Values
1371
1372`string`
1373
1374Details
1375
1376Model to use (e.g., `gpt-5.5`).
1377
1378Key
1379
1380`model_auto_compact_token_limit`
1381
1382Type / Values
1383
1384`number`
1385
1386Details
1387
1388Token threshold that triggers automatic history compaction (unset uses model defaults).
1389
1390Key
1391
1392`model_catalog_json`
1393
1394Type / Values
1395
1396`string (path)`
1397
1398Details
1399
1400Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1401
1402Key
1403
1404`model_context_window`
1405
1406Type / Values
1407
1408`number`
1409
1410Details
1411
1412Context window tokens available to the active model.
1413
1414Key
1415
1416`model_instructions_file`
1417
1418Type / Values
1419
1420`string (path)`
1421
1422Details
1423
1424Replacement for built-in instructions instead of `AGENTS.md`.
1425
1426Key
1427
1428`model_provider`
1429
1430Type / Values
1431
1432`string`
1433
1434Details
1435
1436Provider id from `model_providers` (default: `openai`).
1437
1438Key
1439
1440`model_providers.<id>`
1441
1442Type / Values
1443
1444`table`
1445
1446Details
1447
1448Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1449
1450Key
1451
1452`model_providers.<id>.auth`
1453
1454Type / Values
1455
1456`table`
1457
1458Details
1459
1460Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1461
1462Key
1463
1464`model_providers.<id>.auth.args`
1465
1466Type / Values
1467
1468`array<string>`
1469
1470Details
1471
1472Arguments passed to the token command.
1473
1474Key
1475
1476`model_providers.<id>.auth.command`
1477
1478Type / Values
1479
1480`string`
1481
1482Details
1483
1484Command to run when Codex needs a bearer token. The command must print the token to stdout.
1485
1486Key
1487
1488`model_providers.<id>.auth.cwd`
1489
1490Type / Values
1491
1492`string (path)`
1493
1494Details
1495
1496Working directory for the token command.
1497
1498Key
1499
1500`model_providers.<id>.auth.refresh_interval_ms`
1501
1502Type / Values
1503
1504`number`
1505
1506Details
1507
1508How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1509
1510Key
1511
1512`model_providers.<id>.auth.timeout_ms`
1513
1514Type / Values
1515
1516`number`
1517
1518Details
1519
1520Maximum token command runtime in milliseconds (default: 5000).
1521
1522Key
1523
1524`model_providers.<id>.base_url`
1525
1526Type / Values
1527
1528`string`
998 1529
999Details1530Details
1000 1531
1134 1665
1135Key1666Key
1136 1667
1668`model_providers.<id>.supports_websockets`
1669
1670Type / Values
1671
1672`boolean`
1673
1674Details
1675
1676Whether that provider supports the Responses API WebSocket transport.
1677
1678Key
1679
1137`model_providers.<id>.wire_api`1680`model_providers.<id>.wire_api`
1138 1681
1139Type / Values1682Type / Values
1140 1683
1141`chat | responses`1684`responses`
1142 1685
1143Details1686Details
1144 1687
1145Protocol used by the provider (defaults to `chat` if omitted).1688Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1146 1689
1147Key1690Key
1148 1691
1190 1733
1191Details1734Details
1192 1735
1193Control GPT-5 Responses API verbosity (defaults to `medium`).1736Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1194 1737
1195Key1738Key
1196 1739
1278 1821
1279Key1822Key
1280 1823
1824`openai_base_url`
1825
1826Type / Values
1827
1828`string`
1829
1830Details
1831
1832Base URL override for the built-in `openai` model provider.
1833
1834Key
1835
1281`oss_provider`1836`oss_provider`
1282 1837
1283Type / Values1838Type / Values
1298 1853
1299Details1854Details
1300 1855
1301Environment tag applied to emitted OpenTelemetry events (default: `dev`).1856Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1857
1858Key
1859
1860`otel.exporter`
1861
1862Type / Values
1863
1864`none | otlp-http | otlp-grpc`
1865
1866Details
1867
1868Select the OpenTelemetry exporter and provide any endpoint metadata.
1869
1870Key
1871
1872`otel.exporter.<id>.endpoint`
1873
1874Type / Values
1875
1876`string`
1877
1878Details
1879
1880Exporter endpoint for OTEL logs.
1881
1882Key
1883
1884`otel.exporter.<id>.headers`
1885
1886Type / Values
1887
1888`map<string,string>`
1889
1890Details
1891
1892Static headers included with OTEL exporter requests.
1893
1894Key
1895
1896`otel.exporter.<id>.protocol`
1897
1898Type / Values
1899
1900`binary | json`
1901
1902Details
1903
1904Protocol used by the OTLP/HTTP exporter.
1905
1906Key
1907
1908`otel.exporter.<id>.tls.ca-certificate`
1909
1910Type / Values
1911
1912`string`
1913
1914Details
1915
1916CA certificate path for OTEL exporter TLS.
1917
1918Key
1919
1920`otel.exporter.<id>.tls.client-certificate`
1921
1922Type / Values
1923
1924`string`
1925
1926Details
1927
1928Client certificate path for OTEL exporter TLS.
1929
1930Key
1931
1932`otel.exporter.<id>.tls.client-private-key`
1933
1934Type / Values
1935
1936`string`
1937
1938Details
1939
1940Client private key path for OTEL exporter TLS.
1941
1942Key
1943
1944`otel.log_user_prompt`
1945
1946Type / Values
1947
1948`boolean`
1949
1950Details
1951
1952Opt in to exporting raw user prompts with OpenTelemetry logs.
1953
1954Key
1955
1956`otel.metrics_exporter`
1957
1958Type / Values
1959
1960`none | statsig | otlp-http | otlp-grpc`
1961
1962Details
1963
1964Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1965
1966Key
1967
1968`otel.trace_exporter`
1969
1970Type / Values
1971
1972`none | otlp-http | otlp-grpc`
1973
1974Details
1975
1976Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1977
1978Key
1979
1980`otel.trace_exporter.<id>.endpoint`
1981
1982Type / Values
1983
1984`string`
1985
1986Details
1987
1988Trace exporter endpoint for OTEL logs.
1989
1990Key
1991
1992`otel.trace_exporter.<id>.headers`
1993
1994Type / Values
1995
1996`map<string,string>`
1997
1998Details
1999
2000Static headers included with OTEL trace exporter requests.
2001
2002Key
2003
2004`otel.trace_exporter.<id>.protocol`
2005
2006Type / Values
2007
2008`binary | json`
2009
2010Details
2011
2012Protocol used by the OTLP/HTTP trace exporter.
2013
2014Key
2015
2016`otel.trace_exporter.<id>.tls.ca-certificate`
2017
2018Type / Values
2019
2020`string`
2021
2022Details
2023
2024CA certificate path for OTEL trace exporter TLS.
2025
2026Key
2027
2028`otel.trace_exporter.<id>.tls.client-certificate`
2029
2030Type / Values
2031
2032`string`
2033
2034Details
2035
2036Client certificate path for OTEL trace exporter TLS.
2037
2038Key
2039
2040`otel.trace_exporter.<id>.tls.client-private-key`
2041
2042Type / Values
2043
2044`string`
2045
2046Details
2047
2048Client private key path for OTEL trace exporter TLS.
2049
2050Key
2051
2052`permissions.<name>.filesystem`
2053
2054Type / Values
2055
2056`table`
2057
2058Details
2059
2060Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
2061
2062Key
2063
2064`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`
2065
2066Type / Values
2067
2068`"read" | "write" | "none"`
2069
2070Details
2071
2072Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.
1302 2073
1303Key2074Key
1304 2075
1305`otel.exporter`2076`permissions.<name>.filesystem.<path-or-glob>`
1306 2077
1307Type / Values2078Type / Values
1308 2079
1309`none | otlp-http | otlp-grpc`2080`"read" | "write" | "none" | table`
1310 2081
1311Details2082Details
1312 2083
1313Select the OpenTelemetry exporter and provide any endpoint metadata.2084Grant direct access for a path, glob pattern, or special token, or scope nested entries under that root. Use `"none"` to deny reads for matching paths.
1314 2085
1315Key2086Key
1316 2087
1317`otel.exporter.<id>.endpoint`2088`permissions.<name>.filesystem.glob_scan_max_depth`
1318 2089
1319Type / Values2090Type / Values
1320 2091
1321`string`2092`number`
1322 2093
1323Details2094Details
1324 2095
1325Exporter endpoint for OTEL logs.2096Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.
1326 2097
1327Key2098Key
1328 2099
1329`otel.exporter.<id>.headers`2100`permissions.<name>.network.allow_local_binding`
1330 2101
1331Type / Values2102Type / Values
1332 2103
1333`map<string,string>`2104`boolean`
1334 2105
1335Details2106Details
1336 2107
1337Static headers included with OTEL exporter requests.2108Permit local bind/listen operations through the managed proxy.
1338 2109
1339Key2110Key
1340 2111
1341`otel.exporter.<id>.protocol`2112`permissions.<name>.network.allow_upstream_proxy`
1342 2113
1343Type / Values2114Type / Values
1344 2115
1345`binary | json`2116`boolean`
1346 2117
1347Details2118Details
1348 2119
1349Protocol used by the OTLP/HTTP exporter.2120Allow the managed proxy to chain to another upstream proxy.
1350 2121
1351Key2122Key
1352 2123
1353`otel.exporter.<id>.tls.ca-certificate`2124`permissions.<name>.network.dangerously_allow_all_unix_sockets`
1354 2125
1355Type / Values2126Type / Values
1356 2127
1357`string`2128`boolean`
1358 2129
1359Details2130Details
1360 2131
1361CA certificate path for OTEL exporter TLS.2132Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
1362 2133
1363Key2134Key
1364 2135
1365`otel.exporter.<id>.tls.client-certificate`2136`permissions.<name>.network.dangerously_allow_non_loopback_proxy`
1366 2137
1367Type / Values2138Type / Values
1368 2139
1369`string`2140`boolean`
1370 2141
1371Details2142Details
1372 2143
1373Client certificate path for OTEL exporter TLS.2144Permit non-loopback bind addresses for the managed proxy listener.
1374 2145
1375Key2146Key
1376 2147
1377`otel.exporter.<id>.tls.client-private-key`2148`permissions.<name>.network.domains`
1378 2149
1379Type / Values2150Type / Values
1380 2151
1381`string`2152`map<string, allow | deny>`
1382 2153
1383Details2154Details
1384 2155
1385Client private key path for OTEL exporter TLS.2156Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
1386 2157
1387Key2158Key
1388 2159
1389`otel.log_user_prompt`2160`permissions.<name>.network.enable_socks5`
1390 2161
1391Type / Values2162Type / Values
1392 2163
1394 2165
1395Details2166Details
1396 2167
1397Opt in to exporting raw user prompts with OpenTelemetry logs.2168Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
1398 2169
1399Key2170Key
1400 2171
1401`otel.trace_exporter`2172`permissions.<name>.network.enable_socks5_udp`
1402 2173
1403Type / Values2174Type / Values
1404 2175
1405`none | otlp-http | otlp-grpc`2176`boolean`
1406 2177
1407Details2178Details
1408 2179
1409Select the OpenTelemetry trace exporter and provide any endpoint metadata.2180Allow UDP over the SOCKS5 listener when enabled.
1410 2181
1411Key2182Key
1412 2183
1413`otel.trace_exporter.<id>.endpoint`2184`permissions.<name>.network.enabled`
1414 2185
1415Type / Values2186Type / Values
1416 2187
1417`string`2188`boolean`
1418 2189
1419Details2190Details
1420 2191
1421Trace exporter endpoint for OTEL logs.2192Enable network access for this named permissions profile.
1422 2193
1423Key2194Key
1424 2195
1425`otel.trace_exporter.<id>.headers`2196`permissions.<name>.network.mode`
1426 2197
1427Type / Values2198Type / Values
1428 2199
1429`map<string,string>`2200`limited | full`
1430 2201
1431Details2202Details
1432 2203
1433Static headers included with OTEL trace exporter requests.2204Network proxy mode used for subprocess traffic.
1434 2205
1435Key2206Key
1436 2207
1437`otel.trace_exporter.<id>.protocol`2208`permissions.<name>.network.proxy_url`
1438 2209
1439Type / Values2210Type / Values
1440 2211
1441`binary | json`2212`string`
1442 2213
1443Details2214Details
1444 2215
1445Protocol used by the OTLP/HTTP trace exporter.2216HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
1446 2217
1447Key2218Key
1448 2219
1449`otel.trace_exporter.<id>.tls.ca-certificate`2220`permissions.<name>.network.socks_url`
1450 2221
1451Type / Values2222Type / Values
1452 2223
1454 2225
1455Details2226Details
1456 2227
1457CA certificate path for OTEL trace exporter TLS.2228SOCKS5 proxy endpoint used by this permissions profile.
1458 2229
1459Key2230Key
1460 2231
1461`otel.trace_exporter.<id>.tls.client-certificate`2232`permissions.<name>.network.unix_sockets`
1462 2233
1463Type / Values2234Type / Values
1464 2235
1465`string`2236`map<string, allow | none>`
1466 2237
1467Details2238Details
1468 2239
1469Client certificate path for OTEL trace exporter TLS.2240Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
1470 2241
1471Key2242Key
1472 2243
1473`otel.trace_exporter.<id>.tls.client-private-key`2244`personality`
1474 2245
1475Type / Values2246Type / Values
1476 2247
1477`string`2248`none | friendly | pragmatic`
1478 2249
1479Details2250Details
1480 2251
1481Client private key path for OTEL trace exporter TLS.2252Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
1482 2253
1483Key2254Key
1484 2255
1485`personality`2256`plan_mode_reasoning_effort`
1486 2257
1487Type / Values2258Type / Values
1488 2259
1489`none | friendly | pragmatic`2260`none | minimal | low | medium | high | xhigh`
1490 2261
1491Details2262Details
1492 2263
1493Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.2264Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
1494 2265
1495Key2266Key
1496 2267
1518 2289
1519Key2290Key
1520 2291
1521`profiles.<name>.experimental_use_freeform_apply_patch`2292`profiles.<name>.analytics.enabled`
1522 2293
1523Type / Values2294Type / Values
1524 2295
1526 2297
1527Details2298Details
1528 2299
1529Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2300Profile-scoped analytics enablement override.
1530 2301
1531Key2302Key
1532 2303
1542 2313
1543Key2314Key
1544 2315
1545`profiles.<name>.include_apply_patch_tool`2316`profiles.<name>.model_catalog_json`
1546 2317
1547Type / Values2318Type / Values
1548 2319
1549`boolean`2320`string (path)`
2321
2322Details
2323
2324Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
2325
2326Key
2327
2328`profiles.<name>.model_instructions_file`
2329
2330Type / Values
2331
2332`string (path)`
1550 2333
1551Details2334Details
1552 2335
1553Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.2336Profile-scoped replacement for the built-in instruction file.
1554 2337
1555Key2338Key
1556 2339
1578 2361
1579Key2362Key
1580 2363
2364`profiles.<name>.plan_mode_reasoning_effort`
2365
2366Type / Values
2367
2368`none | minimal | low | medium | high | xhigh`
2369
2370Details
2371
2372Profile-scoped Plan-mode reasoning override.
2373
2374Key
2375
2376`profiles.<name>.service_tier`
2377
2378Type / Values
2379
2380`flex | fast`
2381
2382Details
2383
2384Profile-scoped service tier preference for new turns.
2385
2386Key
2387
2388`profiles.<name>.tools_view_image`
2389
2390Type / Values
2391
2392`boolean`
2393
2394Details
2395
2396Enable or disable the `view_image` tool in that profile.
2397
2398Key
2399
1581`profiles.<name>.web_search`2400`profiles.<name>.web_search`
1582 2401
1583Type / Values2402Type / Values
1590 2409
1591Key2410Key
1592 2411
2412`profiles.<name>.windows.sandbox`
2413
2414Type / Values
2415
2416`unelevated | elevated`
2417
2418Details
2419
2420Profile-scoped Windows sandbox mode override.
2421
2422Key
2423
1593`project_doc_fallback_filenames`2424`project_doc_fallback_filenames`
1594 2425
1595Type / Values2426Type / Values
1634 2465
1635Details2466Details
1636 2467
1637Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.2468Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules.
1638 2469
1639Key2470Key
1640 2471
1710 2541
1711Key2542Key
1712 2543
2544`service_tier`
2545
2546Type / Values
2547
2548`flex | fast`
2549
2550Details
2551
2552Preferred service tier for new turns.
2553
2554Key
2555
1713`shell_environment_policy.exclude`2556`shell_environment_policy.exclude`
1714 2557
1715Type / Values2558Type / Values
1830 2673
1831Key2674Key
1832 2675
2676`sqlite_home`
2677
2678Type / Values
2679
2680`string (path)`
2681
2682Details
2683
2684Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.
2685
2686Key
2687
1833`suppress_unstable_features_warning`2688`suppress_unstable_features_warning`
1834 2689
1835Type / Values2690Type / Values
1854 2709
1855Key2710Key
1856 2711
1857`tools.web_search`2712`tool_suggest.discoverables`
2713
2714Type / Values
2715
2716`array<table>`
2717
2718Details
2719
2720Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2721
2722Key
2723
2724`tools.view_image`
1858 2725
1859Type / Values2726Type / Values
1860 2727
1862 2729
1863Details2730Details
1864 2731
1865Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2732Enable the local-image attachment tool `view_image`.
2733
2734Key
2735
2736`tools.web_search`
2737
2738Type / Values
2739
2740`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2741
2742Details
2743
2744Optional 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 2745
1867Key2746Key
1868 2747
1902 2781
1903Key2782Key
1904 2783
2784`tui.model_availability_nux.<model>`
2785
2786Type / Values
2787
2788`integer`
2789
2790Details
2791
2792Internal startup-tooltip state keyed by model slug.
2793
2794Key
2795
2796`tui.notification_condition`
2797
2798Type / Values
2799
2800`unfocused | always`
2801
2802Details
2803
2804Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`.
2805
2806Key
2807
1905`tui.notification_method`2808`tui.notification_method`
1906 2809
1907Type / Values2810Type / Values
1910 2813
1911Details2814Details
1912 2815
1913Notification method for unfocused terminal notifications (default: auto).2816Notification method for terminal notifications (default: auto).
1914 2817
1915Key2818Key
1916 2819
1950 2853
1951Key2854Key
1952 2855
2856`tui.terminal_title`
2857
2858Type / Values
2859
2860`array<string> | null`
2861
2862Details
2863
2864Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.
2865
2866Key
2867
2868`tui.theme`
2869
2870Type / Values
2871
2872`string`
2873
2874Details
2875
2876Syntax-highlighting theme override (kebab-case theme name).
2877
2878Key
2879
1953`web_search`2880`web_search`
1954 2881
1955Type / Values2882Type / Values
1972 2899
1973Track Windows onboarding acknowledgement (Windows only).2900Track Windows onboarding acknowledgement (Windows only).
1974 2901
2902Key
2903
2904`windows.sandbox`
2905
2906Type / Values
2907
2908`unelevated | elevated`
2909
2910Details
2911
2912Windows-only native sandbox mode when running Codex natively on Windows.
2913
2914Key
2915
2916`windows.sandbox_private_desktop`
2917
2918Type / Values
2919
2920`boolean`
2921
2922Details
2923
2924Run 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.
2925
1975Expand to view all2926Expand to view all
1976 2927
1977You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2928You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).
1986 2937
1987## `requirements.toml`2938## `requirements.toml`
1988 2939
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).2940`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 2941
1991For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2942For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
1992requirements. See the security page for precedence details.2943requirements. See the security page for precedence details.
1993 2944
2945Use `[features]` in `requirements.toml` to pin feature flags by the same
2946canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
2947
1994| Key | Type / Values | Details |2948| Key | Type / Values | Details |
1995| --- | --- | --- |2949| --- | --- | --- |
1996| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. |2950| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`). |
2951| `allowed_approvals_reviewers` | `array<string>` | Allowed values for `approvals_reviewer`, such as `user` and `auto_review`. |
1997| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2952| `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`. |2953| `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`. |
2954| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2955| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |
2956| `guardian_policy_config` | `string` | Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored. |
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. |2957| `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). |2958| `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. |2959| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |
2002| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |2960| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |
2961| `permissions.filesystem.deny_read` | `array<string>` | Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config. |
2003| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |2962| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |
2004| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |2963| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |
2005| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |2964| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |
2018 2977
2019Details2978Details
2020 2979
2021Allowed values for `approval\_policy`.2980Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`).
2981
2982Key
2983
2984`allowed_approvals_reviewers`
2985
2986Type / Values
2987
2988`array<string>`
2989
2990Details
2991
2992Allowed values for `approvals_reviewer`, such as `user` and `auto_review`.
2022 2993
2023Key2994Key
2024 2995
2046 3017
2047Key3018Key
2048 3019
3020`features`
3021
3022Type / Values
3023
3024`table`
3025
3026Details
3027
3028Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.
3029
3030Key
3031
3032`features.<name>`
3033
3034Type / Values
3035
3036`boolean`
3037
3038Details
3039
3040Require a specific canonical feature key to stay enabled or disabled.
3041
3042Key
3043
3044`guardian_policy_config`
3045
3046Type / Values
3047
3048`string`
3049
3050Details
3051
3052Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored.
3053
3054Key
3055
2049`mcp_servers`3056`mcp_servers`
2050 3057
2051Type / Values3058Type / Values
2094 3101
2095Key3102Key
2096 3103
3104`permissions.filesystem.deny_read`
3105
3106Type / Values
3107
3108`array<string>`
3109
3110Details
3111
3112Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config.
3113
3114Key
3115
2097`rules`3116`rules`
2098 3117
2099Type / Values3118Type / Values