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/security#sandbox-and-approvals), [Protected paths in writable roots](https://developers.openai.com/codex/security#protected-paths-in-writable-roots), and [Network access](https://developers.openai.com/codex/security#network-access).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 10
11| Key | Type / Values | Details |11| Key | Type / Values | Details |
12| --- | --- | --- |12| --- | --- | --- |
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. |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. |
14| `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. |
15| `agents.<name>.nickname_candidates` | `array<string>` | Optional pool of display nicknames for spawned agents in that role. |
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| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |17| `agents.max_depth` | `number` | Maximum nesting depth allowed for spawned agent threads (root sessions start at depth 0; default: 1). |
16| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. |18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |
17| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |
18| `approval_policy` | `untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |
19| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. |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. |
20| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected. |22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |
21| `approval_policy.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are 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. |
22| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |28| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |
23| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |29| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |
24| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |30| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |
29| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |35| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |
30| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |36| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |
31| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |37| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |
38| `auto_review.policy` | `string` | Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored. |
32| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |39| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |
33| `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. |
34| `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). |
35| `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. |
36| `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. |
37| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |46| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |
38| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |47| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |
39| `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). |
40| `experimental_use_freeform_apply_patch` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`. |
41| `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`. |
42| `features.apply_patch_freeform` | `boolean` | Expose the freeform `apply_patch` tool (experimental). |
43| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |50| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |
44| `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. |
45| `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). |
46| `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). |
47| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default). |54| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |
55| `features.multi_agent` | `boolean` | Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default). |
48| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |56| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |
49| `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). |
50| `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). |
51| `features.request_rule` | `boolean` | Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default). |
52| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |
53| `features.search_tool` | `boolean` | Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental). |
54| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (beta). |
55| `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). |
56| `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). |
57| `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). |
58| `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. |
59| `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"`. |
60| `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"`. |
65| `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. |
66| `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. |
67| `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. |
68| `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. |
69| `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`. |
70| `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`. |
71| `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. |
80| `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. |
81| `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. |
82| `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. |
83| `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. |
84| `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. |
85| `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. |
86| `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. |
87| `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. |
88| `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. |
89| `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. |
90| `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`). |
91| `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). |
92| `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. |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. |
93| `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. |
94| `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`. |
95| `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). |
96| `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. |
97| `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. |
98| `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. |
105| `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). |
106| `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). |
107| `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). |
108| `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. |
109| `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). |
110| `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. |
111| `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. |
112| `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. |
113| `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. |
114| `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. |
115| `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. |
117| `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. |
118| `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. |
119| `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. |
120| `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). |
121| `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`). |
122| `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. |
127| `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. |
128| `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. |
129| `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`). |
130| `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. |
131| `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. |
132| `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. |
134| `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. |
135| `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. |
136| `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. |
137| `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. |
138| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |186| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |
139| `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. |
140| `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. |
141| `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`. |
142| `profiles.<name>.include_apply_patch_tool` | `boolean` | Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`. |
143| `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). |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. |
144| `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. |
145| `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. |
146| `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. |
147| `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. |
148| `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. |
149| `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. |
150| `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. |
151| `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). |
152| `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. |
153| `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. |
154| `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. |
155| `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. |
156| `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. |
157| `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. |
158| `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. |
159| `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. |
164| `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. |
165| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |218| `skills.config.<index>.enabled` | `boolean` | Enable or disable the referenced skill. |
166| `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. |
167| `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. |
168| `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. |
169| `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. |
170| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |227| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |
171| `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). |
172| `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). |
173| `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). |
174| `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. |
175| `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). |
176| `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). |
177| `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. |
178| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |241| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |
179| `windows.sandbox` | `unelevated | elevated` | Windows-only native sandbox mode when running Codex natively on Windows. |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. |
180 244
181Key245Key
182 246
204 268
205Key269Key
206 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
207`agents.max_depth`295`agents.max_depth`
208 296
209Type / Values297Type / Values
224 312
225Details313Details
226 314
227Maximum number of agent threads that can be open concurrently.315Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset.
228 316
229Key317Key
230 318
240 328
241Key329Key
242 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.
340
341Key
342
243`approval_policy`343`approval_policy`
244 344
245Type / Values345Type / Values
246 346
247`untrusted | on-request | never | { reject = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool } }`347`untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }`
348
349Details
350
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.
352
353Key
354
355`approval_policy.granular.mcp_elicitations`
356
357Type / Values
358
359`boolean`
360
361Details
362
363When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.
364
365Key
366
367`approval_policy.granular.request_permissions`
368
369Type / Values
370
371`boolean`
248 372
249Details373Details
250 374
251Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { reject = { ... } }` to auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs.375When `true`, prompts from the `request_permissions` tool are allowed to surface.
252 376
253Key377Key
254 378
255`approval_policy.reject.mcp_elicitations`379`approval_policy.granular.rules`
256 380
257Type / Values381Type / Values
258 382
260 384
261Details385Details
262 386
263When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.387When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.
264 388
265Key389Key
266 390
267`approval_policy.reject.rules`391`approval_policy.granular.sandbox_approval`
268 392
269Type / Values393Type / Values
270 394
272 396
273Details397Details
274 398
275When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.399When `true`, sandbox escalation approval prompts are allowed to surface.
276 400
277Key401Key
278 402
279`approval_policy.reject.sandbox_approval`403`approval_policy.granular.skill_approval`
280 404
281Type / Values405Type / Values
282 406
284 408
285Details409Details
286 410
287When `true`, sandbox escalation approval prompts are auto-rejected.411When `true`, skill-script approval prompts are allowed to surface.
412
413Key
414
415`approvals_reviewer`
416
417Type / Values
418
419`user | auto_review`
420
421Details
422
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.
288 424
289Key425Key
290 426
408 544
409Key545Key
410 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
411`background_terminal_max_timeout`559`background_terminal_max_timeout`
412 560
413Type / Values561Type / Values
456 604
457Key605Key
458 606
459`compact_prompt`607`commit_attribution`
460 608
461Type / Values609Type / Values
462 610
464 612
465Details613Details
466 614
467Inline override for the history compaction prompt.615Override the commit co-author trailer text. Set an empty string to disable automatic attribution.
468 616
469Key617Key
470 618
471`developer_instructions`619`compact_prompt`
472 620
473Type / Values621Type / Values
474 622
476 624
477Details625Details
478 626
479Additional developer instructions injected into the session (optional).627Inline override for the history compaction prompt.
480 628
481Key629Key
482 630
483`disable_paste_burst`631`default_permissions`
484 632
485Type / Values633Type / Values
486 634
487`boolean`635`string`
488 636
489Details637Details
490 638
491Disable burst-paste detection in the TUI.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.
492 640
493Key641Key
494 642
495`experimental_compact_prompt_file`643`developer_instructions`
496 644
497Type / Values645Type / Values
498 646
499`string (path)`647`string`
500 648
501Details649Details
502 650
503Load the compaction prompt override from a file (experimental).651Additional developer instructions injected into the session (optional).
504 652
505Key653Key
506 654
507`experimental_use_freeform_apply_patch`655`disable_paste_burst`
508 656
509Type / Values657Type / Values
510 658
512 660
513Details661Details
514 662
515Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform` or `codex --enable apply_patch_freeform`.663Disable burst-paste detection in the TUI.
516 664
517Key665Key
518 666
519`experimental_use_unified_exec_tool`667`experimental_compact_prompt_file`
520 668
521Type / Values669Type / Values
522 670
523`boolean`671`string (path)`
524 672
525Details673Details
526 674
527Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.675Load the compaction prompt override from a file (experimental).
528 676
529Key677Key
530 678
531`features.apply_patch_freeform`679`experimental_use_unified_exec_tool`
532 680
533Type / Values681Type / Values
534 682
536 684
537Details685Details
538 686
539Expose the freeform `apply_patch` tool (experimental).687Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`.
540 688
541Key689Key
542 690
552 700
553Key701Key
554 702
555`features.apps_mcp_gateway`703`features.codex_hooks`
556
557Type / Values
558
559`boolean`
560
561Details
562
563Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).
564
565Key
566
567`features.child_agents_md`
568 704
569Type / Values705Type / Values
570 706
572 708
573Details709Details
574 710
575Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).711Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config.
576 712
577Key713Key
578 714
579`features.collaboration_modes`715`features.enable_request_compression`
580 716
581Type / Values717Type / Values
582 718
584 720
585Details721Details
586 722
587Enable collaboration modes such as plan mode (stable; on by default).723Compress streaming request bodies with zstd when supported (stable; on by default).
588 724
589Key725Key
590 726
591`features.multi_agent`727`features.fast_mode`
592 728
593Type / Values729Type / Values
594 730
596 732
597Details733Details
598 734
599Enable multi-agent collaboration tools (`spawn\_agent`, `send\_input`, `resume\_agent`, `wait`, and `close\_agent`) (experimental; off by default).735Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).
600 736
601Key737Key
602 738
603`features.personality`739`features.memories`
604 740
605Type / Values741Type / Values
606 742
608 744
609Details745Details
610 746
611Enable personality selection controls (stable; on by default).747Enable [Memories](https://developers.openai.com/codex/memories) (off by default).
612 748
613Key749Key
614 750
615`features.powershell_utf8`751`features.multi_agent`
616 752
617Type / Values753Type / Values
618 754
620 756
621Details757Details
622 758
623Force PowerShell UTF-8 output (defaults to true).759Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).
624 760
625Key761Key
626 762
627`features.remote_models`763`features.personality`
628 764
629Type / Values765Type / Values
630 766
632 768
633Details769Details
634 770
635Refresh remote model list before showing readiness (experimental).771Enable personality selection controls (stable; on by default).
636 772
637Key773Key
638 774
639`features.request_rule`775`features.prevent_idle_sleep`
640 776
641Type / Values777Type / Values
642 778
644 780
645Details781Details
646 782
647Enable Smart approvals (`prefix_rule` suggestions on escalation requests; stable; on by default).783Prevent the machine from sleeping while a turn is actively running (experimental; off by default).
648 784
649Key785Key
650 786
651`features.runtime_metrics`787`features.shell_snapshot`
652 788
653Type / Values789Type / Values
654 790
656 792
657Details793Details
658 794
659Show runtime metrics summary in TUI turn separators (experimental).795Snapshot shell environment to speed up repeated commands (stable; on by default).
660 796
661Key797Key
662 798
663`features.search_tool`799`features.shell_tool`
664 800
665Type / Values801Type / Values
666 802
668 804
669Details805Details
670 806
671Enable `search_tool_bm25` for Apps tool discovery before invoking app MCP tools (experimental).807Enable the default `shell` tool for running commands (stable; on by default).
672 808
673Key809Key
674 810
675`features.shell_snapshot`811`features.skill_mcp_dependency_install`
676 812
677Type / Values813Type / Values
678 814
680 816
681Details817Details
682 818
683Snapshot shell environment to speed up repeated commands (beta).819Allow prompting and installing missing MCP dependencies for skills (stable; on by default).
684 820
685Key821Key
686 822
687`features.shell_tool`823`features.undo`
688 824
689Type / Values825Type / Values
690 826
692 828
693Details829Details
694 830
695Enable the default `shell` tool for running commands (stable; on by default).831Enable undo support (stable; off by default).
696 832
697Key833Key
698 834
704 840
705Details841Details
706 842
707Use the unified PTY-backed exec tool (beta).843Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).
708
709Key
710
711`features.use_linux_sandbox_bwrap`
712
713Type / Values
714
715`boolean`
716
717Details
718
719Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).
720 844
721Key845Key
722 846
840 964
841Key965Key
842 966
843`include_apply_patch_tool`967`hooks`
844 968
845Type / Values969Type / Values
846 970
847`boolean`971`table`
848 972
849Details973Details
850 974
851Legacy 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.
852 976
853Key977Key
854 978
1024 1148
1025Type / Values1149Type / Values
1026 1150
1027`array<string>`1151`array<string | { name = string, source = "local" | "remote" }>`
1152
1153Details
1154
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.
1156
1157Key
1158
1159`mcp_servers.<id>.experimental_environment`
1160
1161Type / Values
1162
1163`local | remote`
1028 1164
1029Details1165Details
1030 1166
1031Additional environment variables to whitelist for an MCP stdio server.1167Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.
1032 1168
1033Key1169Key
1034 1170
1044 1180
1045Key1181Key
1046 1182
1183`mcp_servers.<id>.oauth_resource`
1184
1185Type / Values
1186
1187`string`
1188
1189Details
1190
1191Optional RFC 8707 OAuth resource parameter to include during MCP login.
1192
1193Key
1194
1047`mcp_servers.<id>.required`1195`mcp_servers.<id>.required`
1048 1196
1049Type / Values1197Type / Values
1056 1204
1057Key1205Key
1058 1206
1207`mcp_servers.<id>.scopes`
1208
1209Type / Values
1210
1211`array<string>`
1212
1213Details
1214
1215OAuth scopes to request when authenticating to that MCP server.
1216
1217Key
1218
1059`mcp_servers.<id>.startup_timeout_ms`1219`mcp_servers.<id>.startup_timeout_ms`
1060 1220
1061Type / Values1221Type / Values
1104 1264
1105Key1265Key
1106 1266
1107`model`1267`memories.consolidation_model`
1108 1268
1109Type / Values1269Type / Values
1110 1270
1112 1272
1113Details1273Details
1114 1274
1115Model to use (e.g., `gpt-5-codex`).1275Optional model override for global memory consolidation.
1116 1276
1117Key1277Key
1118 1278
1119`model_auto_compact_token_limit`1279`memories.disable_on_external_context`
1120 1280
1121Type / Values1281Type / Values
1122 1282
1123`number`1283`boolean`
1124 1284
1125Details1285Details
1126 1286
1127Token threshold that triggers automatic history compaction (unset uses model defaults).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`.
1128 1288
1129Key1289Key
1130 1290
1131`model_catalog_json`1291`memories.extract_model`
1132 1292
1133Type / Values1293Type / Values
1134 1294
1135`string (path)`1295`string`
1136 1296
1137Details1297Details
1138 1298
1139Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.1299Optional model override for per-thread memory extraction.
1140 1300
1141Key1301Key
1142 1302
1143`model_context_window`1303`memories.generate_memories`
1144 1304
1145Type / Values1305Type / Values
1146 1306
1147`number`1307`boolean`
1148 1308
1149Details1309Details
1150 1310
1151Context window tokens available to the active model.1311When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.
1152 1312
1153Key1313Key
1154 1314
1155`model_instructions_file`1315`memories.max_raw_memories_for_consolidation`
1156 1316
1157Type / Values1317Type / Values
1158 1318
1159`string (path)`1319`number`
1160 1320
1161Details1321Details
1162 1322
1163Replacement for built-in instructions instead of `AGENTS.md`.1323Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.
1164 1324
1165Key1325Key
1166 1326
1167`model_provider`1327`memories.max_rollout_age_days`
1168 1328
1169Type / Values1329Type / Values
1170 1330
1171`string`1331`number`
1172 1332
1173Details1333Details
1174 1334
1175Provider id from `model_providers` (default: `openai`).1335Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.
1176 1336
1177Key1337Key
1178 1338
1179`model_providers.<id>.base_url`1339`memories.max_rollouts_per_startup`
1180 1340
1181Type / Values1341Type / Values
1182 1342
1183`string`1343`number`
1184 1344
1185Details1345Details
1186 1346
1187API base URL for the model provider.1347Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.
1188 1348
1189Key1349Key
1190 1350
1191`model_providers.<id>.env_http_headers`1351`memories.max_unused_days`
1192 1352
1193Type / Values1353Type / Values
1194 1354
1195`map<string,string>`1355`number`
1196 1356
1197Details1357Details
1198 1358
1199HTTP headers populated from environment variables when present.1359Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.
1200 1360
1201Key1361Key
1202 1362
1203`model_providers.<id>.env_key`1363`memories.min_rate_limit_remaining_percent`
1204 1364
1205Type / Values1365Type / Values
1206 1366
1207`string`1367`number`
1208 1368
1209Details1369Details
1210 1370
1211Environment variable supplying the provider API key.1371Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`.
1212 1372
1213Key1373Key
1214 1374
1215`model_providers.<id>.env_key_instructions`1375`memories.min_rollout_idle_hours`
1216 1376
1217Type / Values1377Type / Values
1218 1378
1219`string`1379`number`
1220 1380
1221Details1381Details
1222 1382
1223Optional setup guidance for the provider API key.1383Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.
1224 1384
1225Key1385Key
1226 1386
1227`model_providers.<id>.experimental_bearer_token`1387`memories.use_memories`
1228 1388
1229Type / Values1389Type / Values
1230 1390
1231`string`1391`boolean`
1232 1392
1233Details1393Details
1234 1394
1235Direct bearer token for the provider (discouraged; use `env_key`).1395When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.
1236 1396
1237Key1397Key
1238 1398
1239`model_providers.<id>.http_headers`1399`model`
1240 1400
1241Type / Values1401Type / Values
1242 1402
1243`map<string,string>`1403`string`
1244 1404
1245Details1405Details
1246 1406
1247Static HTTP headers added to provider requests.1407Model to use (e.g., `gpt-5.5`).
1248 1408
1249Key1409Key
1250 1410
1251`model_providers.<id>.name`1411`model_auto_compact_token_limit`
1252 1412
1253Type / Values1413Type / Values
1254 1414
1255`string`1415`number`
1256 1416
1257Details1417Details
1258 1418
1259Display name for a custom model provider.1419Token threshold that triggers automatic history compaction (unset uses model defaults).
1260 1420
1261Key1421Key
1262 1422
1263`model_providers.<id>.query_params`1423`model_catalog_json`
1264 1424
1265Type / Values1425Type / Values
1266 1426
1267`map<string,string>`1427`string (path)`
1268 1428
1269Details1429Details
1270 1430
1271Extra query parameters appended to provider requests.1431Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.
1272 1432
1273Key1433Key
1274 1434
1275`model_providers.<id>.request_max_retries`1435`model_context_window`
1276 1436
1277Type / Values1437Type / Values
1278 1438
1280 1440
1281Details1441Details
1282 1442
1283Retry count for HTTP requests to the provider (default: 4).1443Context window tokens available to the active model.
1284 1444
1285Key1445Key
1286 1446
1287`model_providers.<id>.requires_openai_auth`1447`model_instructions_file`
1288 1448
1289Type / Values1449Type / Values
1290 1450
1291`boolean`1451`string (path)`
1292 1452
1293Details1453Details
1294 1454
1295The provider uses OpenAI authentication (defaults to false).1455Replacement for built-in instructions instead of `AGENTS.md`.
1296 1456
1297Key1457Key
1298 1458
1299`model_providers.<id>.stream_idle_timeout_ms`1459`model_provider`
1300 1460
1301Type / Values1461Type / Values
1302 1462
1303`number`1463`string`
1304 1464
1305Details1465Details
1306 1466
1307Idle timeout for SSE streams in milliseconds (default: 300000).1467Provider id from `model_providers` (default: `openai`).
1308 1468
1309Key1469Key
1310 1470
1311`model_providers.<id>.stream_max_retries`1471`model_providers.<id>`
1312 1472
1313Type / Values1473Type / Values
1314 1474
1315`number`1475`table`
1316 1476
1317Details1477Details
1318 1478
1319Retry count for SSE streaming interruptions (default: 5).1479Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.
1320 1480
1321Key1481Key
1322 1482
1323`model_providers.<id>.wire_api`1483`model_providers.<id>.auth`
1324 1484
1325Type / Values1485Type / Values
1326 1486
1327`chat | responses`1487`table`
1328 1488
1329Details1489Details
1330 1490
1331Protocol used by the provider (defaults to `chat` if omitted).1491Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.
1332 1492
1333Key1493Key
1334 1494
1335`model_reasoning_effort`1495`model_providers.<id>.auth.args`
1336 1496
1337Type / Values1497Type / Values
1338 1498
1339`minimal | low | medium | high | xhigh`1499`array<string>`
1340 1500
1341Details1501Details
1342 1502
1343Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).1503Arguments passed to the token command.
1344 1504
1345Key1505Key
1346 1506
1347`model_reasoning_summary`1507`model_providers.<id>.auth.command`
1348 1508
1349Type / Values1509Type / Values
1350 1510
1351`auto | concise | detailed | none`1511`string`
1352 1512
1353Details1513Details
1354 1514
1355Select reasoning summary detail or disable summaries entirely.1515Command to run when Codex needs a bearer token. The command must print the token to stdout.
1356 1516
1357Key1517Key
1358 1518
1359`model_supports_reasoning_summaries`1519`model_providers.<id>.auth.cwd`
1360 1520
1361Type / Values1521Type / Values
1362 1522
1363`boolean`1523`string (path)`
1364 1524
1365Details1525Details
1366 1526
1367Force Codex to send or not send reasoning metadata.1527Working directory for the token command.
1368 1528
1369Key1529Key
1370 1530
1371`model_verbosity`1531`model_providers.<id>.auth.refresh_interval_ms`
1372 1532
1373Type / Values1533Type / Values
1374 1534
1375`low | medium | high`1535`number`
1376 1536
1377Details1537Details
1378 1538
1379Control GPT-5 Responses API verbosity (defaults to `medium`).1539How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.
1380 1540
1381Key1541Key
1382 1542
1383`notice.hide_full_access_warning`1543`model_providers.<id>.auth.timeout_ms`
1384 1544
1385Type / Values1545Type / Values
1386 1546
1387`boolean`1547`number`
1388 1548
1389Details1549Details
1390 1550
1391Track acknowledgement of the full access warning prompt.1551Maximum token command runtime in milliseconds (default: 5000).
1392 1552
1393Key1553Key
1394 1554
1395`notice.hide_gpt-5.1-codex-max_migration_prompt`1555`model_providers.<id>.base_url`
1396 1556
1397Type / Values1557Type / Values
1398 1558
1399`boolean`1559`string`
1400 1560
1401Details1561Details
1402 1562
1403Track acknowledgement of the gpt-5.1-codex-max migration prompt.1563API base URL for the model provider.
1404 1564
1405Key1565Key
1406 1566
1407`notice.hide_gpt5_1_migration_prompt`1567`model_providers.<id>.env_http_headers`
1408 1568
1409Type / Values1569Type / Values
1410 1570
1411`boolean`1571`map<string,string>`
1412 1572
1413Details1573Details
1414 1574
1415Track acknowledgement of the GPT-5.1 migration prompt.1575HTTP headers populated from environment variables when present.
1416 1576
1417Key1577Key
1418 1578
1419`notice.hide_rate_limit_model_nudge`1579`model_providers.<id>.env_key`
1420 1580
1421Type / Values1581Type / Values
1422 1582
1423`boolean`1583`string`
1424 1584
1425Details1585Details
1426 1586
1427Track opt-out of the rate limit model switch reminder.1587Environment variable supplying the provider API key.
1428 1588
1429Key1589Key
1430 1590
1431`notice.hide_world_writable_warning`1591`model_providers.<id>.env_key_instructions`
1432 1592
1433Type / Values1593Type / Values
1434 1594
1435`boolean`1595`string`
1436 1596
1437Details1597Details
1438 1598
1439Track acknowledgement of the Windows world-writable directories warning.1599Optional setup guidance for the provider API key.
1440 1600
1441Key1601Key
1442 1602
1443`notice.model_migrations`1603`model_providers.<id>.experimental_bearer_token`
1444 1604
1445Type / Values1605Type / Values
1446 1606
1447`map<string,string>`1607`string`
1448 1608
1449Details1609Details
1450 1610
1451Track acknowledged model migrations as old->new mappings.1611Direct bearer token for the provider (discouraged; use `env_key`).
1452 1612
1453Key1613Key
1454 1614
1455`notify`1615`model_providers.<id>.http_headers`
1456 1616
1457Type / Values1617Type / Values
1458 1618
1459`array<string>`1619`map<string,string>`
1460 1620
1461Details1621Details
1462 1622
1463Command invoked for notifications; receives a JSON payload from Codex.1623Static HTTP headers added to provider requests.
1464 1624
1465Key1625Key
1466 1626
1467`oss_provider`1627`model_providers.<id>.name`
1468 1628
1469Type / Values1629Type / Values
1470 1630
1471`lmstudio | ollama`1631`string`
1472 1632
1473Details1633Details
1474 1634
1475Default local provider used when running with `--oss` (defaults to prompting if unset).1635Display name for a custom model provider.
1476 1636
1477Key1637Key
1478 1638
1479`otel.environment`1639`model_providers.<id>.query_params`
1480 1640
1481Type / Values1641Type / Values
1482 1642
1483`string`1643`map<string,string>`
1484 1644
1485Details1645Details
1486 1646
1487Environment tag applied to emitted OpenTelemetry events (default: `dev`).1647Extra query parameters appended to provider requests.
1488 1648
1489Key1649Key
1490 1650
1491`otel.exporter`1651`model_providers.<id>.request_max_retries`
1492 1652
1493Type / Values1653Type / Values
1494 1654
1495`none | otlp-http | otlp-grpc`1655`number`
1496 1656
1497Details1657Details
1498 1658
1499Select the OpenTelemetry exporter and provide any endpoint metadata.1659Retry count for HTTP requests to the provider (default: 4).
1500 1660
1501Key1661Key
1502 1662
1503`otel.exporter.<id>.endpoint`1663`model_providers.<id>.requires_openai_auth`
1504 1664
1505Type / Values1665Type / Values
1506 1666
1507`string`1667`boolean`
1508 1668
1509Details1669Details
1510 1670
1511Exporter endpoint for OTEL logs.1671The provider uses OpenAI authentication (defaults to false).
1512 1672
1513Key1673Key
1514 1674
1515`otel.exporter.<id>.headers`1675`model_providers.<id>.stream_idle_timeout_ms`
1516 1676
1517Type / Values1677Type / Values
1518 1678
1519`map<string,string>`1679`number`
1520 1680
1521Details1681Details
1522 1682
1523Static headers included with OTEL exporter requests.1683Idle timeout for SSE streams in milliseconds (default: 300000).
1524 1684
1525Key1685Key
1526 1686
1527`otel.exporter.<id>.protocol`1687`model_providers.<id>.stream_max_retries`
1528 1688
1529Type / Values1689Type / Values
1530 1690
1531`binary | json`1691`number`
1532 1692
1533Details1693Details
1534 1694
1535Protocol used by the OTLP/HTTP exporter.1695Retry count for SSE streaming interruptions (default: 5).
1536 1696
1537Key1697Key
1538 1698
1539`otel.exporter.<id>.tls.ca-certificate`1699`model_providers.<id>.supports_websockets`
1540 1700
1541Type / Values1701Type / Values
1542 1702
1543`string`1703`boolean`
1544 1704
1545Details1705Details
1546 1706
1547CA certificate path for OTEL exporter TLS.1707Whether that provider supports the Responses API WebSocket transport.
1548 1708
1549Key1709Key
1550 1710
1551`otel.exporter.<id>.tls.client-certificate`1711`model_providers.<id>.wire_api`
1552 1712
1553Type / Values1713Type / Values
1554 1714
1555`string`1715`responses`
1556 1716
1557Details1717Details
1558 1718
1559Client certificate path for OTEL exporter TLS.1719Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.
1560 1720
1561Key1721Key
1562 1722
1563`otel.exporter.<id>.tls.client-private-key`1723`model_providers.amazon-bedrock.aws.profile`
1564 1724
1565Type / Values1725Type / Values
1566 1726
1568 1728
1569Details1729Details
1570 1730
1571Client private key path for OTEL exporter TLS.1731AWS profile name used by the built-in `amazon-bedrock` provider.
1572 1732
1573Key1733Key
1574 1734
1575`otel.log_user_prompt`1735`model_providers.amazon-bedrock.aws.region`
1576 1736
1577Type / Values1737Type / Values
1578 1738
1579`boolean`1739`string`
1580 1740
1581Details1741Details
1582 1742
1583Opt in to exporting raw user prompts with OpenTelemetry logs.1743AWS region used by the built-in `amazon-bedrock` provider.
1584 1744
1585Key1745Key
1586 1746
1587`otel.trace_exporter`1747`model_reasoning_effort`
1588 1748
1589Type / Values1749Type / Values
1590 1750
1591`none | otlp-http | otlp-grpc`1751`minimal | low | medium | high | xhigh`
1592 1752
1593Details1753Details
1594 1754
1595Select the OpenTelemetry trace exporter and provide any endpoint metadata.1755Adjust reasoning effort for supported models (Responses API only; `xhigh` is model-dependent).
1596 1756
1597Key1757Key
1598 1758
1599`otel.trace_exporter.<id>.endpoint`1759`model_reasoning_summary`
1600 1760
1601Type / Values1761Type / Values
1602 1762
1603`string`1763`auto | concise | detailed | none`
1604 1764
1605Details1765Details
1606 1766
1607Trace exporter endpoint for OTEL logs.1767Select reasoning summary detail or disable summaries entirely.
1608 1768
1609Key1769Key
1610 1770
1611`otel.trace_exporter.<id>.headers`1771`model_supports_reasoning_summaries`
1612 1772
1613Type / Values1773Type / Values
1614 1774
1615`map<string,string>`1775`boolean`
1616 1776
1617Details1777Details
1618 1778
1619Static headers included with OTEL trace exporter requests.1779Force Codex to send or not send reasoning metadata.
1620 1780
1621Key1781Key
1622 1782
1623`otel.trace_exporter.<id>.protocol`1783`model_verbosity`
1624 1784
1625Type / Values1785Type / Values
1626 1786
1627`binary | json`1787`low | medium | high`
1628 1788
1629Details1789Details
1630 1790
1631Protocol used by the OTLP/HTTP trace exporter.1791Optional GPT-5 Responses API verbosity override; when unset, the selected model/preset default is used.
1632 1792
1633Key1793Key
1634 1794
1635`otel.trace_exporter.<id>.tls.ca-certificate`1795`notice.hide_full_access_warning`
1636 1796
1637Type / Values1797Type / Values
1638 1798
1639`string`1799`boolean`
1640 1800
1641Details1801Details
1642 1802
1643CA certificate path for OTEL trace exporter TLS.1803Track acknowledgement of the full access warning prompt.
1644 1804
1645Key1805Key
1646 1806
1647`otel.trace_exporter.<id>.tls.client-certificate`1807`notice.hide_gpt-5.1-codex-max_migration_prompt`
1648 1808
1649Type / Values1809Type / Values
1650 1810
1651`string`1811`boolean`
1652 1812
1653Details1813Details
1654 1814
1655Client certificate path for OTEL trace exporter TLS.1815Track acknowledgement of the gpt-5.1-codex-max migration prompt.
1656 1816
1657Key1817Key
1658 1818
1659`otel.trace_exporter.<id>.tls.client-private-key`1819`notice.hide_gpt5_1_migration_prompt`
1660 1820
1661Type / Values1821Type / Values
1662 1822
1663`string`1823`boolean`
1664 1824
1665Details1825Details
1666 1826
1667Client private key path for OTEL trace exporter TLS.1827Track acknowledgement of the GPT-5.1 migration prompt.
1668 1828
1669Key1829Key
1670 1830
1671`personality`1831`notice.hide_rate_limit_model_nudge`
1672 1832
1673Type / Values1833Type / Values
1674 1834
1675`none | friendly | pragmatic`1835`boolean`
1676 1836
1677Details1837Details
1678 1838
1679Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.1839Track opt-out of the rate limit model switch reminder.
1680 1840
1681Key1841Key
1682 1842
1683`profile`1843`notice.hide_world_writable_warning`
1684 1844
1685Type / Values1845Type / Values
1686 1846
1687`string`1847`boolean`
1688 1848
1689Details1849Details
1690 1850
1691Default profile applied at startup (equivalent to `--profile`).1851Track acknowledgement of the Windows world-writable directories warning.
1692 1852
1693Key1853Key
1694 1854
1695`profiles.<name>.*`1855`notice.model_migrations`
1696 1856
1697Type / Values1857Type / Values
1698 1858
1699`various`1859`map<string,string>`
1700 1860
1701Details1861Details
1702 1862
1703Profile-scoped overrides for any of the supported configuration keys.1863Track acknowledged model migrations as old->new mappings.
1704 1864
1705Key1865Key
1706 1866
1707`profiles.<name>.experimental_use_freeform_apply_patch`1867`notify`
1708 1868
1709Type / Values1869Type / Values
1710 1870
1711`boolean`1871`array<string>`
1712 1872
1713Details1873Details
1714 1874
1715Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1875Command invoked for notifications; receives a JSON payload from Codex.
1716 1876
1717Key1877Key
1718 1878
1719`profiles.<name>.experimental_use_unified_exec_tool`1879`openai_base_url`
1720 1880
1721Type / Values1881Type / Values
1722 1882
1723`boolean`1883`string`
1724 1884
1725Details1885Details
1726 1886
1727Legacy name for enabling unified exec; prefer `[features].unified_exec`.1887Base URL override for the built-in `openai` model provider.
1728 1888
1729Key1889Key
1730 1890
1731`profiles.<name>.include_apply_patch_tool`1891`oss_provider`
1732 1892
1733Type / Values1893Type / Values
1734 1894
1735`boolean`1895`lmstudio | ollama`
1736 1896
1737Details1897Details
1738 1898
1739Legacy name for enabling freeform apply\_patch; prefer `[features].apply_patch_freeform`.1899Default local provider used when running with `--oss` (defaults to prompting if unset).
1740 1900
1741Key1901Key
1742 1902
1743`profiles.<name>.model_catalog_json`1903`otel.environment`
1744 1904
1745Type / Values1905Type / Values
1746 1906
1747`string (path)`1907`string`
1748 1908
1749Details1909Details
1750 1910
1751Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).1911Environment tag applied to emitted OpenTelemetry events (default: `dev`).
1752 1912
1753Key1913Key
1754 1914
1755`profiles.<name>.oss_provider`1915`otel.exporter`
1756 1916
1757Type / Values1917Type / Values
1758 1918
1759`lmstudio | ollama`1919`none | otlp-http | otlp-grpc`
1760 1920
1761Details1921Details
1762 1922
1763Profile-scoped OSS provider for `--oss` sessions.1923Select the OpenTelemetry exporter and provide any endpoint metadata.
1764 1924
1765Key1925Key
1766 1926
1767`profiles.<name>.personality`1927`otel.exporter.<id>.endpoint`
1768 1928
1769Type / Values1929Type / Values
1770 1930
1771`none | friendly | pragmatic`1931`string`
1772 1932
1773Details1933Details
1774 1934
1775Profile-scoped communication style override for supported models.1935Exporter endpoint for OTEL logs.
1776 1936
1777Key1937Key
1778 1938
1779`profiles.<name>.web_search`1939`otel.exporter.<id>.headers`
1780 1940
1781Type / Values1941Type / Values
1782 1942
1783`disabled | cached | live`1943`map<string,string>`
1784 1944
1785Details1945Details
1786 1946
1787Profile-scoped web search mode override (default: `"cached"`).1947Static headers included with OTEL exporter requests.
1788 1948
1789Key1949Key
1790 1950
1791`project_doc_fallback_filenames`1951`otel.exporter.<id>.protocol`
1792 1952
1793Type / Values1953Type / Values
1794 1954
1795`array<string>`1955`binary | json`
1796 1956
1797Details1957Details
1798 1958
1799Additional filenames to try when `AGENTS.md` is missing.1959Protocol used by the OTLP/HTTP exporter.
1800 1960
1801Key1961Key
1802 1962
1803`project_doc_max_bytes`1963`otel.exporter.<id>.tls.ca-certificate`
1804 1964
1805Type / Values1965Type / Values
1806 1966
1807`number`1967`string`
1808 1968
1809Details1969Details
1810 1970
1811Maximum bytes read from `AGENTS.md` when building project instructions.1971CA certificate path for OTEL exporter TLS.
1812 1972
1813Key1973Key
1814 1974
1815`project_root_markers`1975`otel.exporter.<id>.tls.client-certificate`
1816 1976
1817Type / Values1977Type / Values
1818 1978
1819`array<string>`1979`string`
1820 1980
1821Details1981Details
1822 1982
1823List of project root marker filenames; used when searching parent directories for the project root.1983Client certificate path for OTEL exporter TLS.
1824 1984
1825Key1985Key
1826 1986
1827`projects.<path>.trust_level`1987`otel.exporter.<id>.tls.client-private-key`
1828 1988
1829Type / Values1989Type / Values
1830 1990
1832 1992
1833Details1993Details
1834 1994
1835Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.1995Client private key path for OTEL exporter TLS.
1836 1996
1837Key1997Key
1838 1998
1839`review_model`1999`otel.log_user_prompt`
1840 2000
1841Type / Values2001Type / Values
1842 2002
1843`string`2003`boolean`
1844 2004
1845Details2005Details
1846 2006
1847Optional model override used by `/review` (defaults to the current session model).2007Opt in to exporting raw user prompts with OpenTelemetry logs.
1848 2008
1849Key2009Key
1850 2010
1851`sandbox_mode`2011`otel.metrics_exporter`
1852 2012
1853Type / Values2013Type / Values
1854 2014
1855`read-only | workspace-write | danger-full-access`2015`none | statsig | otlp-http | otlp-grpc`
1856 2016
1857Details2017Details
1858 2018
1859Sandbox policy for filesystem and network access during command execution.2019Select the OpenTelemetry metrics exporter (defaults to `statsig`).
1860 2020
1861Key2021Key
1862 2022
1863`sandbox_workspace_write.exclude_slash_tmp`2023`otel.trace_exporter`
1864 2024
1865Type / Values2025Type / Values
1866 2026
1867`boolean`2027`none | otlp-http | otlp-grpc`
1868 2028
1869Details2029Details
1870 2030
1871Exclude `/tmp` from writable roots in workspace-write mode.2031Select the OpenTelemetry trace exporter and provide any endpoint metadata.
1872 2032
1873Key2033Key
1874 2034
1875`sandbox_workspace_write.exclude_tmpdir_env_var`2035`otel.trace_exporter.<id>.endpoint`
1876 2036
1877Type / Values2037Type / Values
1878 2038
1879`boolean`2039`string`
1880 2040
1881Details2041Details
1882 2042
1883Exclude `$TMPDIR` from writable roots in workspace-write mode.2043Trace exporter endpoint for OTEL logs.
1884 2044
1885Key2045Key
1886 2046
1887`sandbox_workspace_write.network_access`2047`otel.trace_exporter.<id>.headers`
1888 2048
1889Type / Values2049Type / Values
1890 2050
1891`boolean`2051`map<string,string>`
1892 2052
1893Details2053Details
1894 2054
1895Allow outbound network access inside the workspace-write sandbox.2055Static headers included with OTEL trace exporter requests.
1896 2056
1897Key2057Key
1898 2058
1899`sandbox_workspace_write.writable_roots`2059`otel.trace_exporter.<id>.protocol`
1900 2060
1901Type / Values2061Type / Values
1902 2062
1903`array<string>`2063`binary | json`
1904 2064
1905Details2065Details
1906 2066
1907Additional writable roots when `sandbox_mode = "workspace-write"`.2067Protocol used by the OTLP/HTTP trace exporter.
1908 2068
1909Key2069Key
1910 2070
1911`shell_environment_policy.exclude`2071`otel.trace_exporter.<id>.tls.ca-certificate`
1912 2072
1913Type / Values2073Type / Values
1914 2074
1915`array<string>`2075`string`
1916 2076
1917Details2077Details
1918 2078
1919Glob patterns for removing environment variables after the defaults.2079CA certificate path for OTEL trace exporter TLS.
1920 2080
1921Key2081Key
1922 2082
1923`shell_environment_policy.experimental_use_profile`2083`otel.trace_exporter.<id>.tls.client-certificate`
1924 2084
1925Type / Values2085Type / Values
1926 2086
1927`boolean`2087`string`
1928 2088
1929Details2089Details
1930 2090
1931Use the user shell profile when spawning subprocesses.2091Client certificate path for OTEL trace exporter TLS.
1932 2092
1933Key2093Key
1934 2094
1935`shell_environment_policy.ignore_default_excludes`2095`otel.trace_exporter.<id>.tls.client-private-key`
1936 2096
1937Type / Values2097Type / Values
1938 2098
1939`boolean`2099`string`
1940 2100
1941Details2101Details
1942 2102
1943Keep variables containing KEY/SECRET/TOKEN before other filters run.2103Client private key path for OTEL trace exporter TLS.
1944 2104
1945Key2105Key
1946 2106
1947`shell_environment_policy.include_only`2107`permissions.<name>.filesystem`
2108
2109Type / Values
2110
2111`table`
2112
2113Details
2114
2115Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.
2116
2117Key
2118
2119`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`
2120
2121Type / Values
2122
2123`"read" | "write" | "none"`
2124
2125Details
2126
2127Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.
2128
2129Key
2130
2131`permissions.<name>.filesystem.<path-or-glob>`
2132
2133Type / Values
2134
2135`"read" | "write" | "none" | table`
2136
2137Details
2138
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.
2140
2141Key
2142
2143`permissions.<name>.filesystem.glob_scan_max_depth`
2144
2145Type / Values
2146
2147`number`
2148
2149Details
2150
2151Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.
2152
2153Key
2154
2155`permissions.<name>.network.allow_local_binding`
2156
2157Type / Values
2158
2159`boolean`
2160
2161Details
2162
2163Permit local bind/listen operations through the managed proxy.
2164
2165Key
2166
2167`permissions.<name>.network.allow_upstream_proxy`
2168
2169Type / Values
2170
2171`boolean`
2172
2173Details
2174
2175Allow the managed proxy to chain to another upstream proxy.
2176
2177Key
2178
2179`permissions.<name>.network.dangerously_allow_all_unix_sockets`
2180
2181Type / Values
2182
2183`boolean`
2184
2185Details
2186
2187Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.
2188
2189Key
2190
2191`permissions.<name>.network.dangerously_allow_non_loopback_proxy`
2192
2193Type / Values
2194
2195`boolean`
2196
2197Details
2198
2199Permit non-loopback bind addresses for the managed proxy listener.
2200
2201Key
2202
2203`permissions.<name>.network.domains`
2204
2205Type / Values
2206
2207`map<string, allow | deny>`
2208
2209Details
2210
2211Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.
2212
2213Key
2214
2215`permissions.<name>.network.enable_socks5`
2216
2217Type / Values
2218
2219`boolean`
2220
2221Details
2222
2223Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.
2224
2225Key
2226
2227`permissions.<name>.network.enable_socks5_udp`
2228
2229Type / Values
2230
2231`boolean`
2232
2233Details
2234
2235Allow UDP over the SOCKS5 listener when enabled.
2236
2237Key
2238
2239`permissions.<name>.network.enabled`
2240
2241Type / Values
2242
2243`boolean`
2244
2245Details
2246
2247Enable network access for this named permissions profile.
2248
2249Key
2250
2251`permissions.<name>.network.mode`
2252
2253Type / Values
2254
2255`limited | full`
2256
2257Details
2258
2259Network proxy mode used for subprocess traffic.
2260
2261Key
2262
2263`permissions.<name>.network.proxy_url`
2264
2265Type / Values
2266
2267`string`
2268
2269Details
2270
2271HTTP proxy endpoint used when this permissions profile enables the managed network proxy.
2272
2273Key
2274
2275`permissions.<name>.network.socks_url`
2276
2277Type / Values
2278
2279`string`
2280
2281Details
2282
2283SOCKS5 proxy endpoint used by this permissions profile.
2284
2285Key
2286
2287`permissions.<name>.network.unix_sockets`
2288
2289Type / Values
2290
2291`map<string, allow | none>`
2292
2293Details
2294
2295Unix socket rules for the managed proxy. Use socket paths as keys, with `allow` or `none` values.
2296
2297Key
2298
2299`personality`
2300
2301Type / Values
2302
2303`none | friendly | pragmatic`
2304
2305Details
2306
2307Default communication style for models that advertise `supportsPersonality`; can be overridden per thread/turn or via `/personality`.
2308
2309Key
2310
2311`plan_mode_reasoning_effort`
2312
2313Type / Values
2314
2315`none | minimal | low | medium | high | xhigh`
2316
2317Details
2318
2319Plan-mode-specific reasoning override. When unset, Plan mode uses its built-in preset default.
2320
2321Key
2322
2323`profile`
2324
2325Type / Values
2326
2327`string`
2328
2329Details
2330
2331Default profile applied at startup (equivalent to `--profile`).
2332
2333Key
2334
2335`profiles.<name>.*`
2336
2337Type / Values
2338
2339`various`
2340
2341Details
2342
2343Profile-scoped overrides for any of the supported configuration keys.
2344
2345Key
2346
2347`profiles.<name>.analytics.enabled`
2348
2349Type / Values
2350
2351`boolean`
2352
2353Details
2354
2355Profile-scoped analytics enablement override.
2356
2357Key
2358
2359`profiles.<name>.experimental_use_unified_exec_tool`
2360
2361Type / Values
2362
2363`boolean`
2364
2365Details
2366
2367Legacy name for enabling unified exec; prefer `[features].unified_exec`.
2368
2369Key
2370
2371`profiles.<name>.model_catalog_json`
2372
2373Type / Values
2374
2375`string (path)`
2376
2377Details
2378
2379Profile-scoped model catalog JSON path override (applied on startup only; overrides the top-level `model_catalog_json` for that profile).
2380
2381Key
2382
2383`profiles.<name>.model_instructions_file`
2384
2385Type / Values
2386
2387`string (path)`
2388
2389Details
2390
2391Profile-scoped replacement for the built-in instruction file.
2392
2393Key
2394
2395`profiles.<name>.oss_provider`
2396
2397Type / Values
2398
2399`lmstudio | ollama`
2400
2401Details
2402
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`
1948 2648
1949Type / Values2649Type / Values
1950 2650
1952 2652
1953Details2653Details
1954 2654
1955Whitelist of patterns; when set only matching variables are kept.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.
1956 2740
1957Key2741Key
1958 2742
1959`shell_environment_policy.inherit`2743`suppress_unstable_features_warning`
1960 2744
1961Type / Values2745Type / Values
1962 2746
1963`all | core | none`2747`boolean`
1964 2748
1965Details2749Details
1966 2750
1967Baseline environment inheritance when spawning subprocesses.2751Suppress the warning that appears when under-development feature flags are enabled.
1968 2752
1969Key2753Key
1970 2754
1971`shell_environment_policy.set`2755`tool_output_token_limit`
1972 2756
1973Type / Values2757Type / Values
1974 2758
1975`map<string,string>`2759`number`
1976 2760
1977Details2761Details
1978 2762
1979Explicit environment overrides injected into every subprocess.2763Token budget for storing individual tool/function outputs in history.
1980 2764
1981Key2765Key
1982 2766
1983`show_raw_agent_reasoning`2767`tool_suggest.disabled_tools`
1984 2768
1985Type / Values2769Type / Values
1986 2770
1987`boolean`2771`array<table>`
1988 2772
1989Details2773Details
1990 2774
1991Surface raw reasoning content when the active model emits it.2775Disable suggestions for specific discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
1992 2776
1993Key2777Key
1994 2778
1995`skills.config`2779`tool_suggest.discoverables`
1996 2780
1997Type / Values2781Type / Values
1998 2782
1999`array<object>`2783`array<table>`
2000 2784
2001Details2785Details
2002 2786
2003Per-skill enablement overrides stored in config.toml.2787Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.
2004 2788
2005Key2789Key
2006 2790
2007`skills.config.<index>.enabled`2791`tools.view_image`
2008 2792
2009Type / Values2793Type / Values
2010 2794
2012 2796
2013Details2797Details
2014 2798
2015Enable or disable the referenced skill.2799Enable the local-image attachment tool `view_image`.
2016 2800
2017Key2801Key
2018 2802
2019`skills.config.<index>.path`2803`tools.web_search`
2020 2804
2021Type / Values2805Type / Values
2022 2806
2023`string (path)`2807`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`
2024 2808
2025Details2809Details
2026 2810
2027Path to a skill folder containing `SKILL.md`.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.
2028 2812
2029Key2813Key
2030 2814
2031`suppress_unstable_features_warning`2815`tui`
2032 2816
2033Type / Values2817Type / Values
2034 2818
2035`boolean`2819`table`
2036 2820
2037Details2821Details
2038 2822
2039Suppress the warning that appears when under-development feature flags are enabled.2823TUI-specific options such as enabling inline desktop notifications.
2040 2824
2041Key2825Key
2042 2826
2043`tool_output_token_limit`2827`tui.alternate_screen`
2044 2828
2045Type / Values2829Type / Values
2046 2830
2047`number`2831`auto | always | never`
2048 2832
2049Details2833Details
2050 2834
2051Token budget for storing individual tool/function outputs in history.2835Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback).
2052 2836
2053Key2837Key
2054 2838
2055`tools.web_search`2839`tui.animations`
2056 2840
2057Type / Values2841Type / Values
2058 2842
2060 2844
2061Details2845Details
2062 2846
2063Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.2847Enable terminal animations (welcome screen, shimmer, spinner) (default: true).
2064 2848
2065Key2849Key
2066 2850
2067`tui`2851`tui.keymap.<context>.<action>`
2068 2852
2069Type / Values2853Type / Values
2070 2854
2071`table`2855`string | array<string>`
2072 2856
2073Details2857Details
2074 2858
2075TUI-specific options such as enabling inline desktop notifications.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`.
2076 2860
2077Key2861Key
2078 2862
2079`tui.alternate_screen`2863`tui.keymap.<context>.<action> = []`
2080 2864
2081Type / Values2865Type / Values
2082 2866
2083`auto | always | never`2867`empty array`
2084 2868
2085Details2869Details
2086 2870
2087Control alternate screen usage for the TUI (default: auto; auto skips it in Zellij to preserve scrollback).2871Unbind the action in that keymap context. Key names use normalized strings such as `ctrl-a`, `shift-enter`, or `page-down`.
2088 2872
2089Key2873Key
2090 2874
2091`tui.animations`2875`tui.model_availability_nux.<model>`
2092 2876
2093Type / Values2877Type / Values
2094 2878
2095`boolean`2879`integer`
2096 2880
2097Details2881Details
2098 2882
2099Enable terminal animations (welcome screen, shimmer, spinner) (default: true).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`.
2100 2896
2101Key2897Key
2102 2898
2108 2904
2109Details2905Details
2110 2906
2111Notification method for unfocused terminal notifications (default: auto).2907Notification method for terminal notifications (default: auto).
2112 2908
2113Key2909Key
2114 2910
2148 2944
2149Key2945Key
2150 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
2151`web_search`2971`web_search`
2152 2972
2153Type / Values2973Type / Values
2182 3002
2183Windows-only native sandbox mode when running Codex natively on Windows.3003Windows-only native sandbox mode when running Codex natively on Windows.
2184 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
2185Expand to view all3017Expand to view all
2186 3018
2187You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).3019You can find the latest JSON schema for `config.toml` [here](https://developers.openai.com/codex/config-schema.json).
2201For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched3033For ChatGPT Business and Enterprise users, Codex can also apply cloud-fetched
2202requirements. See the security page for precedence details.3034requirements. See the security page for precedence details.
2203 3035
3036Use `[features]` in `requirements.toml` to pin feature flags by the same
3037canonical keys that `config.toml` uses. Omitted keys remain unconstrained.
3038
2204| Key | Type / Values | Details |3039| Key | Type / Values | Details |
2205| --- | --- | --- |3040| --- | --- | --- |
2206| `allowed_approval_policies` | `array<string>` | Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`). |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`. |
2207| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |3043| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |
2208| `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`. |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. |
2209| `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. |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. |
2210| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |3057| `mcp_servers.<id>.identity` | `table` | Identity rule for a single MCP server. Set either `command` (stdio) or `url` (streamable HTTP). |
2211| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |3058| `mcp_servers.<id>.identity.command` | `string` | Allow an MCP stdio server when its `mcp_servers.<id>.command` matches this command. |
2212| `mcp_servers.<id>.identity.url` | `string` | Allow an MCP streamable HTTP server when its `mcp_servers.<id>.url` matches this URL. |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. |
2213| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |3064| `rules` | `table` | Admin-enforced command rules merged with `.rules` files. Requirements rules must be restrictive. |
2214| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |3065| `rules.prefix_rules` | `array<table>` | List of enforced prefix rules. Each rule must include `pattern` and `decision`. |
2215| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |3066| `rules.prefix_rules[].decision` | `prompt | forbidden` | Required. Requirements rules can only prompt or forbid (not allow). |
2228 3079
2229Details3080Details
2230 3081
2231Allowed values for `approval_policy` (for example `untrusted`, `on-request`, `never`, and `reject`).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`.
2232 3095
2233Key3096Key
2234 3097
2256 3119
2257Key3120Key
2258 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
2259`mcp_servers`3254`mcp_servers`
2260 3255
2261Type / Values3256Type / Values
2304 3299
2305Key3300Key
2306 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.
3347
3348Key
3349
2307`rules`3350`rules`
2308 3351
2309Type / Values3352Type / Values