config-reference.md +459 −277
18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |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. |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. |20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
2121| `approval_policy` | `untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. || `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. |
2222| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. || `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
2323| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. || `approval_policy.granular.request_permissions` | `boolean` | When `true`, prompts from the `request_permissions` tool are allowed to surface. |
2424| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. || `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. |
25| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |28| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |
26| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |29| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |
27| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |30| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |
32| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |35| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |
33| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |36| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |
34| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |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. |
35| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |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. |
36| `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. |
37| `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). |
38| `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). |
39| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |43| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |
40| `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. |
41| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |46| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
42| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |47| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |
43| `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). |
44| `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`. |
45| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |50| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |
4651| `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). || `features.codex_hooks` | `boolean` | Enable lifecycle hooks loaded from `hooks.json` (under development; off by default). |
47| `features.artifact` | `boolean` | Enable native artifact tools such as slides and spreadsheets (under development). |
48| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |
49| `features.collaboration_modes` | `boolean` | Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key. |
50| `features.default_mode_request_user_input` | `boolean` | Allow `request_user_input` in default collaboration mode (under development; off by default). |
51| `features.elevated_windows_sandbox` | `boolean` | Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it. |
52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |
53| `features.experimental_windows_sandbox` | `boolean` | Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it. |
54| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |53| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |
5554| `features.image_detail_original` | `boolean` | Allow image outputs with `detail = "original"` on supported models (under development). || `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
5655| `features.image_generation` | `boolean` | Enable the built-in image generation tool (under development). || `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
57| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait`, `close_agent`, and `spawn_agents_on_csv`) (experimental; off by default). |
58| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |56| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
59| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere. |
60| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |57| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |
61| `features.remote_models` | `boolean` | Legacy toggle for an older remote-model readiness flow. Current builds do not use it. |
62| `features.request_rule` | `boolean` | Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset. |
63| `features.responses_websockets` | `boolean` | Prefer the Responses API WebSocket transport for supported providers (under development). |
64| `features.responses_websockets_v2` | `boolean` | Enable Responses API WebSocket v2 mode (under development). |
65| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |
66| `features.search_tool` | `boolean` | Legacy toggle for an older Apps discovery flow. Current builds do not use it. |
67| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |58| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |
68| `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). |
69| `features.skill_env_var_dependency_prompt` | `boolean` | Prompt for missing skill environment-variable dependencies (under development). |
70| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |60| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |
71| `features.sqlite` | `boolean` | Enable SQLite-backed state persistence (stable; on by default). |
72| `features.steer` | `boolean` | Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior. |
73| `features.undo` | `boolean` | Enable undo support (stable; off by default). |61| `features.undo` | `boolean` | Enable undo support (stable; off by default). |
74| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |
75| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |
76| `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. |
77| `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"`. |
78| `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"`. |
97| `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. |
98| `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. |
99| `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. |
10087| `mcp_servers.<id>.env_vars` | `array<string>` | Additional environment variables to whitelist for an MCP stdio server. || `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. |
101| `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. |
102| `mcp_servers.<id>.oauth_resource` | `string` | Optional RFC 8707 OAuth resource parameter to include during MCP login. |90| `mcp_servers.<id>.oauth_resource` | `string` | Optional RFC 8707 OAuth resource parameter to include during MCP login. |
103| `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. |
106| `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. |
107| `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. |
108| `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. |
10997| `model` | `string` | Model to use (e.g., `gpt-5-codex`). || `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`). |
110| `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). |
111| `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. |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. |
112| `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. |
113| `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`. |
114| `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). |
115| `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. |
116| `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. |
117| `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. |
137| `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. |
138| `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. |
139| `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. |
140| `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). |
141| `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`). |
142| `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. |
155| `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. |
156| `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. |
157| `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. |
158164| `permissions.network.admin_url` | `string` | Admin endpoint for the managed network proxy. || `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
159165| `permissions.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. || `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"`. |
160166| `permissions.network.allow_unix_sockets` | `array<string>` | Allowlist of Unix socket paths permitted through the managed proxy. || `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. |
161167| `permissions.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. || `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. |
162168| `permissions.network.allowed_domains` | `array<string>` | Allowlist of domains permitted through the managed proxy. || `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
163169| `permissions.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. || `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
164170| `permissions.network.dangerously_allow_non_loopback_admin` | `boolean` | Permit non-loopback bind addresses for the managed proxy admin listener. || `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
165171| `permissions.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. || `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
166172| `permissions.network.denied_domains` | `array<string>` | Denylist of domains blocked by the managed proxy. || `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. |
167173| `permissions.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener from the managed network proxy. || `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
168174| `permissions.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. || `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
169175| `permissions.network.enabled` | `boolean` | Enable the managed network proxy configuration for subprocesses. || `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
170176| `permissions.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. || `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
171177| `permissions.network.proxy_url` | `string` | HTTP proxy endpoint used by the managed network proxy. || `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
172178| `permissions.network.socks_url` | `string` | SOCKS5 proxy endpoint used by the managed network proxy. || `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. |
173| `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`. |
174| `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. |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. |
175| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |182| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
195| `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. |
196| `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. |
197| `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"`. |
198205| `service_tier` | `flex | fast` | Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled. || `service_tier` | `flex | fast` | Preferred service tier for new turns. |
199| `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. |
200| `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. |
201| `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. |
209| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |216| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |
210| `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. |
211| `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. |
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`. |
212| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |220| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
213221| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. || `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. |
214| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |222| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |
215| `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). |
216| `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). |
217| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |225| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |
218226| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). || `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). |
219| `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. |
220| `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). |
221| `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. |
222| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |232| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |
223| `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. |
224| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |234| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
225| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |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. |
226 237
227Key238Key
228 239
326 337
327Type / Values338Type / Values
328 339
329340`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }``untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
330 341
331Details342Details
332 343
333344Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.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.
334 345
335Key346Key
336 347
337348`approval_policy.reject.mcp_elicitations``approval_policy.granular.mcp_elicitations`
338 349
339Type / Values350Type / Values
340 351
342 353
343Details354Details
344 355
345356When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
346 357
347Key358Key
348 359
349360`approval_policy.reject.rules``approval_policy.granular.request_permissions`
350 361
351Type / Values362Type / Values
352 363
354 365
355Details366Details
356 367
357368When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.When `true`, prompts from the `request_permissions` tool are allowed to surface.
358 369
359Key370Key
360 371
361372`approval_policy.reject.sandbox_approval``approval_policy.granular.rules`
362 373
363Type / Values374Type / Values
364 375
366 377
367Details378Details
368 379
369380When `true`, sandbox escalation approval prompts are auto-rejected.When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
381
382Key
383
384`approval_policy.granular.sandbox_approval`
385
386Type / Values
387
388`boolean`
389
390Details
391
392When `true`, sandbox escalation approval prompts are allowed to surface.
393
394Key
395
396`approval_policy.granular.skill_approval`
397
398Type / Values
399
400`boolean`
401
402Details
403
404When `true`, skill-script approval prompts are allowed to surface.
405
406Key
407
408`approvals_reviewer`
409
410Type / Values
411
412`user | auto_review`
413
414Details
415
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.
370 417
371Key418Key
372 419
490 537
491Key538Key
492 539
540`auto_review.policy`
541
542Type / Values
543
544`string`
545
546Details
547
548Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored.
549
550Key
551
493`background_terminal_max_timeout`552`background_terminal_max_timeout`
494 553
495Type / Values554Type / Values
562 621
563Key622Key
564 623
624`default_permissions`
625
626Type / Values
627
628`string`
629
630Details
631
632Name of the default permissions profile to apply to sandboxed tool calls.
633
634Key
635
565`developer_instructions`636`developer_instructions`
566 637
567Type / Values638Type / Values
622 693
623Key694Key
624 695
625696`features.apps_mcp_gateway``features.codex_hooks`
626 697
627Type / Values698Type / Values
628 699
630 701
631Details702Details
632 703
633704Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).Enable lifecycle hooks loaded from `hooks.json` (under development; off by default).
634 705
635Key706Key
636 707
637708`features.artifact``features.enable_request_compression`
638 709
639Type / Values710Type / Values
640 711
642 713
643Details714Details
644 715
645716Enable native artifact tools such as slides and spreadsheets (under development).Compress streaming request bodies with zstd when supported (stable; on by default).
646 717
647Key718Key
648 719
649720`features.child_agents_md``features.fast_mode`
650 721
651Type / Values722Type / Values
652 723
654 725
655Details726Details
656 727
657728Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
658 729
659Key730Key
660 731
661732`features.collaboration_modes``features.memories`
662 733
663Type / Values734Type / Values
664 735
666 737
667Details738Details
668 739
669740Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key.Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
670 741
671Key742Key
672 743
673744`features.default_mode_request_user_input``features.multi_agent`
674 745
675Type / Values746Type / Values
676 747
678 749
679Details750Details
680 751
681752Allow `request_user_input` in default collaboration mode (under development; off by default).Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
682 753
683Key754Key
684 755
685756`features.elevated_windows_sandbox``features.personality`
686 757
687Type / Values758Type / Values
688 759
690 761
691Details762Details
692 763
693764Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it.Enable personality selection controls (stable; on by default).
694 765
695Key766Key
696 767
697768`features.enable_request_compression``features.prevent_idle_sleep`
698 769
699Type / Values770Type / Values
700 771
702 773
703Details774Details
704 775
705776Compress streaming request bodies with zstd when supported (stable; on by default).Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
706 777
707Key778Key
708 779
709780`features.experimental_windows_sandbox``features.shell_snapshot`
710 781
711Type / Values782Type / Values
712 783
714 785
715Details786Details
716 787
717788Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it.Snapshot shell environment to speed up repeated commands (stable; on by default).
718 789
719Key790Key
720 791
721792`features.fast_mode``features.shell_tool`
722 793
723Type / Values794Type / Values
724 795
726 797
727Details798Details
728 799
729800Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).Enable the default `shell` tool for running commands (stable; on by default).
730 801
731Key802Key
732 803
733804`features.image_detail_original``features.skill_mcp_dependency_install`
734 805
735Type / Values806Type / Values
736 807
738 809
739Details810Details
740 811
741812Allow image outputs with `detail = "original"` on supported models (under development).Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
742 813
743Key814Key
744 815
745816`features.image_generation``features.undo`
746 817
747Type / Values818Type / Values
748 819
750 821
751Details822Details
752 823
753824Enable the built-in image generation tool (under development).Enable undo support (stable; off by default).
754 825
755Key826Key
756 827
757828`features.multi_agent``features.unified_exec`
758 829
759Type / Values830Type / Values
760 831
762 833
763Details834Details
764 835
765836Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait`, `close_agent`, and `spawn_agents_on_csv`) (experimental; off by default).Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
766 837
767Key838Key
768 839
769840`features.personality``features.web_search`
770 841
771Type / Values842Type / Values
772 843
774 845
775Details846Details
776 847
777848Enable personality selection controls (stable; on by default).Deprecated legacy toggle; prefer the top-level `web_search` setting.
778 849
779Key850Key
780 851
781852`features.powershell_utf8``features.web_search_cached`
782 853
783Type / Values854Type / Values
784 855
786 857
787Details858Details
788 859
789860Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere.Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.
790 861
791Key862Key
792 863
793864`features.prevent_idle_sleep``features.web_search_request`
794 865
795Type / Values866Type / Values
796 867
798 869
799Details870Details
800 871
801872Prevent the machine from sleeping while a turn is actively running (experimental; off by default).Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.
802 873
803Key874Key
804 875
805876`features.remote_models``feedback.enabled`
806 877
807Type / Values878Type / Values
808 879
810 881
811Details882Details
812 883
813884Legacy toggle for an older remote-model readiness flow. Current builds do not use it.Enable feedback submission via `/feedback` across Codex surfaces (default: true).
814 885
815Key886Key
816 887
817888`features.request_rule``file_opener`
818 889
819Type / Values890Type / Values
820 891
821892`boolean``vscode | vscode-insiders | windsurf | cursor | none`
822 893
823Details894Details
824 895
825896Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset.URI scheme used to open citations from Codex output (default: `vscode`).
826 897
827Key898Key
828 899
829900`features.responses_websockets``forced_chatgpt_workspace_id`
830 901
831Type / Values902Type / Values
832 903
833904`boolean``string (uuid)`
834 905
835Details906Details
836 907
837908Prefer the Responses API WebSocket transport for supported providers (under development).Limit ChatGPT logins to a specific workspace identifier.
838 909
839Key910Key
840 911
841912`features.responses_websockets_v2``forced_login_method`
842 913
843Type / Values914Type / Values
844 915
845916`boolean``chatgpt | api`
846 917
847Details918Details
848 919
849920Enable Responses API WebSocket v2 mode (under development).Restrict Codex to a specific authentication method.
850 921
851Key922Key
852 923
853924`features.runtime_metrics``hide_agent_reasoning`
854 925
855Type / Values926Type / Values
856 927
858 929
859Details930Details
860 931
861932Show runtime metrics summary in TUI turn separators (experimental).Suppress reasoning events in both the TUI and `codex exec` output.
862 933
863Key934Key
864 935
865936`features.search_tool``history.max_bytes`
866 937
867Type / Values938Type / Values
868 939
869940`boolean``number`
870 941
871Details942Details
872 943
873944Legacy toggle for an older Apps discovery flow. Current builds do not use it.If set, caps the history file size in bytes by dropping oldest entries.
874 945
875Key946Key
876 947
877948`features.shell_snapshot``history.persistence`
878 949
879Type / Values950Type / Values
880 951
881952`boolean``save-all | none`
882 953
883Details954Details
884 955
885956Snapshot shell environment to speed up repeated commands (stable; on by default).Control whether Codex saves session transcripts to history.jsonl.
886 957
887Key958Key
888 959
889960`features.shell_tool``instructions`
890 961
891Type / Values962Type / Values
892 963
893964`boolean``string`
894 965
895Details966Details
896 967
897968Enable the default `shell` tool for running commands (stable; on by default).Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.
898 969
899Key970Key
900 971
901972`features.skill_env_var_dependency_prompt``log_dir`
902 973
903Type / Values974Type / Values
904 975
905976`boolean``string (path)`
906 977
907Details978Details
908 979
909980Prompt for missing skill environment-variable dependencies (under development).Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.
910 981
911Key982Key
912 983
913984`features.skill_mcp_dependency_install``mcp_oauth_callback_port`
914 985
915Type / Values986Type / Values
916 987
917988`boolean``integer`
918 989
919Details990Details
920 991
921992Allow prompting and installing missing MCP dependencies for skills (stable; on by default).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.
922 993
923Key994Key
924 995
925996`features.sqlite``mcp_oauth_callback_url`
926 997
927Type / Values998Type / Values
928 999
9291000`boolean``string`
930 1001
931Details1002Details
932 1003
9331004Enable SQLite-backed state persistence (stable; on by default).Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
934 1005
935Key1006Key
936 1007
9371008`features.steer``mcp_oauth_credentials_store`
938 1009
939Type / Values1010Type / Values
940 1011
9411012`boolean``auto | file | keyring`
942 1013
943Details1014Details
944 1015
9451016Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior.Preferred store for MCP OAuth credentials.
946 1017
947Key1018Key
948 1019
9491020`features.undo``mcp_servers.<id>.args`
950 1021
951Type / Values1022Type / Values
952 1023
9531024`boolean``array<string>`
954 1025
955Details1026Details
956 1027
9571028Enable undo support (stable; off by default).Arguments passed to the MCP stdio server command.
958 1029
959Key1030Key
960 1031
9611032`features.unified_exec``mcp_servers.<id>.bearer_token_env_var`
962 1033
963Type / Values1034Type / Values
964 1035
9651036`boolean``string`
966 1037
967Details1038Details
968 1039
9691040Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).Environment variable sourcing the bearer token for an MCP HTTP server.
970 1041
971Key1042Key
972 1043
9731044`features.use_linux_sandbox_bwrap``mcp_servers.<id>.command`
974 1045
975Type / Values1046Type / Values
976 1047
9771048`boolean``string`
978 1049
979Details1050Details
980 1051
9811052Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).Launcher command for an MCP stdio server.
982 1053
983Key1054Key
984 1055
9851056`features.web_search``mcp_servers.<id>.cwd`
986 1057
987Type / Values1058Type / Values
988 1059
9891060`boolean``string`
990 1061
991Details1062Details
992 1063
9931064Deprecated legacy toggle; prefer the top-level `web_search` setting.Working directory for the MCP stdio server process.
994 1065
995Key1066Key
996 1067
9971068`features.web_search_cached``mcp_servers.<id>.disabled_tools`
998 1069
999Type / Values1070Type / Values
1000 1071
10011072`boolean``array<string>`
1002 1073
1003Details1074Details
1004 1075
10051076Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.Deny list applied after `enabled_tools` for the MCP server.
1006 1077
1007Key1078Key
1008 1079
10091080`features.web_search_request``mcp_servers.<id>.enabled`
1010 1081
1011Type / Values1082Type / Values
1012 1083
1014 1085
1015Details1086Details
1016 1087
10171088Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.Disable an MCP server without removing its configuration.
1018 1089
1019Key1090Key
1020 1091
10211092`feedback.enabled``mcp_servers.<id>.enabled_tools`
1022 1093
1023Type / Values1094Type / Values
1024 1095
10251096`boolean``array<string>`
1026 1097
1027Details1098Details
1028 1099
10291100Enable feedback submission via `/feedback` across Codex surfaces (default: true).Allow list of tool names exposed by the MCP server.
1030 1101
1031Key1102Key
1032 1103
10331104`file_opener``mcp_servers.<id>.env`
1034 1105
1035Type / Values1106Type / Values
1036 1107
10371108`vscode | vscode-insiders | windsurf | cursor | none``map<string,string>`
1038 1109
1039Details1110Details
1040 1111
10411112URI scheme used to open citations from Codex output (default: `vscode`).Environment variables forwarded to the MCP stdio server.
1042 1113
1043Key1114Key
1044 1115
10451116`forced_chatgpt_workspace_id``mcp_servers.<id>.env_http_headers`
1046 1117
1047Type / Values1118Type / Values
1048 1119
10491120`string (uuid)``map<string,string>`
1050 1121
1051Details1122Details
1052 1123
10531124Limit ChatGPT logins to a specific workspace identifier.HTTP headers populated from environment variables for an MCP HTTP server.
1054 1125
1055Key1126Key
1056 1127
10571128`forced_login_method``mcp_servers.<id>.env_vars`
1058 1129
1059Type / Values1130Type / Values
1060 1131
10611132`chatgpt | api``array<string | { name = string, source = "local" | "remote" }>`
1062 1133
1063Details1134Details
1064 1135
10651136Restrict Codex to a specific authentication method.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.
1066 1137
1067Key1138Key
1068 1139
10691140`hide_agent_reasoning``mcp_servers.<id>.experimental_environment`
1070 1141
1071Type / Values1142Type / Values
1072 1143
10731144`boolean``local | remote`
1074 1145
1075Details1146Details
1076 1147
10771148Suppress reasoning events in both the TUI and `codex exec` output.Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.
1078 1149
1079Key1150Key
1080 1151
10811152`history.max_bytes``mcp_servers.<id>.http_headers`
1082 1153
1083Type / Values1154Type / Values
1084 1155
10851156`number``map<string,string>`
1086 1157
1087Details1158Details
1088 1159
10891160If set, caps the history file size in bytes by dropping oldest entries.Static HTTP headers included with each MCP HTTP request.
1090 1161
1091Key1162Key
1092 1163
10931164`history.persistence``mcp_servers.<id>.oauth_resource`
1094 1165
1095Type / Values1166Type / Values
1096 1167
10971168`save-all | none``string`
1098 1169
1099Details1170Details
1100 1171
11011172Control whether Codex saves session transcripts to history.jsonl.Optional RFC 8707 OAuth resource parameter to include during MCP login.
1102 1173
1103Key1174Key
1104 1175
11051176`instructions``mcp_servers.<id>.required`
1106 1177
1107Type / Values1178Type / Values
1108 1179
11091180`string``boolean`
1110 1181
1111Details1182Details
1112 1183
11131184Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.When true, fail startup/resume if this enabled MCP server cannot initialize.
1114 1185
1115Key1186Key
1116 1187
11171188`log_dir``mcp_servers.<id>.scopes`
1118 1189
1119Type / Values1190Type / Values
1120 1191
11211192`string (path)``array<string>`
1122 1193
1123Details1194Details
1124 1195
11251196Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.OAuth scopes to request when authenticating to that MCP server.
1126 1197
1127Key1198Key
1128 1199
11291200`mcp_oauth_callback_port``mcp_servers.<id>.startup_timeout_ms`
1130 1201
1131Type / Values1202Type / Values
1132 1203
11331204`integer``number`
1134 1205
1135Details1206Details
1136 1207
11371208Optional 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.Alias for `startup_timeout_sec` in milliseconds.
1138 1209
1139Key1210Key
1140 1211
11411212`mcp_oauth_callback_url``mcp_servers.<id>.startup_timeout_sec`
1142 1213
1143Type / Values1214Type / Values
1144 1215
11451216`string``number`
1146 1217
1147Details1218Details
1148 1219
11491220Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.Override the default 10s startup timeout for an MCP server.
1150 1221
1151Key1222Key
1152 1223
11531224`mcp_oauth_credentials_store``mcp_servers.<id>.tool_timeout_sec`
1154 1225
1155Type / Values1226Type / Values
1156 1227
11571228`auto | file | keyring``number`
1158 1229
1159Details1230Details
1160 1231
11611232Preferred store for MCP OAuth credentials.Override the default 60s per-tool timeout for an MCP server.
1162 1233
1163Key1234Key
1164 1235
11651236`mcp_servers.<id>.args``mcp_servers.<id>.url`
1166 1237
1167Type / Values1238Type / Values
1168 1239
11691240`array<string>``string`
1170 1241
1171Details1242Details
1172 1243
11731244Arguments passed to the MCP stdio server command.Endpoint for an MCP streamable HTTP server.
1174 1245
1175Key1246Key
1176 1247
11771248`mcp_servers.<id>.bearer_token_env_var``memories.consolidation_model`
1178 1249
1179Type / Values1250Type / Values
1180 1251
1182 1253
1183Details1254Details
1184 1255
11851256Environment variable sourcing the bearer token for an MCP HTTP server.Optional model override for global memory consolidation.
1186 1257
1187Key1258Key
1188 1259
11891260`mcp_servers.<id>.command``memories.disable_on_external_context`
1190 1261
1191Type / Values1262Type / Values
1192 1263
11931264`string``boolean`
1194 1265
1195Details1266Details
1196 1267
11971268Launcher command for an MCP stdio server.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`.
1198 1269
1199Key1270Key
1200 1271
12011272`mcp_servers.<id>.cwd``memories.extract_model`
1202 1273
1203Type / Values1274Type / Values
1204 1275
1206 1277
1207Details1278Details
1208 1279
12091280Working directory for the MCP stdio server process.Optional model override for per-thread memory extraction.
1210 1281
1211Key1282Key
1212 1283
12131284`mcp_servers.<id>.disabled_tools``memories.generate_memories`
1214 1285
1215Type / Values1286Type / Values
1216 1287
12171288`array<string>``boolean`
1218 1289
1219Details1290Details
1220 1291
12211292Deny list applied after `enabled_tools` for the MCP server.When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1222 1293
1223Key1294Key
1224 1295
12251296`mcp_servers.<id>.enabled``memories.max_raw_memories_for_consolidation`
1226 1297
1227Type / Values1298Type / Values
1228 1299
12291300`boolean``number`
1230 1301
1231Details1302Details
1232 1303
12331304Disable an MCP server without removing its configuration.Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1234 1305
1235Key1306Key
1236 1307
12371308`mcp_servers.<id>.enabled_tools``memories.max_rollout_age_days`
1238 1309
1239Type / Values1310Type / Values
1240 1311
12411312`array<string>``number`
1242 1313
1243Details1314Details
1244 1315
12451316Allow list of tool names exposed by the MCP server.Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1246 1317
1247Key1318Key
1248 1319
12491320`mcp_servers.<id>.env``memories.max_rollouts_per_startup`
1250 1321
1251Type / Values1322Type / Values
1252 1323
12531324`map<string,string>``number`
1254 1325
1255Details1326Details
1256 1327
12571328Environment variables forwarded to the MCP stdio server.Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1258 1329
1259Key1330Key
1260 1331
12611332`mcp_servers.<id>.env_http_headers``memories.max_unused_days`
1262 1333
1263Type / Values1334Type / Values
1264 1335
12651336`map<string,string>``number`
1266 1337
1267Details1338Details
1268 1339
12691340HTTP headers populated from environment variables for an MCP HTTP server.Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1270 1341
1271Key1342Key
1272 1343
12731344`mcp_servers.<id>.env_vars``memories.min_rollout_idle_hours`
1274 1345
1275Type / Values1346Type / Values
1276 1347
12771348`array<string>``number`
1278 1349
1279Details1350Details
1280 1351
12811352Additional environment variables to whitelist for an MCP stdio server.Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1282 1353
1283Key1354Key
1284 1355
12851356`mcp_servers.<id>.http_headers``memories.use_memories`
1286 1357
1287Type / Values1358Type / Values
1288 1359
12891360`map<string,string>``boolean`
1290 1361
1291Details1362Details
1292 1363
12931364Static HTTP headers included with each MCP HTTP request.When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1294 1365
1295Key1366Key
1296 1367
12971368`mcp_servers.<id>.oauth_resource``model`
1298 1369
1299Type / Values1370Type / Values
1300 1371
1302 1373
1303Details1374Details
1304 1375
13051376Optional RFC 8707 OAuth resource parameter to include during MCP login.Model to use (e.g., `gpt-5.5`).
1306 1377
1307Key1378Key
1308 1379
13091380`mcp_servers.<id>.required``model_auto_compact_token_limit`
1310 1381
1311Type / Values1382Type / Values
1312 1383
13131384`boolean``number`
1314 1385
1315Details1386Details
1316 1387
13171388When true, fail startup/resume if this enabled MCP server cannot initialize.Token threshold that triggers automatic history compaction (unset uses model defaults).
1318 1389
1319Key1390Key
1320 1391
13211392`mcp_servers.<id>.scopes``model_catalog_json`
1322 1393
1323Type / Values1394Type / Values
1324 1395
13251396`array<string>``string (path)`
1326 1397
1327Details1398Details
1328 1399
13291400OAuth scopes to request when authenticating to that MCP server.Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1330 1401
1331Key1402Key
1332 1403
13331404`mcp_servers.<id>.startup_timeout_ms``model_context_window`
1334 1405
1335Type / Values1406Type / Values
1336 1407
1338 1409
1339Details1410Details
1340 1411
13411412Alias for `startup_timeout_sec` in milliseconds.Context window tokens available to the active model.
1342 1413
1343Key1414Key
1344 1415
13451416`mcp_servers.<id>.startup_timeout_sec``model_instructions_file`
1346 1417
1347Type / Values1418Type / Values
1348 1419
13491420`number``string (path)`
1350 1421
1351Details1422Details
1352 1423
13531424Override the default 10s startup timeout for an MCP server.Replacement for built-in instructions instead of `AGENTS.md`.
1354 1425
1355Key1426Key
1356 1427
13571428`mcp_servers.<id>.tool_timeout_sec``model_provider`
1358 1429
1359Type / Values1430Type / Values
1360 1431
13611432`number``string`
1362 1433
1363Details1434Details
1364 1435
13651436Override the default 60s per-tool timeout for an MCP server.Provider id from `model_providers` (default: `openai`).
1366 1437
1367Key1438Key
1368 1439
13691440`mcp_servers.<id>.url``model_providers.<id>`
1370 1441
1371Type / Values1442Type / Values
1372 1443
13731444`string``table`
1374 1445
1375Details1446Details
1376 1447
13771448Endpoint for an MCP streamable HTTP server.Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1378 1449
1379Key1450Key
1380 1451
13811452`model``model_providers.<id>.auth`
1382 1453
1383Type / Values1454Type / Values
1384 1455
13851456`string``table`
1386 1457
1387Details1458Details
1388 1459
13891460Model to use (e.g., `gpt-5-codex`).Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1390 1461
1391Key1462Key
1392 1463
13931464`model_auto_compact_token_limit``model_providers.<id>.auth.args`
1394 1465
1395Type / Values1466Type / Values
1396 1467
13971468`number``array<string>`
1398 1469
1399Details1470Details
1400 1471
14011472Token threshold that triggers automatic history compaction (unset uses model defaults).Arguments passed to the token command.
1402 1473
1403Key1474Key
1404 1475
14051476`model_catalog_json``model_providers.<id>.auth.command`
1406 1477
1407Type / Values1478Type / Values
1408 1479
14091480`string (path)``string`
1410 1481
1411Details1482Details
1412 1483
14131484Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.Command to run when Codex needs a bearer token. The command must print the token to stdout.
1414 1485
1415Key1486Key
1416 1487
14171488`model_context_window``model_providers.<id>.auth.cwd`
1418 1489
1419Type / Values1490Type / Values
1420 1491
14211492`number``string (path)`
1422 1493
1423Details1494Details
1424 1495
14251496Context window tokens available to the active model.Working directory for the token command.
1426 1497
1427Key1498Key
1428 1499
14291500`model_instructions_file``model_providers.<id>.auth.refresh_interval_ms`
1430 1501
1431Type / Values1502Type / Values
1432 1503
14331504`string (path)``number`
1434 1505
1435Details1506Details
1436 1507
14371508Replacement for built-in instructions instead of `AGENTS.md`.How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1438 1509
1439Key1510Key
1440 1511
14411512`model_provider``model_providers.<id>.auth.timeout_ms`
1442 1513
1443Type / Values1514Type / Values
1444 1515
14451516`string``number`
1446 1517
1447Details1518Details
1448 1519
14491520Provider id from `model_providers` (default: `openai`).Maximum token command runtime in milliseconds (default: 5000).
1450 1521
1451Key1522Key
1452 1523
1750 1821
1751Key1822Key
1752 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
1753`oss_provider`1836`oss_provider`
1754 1837
1755Type / Values1838Type / Values
1966 2049
1967Key2050Key
1968 2051
19692052`permissions.network.admin_url``permissions.<name>.filesystem`
1970 2053
1971Type / Values2054Type / Values
1972 2055
19732056`string``table`
1974 2057
1975Details2058Details
1976 2059
19772060Admin endpoint for the managed network proxy.Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
1978 2061
1979Key2062Key
1980 2063
19812064`permissions.network.allow_local_binding``permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`
1982 2065
1983Type / Values2066Type / Values
1984 2067
19852068`boolean``"read" | "write" | "none"`
1986 2069
1987Details2070Details
1988 2071
19892072Permit local bind/listen operations through the managed proxy.Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.
1990 2073
1991Key2074Key
1992 2075
19932076`permissions.network.allow_unix_sockets``permissions.<name>.filesystem.<path-or-glob>`
1994 2077
1995Type / Values2078Type / Values
1996 2079
19972080`array<string>``"read" | "write" | "none" | table`
1998 2081
1999Details2082Details
2000 2083
20012084Allowlist of Unix socket paths permitted through the managed proxy.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.
2002 2085
2003Key2086Key
2004 2087
20052088`permissions.network.allow_upstream_proxy``permissions.<name>.filesystem.glob_scan_max_depth`
2006 2089
2007Type / Values2090Type / Values
2008 2091
20092092`boolean``number`
2010 2093
2011Details2094Details
2012 2095
20132096Allow the managed proxy to chain to another upstream proxy.Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.
2014 2097
2015Key2098Key
2016 2099
20172100`permissions.network.allowed_domains``permissions.<name>.network.allow_local_binding`
2018 2101
2019Type / Values2102Type / Values
2020 2103
20212104`array<string>``boolean`
2022 2105
2023Details2106Details
2024 2107
20252108Allowlist of domains permitted through the managed proxy.Permit local bind/listen operations through the managed proxy.
2026 2109
2027Key2110Key
2028 2111
20292112`permissions.network.dangerously_allow_all_unix_sockets``permissions.<name>.network.allow_upstream_proxy`
2030 2113
2031Type / Values2114Type / Values
2032 2115
2034 2117
2035Details2118Details
2036 2119
20372120Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.Allow the managed proxy to chain to another upstream proxy.
2038 2121
2039Key2122Key
2040 2123
20412124`permissions.network.dangerously_allow_non_loopback_admin``permissions.<name>.network.dangerously_allow_all_unix_sockets`
2042 2125
2043Type / Values2126Type / Values
2044 2127
2046 2129
2047Details2130Details
2048 2131
20492132Permit non-loopback bind addresses for the managed proxy admin listener.Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
2050 2133
2051Key2134Key
2052 2135
20532136`permissions.network.dangerously_allow_non_loopback_proxy``permissions.<name>.network.dangerously_allow_non_loopback_proxy`
2054 2137
2055Type / Values2138Type / Values
2056 2139
2062 2145
2063Key2146Key
2064 2147
20652148`permissions.network.denied_domains``permissions.<name>.network.domains`
2066 2149
2067Type / Values2150Type / Values
2068 2151
20692152`array<string>``map<string, allow | deny>`
2070 2153
2071Details2154Details
2072 2155
20732156Denylist of domains blocked by the managed proxy.Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
2074 2157
2075Key2158Key
2076 2159
20772160`permissions.network.enable_socks5``permissions.<name>.network.enable_socks5`
2078 2161
2079Type / Values2162Type / Values
2080 2163
2082 2165
2083Details2166Details
2084 2167
20852168Expose a SOCKS5 listener from the managed network proxy.Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
2086 2169
2087Key2170Key
2088 2171
20892172`permissions.network.enable_socks5_udp``permissions.<name>.network.enable_socks5_udp`
2090 2173
2091Type / Values2174Type / Values
2092 2175
2098 2181
2099Key2182Key
2100 2183
21012184`permissions.network.enabled``permissions.<name>.network.enabled`
2102 2185
2103Type / Values2186Type / Values
2104 2187
2106 2189
2107Details2190Details
2108 2191
21092192Enable the managed network proxy configuration for subprocesses.Enable network access for this named permissions profile.
2110 2193
2111Key2194Key
2112 2195
21132196`permissions.network.mode``permissions.<name>.network.mode`
2114 2197
2115Type / Values2198Type / Values
2116 2199
2122 2205
2123Key2206Key
2124 2207
21252208`permissions.network.proxy_url``permissions.<name>.network.proxy_url`
2126 2209
2127Type / Values2210Type / Values
2128 2211
2130 2213
2131Details2214Details
2132 2215
21332216HTTP proxy endpoint used by the managed network proxy.HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
2134 2217
2135Key2218Key
2136 2219
21372220`permissions.network.socks_url``permissions.<name>.network.socks_url`
2138 2221
2139Type / Values2222Type / Values
2140 2223
2142 2225
2143Details2226Details
2144 2227
21452228SOCKS5 proxy endpoint used by the managed network proxy.SOCKS5 proxy endpoint used by this permissions profile.
2229
2230Key
2231
2232`permissions.<name>.network.unix_sockets`
2233
2234Type / Values
2235
2236`map<string, allow | none>`
2237
2238Details
2239
2240Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
2146 2241
2147Key2242Key
2148 2243
2454 2549
2455Details2550Details
2456 2551
24572552Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled.Preferred service tier for new turns.
2458 2553
2459Key2554Key
2460 2555
2614 2709
2615Key2710Key
2616 2711
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
2617`tools.view_image`2724`tools.view_image`
2618 2725
2619Type / Values2726Type / Values
2630 2737
2631Type / Values2738Type / Values
2632 2739
26332740`boolean``boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2634 2741
2635Details2742Details
2636 2743
26372744Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.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.
2638 2745
2639Key2746Key
2640 2747
2686 2793
2687Key2794Key
2688 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
2689`tui.notification_method`2808`tui.notification_method`
2690 2809
2691Type / Values2810Type / Values
2694 2813
2695Details2814Details
2696 2815
26972816Notification method for unfocused terminal notifications (default: auto).Notification method for terminal notifications (default: auto).
2698 2817
2699Key2818Key
2700 2819
2734 2853
2735Key2854Key
2736 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
2737`tui.theme`2868`tui.theme`
2738 2869
2739Type / Values2870Type / Values
2780 2911
2781Windows-only native sandbox mode when running Codex natively on Windows.2912Windows-only native sandbox mode when running Codex natively on Windows.
2782 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
2783Expand to view all2926Expand to view all
2784 2927
2785You 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).
2804 2947
2805| Key | Type / Values | Details |2948| Key | Type / Values | Details |
2806| --- | --- | --- |2949| --- | --- | --- |
28072950| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). || `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`. |
2808| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2952| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
2809| `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`. |
2810| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |2954| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
2811| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |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. |
2812| `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. |
2813| `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). |
2814| `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. |
2815| `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. |
2816| `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. |
2817| `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`. |
2818| `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). |
2831 2977
2832Details2978Details
2833 2979
28342980Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).Allowed 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`.
2835 2993
2836Key2994Key
2837 2995
2883 3041
2884Key3042Key
2885 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
2886`mcp_servers`3056`mcp_servers`
2887 3057
2888Type / Values3058Type / Values
2931 3101
2932Key3102Key
2933 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
2934`rules`3116`rules`
2935 3117
2936Type / Values3118Type / Values