#:schema https://developers.openai.com/codex/config-schema.json # Everything Claude Code (ECC) — Codex Reference Configuration # # Copy this file to ~/.codex/config.toml for global defaults, or keep it in # the project root as .codex/config.toml for project-local settings. # # Official docs: # - https://developers.openai.com/codex/config-reference # - https://developers.openai.com/codex/multi-agent # Model selection # Leave `model` and `model_provider` unset so Codex CLI uses its current # built-in defaults. Uncomment and pin them only if you intentionally want # repo-local or global model overrides. # Top-level runtime settings (current Codex schema) approval_policy = "on-request" sandbox_mode = "workspace-write" web_search = "live" # External notifications receive a JSON payload on stdin. notify = [ "terminal-notifier", "-title", "Codex ECC", "-message", "Task completed!", "-sound", "default", ] # Persistent instructions are appended to every prompt (additive, unlike # model_instructions_file which replaces AGENTS.md). persistent_instructions = "Follow project AGENTS.md guidelines. Use available MCP servers when they can help." # model_instructions_file replaces built-in instructions instead of AGENTS.md, # so leave it unset unless you intentionally want a single override file. # model_instructions_file = "/absolute/path/to/instructions.md" # MCP servers # Keep the default project set lean. API-backed servers inherit credentials from # the launching environment or can be supplied by a user-level ~/.codex/config.toml. [mcp_servers.github] command = "npx" args = ["-y", "@modelcontextprotocol/server-github"] startup_timeout_sec = 30 [mcp_servers.context7] command = "npx" # Canonical Codex section name is `context7`; the package itself remains # `@upstash/context7-mcp`. args = ["-y", "@upstash/context7-mcp@latest"] startup_timeout_sec = 30 [mcp_servers.exa] url = "https://mcp.exa.ai/mcp" [mcp_servers.memory] command = "npx" args = ["-y", "@modelcontextprotocol/server-memory"] startup_timeout_sec = 30 [mcp_servers.playwright] command = "npx" args = ["-y", "@playwright/mcp@latest", "--extension"] startup_timeout_sec = 30 [mcp_servers.sequential-thinking] command = "npx" args = ["-y", "@modelcontextprotocol/server-sequential-thinking"] startup_timeout_sec = 30 # Additional MCP servers (uncomment as needed): # [mcp_servers.supabase] # command = "npx" # args = ["-y", "supabase-mcp-server@latest", "--read-only"] # # [mcp_servers.firecrawl] # command = "npx" # args = ["-y", "firecrawl-mcp"] # # [mcp_servers.fal-ai] # command = "npx" # args = ["-y", "fal-ai-mcp-server"] # # [mcp_servers.cloudflare] # command = "npx" # args = ["-y", "@cloudflare/mcp-server-cloudflare"] [features] # Codex multi-agent support is experimental as of March 2026. multi_agent = true # Profiles — switch with `codex -p ` [profiles.strict] approval_policy = "on-request" sandbox_mode = "read-only" web_search = "cached" [profiles.yolo] approval_policy = "never" sandbox_mode = "workspace-write" web_search = "live" [agents] max_threads = 6 max_depth = 1 [agents.explorer] description = "Read-only codebase explorer for gathering evidence before changes are proposed." config_file = "agents/explorer.toml" [agents.reviewer] description = "PR reviewer focused on correctness, security, and missing tests." config_file = "agents/reviewer.toml" [agents.docs_researcher] description = "Documentation specialist that verifies APIs, framework behavior, and release notes." config_file = "agents/docs-researcher.toml"