If you read our take on why KAT-Coder-Pro V2.5 is the cheap coder that just went second on SWE-Bench Pro, the obvious next question is: how do I actually point my agent at it? It's closed-weights, so you can't ollama pull it — but it's served over an OpenAI-compatible API, which makes wiring it in a five-minute job. Here are the two paths that matter.

First, one fact you'll reuse everywhere: on OpenRouter the model id is kwaipilot/kat-coder-pro-v2.5, the base URL is https://openrouter.ai/api/v1, and it lists at roughly $0.74 / $2.96 per million input / output tokens.

0. Verify your key and the model id first#

Before touching any agent config, confirm the endpoint works with a one-line request. Grab an API key from openrouter.ai, then:

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kwaipilot/kat-coder-pro-v2.5",
    "messages": [{"role": "user", "content": "Reply with the single word: ready"}]
  }'

A JSON body with ready in the message content means your key, the model id, and billing are all live. If you skip this step, every later failure looks like an agent bug when it's really a typo in the model id.

1. Cline — native, no proxy#

Cline speaks OpenRouter directly, so this is the shortest path.

  1. Open Cline's settings (the gear icon).
  2. Set API Provider to OpenRouter.
  3. Paste your OpenRouter API key.
  4. In the model field, enter kwaipilot/kat-coder-pro-v2.5.

That's the whole change. Cline will pass its tool-call schemas through unchanged, and KAT-Coder-Pro V2.5 — built for exactly this kind of read-file / edit / run-tests loop — handles them. Keep a second Cline profile on Opus 4.8 for the hard tasks; switching is a dropdown, not a reinstall.

2. Claude Code — via claude-code-router#

Claude Code speaks the Anthropic API, and KAT is served in OpenAI format, so you need a translator. The clean one is claude-code-router (ccr), a local proxy that intercepts Claude Code's requests and forwards them to whichever provider you name.

Install both the CLI and the router:

npm install -g @anthropic-ai/claude-code
npm install -g @musistudio/claude-code-router

Then create ~/.claude-code-router/config.json with OpenRouter as a provider and KAT as the default route:

{
  "Providers": [
    {
      "name": "openrouter",
      "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
      "api_key": "sk-or-...",
      "models": ["kwaipilot/kat-coder-pro-v2.5"]
    }
  ],
  "Router": {
    "default": "openrouter,kwaipilot/kat-coder-pro-v2.5"
  }
}

Launch Claude Code through the router instead of directly:

ccr code

Now every request Claude Code makes goes to KAT-Coder-Pro V2.5. When a task turns out to be one of the hard ones, switch models for that session without leaving the terminal:

/model openrouter,anthropic/claude-opus-4.8

(Add a second provider entry for Opus first, or point the fallback at whatever frontier model you keep on retainer.)

When to actually route here#

The point of a router isn't to replace Opus — it's to stop paying frontier prices for routine work. Send the bulk of your agentic coding loop to KAT-Coder-Pro V2.5, keep a frontier model one /model switch away, and let the cost difference compound across a day of token-heavy iteration. Verify the endpoint with the curl above, wire up whichever agent you use, and the near-frontier discount is yours in five minutes.