Kimi CLI and K3: The Newest Harness Has the Strangest Ideas

Moonshot released K3 with a recommendation most model cards do not carry: use our harness. Kimi Code CLI is a ground-up TypeScript rewrite of the Python kimi-cli, MIT licensed, shipped as a single binary, and it makes design choices nobody else has tried. Some are odd. At least three are ideas the bigger harnesses will copy.


Preserved thinking is not optional

K3 is a thinking-always model, and the platform docs are blunt: the complete assistant message must be passed back into history as-is, including reasoning_content and tool_calls, because the model was trained in preserved-thinking mode. This is the same lesson OpenAI's ARC-AGI-3 post taught from the other direction: discard reasoning between steps and the model interprets the world from scratch every action. Kimi makes retention a protocol requirement rather than a setting you can forget.

Do not send the tool inventory

Moonshot's tool-calling guidance for K3 inverts the common pattern: declare a small core set plus a search_tools retrieval function, force retrieval on the first turn with tool_choice: "required", then inject definitions on demand through a system message that carries a tools field, a Moonshot API extension. Decide reasoning_effort (low, high, max; default max) before the session starts, because changing it breaks the prefix cache. It is the additive tool loading idea again, arrived at independently, specified at the API level.

The strange ideas

The two honest data points

Fig. 1 · two numbers from Moonshot's own card
BrowseComp, same K3 model 89909192 raw 1M-token window · 90.4 compaction at 300K · 91.2 Moonshot's coding benchmark, same K3 model 7172737475 inside Kimi Code · 72.9 inside Claude Code · 73.7

Axes are zoomed; the gaps are small, and that they exist at all is the point. Both numbers are Moonshot's own, published against their own interest.

The K3 model card contains two numbers rival cards would have buried. First, on BrowseComp their harness scored 91.2 with compaction triggered at 300K tokens versus 90.4 using the raw million-token window: context management beat raw context, from the vendor selling the million-token window. Second, on Moonshot's own coding benchmark, K3 scores 72.9 inside Kimi Code and 73.7 inside Claude Code. They published a number showing a rival's harness runs their model better. Both facts point the same direction: the harness is not packaging around the model; it is part of the system being measured.

Caveats where they belong: kimi-code is at v0.31, weeks old, and moving fast; K3's weights are under a bespoke license (MIT-style with revenue and attribution conditions), not plain MIT like the CLI. Sources: the kimi-code and kimi-cli repos, the K3 model card, and Moonshot's tool-calling guidance.

rg
Rohit Ghumare

CNCF Ambassador and Google Developer Expert. Harness Anatomy is a series reading agent harnesses at source level.

Series start: Pi · More posts · X