Type object
File match **/.codex/config.toml
Schema URL https://catalog.lintel.tools/schemas/schemastore/codex/latest.json
Source https://developers.openai.com/codex/config-schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Base config deserialized from ~/.codex/config.toml.

Properties

agents

Agent-related settings (thread limits, etc.).

All of: AgentsToml object
allow_login_shell boolean

Whether the model may request a login shell for shell-based tools. Default to true

If true, the model may request a login shell (login = true), and omitting login defaults to using a login shell. If false, the model can never use a login shell: login = true requests are rejected, and omitting login defaults to a non-login shell.

analytics

When false, disables analytics across Codex product surfaces in this machine. Defaults to true.

All of: AnalyticsConfigToml object
approval_policy

Default approval policy for executing commands.

All of: AskForApproval string | string | string | object | string
approvals_reviewer

Configures who approval requests are routed to for review once they have been escalated. This does not disable separate safety checks such as ARC.

All of: ApprovalsReviewer string
apps

Settings for app-specific controls.

Default: null
All of: AppsConfigToml object
audio

Machine-local realtime audio device preferences used by realtime voice.

Default: null
All of: RealtimeAudioToml object
background_terminal_max_timeout integer

Maximum poll window for background terminal output (write_stdin), in milliseconds. Default: 300000 (5 minutes).

format=uint64min=0.0
chatgpt_base_url string

Base URL for requests to ChatGPT (as opposed to the OpenAI API).

check_for_update_on_startup boolean

When true, checks for Codex updates on startup and surfaces update prompts. Set to false only if your Codex updates are centrally managed. Defaults to true.

cli_auth_credentials_store

Preferred backend for storing CLI auth credentials. file (default): Use a file in the Codex home directory. keyring: Use an OS-specific keyring service. auto: Use the keyring if available, otherwise use a file.

Default: null
All of: AuthCredentialsStoreMode string | string | string | string
commit_attribution string

Optional commit attribution text for commit message co-author trailers.

Set to an empty string to disable automatic commit attribution.

compact_prompt string

Compact prompt used for history compaction.

default_permissions string

Default named permissions profile to apply from the [permissions] table.

developer_instructions string

Developer instructions inserted as a developer role message.

Default: null
disable_paste_burst boolean

When true, disables burst-paste detection for typed input entirely. All characters are inserted as they are received, and no buffering or placeholder replacement will occur for fast keypress bursts.

experimental_compact_prompt_file string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

experimental_realtime_start_instructions string

Experimental / do not use. Replaces the built-in realtime start instructions inserted into developer messages when realtime becomes active.

experimental_realtime_ws_backend_prompt string

Experimental / do not use. Overrides only the realtime conversation websocket transport instructions (the Op::RealtimeConversation /ws session.update instructions) without changing normal prompts.

experimental_realtime_ws_base_url string

Experimental / do not use. Overrides only the realtime conversation websocket transport base URL (the Op::RealtimeConversation /v1/realtime connection) without changing normal provider HTTP requests.

experimental_realtime_ws_model string

Experimental / do not use. Selects the realtime websocket model/snapshot used for the Op::RealtimeConversation connection.

experimental_realtime_ws_startup_context string

Experimental / do not use. Replaces the synthesized realtime startup context appended to websocket session instructions. An empty string disables startup context injection entirely.

experimental_use_freeform_apply_patch boolean
experimental_use_unified_exec_tool boolean
features object

Centralized feature flags (new). Prefer this over individual toggles.

Default: null
60 nested properties
apply_patch_freeform boolean
apps boolean
child_agents_md boolean
code_mode boolean
code_mode_only boolean
codex_git_commit boolean
codex_hooks boolean
collab boolean
collaboration_modes boolean
connectors boolean
default_mode_request_user_input boolean
elevated_windows_sandbox boolean
enable_experimental_windows_sandbox boolean
enable_fanout boolean
enable_request_compression boolean
exec_permission_approvals boolean
experimental_use_freeform_apply_patch boolean
experimental_use_unified_exec_tool boolean
experimental_windows_sandbox boolean
fast_mode boolean
guardian_approval boolean
image_detail_original boolean
image_generation boolean
include_apply_patch_tool boolean
js_repl boolean
js_repl_tools_only boolean
memories boolean
memory_tool boolean
multi_agent boolean
multi_agent_v2 boolean
personality boolean
plugins boolean
prevent_idle_sleep boolean
realtime_conversation boolean
remote_models boolean
request_permissions boolean
request_permissions_tool boolean
request_rule boolean
responses_websockets boolean
responses_websockets_v2 boolean
runtime_metrics boolean
search_tool boolean
shell_snapshot boolean
shell_tool boolean
shell_zsh_fork boolean
skill_env_var_dependency_prompt boolean
skill_mcp_dependency_install boolean
sqlite boolean
steer boolean
tool_call_mcp_elicitation boolean
tool_search boolean
tool_suggest boolean
tui_app_server boolean
undo boolean
unified_exec boolean
use_legacy_landlock boolean
use_linux_sandbox_bwrap boolean
web_search boolean
web_search_cached boolean
web_search_request boolean
feedback

When false, disables feedback collection across Codex product surfaces. Defaults to true.

All of: FeedbackConfigToml object
file_opener

Optional URI-based file opener. If set, citations to files in the model output will be hyperlinked using the specified URI scheme.

All of: UriBasedFileOpener string | string
forced_chatgpt_workspace_id string

When set, restricts ChatGPT login to a specific workspace identifier.

Default: null
forced_login_method

When set, restricts the login mechanism users may use.

Default: null
All of: ForcedLoginMethod string
ghost_snapshot

Settings for ghost snapshots (used for undo).

Default: null
All of: GhostSnapshotToml object
hide_agent_reasoning boolean

When set to true, AgentReasoning events will be hidden from the UI/output. Defaults to false.

history

Settings that govern if and what will be written to ~/.codex/history.jsonl.

Default: null
All of: History object
instructions string

System instructions.

js_repl_node_module_dirs AbsolutePathBuf[]

Ordered list of directories to search for Node modules in js_repl.

js_repl_node_path

Optional absolute path to the Node runtime used by js_repl.

All of: AbsolutePathBuf string
log_dir

Directory where Codex writes log files, for example codex-tui.log. Defaults to $CODEX_HOME/log.

All of: AbsolutePathBuf string
mcp_oauth_callback_port integer

Optional fixed port for the local HTTP callback server used during MCP OAuth login. When unset, Codex will bind to an ephemeral port chosen by the OS.

format=uint16min=0.0
mcp_oauth_callback_url string

Optional redirect URI to use during MCP OAuth login. When set, this URI is used in the OAuth authorization request instead of the local listener address. The local callback listener still binds to 127.0.0.1 (using mcp_oauth_callback_port when provided).

mcp_oauth_credentials_store

Preferred backend for storing MCP OAuth credentials. keyring: Use an OS-specific keyring service. https://github.com/openai/codex/blob/main/codex-rs/rmcp-client/src/oauth.rs#L2 file: Use a file in the Codex home directory. auto (default): Use the OS-specific keyring service if available, otherwise use a file.

Default: null
All of: OAuthCredentialsStoreMode string | string | string
mcp_servers Record<string, object>

Definition for MCP servers that Codex can reach out to for tool calls.

Default:
{}
memories

Memories subsystem settings.

All of: MemoriesToml object
model string

Optional override of model selection.

model_auto_compact_token_limit integer

Token usage threshold triggering auto-compaction of conversation history.

format=int64
model_catalog_json

Optional path to a JSON model catalog (applied on startup only). Per-thread config overrides are accepted but do not reapply this (no-ops).

All of: AbsolutePathBuf string
model_context_window integer

Size of the context window for the model, in tokens.

format=int64
model_instructions_file

Optional path to a file containing model instructions that will override the built-in instructions for the selected model. Users are STRONGLY DISCOURAGED from using this field, as deviating from the instructions sanctioned by Codex will likely degrade model performance.

All of: AbsolutePathBuf string
model_provider string

Provider to use from the model_providers map.

model_providers Record<string, object>

User-defined provider entries that extend the built-in list. Built-in IDs cannot be overridden.

Default:
{}
model_reasoning_effort string
Values: "none" "minimal" "low" "medium" "high" "xhigh"
model_reasoning_summary string | string

A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries

model_supports_reasoning_summaries boolean

Override to force-enable reasoning summaries for the configured model.

model_verbosity

Optional verbosity control for GPT-5 models (Responses API text.verbosity).

All of: Verbosity string
notice

Collection of in-product notices (different from notifications) See [crate::config::types::Notices] for more details

All of: Notice object
notify string[]

Optional external command to spawn for end-user notifications.

Default: null
openai_base_url string

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

oss_provider string

Preferred OSS provider for local models, e.g. "lmstudio" or "ollama".

otel

OTEL configuration.

All of: OtelConfigToml object
permissions

Named permissions profiles.

Default: null
All of: PermissionsToml object
personality

Optionally specify a personality for the model

All of: Personality string
plan_mode_reasoning_effort string
Values: "none" "minimal" "low" "medium" "high" "xhigh"
plugins Record<string, object>

User-level plugin config entries keyed by plugin name.

Default:
{}
profile string

Profile to use from the profiles map.

profiles Record<string, object>

Named profiles to facilitate switching between different configurations.

Default:
{}
project_doc_fallback_filenames string[]

Ordered list of fallback filenames to look for when AGENTS.md is missing.

project_doc_max_bytes integer

Maximum number of bytes to include from an AGENTS.md project doc file.

format=uintmin=0.0
project_root_markers string[]

Markers used to detect the project root when searching parent directories for .codex folders. Defaults to [".git"] when unset.

Default: null
projects Record<string, object>
realtime

Experimental / do not use. Realtime websocket session selection. version controls v1/v2 and type controls conversational/transcription.

Default: null
All of: RealtimeToml object
review_model string

Review model override used by the /review feature.

sandbox_mode

Sandbox mode to use.

All of: SandboxMode string
sandbox_workspace_write

Sandbox configuration to apply if sandbox is WorkspaceWrite.

All of: SandboxWorkspaceWrite object
service_tier

Optional explicit service tier preference for new turns (fast or flex).

All of: ServiceTier string
shell_environment_policy
Default:
{
  "exclude": null,
  "experimental_use_profile": null,
  "ignore_default_excludes": null,
  "include_only": null,
  "inherit": null,
  "set": null
}
show_raw_agent_reasoning boolean

When set to true, AgentReasoningRawContentEvent events will be shown in the UI/output. Defaults to false.

skills

User-level skill config entries keyed by SKILL.md path.

All of: SkillsConfig object
sqlite_home

Directory where Codex stores the SQLite state DB. Defaults to $CODEX_SQLITE_HOME when set. Otherwise uses $CODEX_HOME.

All of: AbsolutePathBuf string
suppress_unstable_features_warning boolean

Suppress warnings about unstable (under development) features.

tool_output_token_limit integer

Token budget applied when storing tool/function outputs in the context manager.

format=uintmin=0.0
tool_suggest

Additional discoverable tools that can be suggested for installation.

All of: ToolSuggestConfig object
tools

Nested tools section for feature toggles

All of: ToolsToml object
tui

Collection of settings that are specific to the TUI.

All of: Tui object
windows

Windows-specific configuration.

Default: null
All of: WindowsToml object
windows_wsl_setup_acknowledged boolean

Tracks whether the Windows onboarding screen has been acknowledged.

zsh_path

Optional absolute path to patched zsh used by zsh-exec-bridge-backed shell execution.

All of: AbsolutePathBuf string

Definitions

AbsolutePathBuf string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

AgentRoleToml object
config_file

Path to a role-specific config layer. Relative paths are resolved relative to the config.toml that defines them.

All of: AbsolutePathBuf string
description string

Human-facing role documentation used in spawn tool guidance. Required unless supplied by the referenced agent role file.

nickname_candidates string[]

Candidate nicknames for agents spawned with this role.

AgentsToml Record<string, object>
job_max_runtime_seconds integer

Default maximum runtime in seconds for agent job workers.

format=uint64min=1.0
max_depth integer

Maximum nesting depth allowed for spawned agent threads. Root sessions start at depth 0.

format=int32min=1.0
max_threads integer

Maximum number of agent threads that can be open concurrently. When unset, no limit is enforced.

format=uintmin=1.0
AltScreenMode string | string | string

Controls whether the TUI uses the terminal's alternate screen buffer.

Background: The alternate screen buffer provides a cleaner fullscreen experience without polluting the terminal's scrollback history. However, it conflicts with terminal multiplexers like Zellij that strictly follow the xterm specification, which defines that alternate screen buffers should not have scrollback.

Zellij's behavior: Zellij intentionally disables scrollback in alternate screen mode (see https://github.com/zellij-org/zellij/pull/1032) to comply with the xterm spec. This is by design and not configurable in Zellij—there is no option to enable scrollback in alternate screen mode.

Solution: This setting provides a pragmatic workaround: - auto (default): Automatically detect the terminal multiplexer. If running in Zellij, disable alternate screen to preserve scrollback. Enable it everywhere else. - always: Always use alternate screen mode (original behavior before this fix). - never: Never use alternate screen mode. Runs in inline mode, preserving scrollback in all multiplexers.

The CLI flag --no-alt-screen can override this setting at runtime.

AnalyticsConfigToml object

Analytics settings loaded from config.toml. Fields are optional so we can apply defaults.

enabled boolean

When false, disables analytics across Codex product surfaces in this profile.

AppConfig object

Config values for a single app/connector.

default_tools_approval_mode

Approval mode for tools in this app unless a tool override exists.

All of: AppToolApproval string
default_tools_enabled boolean

Whether tools are enabled by default for this app.

destructive_enabled boolean

Whether tools with destructive_hint = true are allowed for this app.

enabled boolean

When false, Codex does not surface this app.

Default: true
open_world_enabled boolean

Whether tools with open_world_hint = true are allowed for this app.

tools

Per-tool settings for this app.

All of: AppToolsConfig object
AppToolApproval string
AppToolConfig object

Per-tool settings for a single app tool.

approval_mode

Approval mode for this tool.

All of: AppToolApproval string
enabled boolean

Whether this tool is enabled. Some(true) explicitly allows this tool.

AppToolsConfig Record<string, object>

Tool settings for a single app.

ApprovalsReviewer string

Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to user. guardian_subagent uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request.

AppsConfigToml Record<string, object>

App/connector settings loaded from config.toml.

_default

Default settings for all apps.

All of: AppsDefaultConfig object
AppsDefaultConfig object

Default settings that apply to all apps.

destructive_enabled boolean

Whether tools with destructive_hint = true are allowed by default.

enabled boolean

When false, apps are disabled unless overridden by per-app settings.

Default: true
open_world_enabled boolean

Whether tools with open_world_hint = true are allowed by default.

AskForApproval string | string | string | object | string

Determines the conditions under which the user is consulted to approve running the command proposed by Codex.

AuthCredentialsStoreMode string | string | string | string

Determine where Codex should store CLI auth credentials.

BundledSkillsConfig object
enabled boolean
Default: true
ConfigProfile object

Collection of common configuration options that a user can define as a unit in config.toml.

analytics object

Analytics settings loaded from config.toml. Fields are optional so we can apply defaults.

1 nested properties
enabled boolean

When false, disables analytics across Codex product surfaces in this profile.

approval_policy string | string | string | object | string

Determines the conditions under which the user is consulted to approve running the command proposed by Codex.

approvals_reviewer string

Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to user. guardian_subagent uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request.

Values: "user" "guardian_subagent"
chatgpt_base_url string
experimental_compact_prompt_file string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

experimental_use_freeform_apply_patch boolean
experimental_use_unified_exec_tool boolean
features object

Optional feature toggles scoped to this profile.

Default: null
60 nested properties
apply_patch_freeform boolean
apps boolean
child_agents_md boolean
code_mode boolean
code_mode_only boolean
codex_git_commit boolean
codex_hooks boolean
collab boolean
collaboration_modes boolean
connectors boolean
default_mode_request_user_input boolean
elevated_windows_sandbox boolean
enable_experimental_windows_sandbox boolean
enable_fanout boolean
enable_request_compression boolean
exec_permission_approvals boolean
experimental_use_freeform_apply_patch boolean
experimental_use_unified_exec_tool boolean
experimental_windows_sandbox boolean
fast_mode boolean
guardian_approval boolean
image_detail_original boolean
image_generation boolean
include_apply_patch_tool boolean
js_repl boolean
js_repl_tools_only boolean
memories boolean
memory_tool boolean
multi_agent boolean
multi_agent_v2 boolean
personality boolean
plugins boolean
prevent_idle_sleep boolean
realtime_conversation boolean
remote_models boolean
request_permissions boolean
request_permissions_tool boolean
request_rule boolean
responses_websockets boolean
responses_websockets_v2 boolean
runtime_metrics boolean
search_tool boolean
shell_snapshot boolean
shell_tool boolean
shell_zsh_fork boolean
skill_env_var_dependency_prompt boolean
skill_mcp_dependency_install boolean
sqlite boolean
steer boolean
tool_call_mcp_elicitation boolean
tool_search boolean
tool_suggest boolean
tui_app_server boolean
undo boolean
unified_exec boolean
use_legacy_landlock boolean
use_linux_sandbox_bwrap boolean
web_search boolean
web_search_cached boolean
web_search_request boolean
include_apply_patch_tool boolean
js_repl_node_module_dirs AbsolutePathBuf[]

Ordered list of directories to search for Node modules in js_repl.

js_repl_node_path string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

model string
model_catalog_json

Optional path to a JSON model catalog (applied on startup only).

All of: AbsolutePathBuf string
model_instructions_file

Optional path to a file containing model instructions.

All of: AbsolutePathBuf string
model_provider string

The key in the model_providers map identifying the [ModelProviderInfo] to use.

model_reasoning_effort string
Values: "none" "minimal" "low" "medium" "high" "xhigh"
model_reasoning_summary string | string

A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries

model_verbosity string

Controls output length/detail on GPT-5 models via the Responses API. Serialized with lowercase values to match the OpenAI API.

Values: "low" "medium" "high"
oss_provider string
personality string
Values: "none" "friendly" "pragmatic"
plan_mode_reasoning_effort string
Values: "none" "minimal" "low" "medium" "high" "xhigh"
sandbox_mode string
Values: "read-only" "workspace-write" "danger-full-access"
service_tier string
Values: "fast" "flex"
tools object
2 nested properties
view_image boolean

Enable the view_image tool that lets the agent attach local images.

Default: null
web_search
Default: null
All of: WebSearchToolConfig object
tools_view_image boolean
web_search string
Values: "disabled" "cached" "live"
windows
Default: null
All of: WindowsToml object
zsh_path

Optional absolute path to patched zsh used by zsh-exec-bridge-backed shell execution.

All of: AbsolutePathBuf string
FeedbackConfigToml object
enabled boolean

When false, disables the feedback flow across Codex product surfaces.

FileSystemAccessMode string

Access mode for a filesystem entry.

When two equally specific entries target the same path, we compare these by conflict precedence rather than by capability breadth: none beats write, and write beats read.

FilesystemPermissionToml FileSystemAccessMode | object
FilesystemPermissionsToml object
ForcedLoginMethod string
GhostSnapshotToml object
disable_warnings boolean

Disable all ghost snapshot warning events.

ignore_large_untracked_dirs integer

Ignore untracked directories that contain this many files or more. (Still emits a warning unless warnings are disabled.)

format=int64
ignore_large_untracked_files integer

Exclude untracked files larger than this many bytes from ghost snapshots.

format=int64
GranularApprovalConfig object
mcp_elicitations boolean required

Whether to allow MCP elicitation prompts.

rules boolean required

Whether to allow prompts triggered by execpolicy prompt rules.

sandbox_approval boolean required

Whether to allow shell command approval requests, including inline with_additional_permissions and require_escalated requests.

request_permissions boolean

Whether to allow prompts triggered by the request_permissions tool.

Default: false
skill_approval boolean

Whether to allow approval prompts triggered by skill script execution.

Default: false
History object

Settings that govern if and what will be written to ~/.codex/history.jsonl.

persistence required

If true, history entries will not be written to disk.

All of: HistoryPersistence string | string
max_bytes integer

If set, the maximum size of the history file in bytes. The oldest entries are dropped once the file exceeds this limit.

format=uintmin=0.0
HistoryPersistence string | string
McpServerToolConfig object

Per-tool approval settings for a single MCP server tool.

approval_mode

Approval mode for this tool.

All of: AppToolApproval string
MemoriesToml object

Memories settings loaded from config.toml.

consolidation_model string

Model used for memory consolidation.

extract_model string

Model used for thread summarisation.

generate_memories boolean

When false, newly created threads are stored with memory_mode = "disabled" in the state DB.

max_raw_memories_for_consolidation integer

Maximum number of recent raw memories retained for global consolidation.

format=uintmin=0.0
max_rollout_age_days integer

Maximum age of the threads used for memories.

format=int64
max_rollouts_per_startup integer

Maximum number of rollout candidates processed per pass.

format=uintmin=0.0
max_unused_days integer

Maximum number of days since a memory was last used before it becomes ineligible for phase 2 selection.

format=int64
min_rollout_idle_hours integer

Minimum idle time between last thread activity and memory creation (hours). > 12h recommended.

format=int64
no_memories_if_mcp_or_web_search boolean

When true, web searches and MCP tool calls mark the thread memory_mode as "polluted".

use_memories boolean

When false, skip injecting memory usage instructions into developer prompts.

ModelAvailabilityNuxConfig Record<string, integer>
ModelProviderAuthInfo object

Configuration for obtaining a provider bearer token from a command.

command string required

Command to execute. Bare names are resolved via PATH; paths are resolved against cwd.

args string[]

Command arguments.

Default:
[]
cwd

Working directory used when running the token command.

All of: AbsolutePathBuf string
refresh_interval_ms integer

Maximum age for the cached token before rerunning the command.

Default: 300000
format=uint64min=1.0
timeout_ms integer

Maximum time to wait for the token command to exit successfully.

Default: 5000
format=uint64min=1.0
ModelProviderInfo object

Serializable representation of a provider definition.

name string required

Friendly display name.

auth

Command-backed bearer-token configuration for this provider.

All of: ModelProviderAuthInfo object
base_url string

Base URL for the provider's OpenAI-compatible API.

env_http_headers Record<string, string>

Optional HTTP headers to include in requests to this provider where the (key, value) pairs are the header name and environment variable whose value should be used. If the environment variable is not set, or the value is empty, the header will not be included in the request.

env_key string

Environment variable that stores the user's API key for this provider.

env_key_instructions string

Optional instructions to help the user get a valid value for the variable and set it.

experimental_bearer_token string

Value to use with Authorization: Bearer <token> header. Use of this config is discouraged in favor of env_key for security reasons, but this may be necessary when using this programmatically.

http_headers Record<string, string>

Additional HTTP headers to include in requests to this provider where the (key, value) pairs are the header name and value.

query_params Record<string, string>

Optional query parameters to append to the base URL.

request_max_retries integer

Maximum number of times to retry a failed HTTP request to this provider.

format=uint64min=0.0
requires_openai_auth boolean

Does this provider require an OpenAI API Key or ChatGPT login token? If true, user is presented with login screen on first run, and login preference and token/key are stored in auth.json. If false (which is the default), login screen is skipped, and API key (if needed) comes from the "env_key" environment variable.

Default: false
stream_idle_timeout_ms integer

Idle timeout (in milliseconds) to wait for activity on a streaming response before treating the connection as lost.

format=uint64min=0.0
stream_max_retries integer

Number of times to retry reconnecting a dropped streaming response before failing.

format=uint64min=0.0
supports_websockets boolean

Whether this provider supports the Responses API WebSocket transport.

Default: false
websocket_connect_timeout_ms integer

Maximum time (in milliseconds) to wait for a websocket connection attempt before treating it as failed.

format=uint64min=0.0
wire_api

Which wire protocol this provider expects.

Default: "responses"
All of: WireApi string
NetworkDomainPermissionToml string
NetworkDomainPermissionsToml object
NetworkModeSchema string
NetworkToml object
allow_local_binding boolean
allow_upstream_proxy boolean
dangerously_allow_all_unix_sockets boolean
dangerously_allow_non_loopback_proxy boolean
domains object
enable_socks5 boolean
enable_socks5_udp boolean
enabled boolean
mode string
Values: "limited" "full"
proxy_url string
socks_url string
unix_sockets object
NetworkUnixSocketPermissionToml string
NetworkUnixSocketPermissionsToml object
Notice object

Settings for notices we display to users via the tui and app-server clients (primarily the Codex IDE extension). NOTE: these are different from notifications - notices are warnings, NUX screens, acknowledgements, etc.

hide_full_access_warning boolean

Tracks whether the user has acknowledged the full access warning prompt.

hide_gpt-5.1-codex-max_migration_prompt boolean

Tracks whether the user has seen the gpt-5.1-codex-max migration prompt

hide_gpt5_1_migration_prompt boolean

Tracks whether the user has seen the model migration prompt

hide_rate_limit_model_nudge boolean

Tracks whether the user opted out of the rate limit model switch reminder.

hide_world_writable_warning boolean

Tracks whether the user has acknowledged the Windows world-writable directories warning.

model_migrations Record<string, string>

Tracks acknowledged model migrations as old->new model slug mappings.

Default:
{}
NotificationMethod string
Notifications boolean | string[]
OAuthCredentialsStoreMode string | string | string

Determine where Codex should store and read MCP credentials.

OtelConfigToml object

OTEL settings loaded from config.toml. Fields are optional so we can apply defaults.

environment string

Mark traces with environment (dev, staging, prod, test). Defaults to dev.

exporter

Optional log exporter

All of: OtelExporterKind string | object | object
log_user_prompt boolean

Log user prompt in traces

metrics_exporter

Optional metrics exporter

All of: OtelExporterKind string | object | object
trace_exporter

Optional trace exporter

All of: OtelExporterKind string | object | object
OtelExporterKind string | object | object

Which OTEL exporter to use.

OtelHttpProtocol string | string
OtelTlsConfig object
ca-certificate string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

client-certificate string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

client-private-key string

A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).

IMPORTANT: When deserializing an AbsolutePathBuf, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.

PermissionProfileToml object
filesystem object
network object
12 nested properties
allow_local_binding boolean
allow_upstream_proxy boolean
dangerously_allow_all_unix_sockets boolean
dangerously_allow_non_loopback_proxy boolean
domains object
enable_socks5 boolean
enable_socks5_udp boolean
enabled boolean
mode string
Values: "limited" "full"
proxy_url string
socks_url string
unix_sockets object
PermissionsToml object
Personality string
PluginConfig object
enabled boolean
Default: true
ProjectConfig object
trust_level string

Represents the trust level for a project directory. This determines the approval policy and sandbox mode applied.

Values: "trusted" "untrusted"
RawMcpServerConfig object
args string[]
Default: null
bearer_token string
bearer_token_env_var string
command string
cwd string
Default: null
disabled_tools string[]
Default: null
enabled boolean
Default: null
enabled_tools string[]
Default: null
env Record<string, string>
Default: null
env_http_headers Record<string, string>
Default: null
env_vars string[]
Default: null
http_headers Record<string, string>
name string

Legacy display-name field accepted for backward compatibility.

Default: null
oauth_resource string
Default: null
required boolean
Default: null
scopes string[]
Default: null
startup_timeout_ms integer
Default: null
format=uint64min=0.0
startup_timeout_sec number
Default: null
format=double
tool_timeout_sec number
Default: null
format=double
tools Record<string, object>
Default: null
url string
RealtimeAudioToml object
microphone string
speaker string
RealtimeConversationVersion string
RealtimeToml object
type string
Values: "conversational" "transcription"
version string
Values: "v1" "v2"
RealtimeWsMode string
ReasoningSummary string | string

A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries

SandboxMode string
SandboxWorkspaceWrite object
exclude_slash_tmp boolean
Default: false
exclude_tmpdir_env_var boolean
Default: false
network_access boolean
Default: false
writable_roots AbsolutePathBuf[]
Default:
[]
ServiceTier string
ShellEnvironmentPolicyInherit string | string | string
ShellEnvironmentPolicyToml object

Policy for building the env when spawning a process via either the shell or local_shell tool.

exclude string[]

List of regular expressions.

experimental_use_profile boolean
ignore_default_excludes boolean
include_only string[]

List of regular expressions.

inherit string | string | string
set Record<string, string>
SkillConfig object
enabled boolean required
name string

Name-based selector.

path

Path-based selector.

All of: AbsolutePathBuf string
SkillsConfig object
bundled object
1 nested properties
enabled boolean
Default: true
config SkillConfig[]
ToolSuggestConfig object
Default:
[]
ToolSuggestDiscoverable object
id string required
type string required
Values: "connector" "plugin"
ToolSuggestDiscoverableType string
ToolsToml object
view_image boolean

Enable the view_image tool that lets the agent attach local images.

Default: null
web_search
Default: null
All of: WebSearchToolConfig object
TrustLevel string

Represents the trust level for a project directory. This determines the approval policy and sandbox mode applied.

Tui object

Collection of settings that are specific to the TUI.

alternate_screen

Controls whether the TUI uses the terminal's alternate screen buffer.

  • auto (default): Disable alternate screen in Zellij, enable elsewhere. - always: Always use alternate screen (original behavior). - never: Never use alternate screen (inline mode only, preserves scrollback).

Using alternate screen provides a cleaner fullscreen experience but prevents scrollback in terminal multiplexers like Zellij that follow the xterm spec.

Default: "auto"
All of: AltScreenMode string | string | string
animations boolean

Enable animations (welcome screen, shimmer effects, spinners). Defaults to true.

Default: true
model_availability_nux

Startup tooltip availability NUX state persisted by the TUI.

Default:
{}
notification_method

Notification method to use for unfocused terminal notifications. Defaults to auto.

Default: "auto"
All of: NotificationMethod string
notifications

Enable desktop notifications from the TUI when the terminal is unfocused. Defaults to true.

Default: true
All of: Notifications boolean | string[]
show_tooltips boolean

Show startup tooltips in the TUI welcome screen. Defaults to true.

Default: true
status_line string[]

Ordered list of status line item identifiers.

When set, the TUI renders the selected items as the status line. When unset, the TUI defaults to: model-with-reasoning, context-remaining, and current-dir.

Default: null
terminal_title string[]

Ordered list of terminal title item identifiers.

When set, the TUI renders the selected items into the terminal window/tab title. When unset, the TUI defaults to: spinner and project.

Default: null
theme string

Syntax highlighting theme name (kebab-case).

When set, overrides automatic light/dark theme detection. Use /theme in the TUI or see $CODEX_HOME/themes for custom themes.

Default: null
UriBasedFileOpener string | string
Verbosity string

Controls output length/detail on GPT-5 models via the Responses API. Serialized with lowercase values to match the OpenAI API.

WebSearchContextSize string
WebSearchLocation object
city string
country string
region string
timezone string
WebSearchMode string
WebSearchToolConfig object
allowed_domains string[]
context_size string
Values: "low" "medium" "high"
location object
4 nested properties
city string
country string
region string
timezone string
WindowsSandboxModeToml string
WindowsToml object
sandbox string
Values: "elevated" "unelevated"
sandbox_private_desktop boolean

Defaults to true. Set to false to launch the final sandboxed child process on Winsta0\\Default instead of a private desktop.

WireApi string

Wire protocol that the provider speaks.