Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
109 KiB
@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.
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.
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.
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 newrenderTabStriphelper. -
#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.
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.
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.
0.19.0
Minor Changes
-
#812
c0eeca2- Added the ability to add extra workspace directories:- Use the
/add-dir <path>command to add extra working directories to the current session, or remember them for the project. - Use
kimi --add-dir <path>to add them on startup. - Project-level local config is now managed in
.kimi-code/local.toml; we recommend adding it to your.gitignore.
- Use the
-
#975
c5c1834- Speed up session snapshot loading with a direct disk reader and a request timeout safeguard, keeping the previous path as a legacy fallback.
Patch Changes
-
#910
7644f10- Fix provider requests failing when restored conversation history contains empty text content blocks. -
#963
4292ae9- Surface provider safety-policy blocks instead of silently treating them as completed turns, and prevent the context token count from dropping to zero after a filtered response. -
#970
2730079- Detect the real image format from file contents when reading media, so a mismatched filename extension no longer produces a data URL the model API rejects. -
#977
d521932- Stop showing unread dots on cancelled or failed sessions in the web sidebar. -
#957
b57fc90- Fix commands flashing an empty console window on Windows. -
#821
ba64072- Allow long-running foreground commands and subagents to be moved into background tasks with Ctrl+B, and inspect them via the/taskspanel. -
#974
d434d8f- Unify image format detection when sniffing fails. -
#958
98905eb- Show longer branch names in the web chat header and expose the full name on hover. -
#964
4223739- Keep the web page title fixed instead of changing with the session or workspace name. -
#973
3b9938b- Consolidate web client localStorage access and decouple appearance/notification state into dedicated modules.
0.18.0
Minor Changes
-
#888
58898de- Add an environment variable to cap AgentSwarm concurrency during the initial ramp, so large swarms do not trip provider rate limits as easily. -
#895
495fe8c- Add instant session search to the web sidebar, filtering by title and the last user prompt.
Patch Changes
-
#896
de610de- Fix the web workspace session count so it drops to 0 after archiving the last session instead of staying at 1. -
#876
49183d8- Suggest/reloadalongside/newin plugin-change hints. -
#867
d1dc2a3- Redesign the web OAuth login dialog: lead with a single "Authorize in browser" button that opens the verification link with the device code already embedded, demote manual code entry to a clearly secondary fallback, and drop the duplicate open-browser and cancel controls so the order of steps is unambiguous. -
#867
d1dc2a3- Fix the web login slash command description to match the browser authorization flow. -
#893
d7ec056- Add scroll-up lazy loading for older messages in the web chat session view, and fix the "new messages" pill overlapping the composer dock. -
#882
8ab9e96- Fix the web app only loading the 20 most recent sessions; it now follows pagination so older sessions are reachable. -
#889
23277a5- Show the connected server version in the web settings General tab. -
#881
7bc3d99- Keep the highlighted web slash command visible while navigating a long slash menu. -
#878
a74a6b7- Allow long web slash command names and descriptions to wrap without overflowing the slash menu. -
#878
a74a6b7- Fix web slash skill selection sending immediately and allow slash search to match skill names by substring.
0.17.1
Patch Changes
-
#861
bd09795- Prevent the web login dialog from closing when clicking the backdrop. -
#860
0e2877b- Stop the background local server from locking the directory it was started in. -
#860
0e2877b- Fix the local server failing to start in the background on the native binary. -
#861
bd09795- Group the default model dropdown in web settings by provider.
0.17.0
Minor Changes
-
#625
9a8fea5- Add the server-hosted web UI and the CLI commands that power it:kimi serverto start, stop, and manage the local server.kimi webto open the server-hosted web UI in a browser.- Server REST and WebSocket APIs for the web client.
- Web chat layout, session list, auto-scroll, and related behaviors.
Patch Changes
-
#838
843a731- Show the underlying connection error when OAuth token refresh fails after internal retries, instead of prompting for login. Token refresh failures are no longer re-retried at the agent loop level. -
#849
254f946- Skip debug TPS when the output stream is too short to measure reliably. -
#833
a71b2e3- Restore the turn counter from persisted loop events on resume so post-resume turns no longer reuse turn ids that already appear in history. -
#853
05fe759- Fix the web login page and no-workspace conversation startup flow.
0.16.0
Minor Changes
- #788
efdf8a1- Add a built-inkimi viscommand that launches the session visualizer in your browser, pointed at your local sessions. Supports--port/--host,--no-open, andkimi vis <sessionId>deep-links.
Patch Changes
-
#790
d0d5821- Stop Anthropic-compatible providers from reading ambient Anthropic shell credentials and custom headers. -
#809
6f442bd- Add configurable banner display frequencies with local display state. -
#807
b45672c- Close wrapped output streams when buffered readers are destroyed. -
#813
7b5b818- Fix repeated compaction handling when context remains over the blocking threshold. -
#802
aa1896c- Reduce the maximum height of the /btw side panel from half to one-third of the terminal. -
#805
3e6196e- Project session replay ranges over rendered replay records instead of raw persisted records. -
#804
299b9fc- Prevent session shutdown from resuming the agent when stopping background tasks. -
#823
90fc04b- Remove redundant LLM request logging context plumbing.
0.15.0
Minor Changes
-
#779
2746c71- Add an all-sessions picker view with name search, paginated browsing, and clipboard-ready resume commands for sessions in other working directories. -
#744
18f299f- Add support for legacy SSE MCP servers alongside stdio and streamable HTTP transports.
Patch Changes
-
#777
4516f62- Clarify AGENTS.md prompt guidance and mark truncated instruction files. -
#780
8a92db6- Prompt the CLI to show one brief same-language status sentence before non-trivial tool calls. -
#786
e10b25f- Stop writing resume version markers into persisted agent metadata. -
#768
c6a9967- Recover resumed sessions when an interrupted tool call result was not recorded. -
#343
73be7ba- Repair mismatched JSON Schema types emitted by Xcode 26.5 MCP server for Moonshot compatibility. -
#777
4516f62- Collapse hidden directories in the workspace prompt and explain how to inspect them. -
#766
9cef896- Clarify that compaction summaries must be emitted in the final answer. -
#765
046856b- Read media files using header-detected types before falling back to media extensions. -
#779
2746c71- Show the all-sessions toggle hint when the current working directory has no sessions. -
#785
4578f05- Include the skill's directory on the loaded-skill context block so the agent can locate a skill's bundled resources (scripts, templates) after it is invoked. -
#784
a562ef5- Decouple agent skill access from session-specific registry implementations. -
#772
d47e699- Do not carry obsolete legacy loop, background, plan, yolo, or unknown experimental flags into migrated config files. -
#783
e2a407c- Keep TUI components within narrow terminal widths by wrapping, compacting, or truncating lines that could exceed the render width. -
#776
ecd7a0a- Resolve model capabilities through a static lookup instead of instantiating a temporary provider. -
#767
a355f2a- Prioritize clearing draft editor text before Ctrl-C cancels an active stream. -
#787
1eb363f- Extend the same-language rule to the model's reasoning, so thinking follows the user's language while keeping code and technical terms in their original form.
0.14.3
Patch Changes
0.14.2
Patch Changes
-
#683
ad239cb- Allow--auto,--yolo, and--planto be combined with--sessionor--continueby applying the requested mode to the resumed session. -
#690
7f0dde2- Fix endless desktop notifications in iTerm2 by only sending terminal progress sequences to terminals that support them. -
#651
c39c625- Qualify sub-skill names with their parent prefix and expose sub-skills as dotted slash commands in the TUI. -
#617
911e7c3- Show completed and cancelled compaction records correctly when resuming a session. -
#676
dcf3075- Stream foreground Bash stdout and stderr while commands are still running. -
#692
7ca9bdf- Skip re-entering plan mode when resuming a session that is already in plan mode (previously failed with "Already in plan mode"), and stop re-applying--auto/--yolo/--planstartup flags when switching sessions through the/sessionspicker. -
#675
d1ba145- Sync custom registry provider additions, removals, and rotated registry keys during startup refresh. -
#689
8d251f8- Drop invalid config.toml sections with a warning instead of failing to start.
0.14.1
Patch Changes
-
#643
4e5043b- Require AgentSwarm tool calls to run alone in a model response. -
#631
2961425- Wrap long command and skill descriptions in the autocomplete menu onto a second line instead of cutting them off. -
#661
0927f79- Cancel active turns during session shutdown so foreground shell commands do not outlive prompt-mode exits. -
#604
7ec738c- Fix premature stream close errors when shell processes time out or are killed. -
#632
d8cdebf- Degrade unsupported audio/video to placeholder text and reattach tool result media instead of silently dropping them. -
#628
0ee9106- Fix ACP file reads and edits for Windows workspaces opened through IDE clients. -
#658
0381329- Send OpenAI Responses system prompts as request instructions. -
#654
ff80327- Propagate configured execution environment overrides across spawned processes. -
#649
a2c5e1b- Add runtime support for dynamic MCP server updates, reference skills, replay timestamps, and Node file uploads. -
#631
2961425- Find slash commands by their aliases in autocomplete — typing/clearnow suggestsnew (clear). -
#648
54302ad- Prevent overlapping interactive agent requests from using the wrong active agent. -
#641
30459af- Stop background tasks by default when sessions close. -
#645
1b58aa8- Add a YOLO choice when starting swarm tasks from Manual mode. -
#655
1e2e679- Display a tips banner below the welcome panel on startup.
0.14.0
Minor Changes
- #607
b253a82- Add anInterrupthook event that fires when the user interrupts a turn (e.g. pressing Esc), letting hooks observe the turn stopping instead of getting stuck on a working state.
Patch Changes
0.13.1
Patch Changes
-
#610
b747c6a- Add Claude Fable 5 support to the Anthropic provider. -
#615
494554e- Add an interactive undo selector and clearer undo-limit messages. -
#598
32d7080- Clarify active skill prompts so loaded skills are no longer represented as system reminders. -
#595
1580f35- Fix Kimi Datasource to use the matching OAuth credentials and service endpoint for the active Kimi Code environment. -
#619
1fbe0e4- Fix goal marker text overflowing terminal width. -
#612
4603d8a- Prevent forking sessions during active turns and consolidate wire protocol definitions into a shared internal package. -
#540
2ebe387- Tighten file tool guidance to route incremental edits through Edit. -
#606
a1b419a- YOLO mode no longer asks before writing or editing files outside the working directory.
0.13.0
Minor Changes
-
#484
f863127- Add custom color themes. Define your own palette as a JSON file in~/.kimi-code/themes/, or generate one with the built-in/custom-themeskill command. -
#582
d85dc0b- Add/import-from-cc-codexto import selected Claude Code and Codex instructions, Skills, and MCP settings. -
#593
40506f4- Show available plugin updates in the marketplace. An installed plugin whose marketplace version is newer than the local version now renders anupdate <local> → <latest>badge (and updates in place on Enter); up-to-date plugins showinstalled · v<version>. The marketplaceversionserved in dev and written by the CDN build is now stamped from each plugin's manifest so "latest" stays accurate.
Patch Changes
-
#587
0abde86- Clarify grouped subagent progress with active status breakdowns and elapsed time. -
#594
f2863af- Fix device login to keep the URL and code visible when the browser cannot be opened. -
#591
e48234a- Fix Windows builds and development launches that could fail when package binaries resolve to command shims. -
#586
7cb4a23- Truncate queued message display to a single line with ellipsis when it exceeds terminal width.
0.12.1
Patch Changes
-
#584
11bb62c- Allow obsolete experimental config entries to remain without blocking startup. -
#581
aa3471f- Pass through xhigh reasoning effort for OpenAI-compatible chat completions requests.
0.12.0
Minor Changes
-
#569
d7407b0- Enable micro compaction by default while keeping its opt-out flag. -
#531
b47734c- Detect Homebrew installations and usebrew upgrade kimi-codefor updates instead of falling back to npm. -
#487
4d11394- Honor the standardHTTP_PROXY/HTTPS_PROXY/ALL_PROXY/NO_PROXYenvironment variables, including SOCKS proxies, for all outbound traffic. -
#569
d7407b0- Make goals, background questions, and sub-skill discovery available without experimental opt-ins. -
#424
72c4b0a- Add the/swarmcommand for running agent swarms with live progress and rate-limit-aware retries.
Patch Changes
-
#395
879a7ee- Fix ACP slash skill routing, bootstrap context reads, file and permission edge cases, subagent event handling, and stale-file edit messaging. -
#529
3b62b12- Detect Git Bash installed through Scoop and other Git shims on Windows. -
#537
8d0c91f- Wrap long single-line shell commands in approval prompts so the full command remains visible. -
#552
db82e33- Fix goal resume behavior by restoring goal state from agent records. -
#521
9aba465- Fix the/mcpstatus panel border being broken by multi-line MCP server errors, which are now folded onto a single row. -
#543
0c3d556- Fix session workdir mismatch on Windows caused by inconsistent path separators. -
#544
5cff6d6- Load Kimi-specific user Skills and global agent instructions fromKIMI_CODE_HOMEwhen it is set. -
#536
b785e26- Show full plan cards directly and remove the Plan card keyboard shortcut. -
#555
41ebe9f- Improve goal mode outcome handling with follow-up messages, safer error pauses, and clearer TUI transcript display. -
#506
f09ec7b- Remove the per-turn auto-compaction limit so long conversations can keep compacting instead of failing early. -
#473
3787c30- Allow the startup session picker to exit with repeated Ctrl-C or Ctrl-D. -
#210
d995928- Show the underlying error when migration fails. -
#541
2db1bd9- Fix thinking text and tool output display for subagents.
0.11.0
Minor Changes
-
#468
df4f2d6- Add experimental sub-skill discovery gated by theKIMI_CODE_EXPERIMENTAL_SUB_SKILLenvironment variable. Ships thesub-skillbuiltin bundle (sub-skill.review,sub-skill.consolidate) for inventorying and consolidating skills into hierarchical groups. -
#480
f555c89- Show built-in skills as direct slash commands and group them ahead of external skill commands. -
#458
93eb70a- Migrate still-relevant environment variables from kimi-cli:KIMI_MODEL_TEMPERATURE,KIMI_MODEL_TOP_P— sampling parameters applied globally to anykimiprovider (not tied toKIMI_MODEL_NAME).KIMI_MODEL_THINKING_KEEP— Moonshot preserved-thinking passthrough (thinking.keep), injected only while Thinking is on.KIMI_CODE_NO_AUTO_UPDATE(legacy aliasKIMI_CLI_NO_AUTO_UPDATE) — fully disables the update preflight (no check, background install, or prompt).
-
#470
aa610e2- Use a fixed 30-minute timeout for subagents and show concise resume instructions when they time out.
Patch Changes
-
#474
658e465- Show the upcoming-goal confirmation with the same accent treatment as goal lifecycle messages. -
#474
658e465- Fix slash command autocomplete so goal text can be submitted when the cursor is before existing text. -
#474
658e465- Fix queued goals so failed promotion attempts do not lose or duplicate queued work. -
#456
3a98713- Show concise provider filtering errors when responses are blocked before visible output. -
#442
960a0e2- Show "unknown command" instead of "too many arguments" when an invalid subcommand is entered. -
#474
658e465- Fix upcoming-goal queue handling while editing or pasting queued goals. -
#457
1fe5d55- Clamp OpenAI Chat Completionsxhighandmaxthinking effort tohighunless the model supportsxhighonv1/chat/completions. -
#464
4f9977d- Preserve thinking effort when compacting long conversations. -
#474
658e465- Ask before starting goals in YOLO mode so users can switch to Auto for unattended work. -
#461
2af19e2- Refresh provider model metadata when capabilities change without model ID changes. -
#474
658e465- Start upcoming goals immediately when there is no active goal to wait for. Support multiline edits when managing upcoming goals. -
#474
658e465- Highlight goal queue subcommands while typing slash commands.
0.10.1
Patch Changes
0.10.0
Minor Changes
-
#433
85338e9- Add the built-inupdate-configskill — you can now have Kimi edit its own config files. -
#420
86a42a2- Add persistent experimental feature toggles and a TUI panel that applies confirmed changes by reloading the current session. -
#383
15d71b5- Add /reload to reload the current session and apply updated config files, plus /reload-tui to reload only TUI preferences. -
#393
beb12ac- Users now can prepare several goals for the agent to work on sequentially. The agent will pick up the next goal from the queue once the current goal is completed. Use/goal next <objective>to queue a goal and/goal next manageto review and change the queue interactively. -
#431
6a4e4c7- Add a doctor command for validating Kimi Code configuration files.
Patch Changes
-
#393
beb12ac- Stop carrying active and queued goals into forked sessions. -
#408
6303bd2- Point session error diagnostics to the/export-debug-zipcommand. -
#398
b2801c4- Set terminal tab titles without renaming the running process. -
#403
d645d7e- Start automatic background updates as soon as startup's fresh update check finds a newer version. -
#387
6e74027- Lowercase the stale file content message in edit tool errors. -
#428
853c5fc- Ensure Nix-packaged CLI builds can find ripgrep and fd. -
#411
4598262- Normalize malformed Responses stream rate limit errors as provider rate limit failures. -
#405
07e2e0f- Refresh the update target before showing foreground update prompts so the displayed version matches the install. -
#399
232ed87- Keep managed OAuth credentials scoped to their configured authentication and API endpoints. -
#407
07609b4- Set the CLI process title to kimi-code during startup. -
#419
d0f8e24- Document the Git Bash prerequisite for Windows installs. -
#430
be0da5f- Fail early when Git Bash is missing on Windows before starting CLI sessions.
0.9.0
Minor Changes
-
#368
3eafa79- Add@moonshot-ai/acp-adapterand thekimi acpsubcommand: kimi-code now speaks Agent Client Protocol 0.23 over stdio so IDEs (Zed, JetBrains AI Chat, custom clients) can drive sessions directly — coverage matrix, Zed configuration and breaking pre-release notes are in kimi acp Subcommand Page. -
#338
ba7dd73- Add/btwfor side-channel conversations without steering the active main turn. -
#378
e0d28b4- Allow/btwto open the side-channel panel before entering a question.
Patch Changes
-
#246
7d1f889- Fix external editor (Ctrl+G) on Windows by removing/bin/shdependency and using platform-aware shell quoting for temp file paths. -
#365
6a22523- Fix goal budget tool schemas for OpenAI-compatible providers. -
#365
6a22523- Use the OpenAI completion token field required by newer Chat Completions models. -
#380
8639105- Resume saved subagents lazily when they are accessed. -
#339
a6b16ce- Allow SDK runtime creation to use a separate RPC client while preserving local CLI startup. -
#363
90879f3- Unify the interaction and visuals across TUI dialogs and selectors. -
#365
6a22523- Use configured model output limits for completion token caps.
0.8.0
Minor Changes
-
#319
fe7db4a- Append the current todo list as markdown to compaction summaries before writing them to history. -
#334
eeefa98- Add background automatic upgrades, which can be disabled in tui.toml. -
#270
ac37d74- Add experimental goal mode for longer tasks that need more than one turn. Turn it on withKIMI_CODE_EXPERIMENTAL_GOAL_COMMAND=1before you start Kimi.Use
/goal <objective>in the TUI when you want Kimi to keep working on one task across turns. For example:/goal Fix the failing checkout testKimi shows the goal in the TUI and keeps progress visible while it works. Use
/goal status,/goal pause,/goal resume,/goal cancel, and/goal replace <objective>to manage the goal. This feature is still experimental. Try it and tell us what would make it more useful. -
#315
191059d- Add background structured questions so agents can continue while waiting for user answers. -
#313
3c5dee8- Addkimi providerCLI subcommand withadd,remove,list, andcatalog list/catalog addactions, so providers from a custom registry (api.json) or the public models.dev catalog can be imported and managed without launching the TUI. -
#277
a217ff0- Add/undoslash command to withdraw the last prompt from conversation history, and keep replay records in sync when a prompt is undone. -
#334
eeefa98- Add akimi upgradecommand for manually checking and upgrade Kimi Code CLI. -
#336
7cda9c3- Add approval lifecycle hook events for observing pending and completed permission prompts.
Patch Changes
-
#285
573c56e- Consolidate background task management under the agent background runtime. -
#314
6de3d97- Prevent modified keyboard release sequences from appearing after exiting the CLI. -
#335
7284f30- Fix custom registry provider handling during re-import. Prevent loss of multi-provider entries and remove stale providers along with their model aliases and default model references. -
#311
80164c2- Normalize glob patterns before brace expansion to prevent incorrect path matching. -
#247
58e2915- Fix a crash in the/sessionspicker on very narrow terminals by clamping every rendered line to the terminal width. -
#317
1f8c36a- Fix tool output preview rendering: trim trailing empty lines, append ellipsis to multi-line Bash command headers, and truncate long single-line output by visual wrapped lines instead of raw newline count. -
#145
d912053- Fix Git Bash path detection on Windows by also searchingusr\bin\bash.exelocations, which is where bash lives in many Git for Windows installations wherebin\bash.exedoes not exist. -
#310
a4511ff- Show the full model name in the footer status bar instead of truncating the provider prefix. -
#283
91b292e- Allow glob searches to target explicit absolute paths outside the workspace. -
#223
811f252- Show MCP server summary in the welcome panel and add configuration hints in the /mcp command output. -
#229
fb35bca- Replace chalk named color with theme-aware hex in session-directory warning. -
#303
3d7e20e- Point users to/providerinstead of the removed/connectcommand in the welcome screen and the no-models-configured hint. -
#135
0071b63- Fix slash-activated skills not being recognized by the model due to missing system reminder wrapper. -
#330
7a47045- Allow subagents to use custom tools registered on their parent agent. -
#333
1178c5c- Remind the model to refresh TodoList during long-running tasks and strengthen TodoList progress-tracking guidance. -
#327
8809f3e- Fix cross-provider replay failures from incompatible tool call IDs and unsigned Claude thinking history.
0.7.0
Minor Changes
-
#232
a24bfb1- AddKIMI_MODEL_ADAPTIVE_THINKING(and a matchingadaptive_thinkingmodel-alias field) to force adaptive thinking (thinking: { type: 'adaptive' }) on or off, overriding the Anthropic model-name version inference. This lets custom-named compatible endpoints that back an adaptive-capable model opt in even when the model name does not encode a parseable Claude version. -
#264
42bb914- Add/providercommand for managing AI providers, support custom registry imports, and introduce a tabbed model selector. -
#204
ee69d0a- Render scheduled reminders distinctly in the TUI, expose cron fired events to SDK clients, and report cron fire times with local timezone offsets.
Patch Changes
-
#282
a580cd3- Fix glob pattern backslash escaping and include match count in truncation messages. -
#267
e2e1728- Report truncated compaction summaries clearly and apply valid completion token budgets across supported providers. -
#274
a1dfbfe- Clarify Kimi Platform API key login labels and prompt details.
0.6.0
Minor Changes
-
#212
2bbea75- Add aKIMI_MODEL_*environment-variable channel that lets you run Kimi Code against a specific model (provider type, base URL, API key, context size, capabilities, and thinking settings) without editingconfig.toml. -
#221
bab2da7- Install plugins directly from GitHub repository URLs, and surface each install's origin and trust level (kimi-official, curated, third-party) in the plugin manager. -
#118
8913440- Support querying sessions by sessionId or workDir in listSessions, and show a helpful cd command when resuming a session from a different working directory. -
#186
537cf20- Remove the default per-turn step limit of 1000. Users can still setmax_steps_per_turnin config to enforce a custom limit.
Patch Changes
-
#197
f3269ea- Show the real terminal status of background agents in the transcript so lost, failed, and killed ones no longer appear as completed, and include the resume agent id and recovery instructions in the failure notification so the model can resume reliably. -
#211
54590d3- Back off failed compaction retries by a fixed slice of the model context window. -
#167
b5981a5- IntroduceModelProviderinterface andSingleModelProviderto decoupleAgentfromProviderManager. -
#213
2388f20- Handle context overflow errors consistently across provider responses. -
#214
caaa6d8- Fix the native self-updater reporting a successful update when the install command actually failed. -
#202
14a0348- Fix footer leaking onto the terminal when resuming a non-existent session. -
#198
8c77cfa- Fix automatic ripgrep installation when temporary files are on another filesystem. -
#199
588145d- Expand the footer's rotating tips to surface more commands and shortcuts, featuring newer and important ones more prominently. -
#192
64964a0- Improve the usage information display in the TUI. -
#195
3a0e060- Project persisted hook and blocked prompt messages into model context. -
#221
bab2da7- Restrict plugin trust badges to Kimi-hosted plugin CDN URL patterns. -
#207
e280f33- Recover from provider model token limit errors during long conversations. -
#201
3da4dae- Automatically retry when a model response stream is dropped mid-flight (aterminatederror) instead of failing the turn. -
#190
1873859- Slim the LLM diagnostic logs with fewer, more compact fields. -
#185
114777e- SplitRuntimeConfigintoKaosandToolServicesand update all references accordingly. -
#189
564721f- Clarify subagent and background task stop messages as user-initiated. -
#206
07d51e4- Relocate shared tool service typing to the tool support layer. -
#215
b9860e9- Align the datasource plugin with the generic two-tool workflow. -
#200
5159af3- Keep blocked prompt hook conversations available to subsequent model turns.
0.5.0
Minor Changes
-
#163
07dd604- Add/autoslash command and--autoCLI flag for auto permission mode. -
#157
971fce6- Add scheduled tasks:You can now ask the agent to remind you at a specific time, run a task on a recurring cron schedule (for example, check a deploy every 5 minutes or run a daily report every weekday at 9am), or come back on its own in a few minutes to continue what it was doing.
Schedules use the standard 5-field cron syntax.
Patch Changes
-
#162
f3c1015- Add a clickable changelog link to the update prompt. -
#150
8b5a251- Show the full Bash command when expanding a Bash tool card withctrl+o. The header still truncates long commands at 60 chars, but the expanded view now reveals the complete multi-line command above the output. -
#158
d1f9a83- Shorten the session title written to the terminal window/tab from 80 to 32 characters so long first messages and pasted content no longer stretch the tab bar past readable width. -
#146
76cbf86- Cap the inline todo panel at five rows and show a+N moreindicator so long task lists no longer fill the screen. -
#120
8515472- Fix compaction to handle edge cases where no messages are compactable and improve retry logic. -
#159
c88b7bf- Fix official datasource tools to preserve complete responses and write returned result files. -
#124
3e72f25- Fix migration mapping the legacydefault_yolokey to the deadyolofield instead ofdefault_permission_mode. -
#164
0a76658- Clarify plugin manager keyboard shortcuts and show plugin state changes inline. -
#166
92e1d8c- Report discovered plugin skills in plugin manager summaries. -
#139
50251a1- Show file content and diff in Write and Edit approval prompts, and open them in a dedicated full-screen viewer on ctrl+e instead of expanding inline. -
#117
a6d379b- Offload large base64 media payloads from wire.jsonl into external blob files to reduce wire size and memory pressure during session replay. Includes an in-memory read-through cache onBlobStoreso repeated rehydration avoids redundant disk reads. -
#150
8b5a251- Wrap long question, body, and option text in the AskUserQuestion dialog instead of truncating with an ellipsis. The question prompt, body description, option label, option description, and submit-tab review entries now flow onto multiple lines with a hanging indent.
0.4.0
Minor Changes
-
#116
2c7a8cc- Expand folded paste markers on second paste. When the cursor is on a paste marker (e.g.[paste [#1](https://github.com/MoonshotAI/kimi-code/issues/1) +15 lines]) and the user pastes again, the marker expands back to the original content instead of inserting new clipboard data. -
#26
2b74025- Rework tool permissions: reads outside cwd no longer prompt, session approvals match the exact call, and path-based rules are case-insensitive. -
#119
ebf6e81- Add user-global plugin installation, interactive plugin management, plugin-provided skills, and plugin-owned MCP servers. -
#112
d03f6f4- Add/export-debug-zipslash command to export the current session as a debug ZIP archive directly from the TUI. -
#113
028d069- Add/export-mdslash command to export the current session as a Markdown file.
Patch Changes
-
#105
d599183- Enhancekimi exportto include more diagnostic information in the manifest. -
#89
61cae59- Prevent the TUI from crashing when pull request lookup fails during startup. -
#97
2e8c417- Fix thinking spinner leaking past turn end when an empty thinking delta creates an orphaned thinking component. -
#103
73c4232- Show the original session resume command after forking a session. -
#119
ebf6e81- Restrict plugin zip installs to manifests at the archive root or a single wrapper directory. -
#102
6f55f1d- Route session-tagged log entries exclusively to the session sink instead of duplicating them to the global sink. Consistently omit stable main-agent context keys from all session log lines that carryagentId=main. -
#92
4e458d6- Use one retry classification for transient LLM failures across regular turns and compaction.
0.3.0
Minor Changes
- #76
6f22ae4- /logout now opens a picker so you can choose which provider to log out of, instead of always logging out the one tied to the current model. The current provider is highlighted by default, so pressing Enter matches the previous behavior. The command is also available as /disconnect.
Patch Changes
-
#62
e2b2b46- MakeAgentRecordshold theAgentinstance directly and inline the restore dispatch logic. -
#73
bddc60f- Prevent running the/modeland/sessionsslash commands while streaming or compacting context. -
#70
d95b013- Preserve catalog-declared interleaved reasoning fields for OpenAI-compatible models configured through/connect. -
#78
61f7d0e- Make OpenAI-compatible reasoner models work out of the box for hand-written provider configs. Theopenaiprovider now auto-detects thinking on incoming responses by scanning the de facto field set (reasoning_content,reasoning_details,reasoning), serializes thinking back asreasoning_contentby default, and auto-injectsreasoning_effortwhenever the conversation history contains prior thinking — so DeepSeek, Qwen, One API and other gateway-fronted services no longer require a hand-setreasoning_key. Thereasoning_keymodel-alias field remains available as an explicit override for non-standard gateways. -
#66
8ddfc04- Fix API key input dialog showing a masked dot in empty state. -
#72
0ce0072- Fix user skills in ~/.agents/ not being loaded. -
#86
5e354d0- Restore real-time token display for running subagents in the TUI. -
#57
8fb61f9- Hide the todo panel on resume when all todos are already completed. -
#83
7d9216d- Always emit a paired tool result when a tool returns a malformed or missing result, preventing the next request from failing with a missing tool_call_id error. -
#79
5a90b53- Fix Plan mode session resets so new sessions no longer fail after plan review rejection and continue receiving events after setup errors. -
#77
fe60c21- Exit promptly when the controlling terminal goes away. The TUI now handlesSIGHUP/SIGTERMand stdout/stderrEIO/EPIPE/ENOTCONNerrors, preventing leftoverkimiprocesses that pin a CPU core after the parent shell or multiplexer dies unexpectedly. -
#85
2bb50a3- Avoid overly small local completion caps that can truncate reasoning before summaries are produced.
0.2.0
Minor Changes
-
#30
a200a29- Add a/connectcommand that configures a provider and model from a model catalog. -
#30
a200a29- The/connectprovider and model pickers now support type-to-search filtering, and long lists are paginated. The/modelpicker is also paginated when many models are configured. -
#25
c4dd1c7- Flatten tool call data by inlining tool names and arguments at the top level, and limit legacy record migration so it only rewrites matching tool call payloads.
Patch Changes
-
#9
e503e69- AddCtrl-Jas an additional shortcut for inserting new lines in the TUI prompt. -
#22
2004aed- Add wire record migration handling during session replay. -
#33
ab4bd09- Report the macOS product version in OAuth device information instead of the Darwin kernel version. -
#52
064343a- Correct theX-Msh-Platformheader value tokimi_code_cli. -
#38
e9e4a48- Clarify the prompt-mode error when no model is configured by pointing users to the login flow. -
#13
35726d7- Hide the empty current session from the sessions picker while keeping other empty sessions visible. -
#31
475ebad- Stop mentioning OAuth credentials in the migration UI — they are never migrated, so the previous "needs /login" notice misread as a failure. OAuth-only installs no longer trigger the migration screen. -
#31
475ebad- Migrate user skills from~/.kimi/skills/to~/.kimi-code/skills/during the first-launch migration; existing target skills are kept. -
#30
a200a29- When no models are configured,/modeland the welcome panel now point users to/login(for Kimi) and/connect(for other providers). -
#11
15b018f- Surface API-provided error messages during feedback, usage, login, and model setup failures. -
#24
7858821- Persist model selections from the terminal UI to the default configuration, and honor the configured default thinking state for new sessions. -
#14
0da6073- Move wire metadata handling into the record layer and keep persistence backends limited to storage operations. -
#12
89ea895- Retry compaction responses that do not contain a summary before updating conversation history. -
#29
df7a9ca- Avoid CPU spikes from large streamed tool arguments and coalesce high-frequency streaming UI updates. -
#47
07ed2cf- Emit session resume hint as a structured meta message in stream-json output format. -
#49
cf2227e- Resume sessions with a newer wire protocol version instead of failing. A warning is now shown in the TUI and records are replayed without migration. -
#18
a964bd2- Warn tmux users when extended key settings may prevent modified Enter shortcuts from working. -
#17
bfbd522- Let Kimi requests use the remaining context window for completion tokens by default while keeping explicit environment limits as hard caps.