Updated July 19, 2026 · Hands-On Testing
Kimi Code With K3: The Real Cost Playbook for Setup, Plans and Cache Discipline
Moderato buys K3 at 256K context. Allegretto buys the full 1M window. But the line item that actually decides your bill is a habit, not a plan tier — and almost nobody sets it up correctly on day one.
Tested & written by Oyekale Olawale
Quick Answer
You unlock K3 with the /model command inside a Kimi Code session, not a settings toggle. A free Adagio account never sees K3 in the picker. Moderato ($19/mo, $15 on the current promo) is the cheapest tier that shows K3 at all, capped at 256K context. Allegretto ($39/mo, $31 promo) opens the full 1M window plus HighSpeed. The number that actually runs your bill up isn’t a plan choice, though — it’s whether you switch models mid-session. Do that and Moonshot invalidates your prompt cache, re-billing everything at $3.00 per million tokens instead of $0.30. One habit — pick a model, start fresh, never swap mid-thread — controls more of your spend than any plan upgrade.
I put four days into K3 inside Kimi Code across a mid-sized Next.js repo and a separate VS Code session running a Python service, specifically trying to break the cache-hygiene rule Moonshot buries in a docs footnote. It broke, predictably, and I have the token bill screenshots to show for it. This post is the operational playbook that follows from that: the model picker, the real plan math, a cache-cost breakdown you can apply to your own sessions, and where K3 still shows rough edges Moonshot itself admits to. If you want the model-level view first — benchmarks, parameter count, and general capability rather than Kimi Code plumbing — our full Kimi K3 open-weights review is the better starting point.
The Three Model IDs Hiding Behind One Picker
Open /model in a fresh Kimi Code session and three entries show up. Only one is actually K3 — the other two are variants of the existing coding specialist, K2.7 Code, and mixing them up is the single most common setup mistake I saw reported after launch.
| Model ID | What it is | Context | Plan needed |
|---|---|---|---|
k3 | New flagship, thinking always on, max effort only at launch | 256K–1M | Moderato+ (1M needs Allegretto+) |
kimi-for-coding | K2.7 Code, the existing coding specialist | 256K | All members, including free Adagio |
kimi-for-coding-highspeed | Same K2.7 Code engine, roughly 6x output speed | 256K | Allegretto+ |
Here’s the quirk that actually cost me time: Kimi Code’s CLI and VS Code surfaces call the coding specialist kimi-for-coding, but the raw Moonshot API answers to kimi-k2.7-code instead. I pointed a script at the CLI-style ID against the raw endpoint on day one and got a quiet fallback rather than an error — no crash, just the wrong model doing the work for twenty minutes before I noticed the response style had changed. Check which surface you’re actually talking to before you paste an ID from documentation into a third-party tool.
Setup: Install, Sign In, Select K3
The CLI ships as a single binary with no Node.js requirement on the primary install path. On macOS and Linux, a curl script pulls the binary directly. Windows users get a PowerShell equivalent, and I’d install Git for Windows first — the CLI shells out through Git Bash during first run and fails oddly without it. An npm package is also published for teams that prefer that channel, though it wants a recent Node LTS; mine complained until I upgraded.
Once installed, run kimi to open the terminal UI and type /login. You get OAuth device-code sign-in — scan a QR code, approve on your phone, done in under fifteen seconds in my testing — or a Moonshot Open Platform API key pasted directly. I kept the two separate on purpose: OAuth for the CLI, a dedicated API key for a script I was stress-testing against the raw endpoint, which made it far easier to see which surface was actually burning tokens when a bill looked off.
With a Moderato-or-above account signed in, type /model and select k3. That’s the entire documented path. The VS Code extension exposes the identical choice as a dropdown in the input bar. Wiring K3 into a third-party harness means setting the model ID field to k3 directly and, if your plan carries the full window, setting the context-length field to 1048576 explicitly — several tools I tried defaulted to a smaller ceiling and didn’t self-correct.
Free-tier reality check: Adagio, the $0 plan, will not show K3 in the picker under any circumstance. You get K2.7 Code and the complete CLI harness — genuinely enough to judge whether the workflow suits your team before spending anything.
The Spend-to-Capability Matrix
Moonshot splits this across two pages that never reference each other — model docs for what each tier unlocks, a pricing page for what it costs. Joined into one table, current as retrieved this week:
| Tier | Monthly price | K3 access | Credit multiplier | Swarm subagents |
|---|---|---|---|---|
| Adagio (free) | $0 | No — K2.7 Code only | — | — |
| Moderato | $19 · $15 promo | Yes — 256K | 1x | 2 |
| Allegretto | $39 · $31 promo | Yes — full 1M | 5x | 4 |
| Allegro | $99 · $79 promo | Yes — full 1M | 15x | 8 |
| Vivace | $199 · $159 promo | Yes — full 1M | 30x | 8 |
The number worth sitting with is the jump from Moderato to Allegretto. Doubling your fee from $19 to $39 doesn’t just buy 4x the context ceiling — it buys a 5x credit multiplier. Per credit spent, Allegretto is the better deal for anyone touching K3 daily, not just the bigger-window tier. K2.7 Code stays free for every member including Adagio, so the ladder is really gating K3 access and Swarm concurrency, not baseline coding ability.
Pricing fine print: Moonshot’s own pricing page currently carries a notice that Kimi and Kimi Code benefits will be split apart in a coming restructure, and the promo prices are explicitly time-limited. Treat this table as a dated snapshot, not a permanent rate card, and re-check before you commit budget. Moonshot has also promised K3’s open weights on a short timeline — if you’re weighing a self-hosted deployment instead of staying on a Kimi Code plan, our open-weights readiness checklist walks through what to prep before that lands.
Cache Discipline: The Math Nobody Reads Until It’s Too Late
K3’s API pricing is flat across the whole 1M window — no tiering by context length — but input carries two very different rates depending on cache state.
Moonshot’s docs are plain about the trigger: switching models mid-session invalidates the existing context cache and forces a full re-prefill. The vendor’s own launch material also states its coding workloads ride a cache-hit rate above 90% — meaning under normal use, most of a session’s input bills at the cheap end. Break that streak once and you eat the 10x penalty on everything that had accumulated.
I ran this exact scenario on day three of testing. My session was carrying roughly 380K tokens of cached context from a multi-file refactor. I switched to K2.7 Code mid-task to test a quick completion, then switched back to K3 — and watched the next turn’s cost line jump. Rough math on a 400K-token re-prefill: 400,000 × $3.00/M ≈ $1.20, against roughly $0.12 if that same context had stayed warm. That’s about a dollar of avoidable spend from one impulsive switch, before any new work got done. Do that across a five-person team a few times a day and it stops being a rounding error on the invoice.
The fix is a habit, not a setting. Pick your model before a session starts. If you genuinely need a different one, close the session and open a fresh one — you’ll pay a normal cache warm-up either way, but you skip the re-prefill tax. Running /compact on long sessions also helps, since it keeps the context you’d have to rebuild from ballooning in the first place.
The Knobs You Don’t Get
If your cost playbook from another harness leans on dropping temperature or a lighter reasoning tier, K3 will feel locked down. Sampling is fixed — temperature 1.0, top_p 0.95 — and the quickstart instructs developers to omit those fields entirely rather than attempt to override them. Reasoning effort currently maps to max across the board at launch; the picker accepts a wider vocabulary of labels, but every call I ran landed at the same effort level regardless of what I passed. Budget for max-effort token consumption on every request until Moonshot ships lower tiers.
What does hold up: structured output through json_schema with strict mode, forced tool calls via tool_choice: required, and streaming that separates reasoning deltas from the final answer. Cost and behavior control here live in structure and tooling, not in sampling dials — a different mental model if you’re arriving from a harness where every request carries five adjustable knobs.
Migrating Configs From Other Harnesses
If you’re moving scripts or CI configs over from Claude Code, Codex, or another agentic harness, the label-mapping table below is the part I wish someone had shown me before I burned an afternoon debugging a “working” pipeline that was silently running at a different effort tier than I assumed.
| Label you pass | Kimi Code maps it to |
|---|---|
| (unset) / null | max |
| ultra · max · xhigh | max |
| high · medium | high |
| low · minimum · light | low |
| none | disabled |
The practical catch: since K3 itself only actually supports max effort at launch, any label below max gets accepted, silently normalized, and then run at the only level K3 currently honors. If your config sets xhigh out of habit from another harness, it’ll work — it just won’t do what the label implies. Budget for max-effort token consumption on every K3 call today regardless of what your config file says, and revisit the setting once Moonshot ships the lower tiers it’s already signaled are coming.
One more integration detail worth flagging for teams running mixed fleets: because K3 is OpenAI-SDK compatible, pointing the standard OpenAI Python or Node client at Moonshot’s endpoint with a Moonshot key gets most existing tooling connected without a bespoke client. That compatibility choice matters more than it might look — it means the cache-discipline rule above applies just as much to a homegrown eval harness hitting the raw API as it does to the Kimi Code CLI itself. The cache doesn’t know or care which surface sent the request; it only cares whether the model ID changed between turns.
Where Moonshot Admits K3 Falls Short
Moonshot’s own limitations section is unusually candid for a flagship launch, and two disclosures matter for how you should actually run K3. First, thinking-history sensitivity: if a harness fails to pass back full historical thinking content, or a session running another model gets switched over to K3 mid-stream, output quality can become noticeably unstable. That’s the quality twin of the cache-cost rule above — one habit, a fresh session per model, fixes both failure modes at once.
Second, excessive proactiveness: K3 can make unprompted decisions on ambiguous or minor issues without asking first. In my testing this showed up as the model quietly renaming a utility function mid-refactor that I hadn’t asked it to touch — harmless in that case, but the kind of habit that argues for tighter plan-mode review before letting a long agentic run go unattended overnight.
Which Tier Actually Fits Your Workload
Just evaluating the harness? Stay on Adagio. K2.7 Code plus the full CLI is enough to judge fit before spending anything.
Solo developer, K3-curious? Moderato is the cheapest door in, but 256K context and a 1x multiplier will feel tight fast if you’re running K3 daily against a real repo.
Daily agentic driver? Allegretto is where the math lands best — the full 1M window, HighSpeed access, and a 5x multiplier for roughly double Moderato’s fee.
Team running parallel swarms? Allegro and Vivace buy allotment and concurrency, not new capability — the feature set stops expanding after Allegretto, so choose by monthly token appetite.
✓ What Worked Well
- Setup is genuinely install → login →
/model, no extra config - Cache-hit pricing rewards normal agentic sessions heavily
- Flat pricing across the full 1M window, no length surcharge
- Structured output and forced tool calls behaved consistently across all four days
✗ What Tripped Me Up
- Free tier hides K3 entirely with no in-app hint it exists
- Mismatched HighSpeed model ID fails silently on the raw API — no error thrown
- Effort label in the picker doesn’t actually change token spend yet
- Two model-ID namespaces (CLI vs raw API) caused a real mix-up on day one
How This Compares to Other Agentic Billing Models
Kimi Code isn’t the only harness where the billing model quietly reshaped how developers work. GitHub rebuilt Copilot’s pricing around token-based AI Credits in June 2026, and heavy agentic users hit their caps within days of the switch. The pattern rhymes: flat monthly fees increasingly buy a metered pool, not unlimited usage, and the developers who read the fine print early save real money.
If you’re weighing K3 against other assistants before committing a plan tier, our Kimi K3 vs Claude Fable 5 comparison lines up the frontier-model matchup directly, while our deep dive on whether Claude AI is worth it for coding and our ChatGPT for coding review cover the two comparisons developers ask about most. For a wider field of terminal-first coding agents, our vibe coding tools roundup is worth a look, and our hands-on Kimi K3 setup guide goes deeper on the install flow itself if you want a second pass on that section specifically.
Developers coming from Anthropic’s ecosystem may also want our rundown of 60 Claude Code use cases, and if you’re benchmarking a wider set of coding assistants before locking in a subscription, our Verdent AI review and ZenMux AI review cover two more agentic options currently gaining traction.
The broader lesson across all of these tools is the same one Kimi Code’s cache rule teaches in miniature: the sticker price on a plan tier tells you almost nothing about what a heavy agentic workload will actually cost. GitHub’s own Chief Product Officer put it plainly when explaining the Copilot shift — a quick chat question and a multi-hour autonomous session used to bill identically, and that gap became unsustainable to absorb. Moonshot’s cache-invalidation penalty is the same economic pressure showing up in a different place: not in the plan tier you choose, but in the session habits you keep once you’re inside it.
Ready to Test K3 Without Guessing Your Tier?
Start on Adagio to judge the harness for free, then upgrade only once you know whether your workload actually needs the full 1M window.
Get Kimi Code →How I Test the Platforms I Review
Every review on Websites2Know is built from hands-on use, not a summary of a vendor’s landing page. For this piece, I created a personal Kimi account, spent time on the free Adagio tier to confirm exactly what it does and doesn’t expose, then subscribed to a paid tier to run K3 directly against a real Next.js repository and a separate Python service in VS Code. I worked through the install flow on both a fresh machine and an existing Node setup, tracked login friction end to end, and deliberately tried to break the cache-hygiene rule to confirm the cost penalty firsthand — including the silent HighSpeed model-ID fallback and the effort-label mismatch described above.
This review reflects my personal experience and opinion. It is not professional, financial, legal, or technical advice. Pricing, plan gating, and feature availability change quickly in this space — verify current terms directly with Moonshot AI before you commit budget.
FAQ
Do I need a paid plan to try Kimi Code at all?
No. The free Adagio tier includes the full CLI harness and K2.7 Code. You won’t see K3 in the /model picker until you’re on Moderato or above.
Why does switching models mid-session cost me money?
Kimi Code caches your prompt context so repeat turns bill at $0.30 per million tokens instead of $3.00. Changing the active model invalidates that cache, so the next turn re-prefills the full context at the higher miss rate.
Which plan do I need for the full 1M context window?
Allegretto ($39/mo listed, $31 on the current promo) or above. Moderato caps K3 at 256K context regardless of how much you’re willing to spend on extra credits.
Can I lower K3’s reasoning effort to save tokens?
Not effectively yet. K3 runs at max reasoning effort regardless of the label you pass at launch, so plan your token budget around always-on, high-effort thinking.
Is K2.7 Code still worth using now that K3 is out?
Yes, for routine work inside 256K context. It’s included on every tier including free, and its per-token cost sits well below K3’s. Reach for K3 when you need the larger window or its broader reasoning depth.
Can I use K3 outside Kimi Code, through the raw API?
Yes. Because K3 is OpenAI-SDK compatible, you can point the standard OpenAI Python or Node client at Moonshot’s endpoint with a Moonshot Open Platform key and skip building a bespoke client. The same cache-discipline math applies regardless of which surface sends the request.
What happens if I mistype the HighSpeed model ID?
In my testing, a mistyped or unauthorized HighSpeed ID against the raw API didn’t throw an error — it silently fell back to a different model instead. Double-check the exact ID string in your config, especially if you’re on a plan tier that doesn’t include HighSpeed access, since the failure mode gives no obvious signal that anything went wrong.
Related Reading on Websites2Know
- Kimi K3 Open-Weights Review: Full Model Breakdown
- Kimi K3 vs Claude Fable 5: Frontier Comparison
- Kimi K3 Open-Weights Readiness Checklist
- Kimi K3 in Kimi Code: The Real Setup Guide (2026)
- GitHub Copilot Token Credits Policy Changes Explained
- Is Claude AI Good for Coding? Full Developer Review
- Is ChatGPT Good for Coding? Full Developer Review
- Best Vibe Coding Tools I Tested and Reviewed
- 60 Claude Code Use Cases Without Programming