LIVE|CLI v0.144.0·model GPT-5.6 Sol·verified 2026-07-09
Codex Insider
The unofficial wire for OpenAI Codex.
config.toml recipe

Every Codex off-switch

Published Jul 15, 2026 · Verified against the official config docs

What it does

Codex has an opt-out for almost every background behavior, but the keys are scattered across a dozen config.toml sections. This is the whole map in one place: one key per thing you want off. Telemetry, transcript storage, auto-compact, web search, websocket transport, memories, fast mode, skills, update checks, and the TUI polish. Every row below is the exact key and the exact value that turns it off.

Codex ships an opt-out for nearly every background behavior, but the keys live in a dozen different sections of config.toml. If you’ve ever typed codex disable into autocomplete and gotten a shopping list back, this is that list mapped to real keys.

Values

What you want off Key Value
Analytics analytics.enabled false
OpenTelemetry export otel.exporter / otel.metrics_exporter / otel.trace_exporter "none"
Prompt text in OTel logs otel.log_user_prompt false
Transcript saved to disk history.persistence "none"
Auto-compaction model_auto_compact_token_limit set a token number
Web search tool web_search "disabled"
WebSocket transport model_providers.<id>.supports_websockets false
Memories features.memories false
Reusing existing memories memories.use_memories false
Writing new memories memories.generate_memories false
Fast-mode tier picker features.fast_mode false
A single skill [[skills.config]]enabled false
Update check on startup check_for_update_on_startup false
TUI animations tui.animations false
TUI notifications tui.notifications false
Onboarding tooltips tui.show_tooltips false
/feedback command feedback.enabled false
Paste-burst detection disable_paste_burst true
Unstable-features warning suppress_unstable_features_warning true
# root-level switches
analytics.enabled = false
web_search = "disabled"
check_for_update_on_startup = false
disable_paste_burst = true

[otel]
exporter = "none"
metrics_exporter = "none"
trace_exporter = "none"

[history]
persistence = "none"

[features]
memories = false
fast_mode = false

[[skills.config]]
path = "~/.codex/skills/example"
enabled = false

When to change it

Corp or regulated machine where security wants zero telemetry leaving the box: analytics.enabled = false plus all three otel.* exporters set to "none".

Sensitive codebase and you don’t want the session written to history.jsonl: history.persistence = "none".

Offline or air-gapped: web_search = "disabled" and check_for_update_on_startup = false so Codex stops reaching out.

Stuck in the websocket reconnect loop from #13041: set supports_websockets = false on your provider to force the HTTPS transport.

Gotchas

analytics.enabled = false doesn’t zero out metrics on its own. The metrics exporter defaults to statsig (config reference), so set otel.metrics_exporter = "none" too if you want nothing shipping.

web_search defaults to "cached", not off. "disabled" is the only value that removes the tool; the old features.web_search* and tools.web_search boolean forms still parse but are renamed (config reference).

The websocket switch is not a documented fix for #13041. That issue (open, 74 comments) is the server closing the socket with a 1008 Policy frame, not a config bug. Flipping supports_websockets = false just forces the HTTPS fallback people already land on, which stops the reconnect churn. No maintainer has blessed it as the fix.

features.memories is off by default, so that row is belt-and-suspenders unless you turned memories on. The two granular knobs only matter once it’s enabled.

A few keys got renamed and the old spellings may still parse: background_terminal_timeout is now background_terminal_max_timeout, experimental_use_unified_exec_tool is now features.unified_exec, and memories.no_memories_if_mcp_or_web_search is now memories.disable_on_external_context (config reference).

  • /config/model_reasoning_effort/ — the other big lever on cost and speed. Turning things off trims noise; effort is where you trade thinking time for quality.

Sources