novitckii
← All resources
Free setup · open-source proxyKimi K3Fable-5 brainLocal proxy

Fable plans. Kimi K3 builds. Both inside Claude Code.

Kimi K3 just dropped — a frontier-level model at roughly a fifth of the price of the big Claude models. The move isn't to replace Claude with it. It's to make Kimi K3 the worker that does the grunt typing while Fable 5 stays the brain that plans — all inside the Claude Code harness you already use. One free, open-source proxy makes it happen.

You commented KIMI — here's the exact install, the config, and the two-model wiring. The proxy is CLIProxyAPI, and no, it's not sponsored.

Why do this

Your expensive model shouldn't be the one typing.

You burn Claude limits because one premium model does everything — the thinking and the boilerplate. Kimi K3 is now good enough to do the boilerplate for a fraction of the cost. So you split the job: Fable 5 decides, Kimi K3 does. Same Claude Code, same tools, same workflow — just a cheaper pair of hands.

1Mtoken context window
2.8Tparameters (open weights coming)
$3 / $15per M tokens, in / out
:8317one local proxy, both models
  • Kimi K3 is a real frontier model. Moonshot shipped it on July 16 — 2.8T-parameter mixture-of-experts, 1M context, thinking on by default. Early benchmarks put it neck-and-neck with the top closed models, at open-model pricing.
  • The split is the whole trick. Fable 5 is the planner and the taste — it decides the approach and reviews the result. Kimi K3 is the executor — it writes the files, runs the edits, does the repetitive passes. Most of your tokens move to the cheap side.
  • No new tool to learn. It all runs inside Claude Code. Same slash commands, same subagents, same MCP servers. You're just changing which model answers when.
  • One free, open-source proxy. CLIProxyAPI presents one Anthropic-compatible endpoint and routes each request to the right backend by model name. Fable requests go to your Claude sub; Kimi requests go to Moonshot. Claude Code never knows the difference.
Setup · about 10 minutes

Install the proxy, log in both models, flip one mode.

The proxy is a tiny local server. You log your Claude subscription and Kimi into it once, point Claude Code at it, and remap the model tiers. Then a single command puts Fable on planning and Kimi on execution.

01
Install

Get CLIProxyAPI running on :8317

Grab the binary (macOS/Linux/Windows) or run the Docker image. It starts a local Anthropic-compatible endpoint on port 8317. Docker is the set-and-forget option — it stays up across reboots:

# Docker (recommended — stays running)
docker run -d --name cli-proxy-api --restart unless-stopped \
  -p 8317:8317 \
  -v ~/cli-proxy/config.yaml:/CLIProxyAPI/config.yaml \
  -v ~/cli-proxy/auths:/root/.cli-proxy-api \
  eceasy/cli-proxy-api:latest

# or the binary — download from the releases page, then:
cli-proxy-api            # starts the server on :8317
02
Log both brains in

One OAuth for Fable, one for Kimi

Each command opens a browser and stashes the token in ~/.cli-proxy-api. The first uses your existing Claude subscription (that's where Fable 5 comes from). The second logs in Kimi:

cli-proxy-api --claude-login    # your Claude sub → gives you Fable 5
cli-proxy-api --kimi-login      # your Kimi account → gives you Kimi K3
iNo Kimi subscription? Skip --kimi-login and use a Moonshot API key instead — you add it in the config in the next step. Pay-as-you-go is $3 / $15 per million tokens.
03
Config

Give the proxy a key of its own

In config.yaml, add an api-keys entry — invent any string. That's the bearer token Claude Code will use to talk to the proxy. If you're going the API-key route for Kimi (not --kimi-login), add the Moonshot block too, and restart:

# config.yaml
port: 8317

# the key YOUR tools use to reach the proxy — make one up
api-keys:
  - "sk-local-kimi-worker"

# ONLY if you're using a Moonshot API key instead of --kimi-login:
claude-api-key:
  - api-key: "sk-YOUR-MOONSHOT-KEY"
    base-url: "https://api.moonshot.ai/anthropic"
    models:
      - name: "kimi-k3"
04
Point Claude Code at it

Two env vars send traffic to the proxy

Set these in your shell (or a .env you source before launching Claude Code). ANTHROPIC_AUTH_TOKEN sends your key as a Bearer header — that's the one the proxy expects, not ANTHROPIC_API_KEY:

export ANTHROPIC_BASE_URL=http://localhost:8317
export ANTHROPIC_AUTH_TOKEN=sk-local-kimi-worker
05
The pairing · the whole point

Fable on the opus tier, Kimi on sonnet

Claude Code has three model tiers — opus, sonnet, haiku. You remap what each one resolves to, so the planner tier is Fable and the worker tier is Kimi. opusplan mode then plans on the opus tier and executes on the sonnet tier — exactly the split you want. Subagents get Kimi too:

# the brain
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-fable-5
# the hands
export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k3
export CLAUDE_CODE_SUBAGENT_MODEL=kimi-k3

# housekeeping for a non-Anthropic worker model:
export ENABLE_TOOL_SEARCH=false          # off by default on a custom endpoint
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=1048576   # use Kimi's full 1M window

Then, inside Claude Code, flip the mode and check it took:

/model opusplan     # Fable plans → Kimi K3 executes
/status             # confirms base URL + auth token are pointed at the proxy
!Heads up on the advisor: the built-in /advisor can't currently be set to Fable 5 — it's blocked for that specific role. So opusplan is how you get Fable-as-the-brain today. Fable works perfectly fine as the main/planning model; it just can't be the separate /advisor reviewer yet.
Now use it

How the split feels day to day.

You don't micromanage which model runs — opusplan does it. But here's what's happening under the hood, and a couple of ways to push more work onto the cheap side.

01
The default loop

Plan with Fable, ship with Kimi

Start any task in plan mode. Fable 5 reads the codebase, argues the approach, and writes the plan. The moment you accept it, Claude Code drops to the sonnet tier — Kimi K3 — and does the actual edits, file writes, and test runs. You review; Fable comes back for the calls that need judgment.

02
Push more to the cheap side

Fan the grunt work out to Kimi subagents

Because CLAUDE_CODE_SUBAGENT_MODEL=kimi-k3, every subagent you spawn runs on Kimi. So for anything wide and mechanical — "search these 40 files", "write tests for each of these modules" — dispatch subagents and let Kimi's cheap tokens absorb it while Fable stays free for the thinking.

“Spawn a subagent per file to add JSDoc to every exported function in src/lib, then report back a summary.”

03
Switch on demand

Force one model when you want to

opusplan is the automatic version, but you can override any time. /model sonnet pins everything to Kimi K3 for a cheap, all-hands session; /model opus pins it to Fable when you're doing something delicate and don't want the cheap model near it. Flip back to opusplan for the balanced default.

Straight answers

The honest FAQ.

Is Kimi K3 actually good enough to trust with the work?

For execution, yes. It benchmarks around the top closed models and it's a genuine frontier release, not a budget clone. And you're not asking it to carry the whole job — Fable 5 still plans and reviews, so Kimi only needs to be reliable at the doing. That's exactly where it's strong.

What does this cost?

The proxy is free and open-source. Fable rides on the Claude subscription you already pay for. Kimi K3 is either a flat Kimi Code subscription (via --kimi-login) or pay-as-you-go at $3 / $15 per million tokens — far below the premium Claude models. Since Kimi does the token-heavy work, that's where the savings land.

Is my code private with this?

Be clear-eyed here: the proxy is local, but Kimi K3 runs on Moonshot's cloud (a China-based company). Anything the worker model touches leaves your machine and goes to their API. Great for side projects and open-source; think twice before pointing it at code you're contractually not allowed to send to a third party. If you need fully-local, that's a different setup.

Do I have to keep the proxy running?

Yes — it's the local server Claude Code is talking to. The Docker command above uses --restart unless-stopped so it comes back on reboot. If you run the binary, just leave it up in a terminal or as a background service.

Something errors out — where do I look first?

Run /status to confirm the base URL and auth token point at the proxy. If tool calls misbehave, keep ENABLE_TOOL_SEARCH=false. If long sessions won't compact, it's the context-window var. And make sure the model IDs match what your proxy serves — claude-fable-5 and kimi-k3.

Credit where it's due

The proxy is CLIProxyAPI by router-for-me — free, open-source, and not sponsoring this (I just use it). Kimi K3 is by Moonshot AI. If this saves you a stack of tokens, tag me on Instagram — or bring your setup to the weekly call on Skool.

Get the full setup + config

Drop your email and I'll send the exact install, the config.yaml, and the env-var wiring for the Fable-plans / Kimi-builds setup. Plus every other resource in the library.

Keep going

Cheaper tokens, same output.

One email a week with the setups that quietly cut your AI bill — the configs, the prompts, and the exact steps.