Releases: MoonshotAI/kimi-code
Release list
@moonshot-ai/kimi-code@0.22.1
Patch Changes
-
#1304
0fc0ae3- When large images are compressed, tell the model the original and delivered image details. Keep the original image available, and support cropped or full-resolution reads for fine details. -
#1315
b40bb71- Fix TUI rendering bugs that caused the screen to go blank and the input box to disappear. -
#1303
2639786- Fix the TUI crashing when the terminal is resized to a very narrow width while the input contains CJK or emoji text. -
#1315
b40bb71- Clear the screen fully when starting a new session via /new, /clear, or a session switch. -
#1301
c3653a1- Show an up arrow on the web composer send button. -
#1290
3ea84a5- Fix the session search dialog showing a horizontal scrollbar for long session titles or snippets. -
#1316
5322c63- Fix web tooltips that could get stuck on screen when their trigger element is removed while open. -
#1319
e8ab7ca- Fix the sidebar session row shifting its title and status badges when hovered. -
#1293
6a469b3- Refresh the web UI icon set and unify the message copy and undo button hover states and tooltips. -
#1311
b40649b- Remove duplicate newline-shortcut handling from the prompt editor. -
#1317
78a058a- Remove the experimental micro compaction feature and its toggle from the experiments panel. -
#1283
ea55911- Improve compaction handoff summaries for more reliable resumed sessions. They now keep the latest intent, key tool results, decisions, open questions, and context to re-check. -
#1295
77eb3a9- Save shell commands to input history and recall them in bash mode. Press Up on an empty!prompt to browse previous shell commands. -
#1316
5322c63- Trim redundant and incorrect tooltips in the web UI. -
#1320
444e6b1- Fix the web UI becoming sluggish after opening many sessions. -
#1322
5441ad1- Let the web sidebar collapse an expanded workspace session list back to its first page.
@moonshot-ai/kimi-code@0.22.0
Minor Changes
-
#1243
ace7901- Automatically compress oversized images before they reach the model. Whatever the source — pasted into the CLI, uploaded from the web/desktop client, sent over ACP, read viaReadMediaFile, or returned by an MCP tool — images are downsampled (longest edge ≤ 2000px) and re-encoded to fit a per-image byte budget, cutting vision-token cost and avoiding provider image-size errors. Screenshots stay lossless PNG and only degrade to JPEG when the byte budget cannot otherwise be met. Compression runs as an input-stage step at each ingestion point (while the content part is built), and guards against decompression bombs by skipping absurdly large pixel/byte payloads before decoding. Best-effort: if it fails for any reason the original image is sent unchanged. -
#1262
c070fbe- Add model alias overrides so manual thinking effort levels and model metadata survive provider catalog refreshes. Set them under[models."<alias>".overrides]. -
#1258
b905dd4- Refresh the web UI with a new design system, including updated colors, typography, spacing, light and dark palettes, restyled tooltips, and subtle enter/exit and expand/collapse animations.
Patch Changes
-
#1258
b905dd4- Show draft pull requests with a distinct draft status instead of displaying them as open. -
#1254
7859b0a- Fix the transcript jumping to the top when scrolling up through history during streaming output. -
#1258
b905dd4- Fix plan, swarm, and goal modes being shared across sessions in the web UI; each session now keeps its own toggles. -
#1264
003733c- Hide the unsupported Off option in the /model thinking switcher for always-on models that already expose multiple effort levels. -
#1272
54703d9- Release pasted images and streaming timers once they are no longer shown, so memory stops growing in long sessions. -
#1272
54703d9- Fix the terminal being left in raw mode with a hidden cursor and disabled flow control after a crash or abrupt exit. -
#1265
8cfb165- Reduce the default TUI transcript window to keep long sessions responsive. -
#1258
b905dd4- Replace the Explore and Native theme options with a single chat layout and a Blue or Black accent-color setting. -
#1258
b905dd4- Show time, duration, connection, and stack details in web error and warning toasts. -
#1258
b905dd4- Fix an active workspace showing only its five most recent sessions on load, so it now keeps loading older sessions from the last 12 hours. -
#1258
b905dd4- Reduce the web composer's default height for a more compact empty state, and fix ArrowUp recalling the previous message while editing a multi-line draft; ArrowUp now recalls only from the very start of the text and is disabled in the expanded editor. -
#1258
b905dd4- Fix the Thinking-by-default setting not taking effect, so new sessions correctly start with thinking enabled. -
#1258
b905dd4- Fix spurious errors from the web question, approval, and task actions when the action was already complete, and add loading feedback so each click is acknowledged immediately. -
#1258
b905dd4- Show queued prompts inline below the running turn in the web chat, and split Stop into its own button so Send no longer interrupts. -
#1278
bbda90a- Hide the conversation outline when there is not enough room to expand its labels, so it no longer clips against the window edge. -
#1258
b905dd4- Show the conversation outline as one entry per user query that expands into a labeled list on hover. -
#1258
b905dd4- Remove the fade-out animation when undoing a message in the web chat. -
#1258
b905dd4- Improve session search with a Cmd/Ctrl+K palette that filters by title, workspace, and last prompt with highlighted matches. Press Cmd+K or Ctrl+K to open it. -
#1258
b905dd4- Group consecutive tool calls into a collapsible stack with per-tool renderers, including diff line-count chips for edits and inline previews for image, video, and audio results. -
#1258
b905dd4- Use one consistent modal dialog for confirmations in the web UI (archive session, delete workspace, delete provider, undo message, and mode toggles). -
#1258
b905dd4- Add workspace sorting by manual order or last-edited time, plus collapse-all and expand-all controls, to the sidebar.
@moonshot-ai/kimi-code@0.21.1
@moonshot-ai/kimi-code@0.21.0
Minor Changes
-
#1204
5cb80ce- Plugins can now provide slash commands via acommandsfield in their manifest, registered as<plugin>:<command>and invoked with$ARGUMENTSexpansion. -
#1214
86e0c92- Rework conversation compaction:- Keep only recent user prompts plus a single user-role summary; drop assistant and tool messages.
- Repair tool_use/tool_result adjacency before sending, fixing a strict-provider HTTP 400 when a tool call and its result became non-adjacent.
- Merge consecutive user turns for strict providers (Gemini/Vertex), fixing an HTTP 400 ("roles must alternate") after compaction or when a turn is steered in right after a tool result.
- Micro-compaction now defaults off.
Patch Changes
-
#1231
ceb27f5- Add a server-side key-value store API for persisting web UI preferences to the user's data directory. -
#1220
ec51324- Add a double-Esc shortcut to open the undo selector. Press Esc twice while idle to undo. -
#1223
80e6888- Fix @ file mentions not opening when typed inside a slash command argument. -
#1233
020992c- Force-exit headless runs (kimi -p) so a stray ref'd handle left over from the run can't keep a completed run alive until an external timeout, and bound prompt cleanup so a wedged shutdown step can't hang shutdown. -
#1225
659062d- Show file path completions when typing/in shell mode (!). -
#1236
bfe8e6a- Fix adding a workspace by path in the web UI failing silently when the daemon rejects the path; it now shows an error instead of a broken workspace. -
#1221
a3f9cec- Fix duplicate workspaces showing in the web sidebar when the same folder is registered more than once. -
#1241
8ac337a- Stop a malformed message history from permanently bricking a session on strict providers (Anthropic). The request is repaired before sending — orphaned tool calls are closed and empty/whitespace-only text blocks dropped — and if the provider still rejects its structure, it is resent once with a wire-compliant rebuild. -
#1228
42e37eb- Split LLM streaming timing in the session log andKIMI_CODE_DEBUG=1output into client vs. API-server portions, so slow turns can be attributed without parsing the wire log. Time-to-first-token splits into the API-server portion (network + server) and the client portion (in-process request building); the decode window splits into time awaiting tokens from the server and time the client spends processing each streamed chunk. -
#1234
882cf35- Hide the provider management dialog in the web UI until the server supports it. -
#1226
7f05f58- Add Mermaid diagram rendering to the web chat. Fencedmermaidblocks in assistant responses now render as diagrams. KaTeX math and Mermaid diagram parsing also run in Web Workers to keep the UI responsive during live streaming. -
#1232
aa6b0d0- Always show the usage-data opt-out toggle in the web settings with a clearer label and description. -
#1234
882cf35- Fix the web workspace rename not persisting after a page refresh.
@moonshot-ai/kimi-code@0.20.3
Patch Changes
-
#1207
14d9e98- Refresh provider model lists automatically in the background instead of only at startup, so newly available models appear without restarting. -
#1191
0df1812- Fix provider error messages rendering as blank lines in the TUI when the server returns an HTML error page. -
#1212
636ccc4- Fix the web composer being hidden behind the mobile Safari toolbar and the page auto-zooming when the composer is focused. -
#1068
c82dcf9- Glob now uses ripgrep, so it respects .gitignore by default, supports brace patterns, returns only files, and keeps partial results with a warning when some directories are unreadable. -
#1209
0635387- Align malformed tool call argument handling with schema validation fallback.
@moonshot-ai/kimi-code@0.20.2
Patch Changes
-
#1166
dfcfdfd- Add an optional exclude_empty parameter to the session list API to omit sessions that have no messages. -
#1156
794db55- Cap compaction output at 128k tokens by default to avoid provider max_tokens errors. -
#1129
d02b5c4- Fix compaction ignoring the configured max output size. -
#1188
db5fbc5- Fix unnecessary full-screen redraws when typing in the input box or toggling the slash panel. -
#1187
97f9263- Fix debug timing output lingering after undoing a turn. -
#1163
ff6e8bb- Fix the web composer occasionally keeping typed text after sending the first message of a new session. -
#1189
04b3492- Fix working tips getting squeezed against the agent swarm progress bar. -
#1159
23a553b- In the bundled web UI,/newand/clearare now aliases that open the session onboarding composer and focus the input. iOS auto-zoom is prevented by keeping text inputs at 16px instead of disabling viewport scaling. -
#1186
821847c- AddKIMI_CODE_CUSTOM_HEADERSfor custom outbound LLM request headers and send theUser-Agentheader to non-Kimi providers. SetKIMI_CODE_CUSTOM_HEADERSto newline-separatedName: Valuelines. -
#1186
821847c- Route managed Kimi Code models on the Anthropic-compatible protocol through the beta Messages API. -
#1170
cf558cd- Recover from provider 413 context overflows by compacting before retrying. -
#1170
cf558cd- Support the Anthropic-compatible protocol for managed Kimi Code, including video input. -
#1186
821847c- Add provider type and protocol attributes to turn and API error telemetry. -
#1155
54baf5d- Upgrade web markdown renderer dependencies (katex, markstream-vue, shiki) for bug fixes and performance improvements. -
#1162
b070846- Rework the web ask-user-question card into a step-by-step wizard so multi-question navigation and the final Submit action are easier to see. -
#1179
fc3d69d- Add a completion sound and question notifications to the web UI, with separate Settings toggles for completion notifications, question notifications, and sound. Question notifications default off so question text only reaches your desktop after you opt in. -
#1165
f3b1532- Replace the web composer attach button's plus icon with an image icon. -
#1167
c63edd5- In the bundled web UI, a new session is now created only when the first message is sent, so + New without a workspace opens the composer instead of making an empty session. -
#1166
dfcfdfd- Hide unused "New Session" entries from the web session list by default. -
#1181
1dab2c2- Restore each session's scroll position when switching back to it in the web UI. -
#1181
1dab2c2- Keep the open side panel when switching between sessions in the web UI. -
#1166
dfcfdfd- Remove the /sessions slash command from the web UI; the sidebar already covers session browsing. -
#1181
1dab2c2- Keep unsent composer attachments scoped to their session in the web UI, so switching sessions no longer leaks them into another session's next message. -
#1161
d968642- Show the first five sessions per workspace in the web sidebar instead of ten. -
#1181
1dab2c2- Scope the web composer's up/down input history to the current session instead of sharing it across all sessions.
@moonshot-ai/kimi-code@0.20.1
Patch Changes
-
#1125
e9a3b7c- Add anupdatealias for thekimi upgradecommand. Runkimi updateto upgrade to the latest version. -
#1122
820d77a- Show the done / in progress / pending breakdown of hidden todos in the collapsed todo panel. -
#1131
76c643b- Cap completion tokens to the remaining context window for chat-completions providers, avoiding context-overflow and invalid max_tokens errors. -
#1120
e736349- Add optional feedback attachments for diagnostic logs and codebase context. -
#1135
bf51fb7- Fix the local server failing to start on Windows after the first run because the persistent token file's synthesized mode was rejected as too permissive. -
#1102
9c97161- Harden the default system prompt and built-in tool descriptions: stop the agent from blocking on background tasks it should let run, keep its guidance matched to the tools each profile actually provides, and surface tool-result details (fetched-page mode, Grep match totals) it previously missed. -
#1127
184acf5- Plugins can now declare hooks in their manifest to run scripts on lifecycle events. -
#1128
0886bff- Add a --allowed-host flag to kimi server run that lets extra Host header values pass the DNS-rebinding check, and include allow guidance in the 403 error message. Pass --allowed-host to allow an extra host. -
#1119
b0b2aee- Keep the terminal responsive in long conversations by caching rendered message lines. -
#1119
b0b2aee- Keep long sessions responsive by retaining only recent turns in the transcript and collapsing older steps within each turn. -
#1121
81ba48f- Make the web chat input grow with its content and add an expandable editor for longer messages. -
#1133
f1c8175- Fix the /web slash command not carrying the server token, so the opened web UI signs in automatically and the token is shown before the terminal exits.
@moonshot-ai/kimi-code@0.20.0
Minor Changes
-
#1079
2db5fc2- Add shell mode for running shell commands.
Type!in the input box to enable it.
The command output is visible to the AI.
For long-running commands, press Ctrl+B to move them to the background.
For example, you can run!gh auth loginto sign in to the GitHub CLI without opening a new terminal, so Kimi can usegh. -
#1088
0030f76- Add a confirmation prompt before installing third-party plugins. -
#1066
3554f7e- Show update badges on the /plugins Installed tab, where Enter now installs the available update and I opens plugin details. -
#1025
5ef66dd- Redesign/pluginsas a single tabbed panel: Installed (manage installed
plugins — toggle, remove, MCP, details, reload), Official (Kimi-maintained
marketplace plugins), Third-party (marketplace plugins from other
publishers), and Custom (install straight from a GitHub URL, zip URL, or
local path).Tab/Shift-Tabswitch tabs. The Official and Third-party
catalogs load lazily, so/pluginsopens instantly and keeps working offline —
a marketplace fetch failure is shown inline instead of closing the panel. The
tab strip is shared with the/modelprovider tabs via the newrenderTabStrip
helper. -
#1006
60dfb68- Add server authentication and safe--hostexposure. The local server now
requires a per-start bearer token on all API and WebSocket calls (the CLI reads
it automatically), enforces Host/Origin checks, and gains--hostwith a
public-binding hardening tier: mandatoryKIMI_CODE_PASSWORD, TLS (or
--insecure-no-tls), auth-failure rate limiting, disabled remote
shutdown/terminals, and security response headers. Seepackages/server/SECURITY.md. -
#1040
6664038- Replace silent AGENTS.md truncation with a visible warning in the TUI status bar and web UI. -
#1101
3ea6ac2- Show the plan body and approach choices in the plan review card when exiting plan mode in the web UI. -
#1103
18f7c34- Show a line-by-line diff when the agent edits or writes a file in the web chat.
Patch Changes
-
#1076
500677a- Fix Ctrl-C during compaction so it clears a pending editor draft first instead of cancelling immediately. -
#1067
0e227ba- Fix explore subagents silently losing git context when git commands time out or the directory is not a repository. -
#1075
3aaf1e5- Fix a startup crash on Linux caused by an unhandled native clipboard error. -
#1094
8ee5c0f- Fix the terminal window repeatedly losing focus on Linux Wayland, which broke IME input. -
#1057
ee69e16- Fix MCP server working directories when sessions are hosted by the web server. -
#1064
a752a53- Fix truncated skill descriptions missing an ellipsis in the model's skill listing. -
#903
bbd8a1a- Fixkimi weband/webfailing to start the background server daemon on Windows withspawn EFTYPEwhen the CLI is installed via npm/pnpm or run from source. The official single-binary install script was not affected. -
#1070
ff17715- Stop auto-dismissing questions in the web UI after 60 seconds so they wait for the user's answer. -
#1097
27ef516- Add a hint to the per-turn step limit error pointing users to the loop_control.max_steps_per_turn config option. -
#1062
ea6a4bf- Preserve full tool output logs when previews are truncated and link background task completion notifications to saved output. -
#1086
fe667d7-/reloadnow refreshes the assistant's view of plugin skills, so plugin changes take effect in the current session instead of requiring a new one. -
#1081
8fc6aa5- Sync session title changes across all connected clients in server mode. -
#1078
75ca3b2- Add Ctrl+U and Ctrl+D as page up and page down shortcuts in the task output viewer. -
#1069
d18aa16- Reduce streaming redraw cost for long assistant messages with code blocks. -
#1112
6a97d0b- Add a copy button to user messages in the web chat. -
#1035
ea03f30- Render LaTeX display math ($$…$$) in the web chat via KaTeX. Single$is intentionally left as literal text, so prices, env vars, and shell paths (e.g.$PATH,$5/$10,$HOME/bin) are never swallowed as a formula. -
#1084
d6e5246- Page the web session list per workspace so the first screen no longer fetches every session up front. -
#1113
6194d3f- Keep the web session sidebar from re-rendering on every streaming token. The
event reducer now reuses thesessionsarray reference for events that do not
change sessions, so the sidebar computeds (sessionsForView/workspaceGroups
/mergedWorkspaces) are no longer dirtied by unrelated high-frequency events. -
#1087
884b65a- Fix duplicate session snapshot reloads in the bundled web UI during resync. -
#1109
d554f9a- Show the full accumulated progress of a subagent in its detail panel, with concise tool-call summaries instead of raw JSON. -
#1065
4b837d6- Create missing parent directories automatically when writing a file.
@moonshot-ai/kimi-code@0.19.2
Patch Changes
-
#1028
be77d5d- Show a transient footer hint when an image is detected in the clipboard, displaying the platform-appropriate paste shortcut. -
#1004
d70c3a8- Show the command in running Bash tool cards and allow expanding it with Ctrl+O before the result arrives. -
#1009
e47de61- Add a Ctrl+T shortcut to expand and collapse a truncated todo list. -
#1028
be77d5d- Fix stale rows occasionally leaving duplicate input boxes after tall content shrinks. -
#1028
be77d5d- Fix inline images being rendered as broken escape sequences in the transcript. -
#1027
c240bfa- Fix resume not realigning a tool call that was interrupted mid-history. The synthetic interrupted result is now closed in place at the next step boundary, so later turns and deferred messages keep their recorded order instead of only the trailing exchange being repaired. The/messageswire transcript reducer mirrors the same closure so its folded length stays aligned with live history, preventing the later turn from being duplicated/reordered. Replay also drops a tool result whose call is no longer awaiting one, so a stale interrupted result left at the log tail by an older resume of a damaged session is not re-applied as a duplicate. -
#1012
fd16ffb- Show subcommand suggestions after Tab-completing a slash command name. -
#1012
fd16ffb- Fix the Tab key unexpectedly opening the file completion list. -
#1044
9d197e0- Fix clipboard copy actions in the web UI when served over plain HTTP. -
#1032
a753b05- Fix code blocks nested inside list items rendering blank in the web chat after a turn finishes generating. -
#1015
83384ee- Fix the composer's ↑/↓ input-history recall doing nothing right after the first message of a new session. The history is now persisted to localStorage and re-read on mount, so the docked composer no longer starts empty when it takes over from the empty-session composer. Slash commands are now recorded too — both typed-and-submitted and ones picked from the slash menu — so they can be recalled like plain messages. -
#1003
e15edfd- Fix the web question prompt missing the free-text Other option. -
#1056
b93e936- Fix yolo mode in the web app auto-approving plan reviews and sensitive file access. -
#971
b84704b- Read large text files in bounded memory and read tail lines without scanning whole files. -
#1020
9c553e4- Add an Alt+S shortcut in the model picker to switch the model for the current session only, without saving it as the default. -
#1043
27df39c- Fix web chat stop actions so stale prompt ids fall back to cancelling the active session. -
#1036
866b91c- Reorganize the web app's components into area subdirectories (chat/settings/dialogs/mobile) and refresh the component path comments. -
#1042
dc6b9ef- Add a development-mode indicator to the web sidebar for local development. -
#1047
98d3e5b- Keep the web sidebar's workspace order stable and let workspaces be reordered by drag-and-drop, persisted locally instead of following recent activity; sessions now also float to the top of their group as soon as a new message arrives. -
#1034
603a767- Extract the composer's image/video attachment handling into a reusable composable. -
#1031
2bfd686- Extract the composer's text state and per-session draft persistence into a reusable composable. -
#1011
fb780fc- Extract the composer's shell-style input-history recall into a reusable composable. -
#1030
661c1fb- Extract the composer's @-mention menu logic into a reusable composable. -
#1026
318c964- Extract the composer's slash-command menu logic into a reusable composable. -
#1045
ac1882f- Persist the collapsed state of workspace groups in the web sidebar across page reloads. -
#1001
ea1b33b- Extract pure turn-rendering helpers out of the chat pane into their own module. -
#1010
a2650f8- Extract the beta conversation outline (table of contents) into its own component. -
#998
3e4793d- Extract the workspace group rendering out of the sidebar into its own component. -
#985
92c2cf0- Allow the web sidebar and detail panel to be resized up to the available viewport width, keeping their resize handles reachable on narrow windows.
@moonshot-ai/kimi-code@0.19.1
Patch Changes
-
#992
7341fb4- Fix ACP editors such as Zed failing to start a new thread. -
#984
da81858- Clear all per-session state when a session is archived or removed, so archived sessions no longer leave orphaned data behind. -
#978
d4ae02d- Fix the web sidebar's unread dots getting out of sync across browser tabs. -
#979
8c6cade- Consolidate web client localStorage access and split the root state store and app shell into focused composables.