Manages OpenAI Codex CLI configuration including config.toml settings, MCP servers, model profiles, sandbox modes, approval policies, and skill paths. Use when configuring Codex CLI, setting up model profiles, managing MCP server integrations, troubleshooting Codex configuration issues, or optimizing Codex for different workflows.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Manages configuration files for OpenAI Codex CLI, including model settings, sandbox policies, MCP servers, and profiles.
Primary Config:
~/.codex/config.toml — User-level configurationSkills Paths (precedence, highest first):
$CWD/.codex/skills/ — Current directory$CWD/../.codex/skills/ — Parent directory$REPO_ROOT/.codex/skills/ — Repository root~/.codex/skills/ — User-level/etc/codex/skills/ — System/admin levelOverride any config value at runtime:
codex -c model="o3"
codex -c 'sandbox_permissions=["disk-full-read-access"]'
codex -c shell_environment_policy.inherit=all
# Model settings
model = "gpt-5.2-codex"
model_verbosity = "medium" # high | medium | low
model_reasoning_effort = "high" # low | high | xhigh
# Permissions
approval_policy = "on-failure" # untrusted | on-failure | on-request | never
sandbox_mode = "workspace-write" # read-only | workspace-write | danger-full-access
exec_timeout_ms = 300000 # 5 minutes
# Misc
file_opener = "cursor" # Editor for opening files
model = "gpt-5.2-codex"
model_verbosity = "medium"
model_reasoning_summary = "auto" # auto | concise | detailed
model_reasoning_summary_format = "experimental"
model_supports_reasoning_summaries = true
model_reasoning_effort = "high"
tool_output_token_limit = 25000
Define named profiles for different workflows:
[profiles.max]
model = "gpt-5.1-codex-max"
model_verbosity = "high"
model_reasoning_effort = "xhigh"
[profiles.fast]
model = "gpt-5.1-codex-mini"
model_verbosity = "low"
model_reasoning_effort = "low"
[profiles.normal]
model = "gpt-5.2"
model_verbosity = "medium"
model_reasoning_effort = "high"
Usage:
codex -p max "complex refactoring task"
codex -p fast "quick fix"
| Mode | Description | Use Case |
|---|---|---|
read-only | No write access | Safe exploration |
workspace-write | Write to workspace only | Normal development |
danger-full-access | Full system access | Trusted operations |
codex -s read-only "analyze this codebase"
codex -s workspace-write "implement feature"
codex --dangerously-bypass-approvals-and-sandbox # EXTREME CAUTION
| Policy | Behavior |
|---|---|
untrusted | Only trusted commands (ls, cat, sed) run without approval |
on-failure | All commands run; approval only if command fails |
on-request | Model decides when to ask |
never | Never ask for approval |
codex -a untrusted "careful task"
codex -a never "automated pipeline"
codex --full-auto # Alias for -a on-request --sandbox workspace-write
[projects]
"/path/to/trusted/project" = { trust_level = "trusted" }
"/path/to/another" = { trust_level = "trusted" }
[shell_environment_policy]
set = { MY_VAR = "value" } # Force-set environment vars
inherit = "all" # all | core | none
ignore_default_excludes = false
include_only = [] # Whitelist patterns
Toggle experimental features:
[features]
unified_exec = true
shell_snapshot = true
apply_patch_freeform = true
exec_policy = true
remote_compaction = true
skills = true
CLI toggle:
codex --enable skills
codex --disable remote_compaction
[tui]
notifications = ["agent-turn-complete", "approval-requested"]
[mcp_servers.server-name]
command = "npx"
args = ["-y", "@package/mcp-server"]
enabled = true
tool_timeout_sec = 60.0
[mcp_servers.server-name.env]
API_KEY = "your-key"
Context7 (documentation):
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp", "--api-key", "YOUR_KEY"]
Firecrawl (web scraping):
[mcp_servers.firecrawl]
command = "npx"
args = ["-y", "firecrawl-mcp"]
[mcp_servers.firecrawl.env]
FIRECRAWL_API_KEY = "YOUR_KEY"
Graphite (stacked PRs):
[mcp_servers.graphite]
command = "gt"
args = ["mcp"]
Linear (project management):
[mcp_servers.linear]
command = "npx"
args = ["-y", "mcp-remote@latest", "https://mcp.linear.app/sse"]
[mcp_servers.disabled-server]
command = "some-command"
args = []
enabled = false
Codex loads skills from multiple locations with precedence:
.codex/skills/ — Project-specific../.codex/skills/ — Shared in parent folder$REPO_ROOT/.codex/skills/ — Repository-wide~/.codex/skills/ — Personal skills/etc/codex/skills/ — System-wide$plan, $skill-creator)# Explicit invocation
codex "$plan implement authentication"
codex "$skill-creator new skill for testing"
# Implicit (Codex decides based on context)
codex "plan out the implementation"
$plan — Research and create implementation plans$skill-creator — Bootstrap new skills$skill-installer — Download skills from GitHub| Flag | Equivalent |
|---|---|
--full-auto | -a on-request --sandbox workspace-write |
--oss | -c model_provider=oss (local LM Studio/Ollama) |
--search | Enable web search tool |
codex --full-auto "implement feature"
codex --oss --local-provider ollama "explain this code"
codex --search "find latest React patterns"
codex -C /path/to/project "work here"
codex --add-dir /additional/writable/path "access multiple dirs"
# Check TOML syntax
cat ~/.codex/config.toml | toml-lint
# Test config override
codex -c model="test" --help
# Verify MCP server
codex mcp list
Config not loading:
~/.codex/config.toml exists-c to override and testMCP server not connecting:
enabled = truetool_timeout_secSkills not found:
Sandbox too restrictive:
-s workspace-write for normal development--add-dir for additional paths# Check current features
codex features
# Resume previous session
codex resume
codex resume --last
# Run in sandbox debug mode
codex sandbox <command>
workspace-write sandbox for most workapproval_policy = "on-failure" as baselinedanger-full-access when necessaryexec_timeout_mstool_output_token_limit for large outputs~/.codex/skills/