Kimi K3's cache discount doesn't survive OpenRouter
I wrote recently that every LLM tool call re-sends your entire conversation, and that prompt caching brings the re-read down to about a tenth of full price. There is a lot of buzz around Kimi K3 at the moment, so I tried it in opencode, an open-source coding agent, paying per token through OpenRouter and expecting caching to absorb most of the re-reads. Thirteen prompts in, the billing page said otherwise.
Four rows from the OpenRouter activity log:
| Input tokens | Output tokens | Cost |
|---|---|---|
| 11,235 | 217 | $0.0364 |
| 13,949 | 196 | $0.0443 |
| 22,210 | 2,699 | $0.107 |
| 45,512 | 1,194 | $0.104 |
Subtract the first two rows and you get the input rate: 2,714 extra tokens for $0.0079, or $2.91 per million. That is K3’s list price, so nothing was cached.
Moonshot, the company behind K3, caches prompts automatically. The discount just doesn’t survive the trip through OpenRouter, and you can confirm that before spending anything: every K3 endpoint on OpenRouter reports supports_implicit_caching: false, its flag for that automatic caching.
curl -s https://openrouter.ai/api/v1/models/moonshotai/kimi-k3/endpoints \
| jq '.data.endpoints[] | {provider_name, supports_implicit_caching}'
Input ended up 73% of my spend, nearly all of it conversation I had already paid for once. Shorter sessions trim that, but every turn still re-reads its whole history at full price.
That leaves two ways out: go to Moonshot’s API directly, where the discount does apply, or pick a model whose caching survives the trip. Moonshot’s plans are behind a waitlist at the moment, so I took the second one. Run the same endpoints check against any candidate, without the jq filter, and look for a cache_read price in the output.
K3 is good, and noticeably more concise than Claude Opus, which likes to narrate what it is about to do before doing it. I would still reach for it on a hard problem.
I only run any of this when Claude’s rate limits hit, so this is a first pass rather than a verdict. The cheapest thing that has held up so far is GPT-5.6 Terra, which caches and is on sale at the moment. In opencode’s config:
"model": "openrouter/openai/gpt-5.6-terra:online"
Cache reads run a tenth of the input price. Over a long session that is the number that decides the bill.