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. Built-ins are `:read-only`, `:workspace`, and `:danger-no-sandbox`; custom profile names require matching `[permissions.<name>]` tables. |
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` or inline `[hooks]` config. |
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`. |73| `hooks` | `table` | Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events. |
55| `instructions` | `string` | Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`. |74| `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`. |75| `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. |76| `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. |
77| `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. |78| `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. |79| `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. |80| `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. |85| `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. |86| `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. |87| `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. |88| `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. |
89| `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. |90| `mcp_servers.<id>.http_headers` | `map<string,string>` | Static HTTP headers included with each MCP HTTP request. |
91| `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. |92| `mcp_servers.<id>.required` | `boolean` | When true, fail startup/resume if this enabled MCP server cannot initialize. |
93| `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. |94| `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. |95| `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. |96| `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. |97| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |
75| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |98| `memories.consolidation_model` | `string` | Optional model override for global memory consolidation. |
99| `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`. |
100| `memories.extract_model` | `string` | Optional model override for per-thread memory extraction. |
101| `memories.generate_memories` | `boolean` | When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`. |
102| `memories.max_raw_memories_for_consolidation` | `number` | Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`. |
103| `memories.max_rollout_age_days` | `number` | Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`. |
104| `memories.max_rollouts_per_startup` | `number` | Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`. |
105| `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`. |
106| `memories.min_rate_limit_remaining_percent` | `number` | Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`. |
107| `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`. |
108| `memories.use_memories` | `boolean` | When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`. |
109| `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). |110| `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. |
77| `model_context_window` | `number` | Context window tokens available to the active model. |112| `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`. |113| `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`). |114| `model_provider` | `string` | Provider id from `model_providers` (default: `openai`). |
115| `model_providers.<id>` | `table` | Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden. |
116| `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`. |
117| `model_providers.<id>.auth.args` | `array<string>` | Arguments passed to the token command. |
118| `model_providers.<id>.auth.command` | `string` | Command to run when Codex needs a bearer token. The command must print the token to stdout. |
119| `model_providers.<id>.auth.cwd` | `string (path)` | Working directory for the token command. |
120| `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. |
121| `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. |122| `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. |123| `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. |124| `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). |131| `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). |132| `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). |133| `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). |134| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |
135| `model_providers.<id>.wire_api` | `responses` | Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted. |
136| `model_providers.amazon-bedrock.aws.profile` | `string` | AWS profile name used by the built-in `amazon-bedrock` provider. |
137| `model_providers.amazon-bedrock.aws.region` | `string` | AWS region used by the built-in `amazon-bedrock` provider. |
93| `model_reasoning_effort` | `minimal | low | medium | high | xhigh` | Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent). |138| `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. |139| `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. |140| `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`). |141| `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. |142| `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. |143| `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. |144| `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. |146| `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. |147| `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. |148| `notify` | `array<string>` | Command invoked for notifications; receives a JSON payload from Codex. |
149| `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). |150| `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`). |151| `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. |152| `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. |157| `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. |158| `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. |159| `otel.log_user_prompt` | `boolean` | Opt in to exporting raw user prompts with OpenTelemetry logs. |
160| `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. |161| `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. |162| `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. |163| `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. |165| `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. |166| `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. |167| `otel.trace_exporter.<id>.tls.client-private-key` | `string` | Client private key path for OTEL trace exporter TLS. |
168| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |
169| `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"`. |
170| `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. |
171| `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. |
172| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |
173| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |
174| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |
175| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |
176| `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. |
177| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |
178| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |
179| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |
180| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |
181| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |
182| `permissions.<name>.network.socks_url` | `string` | SOCKS5 proxy endpoint used by this permissions profile. |
183| `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`. |184| `personality` | `none | friendly | pragmatic` | Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`. |
185| `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`). |186| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
123| `profiles.<name>.*` | `various` | Profile-scoped overrides for any of the supported configuration keys. |187| `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`. |188| `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`. |189| `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`. |190| `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). |
191| `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. |192| `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. |193| `profiles.<name>.personality` | `none | friendly | pragmatic` | Profile-scoped communication style override for supported models. |
194| `profiles.<name>.plan_mode_reasoning_effort` | `none | minimal | low | medium | high | xhigh` | Profile-scoped Plan-mode reasoning override. |
195| `profiles.<name>.service_tier` | `flex | fast` | Profile-scoped service tier preference for new turns. |
196| `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"`). |197| `profiles.<name>.web_search` | `disabled | cached | live` | Profile-scoped web search mode override (default: `"cached"`). |
198| `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. |199| `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. |200| `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. |201| `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. |202| `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). |203| `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. |204| `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. |205| `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. |206| `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. |207| `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"`. |208| `sandbox_workspace_write.writable_roots` | `array<string>` | Additional writable roots when `sandbox_mode = "workspace-write"`. |
209| `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. |210| `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. |211| `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. |212| `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. |217| `skills.config` | `array<object>` | Per-skill enablement overrides stored in config.toml. |
148| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |218| `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`. |219| `skills.config.<index>.path` | `string (path)` | Path to a skill folder containing `SKILL.md`. |
220| `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. |221| `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. |222| `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. |223| `tool_suggest.disabled_tools` | `array<table>` | Disable suggestions for specific discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
224| `tool_suggest.discoverables` | `array<table>` | Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`. |
225| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |
226| `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. |227| `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). |228| `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). |229| `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). |230| `tui.keymap.<context>.<action>` | `string | array<string>` | Keyboard shortcut binding for a TUI action. Supported contexts include `global`, `chat`, `composer`, `editor`, `pager`, `list`, and `approval`; context-specific bindings override `tui.keymap.global`. |
231| `tui.keymap.<context>.<action> = []` | `empty array` | Unbind the action in that keymap context. Key names use normalized strings such as `ctrl-a`, `shift-enter`, or `page-down`. |
232| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |
233| `tui.notification_condition` | `unfocused | always` | Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`. |
234| `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. |235| `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). |236| `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. |237| `tui.status_line` | `array<string> | null` | Ordered list of TUI footer status-line item identifiers. `null` disables the status line. |
238| `tui.terminal_title` | `array<string> | null` | Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates. |
239| `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. |240| `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). |241| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
242| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |
243| `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 244
163Key245Key
164 246
186 268
187Key269Key
188 270
271`agents.<name>.nickname_candidates`
272
273Type / Values
274
275`array<string>`
276
277Details
278
279Optional pool of display nicknames for spawned agents in that role.
280
281Key
282
283`agents.job_max_runtime_seconds`
284
285Type / Values
286
287`number`
288
289Details
290
291Default per-worker timeout for `spawn_agents_on_csv` jobs. When unset, the tool falls back to 1800 seconds per worker.
292
293Key
294
295`agents.max_depth`
296
297Type / Values
298
299`number`
300
301Details
302
303Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1).
304
305Key
306
189`agents.max_threads`307`agents.max_threads`
190 308
191Type / Values309Type / Values
194 312
195Details313Details
196 314
197Maximum number of agent threads that can be open concurrently.315Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
316
317Key
318
319`allow_login_shell`
320
321Type / Values
322
323`boolean`
324
325Details
326
327Allow 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.
328
329Key
330
331`analytics.enabled`
332
333Type / Values
334
335`boolean`
336
337Details
338
339Enable or disable analytics for this machine/profile. When unset, the client default applies.
198 340
199Key341Key
200 342
202 344
203Type / Values345Type / Values
204 346
205`untrusted | on-request | never`347`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
206 348
207Details349Details
208 350
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.351Controls 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.
210 352
211Key353Key
212 354
213`apps.<id>.disabled_reason`355`approval_policy.granular.mcp_elicitations`
214 356
215Type / Values357Type / Values
216 358
217`unknown | user`359`boolean`
218 360
219Details361Details
220 362
221Optional reason attached when an app/connector is disabled.363When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
222 364
223Key365Key
224 366
225`apps.<id>.enabled`367`approval_policy.granular.request_permissions`
226 368
227Type / Values369Type / Values
228 370
230 372
231Details373Details
232 374
233Enable or disable a specific app/connector by id (default: true).375When `true`, prompts from the `request_permissions` tool are allowed to surface.
234 376
235Key377Key
236 378
237`chatgpt_base_url`379`approval_policy.granular.rules`
238 380
239Type / Values381Type / Values
240 382
241`string`383`boolean`
242 384
243Details385Details
244 386
245Override the base URL used during the ChatGPT login flow.387When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
246 388
247Key389Key
248 390
249`check_for_update_on_startup`391`approval_policy.granular.sandbox_approval`
250 392
251Type / Values393Type / Values
252 394
254 396
255Details397Details
256 398
257Check for Codex updates on startup (set to false only when updates are centrally managed).399When `true`, sandbox escalation approval prompts are allowed to surface.
258 400
259Key401Key
260 402
261`cli_auth_credentials_store`403`approval_policy.granular.skill_approval`
262 404
263Type / Values405Type / Values
264 406
265`file | keyring | auto`407`boolean`
266 408
267Details409Details
268 410
269Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).411When `true`, skill-script approval prompts are allowed to surface.
270 412
271Key413Key
272 414
273`compact_prompt`415`approvals_reviewer`
274 416
275Type / Values417Type / Values
276 418
277`string`419`user | auto_review`
278 420
279Details421Details
280 422
281Inline override for the history compaction prompt.423Who 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.
282 424
283Key425Key
284 426
285`developer_instructions`427`apps._default.destructive_enabled`
286 428
287Type / Values429Type / Values
288 430
289`string`431`boolean`
290 432
291Details433Details
292 434
293Additional developer instructions injected into the session (optional).435Default allow/deny for app tools with `destructive_hint = true`.
294 436
295Key437Key
296 438
297`disable_paste_burst`439`apps._default.enabled`
298 440
299Type / Values441Type / Values
300 442
302 444
303Details445Details
304 446
305Disable burst-paste detection in the TUI.447Default app enabled state for all apps unless overridden per app.
306 448
307Key449Key
308 450
309`experimental_compact_prompt_file`451`apps._default.open_world_enabled`
310 452
311Type / Values453Type / Values
312 454
313`string (path)`455`boolean`
314 456
315Details457Details
316 458
317Load the compaction prompt override from a file (experimental).459Default allow/deny for app tools with `open_world_hint = true`.
460
461Key
462
463`apps.<id>.default_tools_approval_mode`
464
465Type / Values
466
467`auto | prompt | approve`
468
469Details
470
471Default approval behavior for tools in this app unless a per-tool override exists.
318 472
319Key473Key
320 474
321`experimental_use_freeform_apply_patch`475`apps.<id>.default_tools_enabled`
322 476
323Type / Values477Type / Values
324 478
326 480
327Details481Details
328 482
329Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.483Default enabled state for tools in this app unless a per-tool override exists.
330 484
331Key485Key
332 486
333`experimental_use_unified_exec_tool`487`apps.<id>.destructive_enabled`
334 488
335Type / Values489Type / Values
336 490
338 492
339Details493Details
340 494
341Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.495Allow or block tools in this app that advertise `destructive_hint = true`.
342 496
343Key497Key
344 498
345`features.apply_patch_freeform`499`apps.<id>.enabled`
346 500
347Type / Values501Type / Values
348 502
350 504
351Details505Details
352 506
353Expose the freeform `apply_patch` tool (experimental).507Enable or disable a specific app/connector by id (default: true).
354 508
355Key509Key
356 510
357`features.apps`511`apps.<id>.open_world_enabled`
358 512
359Type / Values513Type / Values
360 514
362 516
363Details517Details
364 518
365Enable ChatGPT Apps/connectors support (experimental).519Allow or block tools in this app that advertise `open_world_hint = true`.
520
521Key
522
523`apps.<id>.tools.<tool>.approval_mode`
524
525Type / Values
526
527`auto | prompt | approve`
528
529Details
530
531Per-tool approval behavior override for a single app tool.
366 532
367Key533Key
368 534
369`features.apps_mcp_gateway`535`apps.<id>.tools.<tool>.enabled`
370 536
371Type / Values537Type / Values
372 538
374 540
375Details541Details
376 542
377Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).543Per-tool enabled override for an app tool (for example `repos/list`).
544
545Key
546
547`auto_review.policy`
548
549Type / Values
550
551`string`
552
553Details
554
555Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored.
556
557Key
558
559`background_terminal_max_timeout`
560
561Type / Values
562
563`number`
564
565Details
566
567Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key.
568
569Key
570
571`chatgpt_base_url`
572
573Type / Values
574
575`string`
576
577Details
578
579Override the base URL used during the ChatGPT login flow.
378 580
379Key581Key
380 582
381`features.child_agents_md`583`check_for_update_on_startup`
382 584
383Type / Values585Type / Values
384 586
386 588
387Details589Details
388 590
389Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).591Check for Codex updates on startup (set to false only when updates are centrally managed).
592
593Key
594
595`cli_auth_credentials_store`
596
597Type / Values
598
599`file | keyring | auto`
600
601Details
602
603Control where the CLI stores cached credentials (file-based auth.json vs OS keychain).
604
605Key
606
607`commit_attribution`
608
609Type / Values
610
611`string`
612
613Details
614
615Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
616
617Key
618
619`compact_prompt`
620
621Type / Values
622
623`string`
624
625Details
626
627Inline override for the history compaction prompt.
628
629Key
630
631`default_permissions`
632
633Type / Values
634
635`string`
636
637Details
638
639Name of the default permissions profile to apply to sandboxed tool calls. Built-ins are `:read-only`, `:workspace`, and `:danger-no-sandbox`; custom profile names require matching `[permissions.<name>]` tables.
640
641Key
642
643`developer_instructions`
644
645Type / Values
646
647`string`
648
649Details
650
651Additional developer instructions injected into the session (optional).
390 652
391Key653Key
392 654
393`features.collaboration_modes`655`disable_paste_burst`
394 656
395Type / Values657Type / Values
396 658
398 660
399Details661Details
400 662
401Enable collaboration modes such as plan mode (stable; on by default).663Disable burst-paste detection in the TUI.
664
665Key
666
667`experimental_compact_prompt_file`
668
669Type / Values
670
671`string (path)`
672
673Details
674
675Load the compaction prompt override from a file (experimental).
402 676
403Key677Key
404 678
405`features.elevated_windows_sandbox`679`experimental_use_unified_exec_tool`
406 680
407Type / Values681Type / Values
408 682
410 684
411Details685Details
412 686
413Enable the elevated Windows sandbox pipeline (experimental).687Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
414 688
415Key689Key
416 690
417`features.experimental_windows_sandbox`691`features.apps`
418 692
419Type / Values693Type / Values
420 694
422 696
423Details697Details
424 698
425Run the Windows restricted-token sandbox (experimental).699Enable ChatGPT Apps/connectors support (experimental).
426 700
427Key701Key
428 702
429`features.multi_agent`703`features.codex_hooks`
430 704
431Type / Values705Type / Values
432 706
434 708
435Details709Details
436 710
437Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).711Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config.
438 712
439Key713Key
440 714
441`features.personality`715`features.enable_request_compression`
442 716
443Type / Values717Type / Values
444 718
446 720
447Details721Details
448 722
449Enable personality selection controls (stable; on by default).723Compress streaming request bodies with zstd when supported (stable; on by default).
450 724
451Key725Key
452 726
453`features.powershell_utf8`727`features.fast_mode`
454 728
455Type / Values729Type / Values
456 730
458 732
459Details733Details
460 734
461Force PowerShell UTF-8 output (defaults to true).735Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
462 736
463Key737Key
464 738
465`features.remote_models`739`features.memories`
466 740
467Type / Values741Type / Values
468 742
470 744
471Details745Details
472 746
473Refresh remote model list before showing readiness (experimental).747Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
474 748
475Key749Key
476 750
477`features.request_rule`751`features.multi_agent`
478 752
479Type / Values753Type / Values
480 754
482 756
483Details757Details
484 758
485Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).759Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
486 760
487Key761Key
488 762
489`features.runtime_metrics`763`features.personality`
490 764
491Type / Values765Type / Values
492 766
494 768
495Details769Details
496 770
497Show runtime metrics summary in TUI turn separators (experimental).771Enable personality selection controls (stable; on by default).
498 772
499Key773Key
500 774
501`features.search_tool`775`features.prevent_idle_sleep`
502 776
503Type / Values777Type / Values
504 778
506 780
507Details781Details
508 782
509Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).783Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
510 784
511Key785Key
512 786
518 792
519Details793Details
520 794
521Snapshot shell environment to speed up repeated commands (beta).795Snapshot shell environment to speed up repeated commands (stable; on by default).
522 796
523Key797Key
524 798
534 808
535Key809Key
536 810
537`features.unified_exec`811`features.skill_mcp_dependency_install`
812
813Type / Values
814
815`boolean`
816
817Details
818
819Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
820
821Key
822
823`features.undo`
538 824
539Type / Values825Type / Values
540 826
542 828
543Details829Details
544 830
545Use the unified PTY-backed exec tool (beta).831Enable undo support (stable; off by default).
546 832
547Key833Key
548 834
549`features.use_linux_sandbox_bwrap`835`features.unified_exec`
550 836
551Type / Values837Type / Values
552 838
554 840
555Details841Details
556 842
557Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).843Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
558 844
559Key845Key
560 846
678 964
679Key965Key
680 966
681`include_apply_patch_tool`967`hooks`
682 968
683Type / Values969Type / Values
684 970
685`boolean`971`table`
686 972
687Details973Details
688 974
689Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.975Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events.
690 976
691Key977Key
692 978
726 1012
727Key1013Key
728 1014
1015`mcp_oauth_callback_url`
1016
1017Type / Values
1018
1019`string`
1020
1021Details
1022
1023Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.
1024
1025Key
1026
729`mcp_oauth_credentials_store`1027`mcp_oauth_credentials_store`
730 1028
731Type / Values1029Type / Values
850 1148
851Type / Values1149Type / Values
852 1150
853`array<string>`1151`array<string | { name = string, source = "local" | "remote" }>`
854 1152
855Details1153Details
856 1154
857Additional environment variables to whitelist for an MCP stdio server.1155Additional environment variables to whitelist for an MCP stdio server. String entries default to `source = "local"`; use `source = "remote"` only with executor-backed remote stdio.
858 1156
859Key1157Key
860 1158
861`mcp_servers.<id>.http_headers`1159`mcp_servers.<id>.experimental_environment`
862 1160
863Type / Values1161Type / Values
864 1162
865`map<string,string>`1163`local | remote`
866 1164
867Details1165Details
868 1166
869Static HTTP headers included with each MCP HTTP request.1167Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.
870 1168
871Key1169Key
872 1170
873`mcp_servers.<id>.required`1171`mcp_servers.<id>.http_headers`
874 1172
875Type / Values1173Type / Values
876 1174
877`boolean`1175`map<string,string>`
878 1176
879Details1177Details
880 1178
881When true, fail startup/resume if this enabled MCP server cannot initialize.1179Static HTTP headers included with each MCP HTTP request.
882 1180
883Key1181Key
884 1182
885`mcp_servers.<id>.startup_timeout_ms`1183`mcp_servers.<id>.oauth_resource`
886 1184
887Type / Values1185Type / Values
888 1186
889`number`1187`string`
890 1188
891Details1189Details
892 1190
893Alias for `startup_timeout_sec` in milliseconds.1191Optional RFC 8707 OAuth resource parameter to include during MCP login.
894 1192
895Key1193Key
896 1194
897`mcp_servers.<id>.startup_timeout_sec`1195`mcp_servers.<id>.required`
898 1196
899Type / Values1197Type / Values
900 1198
901`number`1199`boolean`
902
903Details
904
905Override the default 10s startup timeout for an MCP server.
906
907Key
908
909`mcp_servers.<id>.tool_timeout_sec`
910
911Type / Values
912
913`number`
914 1200
915Details1201Details
916 1202
917Override the default 60s per-tool timeout for an MCP server.1203When true, fail startup/resume if this enabled MCP server cannot initialize.
918 1204
919Key1205Key
920 1206
921`mcp_servers.<id>.url`1207`mcp_servers.<id>.scopes`
922 1208
923Type / Values1209Type / Values
924 1210
925`string`1211`array<string>`
926 1212
927Details1213Details
928 1214
929Endpoint for an MCP streamable HTTP server.1215OAuth scopes to request when authenticating to that MCP server.
930 1216
931Key1217Key
932 1218
933`model`1219`mcp_servers.<id>.startup_timeout_ms`
934 1220
935Type / Values1221Type / Values
936 1222
937`string`1223`number`
938 1224
939Details1225Details
940 1226
941Model to use (e.g., `gpt-5-codex`).1227Alias for `startup_timeout_sec` in milliseconds.
942 1228
943Key1229Key
944 1230
945`model_auto_compact_token_limit`1231`mcp_servers.<id>.startup_timeout_sec`
946 1232
947Type / Values1233Type / Values
948 1234
950 1236
951Details1237Details
952 1238
953Token threshold that triggers automatic history compaction (unset uses model defaults).1239Override the default 10s startup timeout for an MCP server.
954 1240
955Key1241Key
956 1242
957`model_context_window`1243`mcp_servers.<id>.tool_timeout_sec`
958 1244
959Type / Values1245Type / Values
960 1246
962 1248
963Details1249Details
964 1250
965Context window tokens available to the active model.1251Override the default 60s per-tool timeout for an MCP server.
966 1252
967Key1253Key
968 1254
969`model_instructions_file`1255`mcp_servers.<id>.url`
970 1256
971Type / Values1257Type / Values
972 1258
973`string (path)`1259`string`
974 1260
975Details1261Details
976 1262
977Replacement for built-in instructions instead of `AGENTS.md`.1263Endpoint for an MCP streamable HTTP server.
978 1264
979Key1265Key
980 1266
981`model_provider`1267`memories.consolidation_model`
982 1268
983Type / Values1269Type / Values
984 1270
986 1272
987Details1273Details
988 1274
989Provider id from `model_providers` (default: `openai`).1275Optional model override for global memory consolidation.
990 1276
991Key1277Key
992 1278
993`model_providers.<id>.base_url`1279`memories.disable_on_external_context`
994 1280
995Type / Values1281Type / Values
996 1282
997`string`1283`boolean`
998 1284
999Details1285Details
1000 1286
1001API base URL for the model provider.1287When `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`.
1002 1288
1003Key1289Key
1004 1290
1005`model_providers.<id>.env_http_headers`1291`memories.extract_model`
1006 1292
1007Type / Values1293Type / Values
1008 1294
1009`map<string,string>`1295`string`
1010 1296
1011Details1297Details
1012 1298
1013HTTP headers populated from environment variables when present.1299Optional model override for per-thread memory extraction.
1014 1300
1015Key1301Key
1016 1302
1017`model_providers.<id>.env_key`1303`memories.generate_memories`
1018 1304
1019Type / Values1305Type / Values
1020 1306
1021`string`1307`boolean`
1022 1308
1023Details1309Details
1024 1310
1025Environment variable supplying the provider API key.1311When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1026 1312
1027Key1313Key
1028 1314
1029`model_providers.<id>.env_key_instructions`1315`memories.max_raw_memories_for_consolidation`
1030 1316
1031Type / Values1317Type / Values
1032 1318
1033`string`1319`number`
1034 1320
1035Details1321Details
1036 1322
1037Optional setup guidance for the provider API key.1323Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1038 1324
1039Key1325Key
1040 1326
1041`model_providers.<id>.experimental_bearer_token`1327`memories.max_rollout_age_days`
1042 1328
1043Type / Values1329Type / Values
1044 1330
1045`string`1331`number`
1046 1332
1047Details1333Details
1048 1334
1049Direct bearer token for the provider (discouraged; use `env_key`).1335Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1050 1336
1051Key1337Key
1052 1338
1053`model_providers.<id>.http_headers`1339`memories.max_rollouts_per_startup`
1054 1340
1055Type / Values1341Type / Values
1056 1342
1057`map<string,string>`1343`number`
1058 1344
1059Details1345Details
1060 1346
1061Static HTTP headers added to provider requests.1347Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1062 1348
1063Key1349Key
1064 1350
1065`model_providers.<id>.name`1351`memories.max_unused_days`
1066 1352
1067Type / Values1353Type / Values
1068 1354
1069`string`1355`number`
1070 1356
1071Details1357Details
1072 1358
1073Display name for a custom model provider.1359Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1074 1360
1075Key1361Key
1076 1362
1077`model_providers.<id>.query_params`1363`memories.min_rate_limit_remaining_percent`
1078 1364
1079Type / Values1365Type / Values
1080 1366
1081`map<string,string>`1367`number`
1082 1368
1083Details1369Details
1084 1370
1085Extra query parameters appended to provider requests.1371Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`.
1086 1372
1087Key1373Key
1088 1374
1089`model_providers.<id>.request_max_retries`1375`memories.min_rollout_idle_hours`
1090 1376
1091Type / Values1377Type / Values
1092 1378
1094 1380
1095Details1381Details
1096 1382
1097Retry count for HTTP requests to the provider (default: 4).1383Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1098 1384
1099Key1385Key
1100 1386
1101`model_providers.<id>.requires_openai_auth`1387`memories.use_memories`
1102 1388
1103Type / Values1389Type / Values
1104 1390
1106 1392
1107Details1393Details
1108 1394
1109The provider uses OpenAI authentication (defaults to false).1395When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1110 1396
1111Key1397Key
1112 1398
1113`model_providers.<id>.stream_idle_timeout_ms`1399`model`
1114 1400
1115Type / Values1401Type / Values
1116 1402
1117`number`1403`string`
1118 1404
1119Details1405Details
1120 1406
1121Idle timeout for SSE streams in milliseconds (default: 300000).1407Model to use (e.g., `gpt-5.5`).
1122 1408
1123Key1409Key
1124 1410
1125`model_providers.<id>.stream_max_retries`1411`model_auto_compact_token_limit`
1126 1412
1127Type / Values1413Type / Values
1128 1414
1130 1416
1131Details1417Details
1132 1418
1133Retry count for SSE streaming interruptions (default: 5).1419Token threshold that triggers automatic history compaction (unset uses model defaults).
1134 1420
1135Key1421Key
1136 1422
1137`model_providers.<id>.wire_api`1423`model_catalog_json`
1138 1424
1139Type / Values1425Type / Values
1140 1426
1141`chat | responses`1427`string (path)`
1142 1428
1143Details1429Details
1144 1430
1145Protocol used by the provider (defaults to `chat` if omitted).1431Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1146 1432
1147Key1433Key
1148 1434
1149`model_reasoning_effort`1435`model_context_window`
1150 1436
1151Type / Values1437Type / Values
1152 1438
1153`minimal | low | medium | high | xhigh`1439`number`
1154 1440
1155Details1441Details
1156 1442
1157Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1443Context window tokens available to the active model.
1158 1444
1159Key1445Key
1160 1446
1161`model_reasoning_summary`1447`model_instructions_file`
1162 1448
1163Type / Values1449Type / Values
1164 1450
1165`auto | concise | detailed | none`1451`string (path)`
1166 1452
1167Details1453Details
1168 1454
1169Select reasoning summary detail or disable summaries entirely.1455Replacement for built-in instructions instead of `AGENTS.md`.
1170 1456
1171Key1457Key
1172 1458
1173`model_supports_reasoning_summaries`1459`model_provider`
1174 1460
1175Type / Values1461Type / Values
1176 1462
1177`boolean`1463`string`
1178 1464
1179Details1465Details
1180 1466
1181Force Codex to send or not send reasoning metadata.1467Provider id from `model_providers` (default: `openai`).
1182 1468
1183Key1469Key
1184 1470
1185`model_verbosity`1471`model_providers.<id>`
1186 1472
1187Type / Values1473Type / Values
1188 1474
1189`low | medium | high`1475`table`
1190 1476
1191Details1477Details
1192 1478
1193Control GPT-5 Responses API verbosity (defaults to `medium`).1479Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1194 1480
1195Key1481Key
1196 1482
1197`notice.hide_full_access_warning`1483`model_providers.<id>.auth`
1198 1484
1199Type / Values1485Type / Values
1200 1486
1201`boolean`1487`table`
1202 1488
1203Details1489Details
1204 1490
1205Track acknowledgement of the full access warning prompt.1491Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1206 1492
1207Key1493Key
1208 1494
1209`notice.hide_gpt-5.1-codex-max_migration_prompt`1495`model_providers.<id>.auth.args`
1210 1496
1211Type / Values1497Type / Values
1212 1498
1213`boolean`1499`array<string>`
1214 1500
1215Details1501Details
1216 1502
1217Track acknowledgement of the gpt-5.1-codex-max migration prompt.1503Arguments passed to the token command.
1218 1504
1219Key1505Key
1220 1506
1221`notice.hide_gpt5_1_migration_prompt`1507`model_providers.<id>.auth.command`
1222 1508
1223Type / Values1509Type / Values
1224 1510
1225`boolean`1511`string`
1226 1512
1227Details1513Details
1228 1514
1229Track acknowledgement of the GPT-5.1 migration prompt.1515Command to run when Codex needs a bearer token. The command must print the token to stdout.
1230 1516
1231Key1517Key
1232 1518
1233`notice.hide_rate_limit_model_nudge`1519`model_providers.<id>.auth.cwd`
1234 1520
1235Type / Values1521Type / Values
1236 1522
1237`boolean`1523`string (path)`
1238 1524
1239Details1525Details
1240 1526
1241Track opt-out of the rate limit model switch reminder.1527Working directory for the token command.
1242 1528
1243Key1529Key
1244 1530
1245`notice.hide_world_writable_warning`1531`model_providers.<id>.auth.refresh_interval_ms`
1246 1532
1247Type / Values1533Type / Values
1248 1534
1249`boolean`1535`number`
1250 1536
1251Details1537Details
1252 1538
1253Track acknowledgement of the Windows world-writable directories warning.1539How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1254 1540
1255Key1541Key
1256 1542
1257`notice.model_migrations`1543`model_providers.<id>.auth.timeout_ms`
1258 1544
1259Type / Values1545Type / Values
1260 1546
1261`map<string,string>`1547`number`
1262 1548
1263Details1549Details
1264 1550
1265Track acknowledged model migrations as old->new mappings.1551Maximum token command runtime in milliseconds (default: 5000).
1266 1552
1267Key1553Key
1268 1554
1269`notify`1555`model_providers.<id>.base_url`
1270 1556
1271Type / Values1557Type / Values
1272 1558
1273`array<string>`1559`string`
1274 1560
1275Details1561Details
1276 1562
1277Command invoked for notifications; receives a JSON payload from Codex.1563API base URL for the model provider.
1278 1564
1279Key1565Key
1280 1566
1281`oss_provider`1567`model_providers.<id>.env_http_headers`
1282 1568
1283Type / Values1569Type / Values
1284 1570
1285`lmstudio | ollama`1571`map<string,string>`
1286 1572
1287Details1573Details
1288 1574
1289Default local provider used when running with `--oss` (defaults to prompting if unset).1575HTTP headers populated from environment variables when present.
1290 1576
1291Key1577Key
1292 1578
1293`otel.environment`1579`model_providers.<id>.env_key`
1294 1580
1295Type / Values1581Type / Values
1296 1582
1298 1584
1299Details1585Details
1300 1586
1301Environment tag applied to emitted OpenTelemetry events (default: `dev`).1587Environment variable supplying the provider API key.
1302 1588
1303Key1589Key
1304 1590
1305`otel.exporter`1591`model_providers.<id>.env_key_instructions`
1306 1592
1307Type / Values1593Type / Values
1308 1594
1309`none | otlp-http | otlp-grpc`1595`string`
1310 1596
1311Details1597Details
1312 1598
1313Select the OpenTelemetry exporter and provide any endpoint metadata.1599Optional setup guidance for the provider API key.
1314 1600
1315Key1601Key
1316 1602
1317`otel.exporter.<id>.endpoint`1603`model_providers.<id>.experimental_bearer_token`
1318 1604
1319Type / Values1605Type / Values
1320 1606
1322 1608
1323Details1609Details
1324 1610
1325Exporter endpoint for OTEL logs.1611Direct bearer token for the provider (discouraged; use `env_key`).
1326 1612
1327Key1613Key
1328 1614
1329`otel.exporter.<id>.headers`1615`model_providers.<id>.http_headers`
1330 1616
1331Type / Values1617Type / Values
1332 1618
1334 1620
1335Details1621Details
1336 1622
1337Static headers included with OTEL exporter requests.1623Static HTTP headers added to provider requests.
1338 1624
1339Key1625Key
1340 1626
1341`otel.exporter.<id>.protocol`1627`model_providers.<id>.name`
1342 1628
1343Type / Values1629Type / Values
1344 1630
1345`binary | json`1631`string`
1346 1632
1347Details1633Details
1348 1634
1349Protocol used by the OTLP/HTTP exporter.1635Display name for a custom model provider.
1350 1636
1351Key1637Key
1352 1638
1353`otel.exporter.<id>.tls.ca-certificate`1639`model_providers.<id>.query_params`
1354 1640
1355Type / Values1641Type / Values
1356 1642
1357`string`1643`map<string,string>`
1358 1644
1359Details1645Details
1360 1646
1361CA certificate path for OTEL exporter TLS.1647Extra query parameters appended to provider requests.
1362 1648
1363Key1649Key
1364 1650
1365`otel.exporter.<id>.tls.client-certificate`1651`model_providers.<id>.request_max_retries`
1366 1652
1367Type / Values1653Type / Values
1368 1654
1369`string`1655`number`
1370 1656
1371Details1657Details
1372 1658
1373Client certificate path for OTEL exporter TLS.1659Retry count for HTTP requests to the provider (default: 4).
1374 1660
1375Key1661Key
1376 1662
1377`otel.exporter.<id>.tls.client-private-key`1663`model_providers.<id>.requires_openai_auth`
1378 1664
1379Type / Values1665Type / Values
1380 1666
1381`string`1667`boolean`
1382 1668
1383Details1669Details
1384 1670
1385Client private key path for OTEL exporter TLS.1671The provider uses OpenAI authentication (defaults to false).
1386 1672
1387Key1673Key
1388 1674
1389`otel.log_user_prompt`1675`model_providers.<id>.stream_idle_timeout_ms`
1390 1676
1391Type / Values1677Type / Values
1392 1678
1393`boolean`1679`number`
1394 1680
1395Details1681Details
1396 1682
1397Opt in to exporting raw user prompts with OpenTelemetry logs.1683Idle timeout for SSE streams in milliseconds (default: 300000).
1398 1684
1399Key1685Key
1400 1686
1401`otel.trace_exporter`1687`model_providers.<id>.stream_max_retries`
1402 1688
1403Type / Values1689Type / Values
1404 1690
1405`none | otlp-http | otlp-grpc`1691`number`
1406 1692
1407Details1693Details
1408 1694
1409Select the OpenTelemetry trace exporter and provide any endpoint metadata.1695Retry count for SSE streaming interruptions (default: 5).
1410 1696
1411Key1697Key
1412 1698
1413`otel.trace_exporter.<id>.endpoint`1699`model_providers.<id>.supports_websockets`
1414 1700
1415Type / Values1701Type / Values
1416 1702
1417`string`1703`boolean`
1418 1704
1419Details1705Details
1420 1706
1421Trace exporter endpoint for OTEL logs.1707Whether that provider supports the Responses API WebSocket transport.
1422 1708
1423Key1709Key
1424 1710
1425`otel.trace_exporter.<id>.headers`1711`model_providers.<id>.wire_api`
1426 1712
1427Type / Values1713Type / Values
1428 1714
1429`map<string,string>`1715`responses`
1430 1716
1431Details1717Details
1432 1718
1433Static headers included with OTEL trace exporter requests.1719Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1434 1720
1435Key1721Key
1436 1722
1437`otel.trace_exporter.<id>.protocol`1723`model_providers.amazon-bedrock.aws.profile`
1438 1724
1439Type / Values1725Type / Values
1440 1726
1441`binary | json`1727`string`
1442 1728
1443Details1729Details
1444 1730
1445Protocol used by the OTLP/HTTP trace exporter.1731AWS profile name used by the built-in `amazon-bedrock` provider.
1446 1732
1447Key1733Key
1448 1734
1449`otel.trace_exporter.<id>.tls.ca-certificate`1735`model_providers.amazon-bedrock.aws.region`
1450 1736
1451Type / Values1737Type / Values
1452 1738
1454 1740
1455Details1741Details
1456 1742
1457CA certificate path for OTEL trace exporter TLS.1743AWS region used by the built-in `amazon-bedrock` provider.
1458 1744
1459Key1745Key
1460 1746
1461`otel.trace_exporter.<id>.tls.client-certificate`1747`model_reasoning_effort`
1462 1748
1463Type / Values1749Type / Values
1464 1750
1465`string`1751`minimal | low | medium | high | xhigh`
1466 1752
1467Details1753Details
1468 1754
1469Client certificate path for OTEL trace exporter TLS.1755Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).
1470 1756
1471Key1757Key
1472 1758
1473`otel.trace_exporter.<id>.tls.client-private-key`1759`model_reasoning_summary`
1474 1760
1475Type / Values1761Type / Values
1476 1762
1477`string`1763`auto | concise | detailed | none`
1478 1764
1479Details1765Details
1480 1766
1481Client private key path for OTEL trace exporter TLS.1767Select reasoning summary detail or disable summaries entirely.
1482 1768
1483Key1769Key
1484 1770
1485`personality`1771`model_supports_reasoning_summaries`
1486 1772
1487Type / Values1773Type / Values
1488 1774
1489`none | friendly | pragmatic`1775`boolean`
1490 1776
1491Details1777Details
1492 1778
1493Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.1779Force Codex to send or not send reasoning metadata.
1494 1780
1495Key1781Key
1496 1782
1497`profile`1783`model_verbosity`
1498 1784
1499Type / Values1785Type / Values
1500 1786
1501`string`1787`low | medium | high`
1502 1788
1503Details1789Details
1504 1790
1505Default profile applied at startup (equivalent to `--profile`).1791Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1506 1792
1507Key1793Key
1508 1794
1509`profiles.<name>.*`1795`notice.hide_full_access_warning`
1510 1796
1511Type / Values1797Type / Values
1512 1798
1513`various`1799`boolean`
1514 1800
1515Details1801Details
1516 1802
1517Profile-scoped overrides for any of the supported configuration keys.1803Track acknowledgement of the full access warning prompt.
1518 1804
1519Key1805Key
1520 1806
1521`profiles.<name>.experimental_use_freeform_apply_patch`1807`notice.hide_gpt-5.1-codex-max_migration_prompt`
1522 1808
1523Type / Values1809Type / Values
1524 1810
1526 1812
1527Details1813Details
1528 1814
1529Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1815Track acknowledgement of the gpt-5.1-codex-max migration prompt.
1530 1816
1531Key1817Key
1532 1818
1533`profiles.<name>.experimental_use_unified_exec_tool`1819`notice.hide_gpt5_1_migration_prompt`
1534 1820
1535Type / Values1821Type / Values
1536 1822
1538 1824
1539Details1825Details
1540 1826
1541Legacy name for enabling unified exec; prefer `[features].unified_exec`.1827Track acknowledgement of the GPT-5.1 migration prompt.
1542 1828
1543Key1829Key
1544 1830
1545`profiles.<name>.include_apply_patch_tool`1831`notice.hide_rate_limit_model_nudge`
1546 1832
1547Type / Values1833Type / Values
1548 1834
1550 1836
1551Details1837Details
1552 1838
1553Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1839Track opt-out of the rate limit model switch reminder.
1554 1840
1555Key1841Key
1556 1842
1557`profiles.<name>.oss_provider`1843`notice.hide_world_writable_warning`
1558 1844
1559Type / Values1845Type / Values
1560 1846
1561`lmstudio | ollama`1847`boolean`
1562 1848
1563Details1849Details
1564 1850
1565Profile-scoped OSS provider for `--oss` sessions.1851Track acknowledgement of the Windows world-writable directories warning.
1566 1852
1567Key1853Key
1568 1854
1569`profiles.<name>.personality`1855`notice.model_migrations`
1570 1856
1571Type / Values1857Type / Values
1572 1858
1573`none | friendly | pragmatic`1859`map<string,string>`
1574 1860
1575Details1861Details
1576 1862
1577Profile-scoped communication style override for supported models.1863Track acknowledged model migrations as old->new mappings.
1578 1864
1579Key1865Key
1580 1866
1581`profiles.<name>.web_search`1867`notify`
1582 1868
1583Type / Values1869Type / Values
1584 1870
1585`disabled | cached | live`1871`array<string>`
1586 1872
1587Details1873Details
1588 1874
1589Profile-scoped web search mode override (default: `"cached"`).1875Command invoked for notifications; receives a JSON payload from Codex.
1590 1876
1591Key1877Key
1592 1878
1593`project_doc_fallback_filenames`1879`openai_base_url`
1594 1880
1595Type / Values1881Type / Values
1596 1882
1597`array<string>`1883`string`
1598 1884
1599Details1885Details
1600 1886
1601Additional filenames to try when `AGENTS.md` is missing.1887Base URL override for the built-in `openai` model provider.
1602 1888
1603Key1889Key
1604 1890
1605`project_doc_max_bytes`1891`oss_provider`
1606 1892
1607Type / Values1893Type / Values
1608 1894
1609`number`1895`lmstudio | ollama`
1610 1896
1611Details1897Details
1612 1898
1613Maximum bytes read from `AGENTS.md` when building project instructions.1899Default local provider used when running with `--oss` (defaults to prompting if unset).
1614 1900
1615Key1901Key
1616 1902
1617`project_root_markers`1903`otel.environment`
1618 1904
1619Type / Values1905Type / Values
1620 1906
1621`array<string>`1907`string`
1622 1908
1623Details1909Details
1624 1910
1625List of project root marker filenames; used when searching parent directories for the project root.1911Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1626 1912
1627Key1913Key
1628 1914
1629`projects.<path>.trust_level`1915`otel.exporter`
1916
1917Type / Values
1918
1919`none | otlp-http | otlp-grpc`
1920
1921Details
1922
1923Select the OpenTelemetry exporter and provide any endpoint metadata.
1924
1925Key
1926
1927`otel.exporter.<id>.endpoint`
1630 1928
1631Type / Values1929Type / Values
1632 1930
1634 1932
1635Details1933Details
1636 1934
1637Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.1935Exporter endpoint for OTEL logs.
1638 1936
1639Key1937Key
1640 1938
1641`review_model`1939`otel.exporter.<id>.headers`
1940
1941Type / Values
1942
1943`map<string,string>`
1944
1945Details
1946
1947Static headers included with OTEL exporter requests.
1948
1949Key
1950
1951`otel.exporter.<id>.protocol`
1952
1953Type / Values
1954
1955`binary | json`
1956
1957Details
1958
1959Protocol used by the OTLP/HTTP exporter.
1960
1961Key
1962
1963`otel.exporter.<id>.tls.ca-certificate`
1642 1964
1643Type / Values1965Type / Values
1644 1966
1646 1968
1647Details1969Details
1648 1970
1649Optional model override used by `/review` (defaults to the current session model).1971CA certificate path for OTEL exporter TLS.
1650 1972
1651Key1973Key
1652 1974
1653`sandbox_mode`1975`otel.exporter.<id>.tls.client-certificate`
1654 1976
1655Type / Values1977Type / Values
1656 1978
1657`read-only | workspace-write | danger-full-access`1979`string`
1658 1980
1659Details1981Details
1660 1982
1661Sandbox policy for filesystem and network access during command execution.1983Client certificate path for OTEL exporter TLS.
1662 1984
1663Key1985Key
1664 1986
1665`sandbox_workspace_write.exclude_slash_tmp`1987`otel.exporter.<id>.tls.client-private-key`
1666 1988
1667Type / Values1989Type / Values
1668 1990
1669`boolean`1991`string`
1670 1992
1671Details1993Details
1672 1994
1673Exclude `/tmp` from writable roots in workspace-write mode.1995Client private key path for OTEL exporter TLS.
1674 1996
1675Key1997Key
1676 1998
1677`sandbox_workspace_write.exclude_tmpdir_env_var`1999`otel.log_user_prompt`
1678 2000
1679Type / Values2001Type / Values
1680 2002
1682 2004
1683Details2005Details
1684 2006
1685Exclude `$TMPDIR` from writable roots in workspace-write mode.2007Opt in to exporting raw user prompts with OpenTelemetry logs.
1686 2008
1687Key2009Key
1688 2010
1689`sandbox_workspace_write.network_access`2011`otel.metrics_exporter`
1690 2012
1691Type / Values2013Type / Values
1692 2014
1693`boolean`2015`none | statsig | otlp-http | otlp-grpc`
1694 2016
1695Details2017Details
1696 2018
1697Allow outbound network access inside the workspace-write sandbox.2019Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1698 2020
1699Key2021Key
1700 2022
1701`sandbox_workspace_write.writable_roots`2023`otel.trace_exporter`
1702 2024
1703Type / Values2025Type / Values
1704 2026
1705`array<string>`2027`none | otlp-http | otlp-grpc`
1706 2028
1707Details2029Details
1708 2030
1709Additional writable roots when `sandbox_mode = "workspace-write"`.2031Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1710 2032
1711Key2033Key
1712 2034
1713`shell_environment_policy.exclude`2035`otel.trace_exporter.<id>.endpoint`
1714 2036
1715Type / Values2037Type / Values
1716 2038
1717`array<string>`2039`string`
1718 2040
1719Details2041Details
1720 2042
1721Glob patterns for removing environment variables after the defaults.2043Trace exporter endpoint for OTEL logs.
1722 2044
1723Key2045Key
1724 2046
1725`shell_environment_policy.experimental_use_profile`2047`otel.trace_exporter.<id>.headers`
1726 2048
1727Type / Values2049Type / Values
1728 2050
1729`boolean`2051`map<string,string>`
1730 2052
1731Details2053Details
1732 2054
1733Use the user shell profile when spawning subprocesses.2055Static headers included with OTEL trace exporter requests.
1734 2056
1735Key2057Key
1736 2058
1737`shell_environment_policy.ignore_default_excludes`2059`otel.trace_exporter.<id>.protocol`
1738 2060
1739Type / Values2061Type / Values
1740 2062
1741`boolean`2063`binary | json`
1742 2064
1743Details2065Details
1744 2066
1745Keep variables containing KEY/SECRET/TOKEN before other filters run.2067Protocol used by the OTLP/HTTP trace exporter.
1746 2068
1747Key2069Key
1748 2070
1749`shell_environment_policy.include_only`2071`otel.trace_exporter.<id>.tls.ca-certificate`
1750 2072
1751Type / Values2073Type / Values
1752 2074
1753`array<string>`2075`string`
1754 2076
1755Details2077Details
1756 2078
1757Whitelist of patterns; when set only matching variables are kept.2079CA certificate path for OTEL trace exporter TLS.
1758 2080
1759Key2081Key
1760 2082
1761`shell_environment_policy.inherit`2083`otel.trace_exporter.<id>.tls.client-certificate`
1762 2084
1763Type / Values2085Type / Values
1764 2086
1765`all | core | none`2087`string`
1766 2088
1767Details2089Details
1768 2090
1769Baseline environment inheritance when spawning subprocesses.2091Client certificate path for OTEL trace exporter TLS.
1770 2092
1771Key2093Key
1772 2094
1773`shell_environment_policy.set`2095`otel.trace_exporter.<id>.tls.client-private-key`
1774 2096
1775Type / Values2097Type / Values
1776 2098
1777`map<string,string>`2099`string`
1778 2100
1779Details2101Details
1780 2102
1781Explicit environment overrides injected into every subprocess.2103Client private key path for OTEL trace exporter TLS.
1782 2104
1783Key2105Key
1784 2106
1785`show_raw_agent_reasoning`2107`permissions.<name>.filesystem`
1786 2108
1787Type / Values2109Type / Values
1788 2110
1789`boolean`2111`table`
1790 2112
1791Details2113Details
1792 2114
1793Surface raw reasoning content when the active model emits it.2115Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
1794 2116
1795Key2117Key
1796 2118
1797`skills.config`2119`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`
1798 2120
1799Type / Values2121Type / Values
1800 2122
1801`array<object>`2123`"read" | "write" | "none"`
1802 2124
1803Details2125Details
1804 2126
1805Per-skill enablement overrides stored in config.toml.2127Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.
1806 2128
1807Key2129Key
1808 2130
1809`skills.config.<index>.enabled`2131`permissions.<name>.filesystem.<path-or-glob>`
1810 2132
1811Type / Values2133Type / Values
1812 2134
1813`boolean`2135`"read" | "write" | "none" | table`
1814 2136
1815Details2137Details
1816 2138
1817Enable or disable the referenced skill.2139Grant 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.
1818 2140
1819Key2141Key
1820 2142
1821`skills.config.<index>.path`2143`permissions.<name>.filesystem.glob_scan_max_depth`
1822 2144
1823Type / Values2145Type / Values
1824 2146
1825`string (path)`2147`number`
1826 2148
1827Details2149Details
1828 2150
1829Path to a skill folder containing `SKILL.md`.2151Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.
1830 2152
1831Key2153Key
1832 2154
1833`suppress_unstable_features_warning`2155`permissions.<name>.network.allow_local_binding`
1834 2156
1835Type / Values2157Type / Values
1836 2158
1838 2160
1839Details2161Details
1840 2162
1841Suppress the warning that appears when under-development feature flags are enabled.2163Permit local bind/listen operations through the managed proxy.
1842 2164
1843Key2165Key
1844 2166
1845`tool_output_token_limit`2167`permissions.<name>.network.allow_upstream_proxy`
1846 2168
1847Type / Values2169Type / Values
1848 2170
1849`number`2171`boolean`
1850 2172
1851Details2173Details
1852 2174
1853Token budget for storing individual tool/function outputs in history.2175Allow the managed proxy to chain to another upstream proxy.
1854 2176
1855Key2177Key
1856 2178
1857`tools.web_search`2179`permissions.<name>.network.dangerously_allow_all_unix_sockets`
1858 2180
1859Type / Values2181Type / Values
1860 2182
1862 2184
1863Details2185Details
1864 2186
1865Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2187Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
1866 2188
1867Key2189Key
1868 2190
1869`tui`2191`permissions.<name>.network.dangerously_allow_non_loopback_proxy`
1870 2192
1871Type / Values2193Type / Values
1872 2194
1873`table`2195`boolean`
1874 2196
1875Details2197Details
1876 2198
1877TUI-specific options such as enabling inline desktop notifications.2199Permit non-loopback bind addresses for the managed proxy listener.
1878 2200
1879Key2201Key
1880 2202
1881`tui.alternate_screen`2203`permissions.<name>.network.domains`
1882 2204
1883Type / Values2205Type / Values
1884 2206
1885`auto | always | never`2207`map<string, allow | deny>`
1886 2208
1887Details2209Details
1888 2210
1889Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback).2211Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
1890 2212
1891Key2213Key
1892 2214
1893`tui.animations`2215`permissions.<name>.network.enable_socks5`
1894 2216
1895Type / Values2217Type / Values
1896 2218
1898 2220
1899Details2221Details
1900 2222
1901Enable terminal animations (welcome screen, shimmer, spinner) (default: true).2223Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
1902 2224
1903Key2225Key
1904 2226
1905`tui.notification_method`2227`permissions.<name>.network.enable_socks5_udp`
1906 2228
1907Type / Values2229Type / Values
1908 2230
1909`auto | osc9 | bel`2231`boolean`
1910 2232
1911Details2233Details
1912 2234
1913Notification method for unfocused terminal notifications (default: auto).2235Allow UDP over the SOCKS5 listener when enabled.
1914 2236
1915Key2237Key
1916 2238
1917`tui.notifications`2239`permissions.<name>.network.enabled`
1918 2240
1919Type / Values2241Type / Values
1920 2242
1921`boolean | array<string>`2243`boolean`
1922 2244
1923Details2245Details
1924 2246
1925Enable TUI notifications; optionally restrict to specific event types.2247Enable network access for this named permissions profile.
1926 2248
1927Key2249Key
1928 2250
1929`tui.show_tooltips`2251`permissions.<name>.network.mode`
1930 2252
1931Type / Values2253Type / Values
1932 2254
1933`boolean`2255`limited | full`
1934 2256
1935Details2257Details
1936 2258
1937Show onboarding tooltips in the TUI welcome screen (default: true).2259Network proxy mode used for subprocess traffic.
1938 2260
1939Key2261Key
1940 2262
1941`tui.status_line`2263`permissions.<name>.network.proxy_url`
1942 2264
1943Type / Values2265Type / Values
1944 2266
1945`array<string> | null`2267`string`
1946 2268
1947Details2269Details
1948 2270
1949Ordered list of TUI footer status-line item identifiers. `null` disables the status line.2271HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
1950 2272
1951Key2273Key
1952 2274
1953`web_search`2275`permissions.<name>.network.socks_url`
1954 2276
1955Type / Values2277Type / Values
1956 2278
1957`disabled | cached | live`2279`string`
1958 2280
1959Details2281Details
1960 2282
1961Web 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.2283SOCKS5 proxy endpoint used by this permissions profile.
1962 2284
1963Key2285Key
1964 2286
1965`windows_wsl_setup_acknowledged`2287`permissions.<name>.network.unix_sockets`
1966 2288
1967Type / Values2289Type / Values
1968 2290
1969`boolean`2291`map<string, allow | none>`
1970 2292
1971Details2293Details
1972 2294
1973Track Windows onboarding acknowledgement (Windows only).2295Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
1974 2296
1975Expand to view all2297Key
1976 2298
1977You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).2299`personality`
1978 2300
1979To get autocompletion and diagnostics when editing `config.toml` in VS Code or Cursor, you can install the [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) extension and add this line to the top of your `config.toml`:2301Type / Values
1980 2302
1981```toml2303`none | friendly | pragmatic`
1982#:schema https://developers.openai.com/codex/config-schema.json
1983```
1984 2304
1985Note: Rename `experimental_instructions_file` to `model_instructions_file`. Codex deprecates the old key; update existing configs to the new name.2305Details
1986 2306
1987## `requirements.toml`2307Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
1988 2308
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).2309Key
1990 2310
1991For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched2311`plan_mode_reasoning_effort`
1992requirements. See the security page for precedence details.
1993 2312
1994| Key | Type / Values | Details |2313Type / Values
1995| --- | --- | --- |2314
1996| `allowed_approval_policies` | `array<string>` | Allowed values for `approval\_policy`. |2315`none | minimal | low | medium | high | xhigh`
1997| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |2316
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`. |2317Details
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. |2318
2000| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |2319Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
2001| `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. |
2003| `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`. |
2005| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |
2006| `rules.prefix_rules[].justification` | `string` | Optional non-empty rationale surfaced in approval prompts or rejection messages. |
2007| `rules.prefix_rules[].pattern` | `array<table>` | Command prefix expressed as pattern tokens. Each token sets either `token` or `any_of`. |
2008| `rules.prefix_rules[].pattern[].any_of` | `array<string>` | A list of allowed alternative tokens at this position. |
2009| `rules.prefix_rules[].pattern[].token` | `string` | A single literal token at this position. |
2010 2320
2011Key2321Key
2012 2322
2013`allowed_approval_policies`2323`profile`
2014 2324
2015Type / Values2325Type / Values
2016 2326
2017`array<string>`2327`string`
2018 2328
2019Details2329Details
2020 2330
2021Allowed values for `approval\_policy`.2331Default profile applied at startup (equivalent to `--profile`).
2022 2332
2023Key2333Key
2024 2334
2025`allowed_sandbox_modes`2335`profiles.<name>.*`
2026 2336
2027Type / Values2337Type / Values
2028 2338
2029`array<string>`2339`various`
2030 2340
2031Details2341Details
2032 2342
2033Allowed values for `sandbox_mode`.2343Profile-scoped overrides for any of the supported configuration keys.
2034 2344
2035Key2345Key
2036 2346
2037`allowed_web_search_modes`2347`profiles.<name>.analytics.enabled`
2038 2348
2039Type / Values2349Type / Values
2040 2350
2041`array<string>`2351`boolean`
2042 2352
2043Details2353Details
2044 2354
2045Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`.2355Profile-scoped analytics enablement override.
2046 2356
2047Key2357Key
2048 2358
2049`mcp_servers`2359`profiles.<name>.experimental_use_unified_exec_tool`
2050 2360
2051Type / Values2361Type / Values
2052 2362
2053`table`2363`boolean`
2054 2364
2055Details2365Details
2056 2366
2057Allowlist 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.2367Legacy name for enabling unified exec; prefer `[features].unified_exec`.
2058 2368
2059Key2369Key
2060 2370
2061`mcp_servers.<id>.identity`2371`profiles.<name>.model_catalog_json`
2062 2372
2063Type / Values2373Type / Values
2064 2374
2065`table`2375`string (path)`
2066 2376
2067Details2377Details
2068 2378
2069Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP).2379Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
2070 2380
2071Key2381Key
2072 2382
2073`mcp_servers.<id>.identity.command`2383`profiles.<name>.model_instructions_file`
2074 2384
2075Type / Values2385Type / Values
2076 2386
2077`string`2387`string (path)`
2078 2388
2079Details2389Details
2080 2390
2081Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command.2391Profile-scoped replacement for the built-in instruction file.
2082 2392
2083Key2393Key
2084 2394
2085`mcp_servers.<id>.identity.url`2395`profiles.<name>.oss_provider`
2086 2396
2087Type / Values2397Type / Values
2088 2398
2089`string`2399`lmstudio | ollama`
2090 2400
2091Details2401Details
2092 2402
2093Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL.2403Profile-scoped OSS provider for `--oss` sessions.
2404
2405Key
2406
2407`profiles.<name>.personality`
2408
2409Type / Values
2410
2411`none | friendly | pragmatic`
2412
2413Details
2414
2415Profile-scoped communication style override for supported models.
2416
2417Key
2418
2419`profiles.<name>.plan_mode_reasoning_effort`
2420
2421Type / Values
2422
2423`none | minimal | low | medium | high | xhigh`
2424
2425Details
2426
2427Profile-scoped Plan-mode reasoning override.
2428
2429Key
2430
2431`profiles.<name>.service_tier`
2432
2433Type / Values
2434
2435`flex | fast`
2436
2437Details
2438
2439Profile-scoped service tier preference for new turns.
2440
2441Key
2442
2443`profiles.<name>.tools_view_image`
2444
2445Type / Values
2446
2447`boolean`
2448
2449Details
2450
2451Enable or disable the `view_image` tool in that profile.
2452
2453Key
2454
2455`profiles.<name>.web_search`
2456
2457Type / Values
2458
2459`disabled | cached | live`
2460
2461Details
2462
2463Profile-scoped web search mode override (default: `"cached"`).
2464
2465Key
2466
2467`profiles.<name>.windows.sandbox`
2468
2469Type / Values
2470
2471`unelevated | elevated`
2472
2473Details
2474
2475Profile-scoped Windows sandbox mode override.
2476
2477Key
2478
2479`project_doc_fallback_filenames`
2480
2481Type / Values
2482
2483`array<string>`
2484
2485Details
2486
2487Additional filenames to try when `AGENTS.md` is missing.
2488
2489Key
2490
2491`project_doc_max_bytes`
2492
2493Type / Values
2494
2495`number`
2496
2497Details
2498
2499Maximum bytes read from `AGENTS.md` when building project instructions.
2500
2501Key
2502
2503`project_root_markers`
2504
2505Type / Values
2506
2507`array<string>`
2508
2509Details
2510
2511List of project root marker filenames; used when searching parent directories for the project root.
2512
2513Key
2514
2515`projects.<path>.trust_level`
2516
2517Type / Values
2518
2519`string`
2520
2521Details
2522
2523Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers, including project-local config, hooks, and rules.
2524
2525Key
2526
2527`review_model`
2528
2529Type / Values
2530
2531`string`
2532
2533Details
2534
2535Optional model override used by `/review` (defaults to the current session model).
2536
2537Key
2538
2539`sandbox_mode`
2540
2541Type / Values
2542
2543`read-only | workspace-write | danger-full-access`
2544
2545Details
2546
2547Sandbox policy for filesystem and network access during command execution.
2548
2549Key
2550
2551`sandbox_workspace_write.exclude_slash_tmp`
2552
2553Type / Values
2554
2555`boolean`
2556
2557Details
2558
2559Exclude `/tmp` from writable roots in workspace-write mode.
2560
2561Key
2562
2563`sandbox_workspace_write.exclude_tmpdir_env_var`
2564
2565Type / Values
2566
2567`boolean`
2568
2569Details
2570
2571Exclude `$TMPDIR` from writable roots in workspace-write mode.
2572
2573Key
2574
2575`sandbox_workspace_write.network_access`
2576
2577Type / Values
2578
2579`boolean`
2580
2581Details
2582
2583Allow outbound network access inside the workspace-write sandbox.
2584
2585Key
2586
2587`sandbox_workspace_write.writable_roots`
2588
2589Type / Values
2590
2591`array<string>`
2592
2593Details
2594
2595Additional writable roots when `sandbox_mode = "workspace-write"`.
2596
2597Key
2598
2599`service_tier`
2600
2601Type / Values
2602
2603`flex | fast`
2604
2605Details
2606
2607Preferred service tier for new turns.
2608
2609Key
2610
2611`shell_environment_policy.exclude`
2612
2613Type / Values
2614
2615`array<string>`
2616
2617Details
2618
2619Glob patterns for removing environment variables after the defaults.
2620
2621Key
2622
2623`shell_environment_policy.experimental_use_profile`
2624
2625Type / Values
2626
2627`boolean`
2628
2629Details
2630
2631Use the user shell profile when spawning subprocesses.
2632
2633Key
2634
2635`shell_environment_policy.ignore_default_excludes`
2636
2637Type / Values
2638
2639`boolean`
2640
2641Details
2642
2643Keep variables containing KEY/SECRET/TOKEN before other filters run.
2644
2645Key
2646
2647`shell_environment_policy.include_only`
2648
2649Type / Values
2650
2651`array<string>`
2652
2653Details
2654
2655Whitelist of patterns; when set only matching variables are kept.
2656
2657Key
2658
2659`shell_environment_policy.inherit`
2660
2661Type / Values
2662
2663`all | core | none`
2664
2665Details
2666
2667Baseline environment inheritance when spawning subprocesses.
2668
2669Key
2670
2671`shell_environment_policy.set`
2672
2673Type / Values
2674
2675`map<string,string>`
2676
2677Details
2678
2679Explicit environment overrides injected into every subprocess.
2680
2681Key
2682
2683`show_raw_agent_reasoning`
2684
2685Type / Values
2686
2687`boolean`
2688
2689Details
2690
2691Surface raw reasoning content when the active model emits it.
2692
2693Key
2694
2695`skills.config`
2696
2697Type / Values
2698
2699`array<object>`
2700
2701Details
2702
2703Per-skill enablement overrides stored in config.toml.
2704
2705Key
2706
2707`skills.config.<index>.enabled`
2708
2709Type / Values
2710
2711`boolean`
2712
2713Details
2714
2715Enable or disable the referenced skill.
2716
2717Key
2718
2719`skills.config.<index>.path`
2720
2721Type / Values
2722
2723`string (path)`
2724
2725Details
2726
2727Path to a skill folder containing `SKILL.md`.
2728
2729Key
2730
2731`sqlite_home`
2732
2733Type / Values
2734
2735`string (path)`
2736
2737Details
2738
2739Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state.
2740
2741Key
2742
2743`suppress_unstable_features_warning`
2744
2745Type / Values
2746
2747`boolean`
2748
2749Details
2750
2751Suppress the warning that appears when under-development feature flags are enabled.
2752
2753Key
2754
2755`tool_output_token_limit`
2756
2757Type / Values
2758
2759`number`
2760
2761Details
2762
2763Token budget for storing individual tool/function outputs in history.
2764
2765Key
2766
2767`tool_suggest.disabled_tools`
2768
2769Type / Values
2770
2771`array<table>`
2772
2773Details
2774
2775Disable suggestions for specific discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2776
2777Key
2778
2779`tool_suggest.discoverables`
2780
2781Type / Values
2782
2783`array<table>`
2784
2785Details
2786
2787Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2788
2789Key
2790
2791`tools.view_image`
2792
2793Type / Values
2794
2795`boolean`
2796
2797Details
2798
2799Enable the local-image attachment tool `view_image`.
2800
2801Key
2802
2803`tools.web_search`
2804
2805Type / Values
2806
2807`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2808
2809Details
2810
2811Optional 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.
2812
2813Key
2814
2815`tui`
2816
2817Type / Values
2818
2819`table`
2820
2821Details
2822
2823TUI-specific options such as enabling inline desktop notifications.
2824
2825Key
2826
2827`tui.alternate_screen`
2828
2829Type / Values
2830
2831`auto | always | never`
2832
2833Details
2834
2835Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback).
2836
2837Key
2838
2839`tui.animations`
2840
2841Type / Values
2842
2843`boolean`
2844
2845Details
2846
2847Enable terminal animations (welcome screen, shimmer, spinner) (default: true).
2848
2849Key
2850
2851`tui.keymap.<context>.<action>`
2852
2853Type / Values
2854
2855`string | array<string>`
2856
2857Details
2858
2859Keyboard shortcut binding for a TUI action. Supported contexts include `global`, `chat`, `composer`, `editor`, `pager`, `list`, and `approval`; context-specific bindings override `tui.keymap.global`.
2860
2861Key
2862
2863`tui.keymap.<context>.<action> = []`
2864
2865Type / Values
2866
2867`empty array`
2868
2869Details
2870
2871Unbind the action in that keymap context. Key names use normalized strings such as `ctrl-a`, `shift-enter`, or `page-down`.
2872
2873Key
2874
2875`tui.model_availability_nux.<model>`
2876
2877Type / Values
2878
2879`integer`
2880
2881Details
2882
2883Internal startup-tooltip state keyed by model slug.
2884
2885Key
2886
2887`tui.notification_condition`
2888
2889Type / Values
2890
2891`unfocused | always`
2892
2893Details
2894
2895Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`.
2896
2897Key
2898
2899`tui.notification_method`
2900
2901Type / Values
2902
2903`auto | osc9 | bel`
2904
2905Details
2906
2907Notification method for terminal notifications (default: auto).
2908
2909Key
2910
2911`tui.notifications`
2912
2913Type / Values
2914
2915`boolean | array<string>`
2916
2917Details
2918
2919Enable TUI notifications; optionally restrict to specific event types.
2920
2921Key
2922
2923`tui.show_tooltips`
2924
2925Type / Values
2926
2927`boolean`
2928
2929Details
2930
2931Show onboarding tooltips in the TUI welcome screen (default: true).
2932
2933Key
2934
2935`tui.status_line`
2936
2937Type / Values
2938
2939`array<string> | null`
2940
2941Details
2942
2943Ordered list of TUI footer status-line item identifiers. `null` disables the status line.
2944
2945Key
2946
2947`tui.terminal_title`
2948
2949Type / Values
2950
2951`array<string> | null`
2952
2953Details
2954
2955Ordered list of terminal window/tab title item identifiers. Defaults to `["spinner", "project"]`; `null` disables title updates.
2956
2957Key
2958
2959`tui.theme`
2960
2961Type / Values
2962
2963`string`
2964
2965Details
2966
2967Syntax-highlighting theme override (kebab-case theme name).
2968
2969Key
2970
2971`web_search`
2972
2973Type / Values
2974
2975`disabled | cached | live`
2976
2977Details
2978
2979Web 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.
2980
2981Key
2982
2983`windows_wsl_setup_acknowledged`
2984
2985Type / Values
2986
2987`boolean`
2988
2989Details
2990
2991Track Windows onboarding acknowledgement (Windows only).
2992
2993Key
2994
2995`windows.sandbox`
2996
2997Type / Values
2998
2999`unelevated | elevated`
3000
3001Details
3002
3003Windows-only native sandbox mode when running Codex natively on Windows.
3004
3005Key
3006
3007`windows.sandbox_private_desktop`
3008
3009Type / Values
3010
3011`boolean`
3012
3013Details
3014
3015Run 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.
3016
3017Expand to view all
3018
3019You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).
3020
3021To get autocompletion and diagnostics when editing `config.toml` in VS Code or Cursor, you can install the [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) extension and add this line to the top of your `config.toml`:
3022
3023```toml
3024#:schema https://developers.openai.com/codex/config-schema.json
3025```
3026
3027Note: Rename `experimental_instructions_file` to `model_instructions_file`. Codex deprecates the old key; update existing configs to the new name.
3028
3029## `requirements.toml`
3030
3031`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).
3032
3033For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
3034requirements. See the security page for precedence details.
3035
3036Use `[features]` in `requirements.toml` to pin feature flags by the same
3037canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
3038
3039| Key | Type / Values | Details |
3040| --- | --- | --- |
3041| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`). |
3042| `allowed_approvals_reviewers` | `array<string>` | Allowed values for `approvals_reviewer`, such as `user` and `auto_review`. |
3043| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
3044| `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`. |
3045| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |
3046| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |
3047| `features.browser_use` | `boolean` | Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability. |
3048| `features.computer_use` | `boolean` | Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows. |
3049| `features.in_app_browser` | `boolean` | Set to `false` in `requirements.toml` to disable the in-app browser pane. |
3050| `guardian_policy_config` | `string` | Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored. |
3051| `hooks` | `table` | Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`. |
3052| `hooks.<Event>` | `array<table>` | Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`. |
3053| `hooks.<Event>[].hooks` | `array<table>` | Hook handlers for a matcher group. Command hooks are currently supported; prompt and agent hook handlers are parsed but skipped. |
3054| `hooks.managed_dir` | `string (absolute path)` | Directory containing managed hook scripts on macOS and Linux. Codex validates that it is absolute and exists before loading managed hooks. |
3055| `hooks.windows_managed_dir` | `string (absolute path)` | Directory containing managed hook scripts on Windows. Codex validates that it is absolute and exists before loading managed hooks. |
3056| `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. |
3057| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |
3058| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |
3059| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |
3060| `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. |
3061| `remote_sandbox_config` | `array<table>` | Host-specific sandbox requirements. The first entry whose `hostname_patterns` match the resolved host name overrides top-level `allowed_sandbox_modes` for that requirements source. Host-specific entries currently override sandbox modes only. |
3062| `remote_sandbox_config[].allowed_sandbox_modes` | `array<string>` | Allowed sandbox modes to apply when this host-specific entry matches. |
3063| `remote_sandbox_config[].hostname_patterns` | `array<string>` | Case-insensitive host name patterns. Supports `*` for any sequence of characters and `?` for one character. |
3064| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |
3065| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |
3066| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |
3067| `rules.prefix_rules[].justification` | `string` | Optional non-empty rationale surfaced in approval prompts or rejection messages. |
3068| `rules.prefix_rules[].pattern` | `array<table>` | Command prefix expressed as pattern tokens. Each token sets either `token` or `any_of`. |
3069| `rules.prefix_rules[].pattern[].any_of` | `array<string>` | A list of allowed alternative tokens at this position. |
3070| `rules.prefix_rules[].pattern[].token` | `string` | A single literal token at this position. |
3071
3072Key
3073
3074`allowed_approval_policies`
3075
3076Type / Values
3077
3078`array<string>`
3079
3080Details
3081
3082Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `granular`).
3083
3084Key
3085
3086`allowed_approvals_reviewers`
3087
3088Type / Values
3089
3090`array<string>`
3091
3092Details
3093
3094Allowed values for `approvals_reviewer`, such as `user` and `auto_review`.
3095
3096Key
3097
3098`allowed_sandbox_modes`
3099
3100Type / Values
3101
3102`array<string>`
3103
3104Details
3105
3106Allowed values for `sandbox_mode`.
3107
3108Key
3109
3110`allowed_web_search_modes`
3111
3112Type / Values
3113
3114`array<string>`
3115
3116Details
3117
3118Allowed values for `web_search` (`disabled`, `cached`, `live`). `disabled` is always allowed; an empty list effectively allows only `disabled`.
3119
3120Key
3121
3122`features`
3123
3124Type / Values
3125
3126`table`
3127
3128Details
3129
3130Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table.
3131
3132Key
3133
3134`features.<name>`
3135
3136Type / Values
3137
3138`boolean`
3139
3140Details
3141
3142Require a specific canonical feature key to stay enabled or disabled.
3143
3144Key
3145
3146`features.browser_use`
3147
3148Type / Values
3149
3150`boolean`
3151
3152Details
3153
3154Set to `false` in `requirements.toml` to disable Browser Use and Browser Agent availability.
3155
3156Key
3157
3158`features.computer_use`
3159
3160Type / Values
3161
3162`boolean`
3163
3164Details
3165
3166Set to `false` in `requirements.toml` to disable Computer Use availability and related install or enablement flows.
3167
3168Key
3169
3170`features.in_app_browser`
3171
3172Type / Values
3173
3174`boolean`
3175
3176Details
3177
3178Set to `false` in `requirements.toml` to disable the in-app browser pane.
3179
3180Key
3181
3182`guardian_policy_config`
3183
3184Type / Values
3185
3186`string`
3187
3188Details
3189
3190Managed Markdown policy instructions for automatic review. This takes precedence over local `[auto_review].policy`. Blank values are ignored.
3191
3192Key
3193
3194`hooks`
3195
3196Type / Values
3197
3198`table`
3199
3200Details
3201
3202Admin-enforced managed lifecycle hooks. Requires a managed hook directory and uses the same event schema as inline `[hooks]` in `config.toml`.
3203
3204Key
3205
3206`hooks.<Event>`
3207
3208Type / Values
3209
3210`array<table>`
3211
3212Details
3213
3214Matcher groups for a hook event such as `PreToolUse`, `PostToolUse`, `PermissionRequest`, `SessionStart`, `UserPromptSubmit`, or `Stop`.
3215
3216Key
3217
3218`hooks.<Event>[].hooks`
3219
3220Type / Values
3221
3222`array<table>`
3223
3224Details
3225
3226Hook handlers for a matcher group. Command hooks are currently supported; prompt and agent hook handlers are parsed but skipped.
3227
3228Key
3229
3230`hooks.managed_dir`
3231
3232Type / Values
3233
3234`string (absolute path)`
3235
3236Details
3237
3238Directory containing managed hook scripts on macOS and Linux. Codex validates that it is absolute and exists before loading managed hooks.
3239
3240Key
3241
3242`hooks.windows_managed_dir`
3243
3244Type / Values
3245
3246`string (absolute path)`
3247
3248Details
3249
3250Directory containing managed hook scripts on Windows. Codex validates that it is absolute and exists before loading managed hooks.
3251
3252Key
3253
3254`mcp_servers`
3255
3256Type / Values
3257
3258`table`
3259
3260Details
3261
3262Allowlist 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.
3263
3264Key
3265
3266`mcp_servers.<id>.identity`
3267
3268Type / Values
3269
3270`table`
3271
3272Details
3273
3274Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP).
3275
3276Key
3277
3278`mcp_servers.<id>.identity.command`
3279
3280Type / Values
3281
3282`string`
3283
3284Details
3285
3286Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command.
3287
3288Key
3289
3290`mcp_servers.<id>.identity.url`
3291
3292Type / Values
3293
3294`string`
3295
3296Details
3297
3298Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL.
3299
3300Key
3301
3302`permissions.filesystem.deny_read`
3303
3304Type / Values
3305
3306`array<string>`
3307
3308Details
3309
3310Admin-enforced filesystem read denials. Entries can be paths or glob patterns, and users cannot weaken them with local config.
3311
3312Key
3313
3314`remote_sandbox_config`
3315
3316Type / Values
3317
3318`array<table>`
3319
3320Details
3321
3322Host-specific sandbox requirements. The first entry whose `hostname_patterns` match the resolved host name overrides top-level `allowed_sandbox_modes` for that requirements source. Host-specific entries currently override sandbox modes only.
3323
3324Key
3325
3326`remote_sandbox_config[].allowed_sandbox_modes`
3327
3328Type / Values
3329
3330`array<string>`
3331
3332Details
3333
3334Allowed sandbox modes to apply when this host-specific entry matches.
3335
3336Key
3337
3338`remote_sandbox_config[].hostname_patterns`
3339
3340Type / Values
3341
3342`array<string>`
3343
3344Details
3345
3346Case-insensitive host name patterns. Supports `*` for any sequence of characters and `?` for one character.
2094 3347
2095Key3348Key
2096 3349