routeCodex through KRouter

KRouter setup for Codex

Use one KRouter API key with Codex, keep the provider label as KRouter, and load a model catalog that exposes Sol, Terra, Luna, and fallback models.

Desktop config

Put the model catalog in ~/.codex/krouter-models.json on macOS/Linux or %USERPROFILE%\\.codex\\krouter-models.json on Windows, then paste the matching config into the local Codex config file.

1. Download catalog

https://router.bkuteam.site/krouter-codex/models.json

2. Config paths

macOS/Linux: ~/.codex/config.toml
Windows: %USERPROFILE%\.codex\config.toml

3. Restart Codex

Run codex debug models after restart to verify that Sol is visible.

Mac / Linux config.tomlraw
model_catalog_json = "~/.codex/krouter-models.json"
model_provider = "krouter"
model = "cx/gpt-5.6-sol"
model_reasoning_effort = "medium"
approvals_reviewer = "user"
approval_policy = "never"
sandbox_mode = "danger-full-access"
wire_api = "responses"

[model_providers.krouter]
name = "KRouter"
base_url = "https://router.bkuteam.site/v1"
experimental_bearer_token = "PASTE_KROUTER_API_KEY_HERE"
Windows config.tomlraw
model_catalog_json = "%USERPROFILE%\\.codex\\krouter-models.json"
model_provider = "krouter"
model = "cx/gpt-5.6-sol"
model_reasoning_effort = "medium"
approvals_reviewer = "user"
approval_policy = "never"
sandbox_mode = "danger-full-access"
wire_api = "responses"

[model_providers.krouter]
name = "KRouter"
base_url = "https://router.bkuteam.site/v1"
experimental_bearer_token = "PASTE_KROUTER_API_KEY_HERE"

Copy-ready files

config.example.tomlraw
# macOS / Linux:
model_catalog_json = "~/.codex/krouter-models.json"
# Windows:
# model_catalog_json = "%USERPROFILE%\\.codex\\krouter-models.json"
model_provider = "krouter"
model = "cx/gpt-5.6-sol"
model_reasoning_effort = "medium"
approvals_reviewer = "user"
approval_policy = "never"
sandbox_mode = "danger-full-access"
wire_api = "responses"

[model_providers.krouter]
name = "KRouter"
base_url = "https://router.bkuteam.site/v1"
experimental_bearer_token = "PASTE_KROUTER_API_KEY_HERE"
krouter-models.jsonraw
{
  "models": [
    {
      "slug": "cx/gpt-5.6-sol",
      "display_name": "GPT-5.6-Sol",
      "description": "Highest quality Codex model through KRouter.",
      "default_reasoning_level": "medium",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses with lighter reasoning" },
        { "effort": "medium", "description": "Balances speed and reasoning depth for everyday tasks" },
        { "effort": "high", "description": "Greater reasoning depth for complex work" },
        { "effort": "xhigh", "description": "Extra high reasoning depth for complex work" },
        { "effort": "max", "description": "Maximum reasoning depth for the hardest tasks" },
        { "effort": "ultra", "description": "Maximum reasoning with automatic task delegation" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 1,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": true
    },
    {
      "slug": "cx/gpt-5.6-terra",
      "display_name": "GPT-5.6-Terra",
      "description": "Balanced everyday Codex model through KRouter.",
      "default_reasoning_level": "medium",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses with lighter reasoning" },
        { "effort": "medium", "description": "Balances speed and reasoning depth for everyday tasks" },
        { "effort": "high", "description": "Greater reasoning depth for complex work" },
        { "effort": "xhigh", "description": "Extra high reasoning depth for complex work" },
        { "effort": "max", "description": "Maximum reasoning depth for the hardest tasks" },
        { "effort": "ultra", "description": "Maximum reasoning with automatic task delegation" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 2,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": true
    },
    {
      "slug": "cx/gpt-5.6-luna",
      "display_name": "GPT-5.6-Luna",
      "description": "Fast repeatable-task Codex model through KRouter.",
      "default_reasoning_level": "medium",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses with lighter reasoning" },
        { "effort": "medium", "description": "Balances speed and reasoning depth for everyday tasks" },
        { "effort": "high", "description": "Greater reasoning depth for complex work" },
        { "effort": "xhigh", "description": "Extra high reasoning depth for complex work" },
        { "effort": "max", "description": "Maximum reasoning depth for the hardest tasks" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 3,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": true
    },
    {
      "slug": "cx/gpt-5.6-sol-review",
      "display_name": "GPT-5.6-Sol Review",
      "description": "Review-focused Sol variant through KRouter.",
      "default_reasoning_level": "high",
      "supported_reasoning_levels": [
        { "effort": "medium", "description": "Balanced review quality" },
        { "effort": "high", "description": "Stronger reasoning for code review" },
        { "effort": "xhigh", "description": "Deep review and analysis" },
        { "effort": "max", "description": "Maximum review depth" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 4,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": true
    },
    {
      "slug": "cx/gpt-5.5",
      "display_name": "GPT-5.5",
      "description": "Stable legacy Codex model through KRouter.",
      "default_reasoning_level": "medium",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses with lighter reasoning" },
        { "effort": "medium", "description": "Balances speed and reasoning depth for everyday tasks" },
        { "effort": "high", "description": "Greater reasoning depth for complex work" },
        { "effort": "xhigh", "description": "Extra high reasoning depth for complex work" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 4,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": false
    },
    {
      "slug": "cx/gpt-5.4",
      "display_name": "GPT-5.4",
      "description": "Stable general-purpose Codex model through KRouter.",
      "default_reasoning_level": "medium",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses with lighter reasoning" },
        { "effort": "medium", "description": "Balanced reasoning" },
        { "effort": "high", "description": "Deeper reasoning for hard tasks" },
        { "effort": "xhigh", "description": "Maximum depth" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 6,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": false
    },
    {
      "slug": "cx/gpt-5.4-mini",
      "display_name": "GPT-5.4-Mini",
      "description": "Lightweight fallback Codex model through KRouter.",
      "default_reasoning_level": "medium",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses with lighter reasoning" },
        { "effort": "medium", "description": "Balances speed and reasoning depth for everyday tasks" },
        { "effort": "high", "description": "Greater reasoning depth for complex work" },
        { "effort": "xhigh", "description": "Extra high reasoning depth for complex work" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 5,
      "context_window": 272000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 272000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": false
    },
    {
      "slug": "cx/gpt-5.3-codex-spark",
      "display_name": "GPT-5.3 Codex Spark",
      "description": "Legacy fast Codex model through KRouter.",
      "default_reasoning_level": "low",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Fast responses" },
        { "effort": "medium", "description": "Balanced responses" },
        { "effort": "high", "description": "More depth" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 7,
      "context_window": 128000,
      "base_instructions": "",
      "support_verbosity": true,
      "truncation_policy": { "mode": "tokens", "limit": 128000 },
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"],
      "supports_search_tool": true,
      "include_skills_usage_instructions": true,
      "use_responses_lite": false
    }
  ]
}

Model catalog

cx/gpt-5.6-sol

Best quality, complex builds, design polish

cx/gpt-5.6-terra

Balanced daily coding

cx/gpt-5.6-luna

Fast repeatable tasks

cx/gpt-5.5

Stable fallback

cx/gpt-5.4

General-purpose fallback

cx/gpt-5.4-mini

Lightweight fallback

Plugins, skills, MCP servers, browser tools, and connector access are loaded by Codex on the client machine. KRouter only supplies the model endpoint, API key authentication, routing, and quota logging.