SpyBara
Go Premium Account
2026
18 Mar 2026, 00:36
14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
2 May 2026, 00:48
14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
Fri 1 18:29 Sat 2 00:48 Sat 2 06:45 Tue 5 23:00 Thu 7 17:08 Thu 7 20:02 Mon 11 18:00 Tue 12 01:59 Wed 13 00:57 Thu 14 07:00 Thu 14 21:00

config-reference.md +709 −280

Details

18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |18| `agents.max_threads` | `number` | Maximum number of agent threads that can be open concurrently. Defaults to `6` when unset. |

19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |19| `allow_login_shell` | `boolean` | Allow shell-based tools to use login-shell semantics. Defaults to `true`; when `false`, `login = true` requests are rejected and omitted `login` defaults to non-login shells. |

20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |20| `analytics.enabled` | `boolean` | Enable or disable analytics for this machine/profile. When unset, the client default applies. |

21| `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. |21| `approval_policy` | `untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }` | Controls when Codex pauses for approval before executing commands. You can also use `approval_policy = { granular = { ... } }` to allow or auto-reject specific prompt categories while keeping other prompts interactive. `on-failure` is deprecated; use `on-request` for interactive runs or `never` for non-interactive runs. |

22| `approval_policy.reject.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user. |22| `approval_policy.granular.mcp_elicitations` | `boolean` | When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected. |

23| `approval_policy.reject.rules` | `boolean` | When `true`, approvals triggered by execpolicy `prompt` rules 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.reject.sandbox_approval` | `boolean` | When `true`, sandbox escalation approval prompts are auto-rejected. |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. |

25| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |28| `apps._default.destructive_enabled` | `boolean` | Default allow/deny for app tools with `destructive_hint = true`. |

26| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |29| `apps._default.enabled` | `boolean` | Default app enabled state for all apps unless overridden per app. |

27| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |30| `apps._default.open_world_enabled` | `boolean` | Default allow/deny for app tools with `open_world_hint = true`. |


32| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |35| `apps.<id>.open_world_enabled` | `boolean` | Allow or block tools in this app that advertise `open_world_hint = true`. |

33| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |36| `apps.<id>.tools.<tool>.approval_mode` | `auto | prompt | approve` | Per-tool approval behavior override for a single app tool. |

34| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |37| `apps.<id>.tools.<tool>.enabled` | `boolean` | Per-tool enabled override for an app tool (for example `repos/list`). |

38| `auto_review.policy` | `string` | Local Markdown policy instructions for automatic review. Managed `guardian_policy_config` takes precedence. Blank values are ignored. |

35| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |39| `background_terminal_max_timeout` | `number` | Maximum poll window in milliseconds for empty `write_stdin` polls (background terminal polling). Default: `300000` (5 minutes). Replaces the older `background_terminal_timeout` key. |

36| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |40| `chatgpt_base_url` | `string` | Override the base URL used during the ChatGPT login flow. |

37| `check_for_update_on_startup` | `boolean` | Check for Codex updates on startup (set to false only when updates are centrally managed). |41| `check_for_update_on_startup` | `boolean` | Check for Codex updates on startup (set to false only when updates are centrally managed). |

38| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |42| `cli_auth_credentials_store` | `file | keyring | auto` | Control where the CLI stores cached credentials (file-based auth.json vs OS keychain). |

39| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |43| `commit_attribution` | `string` | Override the commit co-author trailer text. Set an empty string to disable automatic attribution. |

40| `compact_prompt` | `string` | Inline override for the history compaction prompt. |44| `compact_prompt` | `string` | Inline override for the history compaction prompt. |

45| `default_permissions` | `string` | Name of the default permissions profile to apply to sandboxed tool calls. Built-ins are `:read-only`, `:workspace`, and `:danger-no-sandbox`; custom profile names require matching `[permissions.<name>]` tables. |

41| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |46| `developer_instructions` | `string` | Additional developer instructions injected into the session (optional). |

42| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |47| `disable_paste_burst` | `boolean` | Disable burst-paste detection in the TUI. |

43| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |48| `experimental_compact_prompt_file` | `string (path)` | Load the compaction prompt override from a file (experimental). |

44| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |49| `experimental_use_unified_exec_tool` | `boolean` | Legacy name for enabling unified exec; prefer `[features].unified_exec` or `codex --enable unified_exec`. |

45| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |50| `features.apps` | `boolean` | Enable ChatGPT Apps/connectors support (experimental). |

46| `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. |

47| `features.artifact` | `boolean` | Enable native artifact tools such as slides and spreadsheets (under development). |

48| `features.child_agents_md` | `boolean` | Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental). |

49| `features.collaboration_modes` | `boolean` | Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key. |

50| `features.default_mode_request_user_input` | `boolean` | Allow `request_user_input` in default collaboration mode (under development; off by default). |

51| `features.elevated_windows_sandbox` | `boolean` | Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it. |

52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |52| `features.enable_request_compression` | `boolean` | Compress streaming request bodies with zstd when supported (stable; on by default). |

53| `features.experimental_windows_sandbox` | `boolean` | Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it. |

54| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |53| `features.fast_mode` | `boolean` | Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default). |

55| `features.image_detail_original` | `boolean` | Allow image outputs with `detail = "original"` on supported models (under development). |54| `features.memories` | `boolean` | Enable [Memories](https://developers.openai.com/codex/memories) (off by default). |

56| `features.image_generation` | `boolean` | Enable the built-in image generation tool (under development). |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). |

57| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |56| `features.personality` | `boolean` | Enable personality selection controls (stable; on by default). |

58| `features.powershell_utf8` | `boolean` | Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere. |

59| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |57| `features.prevent_idle_sleep` | `boolean` | Prevent the machine from sleeping while a turn is actively running (experimental; off by default). |

60| `features.remote_models` | `boolean` | Legacy toggle for an older remote-model readiness flow. Current builds do not use it. |

61| `features.request_rule` | `boolean` | Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset. |

62| `features.responses_websockets` | `boolean` | Prefer the Responses API WebSocket transport for supported providers (under development). |

63| `features.responses_websockets_v2` | `boolean` | Enable Responses API WebSocket v2 mode (under development). |

64| `features.runtime_metrics` | `boolean` | Show runtime metrics summary in TUI turn separators (experimental). |

65| `features.search_tool` | `boolean` | Legacy toggle for an older Apps discovery flow. Current builds do not use it. |

66| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |58| `features.shell_snapshot` | `boolean` | Snapshot shell environment to speed up repeated commands (stable; on by default). |

67| `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). |

68| `features.skill_env_var_dependency_prompt` | `boolean` | Prompt for missing skill environment-variable dependencies (under development). |

69| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |60| `features.skill_mcp_dependency_install` | `boolean` | Allow prompting and installing missing MCP dependencies for skills (stable; on by default). |

70| `features.sqlite` | `boolean` | Enable SQLite-backed state persistence (stable; on by default). |

71| `features.steer` | `boolean` | Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior. |

72| `features.undo` | `boolean` | Enable undo support (stable; off by default). |61| `features.undo` | `boolean` | Enable undo support (stable; off by default). |

73| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |62| `features.unified_exec` | `boolean` | Use the unified PTY-backed exec tool (stable; enabled by default except on Windows). |

74| `features.use_linux_sandbox_bwrap` | `boolean` | Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default). |

75| `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. |

76| `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"`. |

77| `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"`. |


82| `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. |

83| `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. |

84| `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. |

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. |

85| `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`. |

86| `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`. |

87| `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. |


96| `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. |

97| `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. |

98| `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. |

99| `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. |

100| `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. |

101| `mcp_servers.<id>.oauth_resource` | `string` | Optional RFC 8707 OAuth resource parameter to include during MCP login. |91| `mcp_servers.<id>.oauth_resource` | `string` | Optional RFC 8707 OAuth resource parameter to include during MCP login. |

102| `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. |


105| `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. |

106| `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. |

107| `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. |

108| `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`). |

109| `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). |

110| `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. |

111| `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. |

112| `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`. |

113| `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). |

114| `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. |

115| `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. |

116| `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. |


125| `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). |

126| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |134| `model_providers.<id>.supports_websockets` | `boolean` | Whether that provider supports the Responses API WebSocket transport. |

127| `model_providers.<id>.wire_api` | `responses` | Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted. |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. |

128| `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). |

129| `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. |

130| `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. |


136| `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. |

137| `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. |

138| `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. |

139| `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). |

140| `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`). |

141| `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. |


154| `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. |

155| `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. |

156| `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. |

157| `permissions.network.admin_url` | `string` | Admin endpoint for the managed network proxy. |168| `permissions.<name>.filesystem` | `table` | Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`. |

158| `permissions.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |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"`. |

159| `permissions.network.allow_unix_sockets` | `array<string>` | Allowlist of Unix socket paths permitted through the managed proxy. |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. |

160| `permissions.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |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. |

161| `permissions.network.allowed_domains` | `array<string>` | Allowlist of domains permitted through the managed proxy. |172| `permissions.<name>.network.allow_local_binding` | `boolean` | Permit local bind/listen operations through the managed proxy. |

162| `permissions.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |173| `permissions.<name>.network.allow_upstream_proxy` | `boolean` | Allow the managed proxy to chain to another upstream proxy. |

163| `permissions.network.dangerously_allow_non_loopback_admin` | `boolean` | Permit non-loopback bind addresses for the managed proxy admin listener. |174| `permissions.<name>.network.dangerously_allow_all_unix_sockets` | `boolean` | Allow the proxy to use arbitrary Unix sockets instead of the default restricted set. |

164| `permissions.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |175| `permissions.<name>.network.dangerously_allow_non_loopback_proxy` | `boolean` | Permit non-loopback bind addresses for the managed proxy listener. |

165| `permissions.network.denied_domains` | `array<string>` | Denylist of domains blocked by the managed proxy. |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. |

166| `permissions.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener from the managed network proxy. |177| `permissions.<name>.network.enable_socks5` | `boolean` | Expose a SOCKS5 listener when this permissions profile enables the managed network proxy. |

167| `permissions.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |178| `permissions.<name>.network.enable_socks5_udp` | `boolean` | Allow UDP over the SOCKS5 listener when enabled. |

168| `permissions.network.enabled` | `boolean` | Enable the managed network proxy configuration for subprocesses. |179| `permissions.<name>.network.enabled` | `boolean` | Enable network access for this named permissions profile. |

169| `permissions.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |180| `permissions.<name>.network.mode` | `limited | full` | Network proxy mode used for subprocess traffic. |

170| `permissions.network.proxy_url` | `string` | HTTP proxy endpoint used by the managed network proxy. |181| `permissions.<name>.network.proxy_url` | `string` | HTTP proxy endpoint used when this permissions profile enables the managed network proxy. |

171| `permissions.network.socks_url` | `string` | SOCKS5 proxy endpoint used by 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. |

172| `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`. |

173| `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. |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. |

174| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |186| `profile` | `string` | Default profile applied at startup (equivalent to `--profile`). |


187| `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. |

188| `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. |

189| `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. |

190| `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. |

191| `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). |

192| `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. |

193| `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. |

194| `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. |

195| `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. |

196| `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"`. |

197| `service_tier` | `flex | fast` | Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled. |209| `service_tier` | `flex | fast` | Preferred service tier for new turns. |

198| `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. |

199| `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. |

200| `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. |


208| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |220| `sqlite_home` | `string (path)` | Directory where Codex stores the SQLite-backed state DB used by agent jobs and other resumable runtime state. |

209| `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. |

210| `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. |

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`. |

211| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |225| `tools.view_image` | `boolean` | Enable the local-image attachment tool `view_image`. |

212| `tools.web_search` | `boolean` | Deprecated legacy toggle for web search; prefer the top-level `web_search` setting. |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. |

213| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |227| `tui` | `table` | TUI-specific options such as enabling inline desktop notifications. |

214| `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). |

215| `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). |

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`. |

216| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |232| `tui.model_availability_nux.<model>` | `integer` | Internal startup-tooltip state keyed by model slug. |

217| `tui.notification_method` | `auto | osc9 | bel` | Notification method for unfocused terminal notifications (default: auto). |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). |

218| `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. |

219| `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). |

220| `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. |

221| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |239| `tui.theme` | `string` | Syntax-highlighting theme override (kebab-case theme name). |

222| `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. |

223| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |241| `windows_wsl_setup_acknowledged` | `boolean` | Track Windows onboarding acknowledgement (Windows only). |

224| `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. |

225 244 

226Key245Key

227 246 


325 344 

326Type / Values345Type / Values

327 346 

328`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 } }`

329 348 

330Details349Details

331 350 

332Controls 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.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.

333 352 

334Key353Key

335 354 

336`approval_policy.reject.mcp_elicitations`355`approval_policy.granular.mcp_elicitations`

337 356 

338Type / Values357Type / Values

339 358 


341 360 

342Details361Details

343 362 

344When `true`, MCP elicitation prompts are auto-rejected instead of shown to the user.363When `true`, MCP elicitation prompts are allowed to surface instead of being auto-rejected.

345 364 

346Key365Key

347 366 

348`approval_policy.reject.rules`367`approval_policy.granular.request_permissions`

349 368 

350Type / Values369Type / Values

351 370 


353 372 

354Details373Details

355 374 

356When `true`, approvals triggered by execpolicy `prompt` rules are auto-rejected.375When `true`, prompts from the `request_permissions` tool are allowed to surface.

357 376 

358Key377Key

359 378 

360`approval_policy.reject.sandbox_approval`379`approval_policy.granular.rules`

361 380 

362Type / Values381Type / Values

363 382 


365 384 

366Details385Details

367 386 

368When `true`, sandbox escalation approval prompts are auto-rejected.387When `true`, approvals triggered by execpolicy `prompt` rules are allowed to surface.

388 

389Key

390 

391`approval_policy.granular.sandbox_approval`

392 

393Type / Values

394 

395`boolean`

396 

397Details

398 

399When `true`, sandbox escalation approval prompts are allowed to surface.

400 

401Key

402 

403`approval_policy.granular.skill_approval`

404 

405Type / Values

406 

407`boolean`

408 

409Details

410 

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.

369 424 

370Key425Key

371 426 


489 544 

490Key545Key

491 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 

492`background_terminal_max_timeout`559`background_terminal_max_timeout`

493 560 

494Type / Values561Type / Values


561 628 

562Key629Key

563 630 

631`default_permissions`

632 

633Type / Values

634 

635`string`

636 

637Details

638 

639Name of the default permissions profile to apply to sandboxed tool calls. Built-ins are `:read-only`, `:workspace`, and `:danger-no-sandbox`; custom profile names require matching `[permissions.<name>]` tables.

640 

641Key

642 

564`developer_instructions`643`developer_instructions`

565 644 

566Type / Values645Type / Values


621 700 

622Key701Key

623 702 

624`features.apps_mcp_gateway`703`features.codex_hooks`

625 704 

626Type / Values705Type / Values

627 706 


629 708 

630Details709Details

631 710 

632Route Apps MCP calls through the OpenAI connectors MCP gateway (`https://api.openai.com/v1/connectors/mcp/`) instead of legacy routing (experimental).711Enable lifecycle hooks loaded from `hooks.json` or inline `[hooks]` config.

633 712 

634Key713Key

635 714 

636`features.artifact`715`features.enable_request_compression`

637 716 

638Type / Values717Type / Values

639 718 


641 720 

642Details721Details

643 722 

644Enable native artifact tools such as slides and spreadsheets (under development).723Compress streaming request bodies with zstd when supported (stable; on by default).

645 724 

646Key725Key

647 726 

648`features.child_agents_md`727`features.fast_mode`

649 728 

650Type / Values729Type / Values

651 730 


653 732 

654Details733Details

655 734 

656Append AGENTS.md scope/precedence guidance even when no AGENTS.md is present (experimental).735Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).

657 736 

658Key737Key

659 738 

660`features.collaboration_modes`739`features.memories`

661 740 

662Type / Values741Type / Values

663 742 


665 744 

666Details745Details

667 746 

668Legacy toggle for collaboration modes. Plan and default modes are available in current builds without setting this key.747Enable [Memories](https://developers.openai.com/codex/memories) (off by default).

669 748 

670Key749Key

671 750 

672`features.default_mode_request_user_input`751`features.multi_agent`

673 752 

674Type / Values753Type / Values

675 754 


677 756 

678Details757Details

679 758 

680Allow `request_user_input` in default collaboration mode (under development; off by default).759Enable multi-agent collaboration tools (`spawn_agent`, `send_input`, `resume_agent`, `wait_agent`, and `close_agent`) (stable; on by default).

681 760 

682Key761Key

683 762 

684`features.elevated_windows_sandbox`763`features.personality`

685 764 

686Type / Values765Type / Values

687 766 


689 768 

690Details769Details

691 770 

692Legacy toggle for an earlier elevated Windows sandbox rollout. Current builds do not use it.771Enable personality selection controls (stable; on by default).

693 772 

694Key773Key

695 774 

696`features.enable_request_compression`775`features.prevent_idle_sleep`

697 776 

698Type / Values777Type / Values

699 778 


701 780 

702Details781Details

703 782 

704Compress streaming request bodies with zstd when supported (stable; on by default).783Prevent the machine from sleeping while a turn is actively running (experimental; off by default).

705 784 

706Key785Key

707 786 

708`features.experimental_windows_sandbox`787`features.shell_snapshot`

709 788 

710Type / Values789Type / Values

711 790 


713 792 

714Details793Details

715 794 

716Legacy toggle for an earlier Windows sandbox rollout. Current builds do not use it.795Snapshot shell environment to speed up repeated commands (stable; on by default).

717 796 

718Key797Key

719 798 

720`features.fast_mode`799`features.shell_tool`

721 800 

722Type / Values801Type / Values

723 802 


725 804 

726Details805Details

727 806 

728Enable Fast mode selection and the `service_tier = "fast"` path (stable; on by default).807Enable the default `shell` tool for running commands (stable; on by default).

729 808 

730Key809Key

731 810 

732`features.image_detail_original`811`features.skill_mcp_dependency_install`

733 812 

734Type / Values813Type / Values

735 814 


737 816 

738Details817Details

739 818 

740Allow image outputs with `detail = "original"` on supported models (under development).819Allow prompting and installing missing MCP dependencies for skills (stable; on by default).

741 820 

742Key821Key

743 822 

744`features.image_generation`823`features.undo`

745 824 

746Type / Values825Type / Values

747 826 


749 828 

750Details829Details

751 830 

752Enable the built-in image generation tool (under development).831Enable undo support (stable; off by default).

753 832 

754Key833Key

755 834 

756`features.personality`835`features.unified_exec`

757 836 

758Type / Values837Type / Values

759 838 


761 840 

762Details841Details

763 842 

764Enable personality selection controls (stable; on by default).843Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).

765 844 

766Key845Key

767 846 

768`features.powershell_utf8`847`features.web_search`

769 848 

770Type / Values849Type / Values

771 850 


773 852 

774Details853Details

775 854 

776Force PowerShell UTF-8 output. Enabled by default on Windows and off elsewhere.855Deprecated legacy toggle; prefer the top-level `web_search` setting.

777 856 

778Key857Key

779 858 

780`features.prevent_idle_sleep`859`features.web_search_cached`

781 860 

782Type / Values861Type / Values

783 862 


785 864 

786Details865Details

787 866 

788Prevent the machine from sleeping while a turn is actively running (experimental; off by default).867Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.

789 868 

790Key869Key

791 870 

792`features.remote_models`871`features.web_search_request`

793 872 

794Type / Values873Type / Values

795 874 


797 876 

798Details877Details

799 878 

800Legacy toggle for an older remote-model readiness flow. Current builds do not use it.879Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.

801 880 

802Key881Key

803 882 

804`features.request_rule`883`feedback.enabled`

805 884 

806Type / Values885Type / Values

807 886 


809 888 

810Details889Details

811 890 

812Legacy toggle for Smart approvals. Current builds include this behavior by default, so most users can leave this unset.891Enable feedback submission via `/feedback` across Codex surfaces (default: true).

813 892 

814Key893Key

815 894 

816`features.responses_websockets`895`file_opener`

817 896 

818Type / Values897Type / Values

819 898 

820`boolean`899`vscode | vscode-insiders | windsurf | cursor | none`

821 900 

822Details901Details

823 902 

824Prefer the Responses API WebSocket transport for supported providers (under development).903URI scheme used to open citations from Codex output (default: `vscode`).

825 904 

826Key905Key

827 906 

828`features.responses_websockets_v2`907`forced_chatgpt_workspace_id`

829 908 

830Type / Values909Type / Values

831 910 

832`boolean`911`string (uuid)`

833 912 

834Details913Details

835 914 

836Enable Responses API WebSocket v2 mode (under development).915Limit ChatGPT logins to a specific workspace identifier.

837 916 

838Key917Key

839 918 

840`features.runtime_metrics`919`forced_login_method`

841 920 

842Type / Values921Type / Values

843 922 

844`boolean`923`chatgpt | api`

845 924 

846Details925Details

847 926 

848Show runtime metrics summary in TUI turn separators (experimental).927Restrict Codex to a specific authentication method.

849 928 

850Key929Key

851 930 

852`features.search_tool`931`hide_agent_reasoning`

853 932 

854Type / Values933Type / Values

855 934 


857 936 

858Details937Details

859 938 

860Legacy toggle for an older Apps discovery flow. Current builds do not use it.939Suppress reasoning events in both the TUI and `codex exec` output.

861 940 

862Key941Key

863 942 

864`features.shell_snapshot`943`history.max_bytes`

865 944 

866Type / Values945Type / Values

867 946 

868`boolean`947`number`

869 948 

870Details949Details

871 950 

872Snapshot shell environment to speed up repeated commands (stable; on by default).951If set, caps the history file size in bytes by dropping oldest entries.

873 952 

874Key953Key

875 954 

876`features.shell_tool`955`history.persistence`

877 956 

878Type / Values957Type / Values

879 958 

880`boolean`959`save-all | none`

881 960 

882Details961Details

883 962 

884Enable the default `shell` tool for running commands (stable; on by default).963Control whether Codex saves session transcripts to history.jsonl.

885 964 

886Key965Key

887 966 

888`features.skill_env_var_dependency_prompt`967`hooks`

889 968 

890Type / Values969Type / Values

891 970 

892`boolean`971`table`

893 972 

894Details973Details

895 974 

896Prompt for missing skill environment-variable dependencies (under development).975Lifecycle hooks configured inline in `config.toml`. Uses the same event schema as `hooks.json`; see the Hooks guide for examples and supported events.

897 976 

898Key977Key

899 978 

900`features.skill_mcp_dependency_install`979`instructions`

901 980 

902Type / Values981Type / Values

903 982 

904`boolean`983`string`

905 984 

906Details985Details

907 986 

908Allow prompting and installing missing MCP dependencies for skills (stable; on by default).987Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.

909 988 

910Key989Key

911 990 

912`features.sqlite`991`log_dir`

913 992 

914Type / Values993Type / Values

915 994 

916`boolean`995`string (path)`

917 996 

918Details997Details

919 998 

920Enable SQLite-backed state persistence (stable; on by default).999Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.

921 1000 

922Key1001Key

923 1002 

924`features.steer`1003`mcp_oauth_callback_port`

925 1004 

926Type / Values1005Type / Values

927 1006 

928`boolean`1007`integer`

929 1008 

930Details1009Details

931 1010 

932Legacy toggle from an earlier Enter/Tab steering rollout. Current builds always use the current steering behavior.1011Optional 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.

933 1012 

934Key1013Key

935 1014 

936`features.undo`1015`mcp_oauth_callback_url`

937 1016 

938Type / Values1017Type / Values

939 1018 

940`boolean`1019`string`

941 1020 

942Details1021Details

943 1022 

944Enable undo support (stable; off by default).1023Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.

945 1024 

946Key1025Key

947 1026 

948`features.unified_exec`1027`mcp_oauth_credentials_store`

949 1028 

950Type / Values1029Type / Values

951 1030 

952`boolean`1031`auto | file | keyring`

953 1032 

954Details1033Details

955 1034 

956Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).1035Preferred store for MCP OAuth credentials.

957 1036 

958Key1037Key

959 1038 

960`features.use_linux_sandbox_bwrap`1039`mcp_servers.<id>.args`

961 1040 

962Type / Values1041Type / Values

963 1042 

964`boolean`1043`array<string>`

965 1044 

966Details1045Details

967 1046 

968Use the bubblewrap-based Linux sandbox pipeline (experimental; off by default).1047Arguments passed to the MCP stdio server command.

969 1048 

970Key1049Key

971 1050 

972`features.web_search`1051`mcp_servers.<id>.bearer_token_env_var`

973 1052 

974Type / Values1053Type / Values

975 1054 

976`boolean`1055`string`

977 1056 

978Details1057Details

979 1058 

980Deprecated legacy toggle; prefer the top-level `web_search` setting.1059Environment variable sourcing the bearer token for an MCP HTTP server.

981 1060 

982Key1061Key

983 1062 

984`features.web_search_cached`1063`mcp_servers.<id>.command`

985 1064 

986Type / Values1065Type / Values

987 1066 

988`boolean`1067`string`

989 1068 

990Details1069Details

991 1070 

992Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "cached"`.1071Launcher command for an MCP stdio server.

993 1072 

994Key1073Key

995 1074 

996`features.web_search_request`1075`mcp_servers.<id>.cwd`

997 1076 

998Type / Values1077Type / Values

999 1078 

1000`boolean`1079`string`

1001 1080 

1002Details1081Details

1003 1082 

1004Deprecated legacy toggle. When `web_search` is unset, true maps to `web_search = "live"`.1083Working directory for the MCP stdio server process.

1005 1084 

1006Key1085Key

1007 1086 

1008`feedback.enabled`1087`mcp_servers.<id>.disabled_tools`

1088 

1089Type / Values

1090 

1091`array<string>`

1092 

1093Details

1094 

1095Deny list applied after `enabled_tools` for the MCP server.

1096 

1097Key

1098 

1099`mcp_servers.<id>.enabled`

1009 1100 

1010Type / Values1101Type / Values

1011 1102 


1013 1104 

1014Details1105Details

1015 1106 

1016Enable feedback submission via `/feedback` across Codex surfaces (default: true).1107Disable an MCP server without removing its configuration.

1017 1108 

1018Key1109Key

1019 1110 

1020`file_opener`1111`mcp_servers.<id>.enabled_tools`

1021 1112 

1022Type / Values1113Type / Values

1023 1114 

1024`vscode | vscode-insiders | windsurf | cursor | none`1115`array<string>`

1025 1116 

1026Details1117Details

1027 1118 

1028URI scheme used to open citations from Codex output (default: `vscode`).1119Allow list of tool names exposed by the MCP server.

1029 1120 

1030Key1121Key

1031 1122 

1032`forced_chatgpt_workspace_id`1123`mcp_servers.<id>.env`

1033 1124 

1034Type / Values1125Type / Values

1035 1126 

1036`string (uuid)`1127`map<string,string>`

1037 1128 

1038Details1129Details

1039 1130 

1040Limit ChatGPT logins to a specific workspace identifier.1131Environment variables forwarded to the MCP stdio server.

1041 1132 

1042Key1133Key

1043 1134 

1044`forced_login_method`1135`mcp_servers.<id>.env_http_headers`

1045 1136 

1046Type / Values1137Type / Values

1047 1138 

1048`chatgpt | api`1139`map<string,string>`

1049 1140 

1050Details1141Details

1051 1142 

1052Restrict Codex to a specific authentication method.1143HTTP headers populated from environment variables for an MCP HTTP server.

1053 1144 

1054Key1145Key

1055 1146 

1056`hide_agent_reasoning`1147`mcp_servers.<id>.env_vars`

1057 1148 

1058Type / Values1149Type / Values

1059 1150 

1060`boolean`1151`array<string | { name = string, source = "local" | "remote" }>`

1061 1152 

1062Details1153Details

1063 1154 

1064Suppress reasoning events in both the TUI and `codex exec` output.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.

1065 1156 

1066Key1157Key

1067 1158 

1068`history.max_bytes`1159`mcp_servers.<id>.experimental_environment`

1069 1160 

1070Type / Values1161Type / Values

1071 1162 

1072`number`1163`local | remote`

1073 1164 

1074Details1165Details

1075 1166 

1076If set, caps the history file size in bytes by dropping oldest entries.1167Experimental placement for an MCP server. `remote` starts stdio servers through a remote executor environment; streamable HTTP remote placement is not implemented.

1077 1168 

1078Key1169Key

1079 1170 

1080`history.persistence`1171`mcp_servers.<id>.http_headers`

1081 1172 

1082Type / Values1173Type / Values

1083 1174 

1084`save-all | none`1175`map<string,string>`

1085 1176 

1086Details1177Details

1087 1178 

1088Control whether Codex saves session transcripts to history.jsonl.1179Static HTTP headers included with each MCP HTTP request.

1089 1180 

1090Key1181Key

1091 1182 

1092`instructions`1183`mcp_servers.<id>.oauth_resource`

1093 1184 

1094Type / Values1185Type / Values

1095 1186 


1097 1188 

1098Details1189Details

1099 1190 

1100Reserved for future use; prefer `model_instructions_file` or `AGENTS.md`.1191Optional RFC 8707 OAuth resource parameter to include during MCP login.

1101 1192 

1102Key1193Key

1103 1194 

1104`log_dir`1195`mcp_servers.<id>.required`

1105 1196 

1106Type / Values1197Type / Values

1107 1198 

1108`string (path)`1199`boolean`

1109 1200 

1110Details1201Details

1111 1202 

1112Directory where Codex writes log files (for example `codex-tui.log`); defaults to `$CODEX_HOME/log`.1203When true, fail startup/resume if this enabled MCP server cannot initialize.

1113 1204 

1114Key1205Key

1115 1206 

1116`mcp_oauth_callback_port`1207`mcp_servers.<id>.scopes`

1117 1208 

1118Type / Values1209Type / Values

1119 1210 

1120`integer`1211`array<string>`

1121 1212 

1122Details1213Details

1123 1214 

1124Optional 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.1215OAuth scopes to request when authenticating to that MCP server.

1125 1216 

1126Key1217Key

1127 1218 

1128`mcp_oauth_callback_url`1219`mcp_servers.<id>.startup_timeout_ms`

1129 1220 

1130Type / Values1221Type / Values

1131 1222 

1132`string`1223`number`

1133 1224 

1134Details1225Details

1135 1226 

1136Optional redirect URI override for MCP OAuth login (for example, a devbox ingress URL). `mcp_oauth_callback_port` still controls the callback listener port.1227Alias for `startup_timeout_sec` in milliseconds.

1137 1228 

1138Key1229Key

1139 1230 

1140`mcp_oauth_credentials_store`1231`mcp_servers.<id>.startup_timeout_sec`

1141 1232 

1142Type / Values1233Type / Values

1143 1234 

1144`auto | file | keyring`1235`number`

1145 1236 

1146Details1237Details

1147 1238 

1148Preferred store for MCP OAuth credentials.1239Override the default 10s startup timeout for an MCP server.

1149 1240 

1150Key1241Key

1151 1242 

1152`mcp_servers.<id>.args`1243`mcp_servers.<id>.tool_timeout_sec`

1153 1244 

1154Type / Values1245Type / Values

1155 1246 

1156`array<string>`1247`number`

1157 1248 

1158Details1249Details

1159 1250 

1160Arguments passed to the MCP stdio server command.1251Override the default 60s per-tool timeout for an MCP server.

1161 1252 

1162Key1253Key

1163 1254 

1164`mcp_servers.<id>.bearer_token_env_var`1255`mcp_servers.<id>.url`

1165 1256 

1166Type / Values1257Type / Values

1167 1258 


1169 1260 

1170Details1261Details

1171 1262 

1172Environment variable sourcing the bearer token for an MCP HTTP server.1263Endpoint for an MCP streamable HTTP server.

1173 1264 

1174Key1265Key

1175 1266 

1176`mcp_servers.<id>.command`1267`memories.consolidation_model`

1177 1268 

1178Type / Values1269Type / Values

1179 1270 


1181 1272 

1182Details1273Details

1183 1274 

1184Launcher command for an MCP stdio server.1275Optional model override for global memory consolidation.

1185 1276 

1186Key1277Key

1187 1278 

1188`mcp_servers.<id>.cwd`1279`memories.disable_on_external_context`

1189 1280 

1190Type / Values1281Type / Values

1191 1282 

1192`string`1283`boolean`

1193 1284 

1194Details1285Details

1195 1286 

1196Working directory for the MCP stdio server process.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`.

1197 1288 

1198Key1289Key

1199 1290 

1200`mcp_servers.<id>.disabled_tools`1291`memories.extract_model`

1201 1292 

1202Type / Values1293Type / Values

1203 1294 

1204`array<string>`1295`string`

1205 1296 

1206Details1297Details

1207 1298 

1208Deny list applied after `enabled_tools` for the MCP server.1299Optional model override for per-thread memory extraction.

1209 1300 

1210Key1301Key

1211 1302 

1212`mcp_servers.<id>.enabled`1303`memories.generate_memories`

1213 1304 

1214Type / Values1305Type / Values

1215 1306 


1217 1308 

1218Details1309Details

1219 1310 

1220Disable an MCP server without removing its configuration.1311When `false`, newly created threads are not stored as memory-generation inputs. Defaults to `true`.

1221 1312 

1222Key1313Key

1223 1314 

1224`mcp_servers.<id>.enabled_tools`1315`memories.max_raw_memories_for_consolidation`

1225 1316 

1226Type / Values1317Type / Values

1227 1318 

1228`array<string>`1319`number`

1229 1320 

1230Details1321Details

1231 1322 

1232Allow list of tool names exposed by the MCP server.1323Maximum recent raw memories retained for global consolidation. Defaults to `256` and is capped at `4096`.

1233 1324 

1234Key1325Key

1235 1326 

1236`mcp_servers.<id>.env`1327`memories.max_rollout_age_days`

1237 1328 

1238Type / Values1329Type / Values

1239 1330 

1240`map<string,string>`1331`number`

1241 1332 

1242Details1333Details

1243 1334 

1244Environment variables forwarded to the MCP stdio server.1335Maximum age of threads considered for memory generation. Defaults to `30` and is clamped to `0`-`90`.

1245 1336 

1246Key1337Key

1247 1338 

1248`mcp_servers.<id>.env_http_headers`1339`memories.max_rollouts_per_startup`

1249 1340 

1250Type / Values1341Type / Values

1251 1342 

1252`map<string,string>`1343`number`

1253 1344 

1254Details1345Details

1255 1346 

1256HTTP headers populated from environment variables for an MCP HTTP server.1347Maximum rollout candidates processed per startup pass. Defaults to `16` and is capped at `128`.

1257 1348 

1258Key1349Key

1259 1350 

1260`mcp_servers.<id>.env_vars`1351`memories.max_unused_days`

1261 1352 

1262Type / Values1353Type / Values

1263 1354 

1264`array<string>`1355`number`

1265 1356 

1266Details1357Details

1267 1358 

1268Additional environment variables to whitelist for an MCP stdio server.1359Maximum days since a memory was last used before it becomes ineligible for consolidation. Defaults to `30` and is clamped to `0`-`365`.

1269 1360 

1270Key1361Key

1271 1362 

1272`mcp_servers.<id>.http_headers`1363`memories.min_rate_limit_remaining_percent`

1273 1364 

1274Type / Values1365Type / Values

1275 1366 

1276`map<string,string>`1367`number`

1277 1368 

1278Details1369Details

1279 1370 

1280Static HTTP headers included with each MCP HTTP request.1371Minimum remaining percentage required in Codex rate-limit windows before memory generation starts. Defaults to `25` and is clamped to `0`-`100`.

1281 1372 

1282Key1373Key

1283 1374 

1284`mcp_servers.<id>.oauth_resource`1375`memories.min_rollout_idle_hours`

1285 1376 

1286Type / Values1377Type / Values

1287 1378 

1288`string`1379`number`

1289 1380 

1290Details1381Details

1291 1382 

1292Optional RFC 8707 OAuth resource parameter to include during MCP login.1383Minimum idle time before a thread is considered for memory generation. Defaults to `6` and is clamped to `1`-`48`.

1293 1384 

1294Key1385Key

1295 1386 

1296`mcp_servers.<id>.required`1387`memories.use_memories`

1297 1388 

1298Type / Values1389Type / Values

1299 1390 


1301 1392 

1302Details1393Details

1303 1394 

1304When true, fail startup/resume if this enabled MCP server cannot initialize.1395When `false`, Codex skips injecting existing memories into future sessions. Defaults to `true`.

1305 1396 

1306Key1397Key

1307 1398 

1308`mcp_servers.<id>.scopes`1399`model`

1309 1400 

1310Type / Values1401Type / Values

1311 1402 

1312`array<string>`1403`string`

1313 1404 

1314Details1405Details

1315 1406 

1316OAuth scopes to request when authenticating to that MCP server.1407Model to use (e.g., `gpt-5.5`).

1317 1408 

1318Key1409Key

1319 1410 

1320`mcp_servers.<id>.startup_timeout_ms`1411`model_auto_compact_token_limit`

1321 1412 

1322Type / Values1413Type / Values

1323 1414 


1325 1416 

1326Details1417Details

1327 1418 

1328Alias for `startup_timeout_sec` in milliseconds.1419Token threshold that triggers automatic history compaction (unset uses model defaults).

1329 1420 

1330Key1421Key

1331 1422 

1332`mcp_servers.<id>.startup_timeout_sec`1423`model_catalog_json`

1333 1424 

1334Type / Values1425Type / Values

1335 1426 

1336`number`1427`string (path)`

1337 1428 

1338Details1429Details

1339 1430 

1340Override the default 10s startup timeout for an MCP server.1431Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.

1341 1432 

1342Key1433Key

1343 1434 

1344`mcp_servers.<id>.tool_timeout_sec`1435`model_context_window`

1345 1436 

1346Type / Values1437Type / Values

1347 1438 


1349 1440 

1350Details1441Details

1351 1442 

1352Override the default 60s per-tool timeout for an MCP server.1443Context window tokens available to the active model.

1353 1444 

1354Key1445Key

1355 1446 

1356`mcp_servers.<id>.url`1447`model_instructions_file`

1357 1448 

1358Type / Values1449Type / Values

1359 1450 

1360`string`1451`string (path)`

1361 1452 

1362Details1453Details

1363 1454 

1364Endpoint for an MCP streamable HTTP server.1455Replacement for built-in instructions instead of `AGENTS.md`.

1365 1456 

1366Key1457Key

1367 1458 

1368`model`1459`model_provider`

1369 1460 

1370Type / Values1461Type / Values

1371 1462 


1373 1464 

1374Details1465Details

1375 1466 

1376Model to use (e.g., `gpt-5-codex`).1467Provider id from `model_providers` (default: `openai`).

1377 1468 

1378Key1469Key

1379 1470 

1380`model_auto_compact_token_limit`1471`model_providers.<id>`

1381 1472 

1382Type / Values1473Type / Values

1383 1474 

1384`number`1475`table`

1385 1476 

1386Details1477Details

1387 1478 

1388Token threshold that triggers automatic history compaction (unset uses model defaults).1479Custom provider definition. Built-in provider IDs (`openai`, `ollama`, and `lmstudio`) are reserved and cannot be overridden.

1389 1480 

1390Key1481Key

1391 1482 

1392`model_catalog_json`1483`model_providers.<id>.auth`

1393 1484 

1394Type / Values1485Type / Values

1395 1486 

1396`string (path)`1487`table`

1397 1488 

1398Details1489Details

1399 1490 

1400Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile.1491Command-backed bearer token configuration for a custom provider. Do not combine with `env_key`, `experimental_bearer_token`, or `requires_openai_auth`.

1401 1492 

1402Key1493Key

1403 1494 

1404`model_context_window`1495`model_providers.<id>.auth.args`

1405 1496 

1406Type / Values1497Type / Values

1407 1498 

1408`number`1499`array<string>`

1409 1500 

1410Details1501Details

1411 1502 

1412Context window tokens available to the active model.1503Arguments passed to the token command.

1413 1504 

1414Key1505Key

1415 1506 

1416`model_instructions_file`1507`model_providers.<id>.auth.command`

1508 

1509Type / Values

1510 

1511`string`

1512 

1513Details

1514 

1515Command to run when Codex needs a bearer token. The command must print the token to stdout.

1516 

1517Key

1518 

1519`model_providers.<id>.auth.cwd`

1417 1520 

1418Type / Values1521Type / Values

1419 1522 


1421 1524 

1422Details1525Details

1423 1526 

1424Replacement for built-in instructions instead of `AGENTS.md`.1527Working directory for the token command.

1425 1528 

1426Key1529Key

1427 1530 

1428`model_provider`1531`model_providers.<id>.auth.refresh_interval_ms`

1429 1532 

1430Type / Values1533Type / Values

1431 1534 

1432`string`1535`number`

1433 1536 

1434Details1537Details

1435 1538 

1436Provider id from `model_providers` (default: `openai`).1539How often Codex proactively refreshes the token in milliseconds (default: 300000). Set to `0` to refresh only after an authentication retry.

1540 

1541Key

1542 

1543`model_providers.<id>.auth.timeout_ms`

1544 

1545Type / Values

1546 

1547`number`

1548 

1549Details

1550 

1551Maximum token command runtime in milliseconds (default: 5000).

1437 1552 

1438Key1553Key

1439 1554 


1565 1680 

1566Details1681Details

1567 1682 

1568Idle timeout for SSE streams in milliseconds (default: 300000).1683Idle timeout for SSE streams in milliseconds (default: 300000).

1684 

1685Key

1686 

1687`model_providers.<id>.stream_max_retries`

1688 

1689Type / Values

1690 

1691`number`

1692 

1693Details

1694 

1695Retry count for SSE streaming interruptions (default: 5).

1696 

1697Key

1698 

1699`model_providers.<id>.supports_websockets`

1700 

1701Type / Values

1702 

1703`boolean`

1704 

1705Details

1706 

1707Whether that provider supports the Responses API WebSocket transport.

1569 1708 

1570Key1709Key

1571 1710 

1572`model_providers.<id>.stream_max_retries`1711`model_providers.<id>.wire_api`

1573 1712 

1574Type / Values1713Type / Values

1575 1714 

1576`number`1715`responses`

1577 1716 

1578Details1717Details

1579 1718 

1580Retry count for SSE streaming interruptions (default: 5).1719Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.

1581 1720 

1582Key1721Key

1583 1722 

1584`model_providers.<id>.supports_websockets`1723`model_providers.amazon-bedrock.aws.profile`

1585 1724 

1586Type / Values1725Type / Values

1587 1726 

1588`boolean`1727`string`

1589 1728 

1590Details1729Details

1591 1730 

1592Whether that provider supports the Responses API WebSocket transport.1731AWS profile name used by the built-in `amazon-bedrock` provider.

1593 1732 

1594Key1733Key

1595 1734 

1596`model_providers.<id>.wire_api`1735`model_providers.amazon-bedrock.aws.region`

1597 1736 

1598Type / Values1737Type / Values

1599 1738 

1600`responses`1739`string`

1601 1740 

1602Details1741Details

1603 1742 

1604Protocol used by the provider. `responses` is the only supported value, and it is the default when omitted.1743AWS region used by the built-in `amazon-bedrock` provider.

1605 1744 

1606Key1745Key

1607 1746 


1737 1876 

1738Key1877Key

1739 1878 

1879`openai_base_url`

1880 

1881Type / Values

1882 

1883`string`

1884 

1885Details

1886 

1887Base URL override for the built-in `openai` model provider.

1888 

1889Key

1890 

1740`oss_provider`1891`oss_provider`

1741 1892 

1742Type / Values1893Type / Values


1953 2104 

1954Key2105Key

1955 2106 

1956`permissions.network.admin_url`2107`permissions.<name>.filesystem`

1957 2108 

1958Type / Values2109Type / Values

1959 2110 

1960`string`2111`table`

1961 2112 

1962Details2113Details

1963 2114 

1964Admin endpoint for the managed network proxy.2115Named filesystem permission profile. Each key is an absolute path or special token such as `:minimal` or `:project_roots`.

1965 2116 

1966Key2117Key

1967 2118 

1968`permissions.network.allow_local_binding`2119`permissions.<name>.filesystem.":project_roots".<subpath-or-glob>`

1969 2120 

1970Type / Values2121Type / Values

1971 2122 

1972`boolean`2123`"read" | "write" | "none"`

1973 2124 

1974Details2125Details

1975 2126 

1976Permit local bind/listen operations through the managed proxy.2127Scoped filesystem access relative to the detected project roots. Use `"."` for the root itself; glob subpaths such as `"**/*.env"` can deny reads with `"none"`.

1977 2128 

1978Key2129Key

1979 2130 

1980`permissions.network.allow_unix_sockets`2131`permissions.<name>.filesystem.<path-or-glob>`

1981 2132 

1982Type / Values2133Type / Values

1983 2134 

1984`array<string>`2135`"read" | "write" | "none" | table`

1985 2136 

1986Details2137Details

1987 2138 

1988Allowlist of Unix socket paths permitted through the managed proxy.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.

1989 2140 

1990Key2141Key

1991 2142 

1992`permissions.network.allow_upstream_proxy`2143`permissions.<name>.filesystem.glob_scan_max_depth`

1993 2144 

1994Type / Values2145Type / Values

1995 2146 

1996`boolean`2147`number`

1997 2148 

1998Details2149Details

1999 2150 

2000Allow the managed proxy to chain to another upstream proxy.2151Maximum depth for expanding deny-read glob patterns on platforms that snapshot matches before sandbox startup. Must be at least `1` when set.

2001 2152 

2002Key2153Key

2003 2154 

2004`permissions.network.allowed_domains`2155`permissions.<name>.network.allow_local_binding`

2005 2156 

2006Type / Values2157Type / Values

2007 2158 

2008`array<string>`2159`boolean`

2009 2160 

2010Details2161Details

2011 2162 

2012Allowlist of domains permitted through the managed proxy.2163Permit local bind/listen operations through the managed proxy.

2013 2164 

2014Key2165Key

2015 2166 

2016`permissions.network.dangerously_allow_all_unix_sockets`2167`permissions.<name>.network.allow_upstream_proxy`

2017 2168 

2018Type / Values2169Type / Values

2019 2170 


2021 2172 

2022Details2173Details

2023 2174 

2024Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.2175Allow the managed proxy to chain to another upstream proxy.

2025 2176 

2026Key2177Key

2027 2178 

2028`permissions.network.dangerously_allow_non_loopback_admin`2179`permissions.<name>.network.dangerously_allow_all_unix_sockets`

2029 2180 

2030Type / Values2181Type / Values

2031 2182 


2033 2184 

2034Details2185Details

2035 2186 

2036Permit non-loopback bind addresses for the managed proxy admin listener.2187Allow the proxy to use arbitrary Unix sockets instead of the default restricted set.

2037 2188 

2038Key2189Key

2039 2190 

2040`permissions.network.dangerously_allow_non_loopback_proxy`2191`permissions.<name>.network.dangerously_allow_non_loopback_proxy`

2041 2192 

2042Type / Values2193Type / Values

2043 2194 


2049 2200 

2050Key2201Key

2051 2202 

2052`permissions.network.denied_domains`2203`permissions.<name>.network.domains`

2053 2204 

2054Type / Values2205Type / Values

2055 2206 

2056`array<string>`2207`map<string, allow | deny>`

2057 2208 

2058Details2209Details

2059 2210 

2060Denylist of domains blocked by the managed proxy.2211Domain rules for the managed proxy. Use domain names or wildcard patterns as keys, with `allow` or `deny` values.

2061 2212 

2062Key2213Key

2063 2214 

2064`permissions.network.enable_socks5`2215`permissions.<name>.network.enable_socks5`

2065 2216 

2066Type / Values2217Type / Values

2067 2218 


2069 2220 

2070Details2221Details

2071 2222 

2072Expose a SOCKS5 listener from the managed network proxy.2223Expose a SOCKS5 listener when this permissions profile enables the managed network proxy.

2073 2224 

2074Key2225Key

2075 2226 

2076`permissions.network.enable_socks5_udp`2227`permissions.<name>.network.enable_socks5_udp`

2077 2228 

2078Type / Values2229Type / Values

2079 2230 


2085 2236 

2086Key2237Key

2087 2238 

2088`permissions.network.enabled`2239`permissions.<name>.network.enabled`

2089 2240 

2090Type / Values2241Type / Values

2091 2242 


2093 2244 

2094Details2245Details

2095 2246 

2096Enable the managed network proxy configuration for subprocesses.2247Enable network access for this named permissions profile.

2097 2248 

2098Key2249Key

2099 2250 

2100`permissions.network.mode`2251`permissions.<name>.network.mode`

2101 2252 

2102Type / Values2253Type / Values

2103 2254 


2109 2260 

2110Key2261Key

2111 2262 

2112`permissions.network.proxy_url`2263`permissions.<name>.network.proxy_url`

2113 2264 

2114Type / Values2265Type / Values

2115 2266 


2117 2268 

2118Details2269Details

2119 2270 

2120HTTP proxy endpoint used by the managed network proxy.2271HTTP proxy endpoint used when this permissions profile enables the managed network proxy.

2121 2272 

2122Key2273Key

2123 2274 

2124`permissions.network.socks_url`2275`permissions.<name>.network.socks_url`

2125 2276 

2126Type / Values2277Type / Values

2127 2278 


2129 2280 

2130Details2281Details

2131 2282 

2132SOCKS5 proxy endpoint used by the managed network proxy.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.

2133 2296 

2134Key2297Key

2135 2298 


2357 2520 

2358Details2521Details

2359 2522 

2360Mark a project or worktree as trusted or untrusted (`"trusted"` | `"untrusted"`). Untrusted projects skip project-scoped `.codex/` layers.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.

2361 2524 

2362Key2525Key

2363 2526 


2441 2604 

2442Details2605Details

2443 2606 

2444Preferred service tier for new turns. `fast` is honored only when the `features.fast_mode` gate is enabled.2607Preferred service tier for new turns.

2445 2608 

2446Key2609Key

2447 2610 


2601 2764 

2602Key2765Key

2603 2766 

2767`tool_suggest.disabled_tools`

2768 

2769Type / Values

2770 

2771`array<table>`

2772 

2773Details

2774 

2775Disable suggestions for specific discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.

2776 

2777Key

2778 

2779`tool_suggest.discoverables`

2780 

2781Type / Values

2782 

2783`array<table>`

2784 

2785Details

2786 

2787Allow tool suggestions for additional discoverable connectors or plugins. Each entry uses `type = "connector"` or `"plugin"` and an `id`.

2788 

2789Key

2790 

2604`tools.view_image`2791`tools.view_image`

2605 2792 

2606Type / Values2793Type / Values


2617 2804 

2618Type / Values2805Type / Values

2619 2806 

2620`boolean`2807`boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }`

2621 2808 

2622Details2809Details

2623 2810 

2624Deprecated legacy toggle for web search; prefer the top-level `web_search` setting.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.

2625 2812 

2626Key2813Key

2627 2814 


2661 2848 

2662Key2849Key

2663 2850 

2851`tui.keymap.<context>.<action>`

2852 

2853Type / Values

2854 

2855`string | array<string>`

2856 

2857Details

2858 

2859Keyboard shortcut binding for a TUI action. Supported contexts include `global`, `chat`, `composer`, `editor`, `pager`, `list`, and `approval`; context-specific bindings override `tui.keymap.global`.

2860 

2861Key

2862 

2863`tui.keymap.<context>.<action> = []`

2864 

2865Type / Values

2866 

2867`empty array`

2868 

2869Details

2870 

2871Unbind the action in that keymap context. Key names use normalized strings such as `ctrl-a`, `shift-enter`, or `page-down`.

2872 

2873Key

2874 

2664`tui.model_availability_nux.<model>`2875`tui.model_availability_nux.<model>`

2665 2876 

2666Type / Values2877Type / Values


2673 2884 

2674Key2885Key

2675 2886 

2887`tui.notification_condition`

2888 

2889Type / Values

2890 

2891`unfocused | always`

2892 

2893Details

2894 

2895Control whether TUI notifications fire only when the terminal is unfocused or regardless of focus. Defaults to `unfocused`.

2896 

2897Key

2898 

2676`tui.notification_method`2899`tui.notification_method`

2677 2900 

2678Type / Values2901Type / Values


2681 2904 

2682Details2905Details

2683 2906 

2684Notification method for unfocused terminal notifications (default: auto).2907Notification method for terminal notifications (default: auto).

2685 2908 

2686Key2909Key

2687 2910 


2721 2944 

2722Key2945Key

2723 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 

2724`tui.theme`2959`tui.theme`

2725 2960 

2726Type / Values2961Type / Values


2767 3002 

2768Windows-only native sandbox mode when running Codex natively on Windows.3003Windows-only native sandbox mode when running Codex natively on Windows.

2769 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 

2770Expand to view all3017Expand to view all

2771 3018 

2772You 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).


2791 3038 

2792| Key | Type / Values | Details |3039| Key | Type / Values | Details |

2793| --- | --- | --- |3040| --- | --- | --- |

2794| `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`. |

2795| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |3043| `allowed_sandbox_modes` | `array<string>` | Allowed values for `sandbox_mode`. |

2796| `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`. |

2797| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |3045| `features` | `table` | Pinned feature values keyed by the canonical names from `config.toml`'s `[features]` table. |

2798| `features.<name>` | `boolean` | Require a specific canonical feature key to stay enabled or disabled. |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. |

2799| `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. |

2800| `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). |

2801| `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. |

2802| `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. |

2803| `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. |

2804| `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`. |

2805| `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). |


2818 3079 

2819Details3080Details

2820 3081 

2821Allowed 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`.

2822 3095 

2823Key3096Key

2824 3097 


2870 3143 

2871Key3144Key

2872 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 

2873`mcp_servers`3254`mcp_servers`

2874 3255 

2875Type / Values3256Type / Values


2918 3299 

2919Key3300Key

2920 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 

2921`rules`3350`rules`

2922 3351 

2923Type / Values3352Type / Values