#: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 # This project intentionally pins a project-local provider + model so the same # orchestration, MCP servers, and sub-agents run through OpenRouter + Claude. # Paste your OpenRouter token directly below if you do not want to use env vars. model_provider = "openrouter" model = "anthropic/claude-sonnet-4.5" [model_providers.openrouter] name = "OpenRouter" base_url = "https://openrouter.ai/api/v1" # Paste your token here: # experimental_bearer_token = "or-xxxxxxxxxxxxxxxxxxxxxxxx" experimental_bearer_token = "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" wire_api = "responses" requires_openai_auth = false [model_providers.openrouter.http_headers] # Optional but recommended by OpenRouter for app attribution. HTTP-Referer = "https://local.kis-toir" X-Title = "KIS-TOiR" # 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. # macOS example (uncomment on Mac if `terminal-notifier` is installed): # notify = [ # "terminal-notifier", # "-title", "Codex KIS", # "-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 collaboration is stable and on by default in current builds. # Keep the explicit toggle here so the repo documents its expectation clearly. 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] # Multi-agent role limits and local role definitions. # These map to `.codex/agents/*.toml` and mirror the repo's explorer/reviewer/docs workflow. 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 DSL fidelity. Proposes patches; writes nothing directly." 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" [agents.generator] description = "LLM generation agent: writes server/src/modules/, client/src/resources/, app.module.ts, App.tsx only. Never touches DSL, prompts, or deterministic tooling." config_file = "agents/generator.toml"