Kimi Code

AIDesktop

A terminal coding agent from the makers of Kimi.

Latest 0.34.0 · · Desktopby Moonshot AIWebsiteMoonshotAI/kimi-code

Release activity

Release activity — 61 releases across 47 days since May 26, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before May 26, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 31, 2026No releases on Jun 7, 20261 release on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 20261 release on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Jun 1, 2026No releases on Jun 8, 20261 release on Jun 15, 20261 release on Jun 22, 20261 release on Jun 29, 20261 release on Jul 6, 2026No releases on Jul 13, 20262 releases on Jul 20, 20261 release on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
Tuesday2 releases on May 26, 20262 releases on Jun 2, 20262 releases on Jun 9, 20261 release on Jun 16, 20261 release on Jun 23, 20261 release on Jun 30, 20261 release on Jul 7, 20262 releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 20261 release on Aug 4, 2026No releases on Aug 11, 2026
Wednesday1 release on May 27, 20261 release on Jun 3, 20263 releases on Jun 10, 20262 releases on Jun 17, 20261 release on Jun 24, 20262 releases on Jul 1, 20262 releases on Jul 8, 20261 release on Jul 15, 20261 release on Jul 22, 20261 release on Jul 29, 20261 release on Aug 5, 2026
Thursday1 release on May 28, 20262 releases on Jun 4, 2026No releases on Jun 11, 20261 release on Jun 18, 20261 release on Jun 25, 20262 releases on Jul 2, 20261 release on Jul 9, 20262 releases on Jul 16, 2026No releases on Jul 23, 20261 release on Jul 30, 20261 release on Aug 6, 2026
Friday1 release on May 29, 20261 release on Jun 5, 20262 releases on Jun 12, 2026No releases on Jun 19, 20261 release on Jun 26, 20261 release on Jul 3, 20261 release on Jul 10, 20261 release on Jul 17, 20261 release on Jul 24, 20261 release on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 20261 release on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

61 releases since May 26, 2026, busiest day 3

Changelog

0.34.0

Added 4
  • Show a cache-expiry reminder when resuming a long-idle session or submitting after a long idle stretch
  • Add a persistent failure card to the session when a model request fails and interrupts a conversation, with one-click resume
  • Add Windows support for the built-in Kimi Computer Use capability and show the underlying error when capability setup fails
  • Add a flat view to the sidebar session list
Changed 3
  • /feedback now works for any signed-in user regardless of the active model
  • Keep live sessions stable when an MCP server is removed from the workspace config or uninstalled with its plugin
  • Read UTF-16 LE/BE text files (with or without a BOM) by transcoding them to UTF-8 instead of refusing them as binary
Fixed 9
  • Restore how the last turn ended (completed, cancelled, or failed) when a session is resumed after a server restart
  • Session listings keep how the last turn ended (completed, cancelled, or failed) across server restarts
  • Fix the model picker overflowing the screen when many models are available
  • Fix kimi -p exiting right after the main turn instead of waiting for background tasks and subagents to finish
  • The sidebar error marker now only appears when the last turn failed; manually cancelled sessions are no longer flagged
  • Fix attachments being silently dropped when sent together with a skill command
Minor Changes
  • #2646 3c75a27 Thanks @liruifengv! - Show a cache-expiry reminder when resuming a long-idle session or submitting after a long idle stretch.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: When a model request fails and interrupts a conversation, a persistent failure card now stays in the session with one-click resume.

  • #2652 68ba740 Thanks @wbxl2000! - Add Windows support for the built-in Kimi Computer Use capability and show the underlying error when capability setup fails. Install it from /plugins on Windows x64.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Add a flat view to the sidebar session list.

Patch Changes
  • #2648 d1ded01 Thanks @wbxl2000! - Restore how the last turn ended (completed, cancelled, or failed) when a session is resumed after a server restart, so clients can still surface a previously failed turn instead of the session looking silently stopped.

  • #2666 335588e Thanks @wbxl2000! - Session listings keep how the last turn ended (completed, cancelled, or failed) across server restarts, so clients can mark previously failed sessions before they are opened.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix the model picker overflowing the screen when many models are available, leaving the bottom options unreachable.

  • #2639 8588121 Thanks @7Sageer! - /feedback now works for any signed-in user regardless of the active model; signed-out users are shown the sign-up page and GitHub Issues links instead.

  • #2675 34c4181 Thanks @sailist! - Fix kimi -p exiting right after the main turn instead of waiting for background tasks and subagents to finish.

  • #2694 02c026d Thanks @sailist! - Keep live sessions stable when an MCP server is removed from the workspace config or uninstalled with its plugin: its tools stay registered in open sessions but calls fail with a removal notice, and the MCP panel shows the removed status. Servers added mid-session — by a plugin install or a config edit — are not registered in open sessions; they take effect in new sessions or after /new or /reload.

  • #2647 7bd3fd9 Thanks @sailist! - Read UTF-16 LE/BE text files (with or without a BOM) by transcoding them to UTF-8 instead of refusing them as binary; the web UI file viewer displays them as text as well.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: The sidebar error marker now only appears when the last turn failed; manually cancelled sessions are no longer flagged.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix attachments being silently dropped when sent together with a skill command.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix a manually chosen thinking level being reset to the model default when the first message of a new session is a skill command.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix session renaming during IME composition — Enter no longer submits mid-composition and Esc no longer exits the editor while composing.

  • #2686 ef61084 Thanks @wbxl2000! - Use a compatible PowerShell for Windows Kimi Computer Use installation, provide actionable recovery for locked plugin files, and keep its marketplace name consistent after installation.

  • #2679 7b2784b Thanks @liruifengv! - web: Subagent tasks now show the model and thinking level they use.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix text selection while renaming a session or workspace — dragging no longer moves the whole list item.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix the chevron direction on the "show less" button of the changed-files summary card.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: During automatic retries after a failed model request, the working status now shows retry progress (attempt N of M) instead of looking unresponsive.

  • #2677 713bf1a Thanks @liruifengv! - Fix resumed sessions rendering background task completion notifications as raw protocol text instead of a task status card.

  • #2692 03aa66c Thanks @wbxl2000! - Show browser extension links and activation steps after installing Kimi WebBridge.

  • #2645 2b89373 Thanks @sailist! - Fix the web UI opening the Documents folder instead of the requested file on Windows when the file path contains spaces.

  • #2697 e6e4ba2 Thanks @liruifengv! - web: Fix the background-tasks and todos pills being pushed to the top of the window when the plan approval dialog expands.

View originalPermalink
How 0.34.0 went

0.33.0

Added 7
  • Add Kimi Computer Use and Kimi WebBridge as built-in official marketplace entries in the v2 CLI
  • Ask whether to trust the current folder on startup
  • Add and manage custom providers in settings in web
  • Add /bug as an alias for the /feedback slash command
  • Show the signed-in account and plan usage in web
  • Set an emoji for the session title in web
  • Pin sessions to the top of the sidebar in web
Changed 6
  • Run the CLI surfaces (interactive TUI, kimi -p, kimi acp, kimi export, kimi provider) on the agent-core-v2 engine by default
  • /fork no longer switches to the forked session; the current session stays active and its background tasks keep running
  • Overhaul the UI/UX and fix known issues in web
  • Rename the partner plugin marketplace tab to Curated and clarify that it contains third-party plugins from Kimi partners
  • MCP tool results now surface the spec-defined structuredContent field and _meta server metadata to the model as a serialized mcp-structured-result block
  • Start the interactive TUI without creating a session
Fixed 4
  • Fix built-in capability availability and installed status in /plugins, preserve legacy WebBridge skills as backups during updates, and prevent Computer Use updates from duplicating or disconnecting MCP servers
  • Ensure the first request waits for MCP startup to finish while the interface still opens immediately
  • Fix MCP OAuth re-authorization always failing with "Invalid redirect URI" by dropping stale registrations and re-registering with the current callback URI
  • Fix all tool calls failing with spawn EBADF on macOS when a skill folder contains a very large file tree
Minor Changes
  • #2407 0abcd00 Thanks @wbxl2000! - Add Kimi Computer Use and Kimi WebBridge as built-in official marketplace entries in the v2 CLI. Installing from /plugins sets up the latest managed runtime and plugin together, reports incomplete manual steps, and supports retrying interrupted setup.

  • #2627 f881cdd Thanks @sailist! - Run the CLI surfaces (interactive TUI, kimi -p, kimi acp, kimi export, kimi provider) on the agent-core-v2 engine by default. Set KIMI_CODE_LEGACY_FLAG=1 to fall back to the legacy engine.

  • #2565 54c04bf Thanks @7Sageer! - /fork no longer switches to the forked session: the current session stays active and its background tasks keep running. Find the fork in /sessions.

  • #2630 3bd098b Thanks @liruifengv! - Ask whether to trust the current folder on startup.

  • #2630 3bd098b Thanks @liruifengv! - web: Add and manage custom providers in settings.

  • #2599 541ddd2 Thanks @liruifengv! - web: Overhaul the UI/UX and fix known issues.

Patch Changes
  • #2601 75fe068 Thanks @wbxl2000! - Fix built-in capability availability and installed status in /plugins, preserve legacy WebBridge skills as backups during updates, and prevent Computer Use updates from duplicating or disconnecting MCP servers.

  • #2635 2b3e9a9 Thanks @wbxl2000! - Rename the partner plugin marketplace tab to Curated and clarify that it contains third-party plugins from Kimi partners.

  • #2614 8db7d42 Thanks @RealKai42! - Add /bug as an alias for the /feedback slash command. Type /bug to submit feedback.

  • #2586 278b6af Thanks @7Sageer! - Ensure the first request waits for MCP startup to finish while the interface still opens immediately.

  • #2620 2ee6e43 Thanks @xpzouying! - Fixed MCP OAuth re-authorization always failing with "Invalid redirect URI": the OAuth callback listener binds a random port per flow, but the dynamic client registration recorded the first flow's port, so every later interactive authorization was rejected at the authorization endpoint. A stale registration is now dropped automatically and the flow re-registers with the current callback URI.

  • #2596 c32e661 Thanks @xpzouying! - MCP tool results now surface the spec-defined structuredContent field and _meta server metadata to the model as a serialized <mcp-structured-result> block, instead of silently dropping them. Servers that return their machine-readable contract in these fields work the same as on other MCP hosts.

  • #2612 e357028 Thanks @7Sageer! - Fix all tool calls failing with spawn EBADF on macOS when a skill folder contains a very large file tree.

  • #2630 3bd098b Thanks @liruifengv! - Start the interactive TUI without creating a session.

  • #2630 3bd098b Thanks @liruifengv! - web: Show the signed-in account and plan usage.

  • #2630 3bd098b Thanks @liruifengv! - web: Set an emoji for the session title.

  • #2630 3bd098b Thanks @liruifengv! - web: Pin sessions to the top of the sidebar.

View originalPermalink
How 0.33.0 went

0.32.0

Added 4
  • Add the TurnStarted, UserPromptQueued, TaskStarted, and SessionHeartbeat hook events
  • Enrich hook payloads with the session title and client type
  • Include the model and profile in SessionStart
  • Add a [token_counting] config section to choose how context token counts are derived: measured+estimated, measured, or estimated
Changed 5
  • Report SessionEnd as archive when a session is archived instead of exited
  • Rename the [loop_control] max_retries_per_step config key to max_attempts_per_step and max_steps_per_run to max_steps_per_turn
  • Serve v1 message history from the server layer and drop the engine-side legacy message adapter
  • Assemble the session snapshot endpoint from the engine's services for both cold and live sessions
  • The [token_counting] strategy now only selects the reported context size
Fixed 5
  • Fall back to the built-in models.dev catalog snapshot when the public catalog is unreachable
  • Fix dark-mode monochrome controls and align the chat composer corner radius with the design system
  • Render the /login already-logged-in confirmation in the success color instead of dim text
  • Fix submitting answers to interactive question prompts being rejected when the model provider returns tool call IDs containing colons
  • Fix the context window limit showing as 0 in session status updates when no model is bound yet
Removed 1
  • Remove the KIMI_SNAPSHOT_READER, KIMI_SNAPSHOT_TIMEOUT_MS, and KIMI_SNAPSHOT_CACHE_LIMIT environment variables
Deprecated 1
  • The KIMI_LOOP_MAX_RETRIES_PER_STEP environment variable is deprecated in favor of KIMI_LOOP_MAX_ATTEMPTS_PER_STEP
Minor Changes
  • #2558 75395f6 Thanks @sailist! - Add the TurnStarted, UserPromptQueued, TaskStarted, and SessionHeartbeat hook events, enrich hook payloads with the session title and client type, include the model and profile in SessionStart, and report SessionEnd as archive when a session is archived instead of exited. Configure the new events under [[hooks]] in config.toml.
Patch Changes
  • #2416 eaab2b6 Thanks @mangeshraut712! - Fall back to the built-in models.dev catalog snapshot when the public catalog is unreachable, so Known third-party provider import still works offline or in blocked networks.

  • #2083 bfa0080 Thanks @StaR4y! - web: Fix dark-mode monochrome controls and align the chat composer corner radius with the design system.

  • #2559 dfc55a5 Thanks @wbxl2000! - Render the "/login" already-logged-in confirmation in the success color instead of dim text, so the "Already logged in. Model configuration refreshed." message is clearly visible.

  • #2572 6ba75a1 Thanks @sailist! - Rename the [loop_control] max_retries_per_step config key to max_attempts_per_step and max_steps_per_run to max_steps_per_turn: on the v2 engine the old keys no longer take effect and a startup warning prompts the rename in config.toml. The KIMI_LOOP_MAX_RETRIES_PER_STEP env var is likewise deprecated in favor of KIMI_LOOP_MAX_ATTEMPTS_PER_STEP but keeps working with a warning.

  • #2585 c396873 Thanks @sailist! - Fix submitting answers to interactive question prompts being rejected when the model provider returns tool call IDs containing colons (some OpenAI-compatible gateways).

  • #2562 071b6a5 Thanks @sailist! - Serve v1 message history from the server layer and drop the engine-side legacy message adapter; the /api/v1 message contract is unchanged.

  • #2562 071b6a5 Thanks @sailist! - Assemble the session snapshot endpoint from the engine's services for both cold and live sessions, and remove the KIMI_SNAPSHOT_READER, KIMI_SNAPSHOT_TIMEOUT_MS, and KIMI_SNAPSHOT_CACHE_LIMIT environment knobs.

  • #2563 2118544 Thanks @sailist! - Fix the context window limit showing as 0 in session status updates when no model is bound yet or the configured model no longer resolves; the limit now falls back to the default model or is omitted when unknown.

  • #2563 2118544 Thanks @sailist! - The [token_counting] strategy now only selects the reported context size: estimated keeps provider-reported usage out of the context-size display, and measured no longer gets stuck retrying an oversized compaction request until it fails.

  • #2563 2118544 Thanks @sailist! - Add a [token_counting] config section to choose how context token counts are derived: measured+estimated (default), measured (provider usage only), or estimated (heuristic only, for providers without usage reporting). Set strategy under [token_counting] in config.toml (or KIMI_TOKEN_COUNTING_STRATEGY) to switch.

View originalPermalink
How 0.32.0 went

0.31.1

Added 1
  • Enable Monaco-based highlighting for code blocks in web
Changed 3
  • Preserve the assistant's partial output when a turn is interrupted with Esc, and remind the model that the previous turn was deliberately interrupted
  • Reduce frequent full-screen redraws in the TUI
  • Order permission modes from safest to most permissive across settings surfaces in web
Fixed 7
  • Fix sporadic "model is not configured" errors when starting kimi web, caused by the background provider-model refresh transiently clearing the model catalog while the first session was being created
  • Fix line numbers overlapping or drifting out of alignment in fallback-rendered code blocks
  • Fix the swapped yolo/auto risk colors in the status panel and mobile settings
  • Fix chat code blocks rendering in the proportional UI font at the wrong size after the markdown renderer upgrade
  • Align the loading fallback with the highlighted block so the markdown renderer upgrade no longer shifts layout
  • Make the @ file mention work in a new-session draft, before the first prompt creates the session
  • Fix new sessions showing the thinking level while the first message actually ran with thinking off
Patch Changes
  • #2410 f1a3475 Thanks @sailist! - Fix sporadic "model is not configured" errors when starting kimi web, caused by the background provider-model refresh transiently clearing the model catalog while the first session was being created.

  • #2400 1f3f5da Thanks @7Sageer! - Preserve the assistant's partial output when a turn is interrupted with Esc, and remind the model that the previous turn was deliberately interrupted.

  • #2415 5c0ec29 Thanks @wbxl2000! - web: Enable Monaco-based highlighting for code blocks, and fix line numbers overlapping or drifting out of alignment in fallback-rendered code blocks.

  • #2442 bb2919e Thanks @liruifengv! - Reduce frequent full-screen redraws in the TUI.

  • #2125 e111c87 Thanks @bowenliang123! - web: Order permission modes from safest to most permissive across settings surfaces, and fix the swapped yolo/auto risk colors in the status panel and mobile settings.

  • #2459 326e1fb Thanks @wbxl2000! - web: Fix chat code blocks rendering in the proportional UI font at the wrong size after the markdown renderer upgrade, and align the loading fallback with the highlighted block so the upgrade no longer shifts layout.

  • #2437 ed7a4cc Thanks @sailist! - web: Make the @ file mention work in a new-session draft, before the first prompt creates the session.

  • #2437 ed7a4cc Thanks @sailist! - web: Fix new sessions showing the thinking level (e.g. Max) while the first message actually ran with thinking off.

View originalPermalink
How 0.31.1 went

0.31.0

Added 4
  • Support plugin-contributed custom agents, discovered automatically and available for sub-agent delegation via an agents/ directory in the plugin or agents paths in the plugin manifest
  • Allow enabled plugins to contribute agent system-prompt instructions through systemPrompt or systemPromptPath in kimi.plugin.json
  • Support Markdown-defined custom agents on agent-core
  • Add the /secondary_model slash command to configure the secondary model used by subagents
Changed 1
  • Remove the blocking block/timeout wait from the TaskOutput tool so checking a background task returns an immediate snapshot and completion arrives via automatic notification
Fixed 2
  • Fix request headers not being passed correctly on some requests
  • Fix sessions missing from the session picker when their cached metadata predates the archived flag
Minor Changes
  • #2365 fa2c5ce Thanks @7Sageer! - Add support for plugin-contributed custom agents, discovered automatically and available for sub-agent delegation. Ship an agents/ directory in the plugin (or declare agents paths in the plugin manifest) to provide them.

  • #2314 02d77b2 Thanks @7Sageer! - Allow enabled plugins to contribute agent system-prompt instructions through systemPrompt or systemPromptPath in kimi.plugin.json, effective on both agent engines (the TUI, kimi -p, and kimi web).

  • #2232 efac96c Thanks @7Sageer! - Support Markdown-defined custom agents on agent-core.

  • #2232 efac96c Thanks @7Sageer! - Add the /secondary_model slash command to configure the secondary model used by subagents.

Patch Changes
  • #2382 40172c7 Thanks @liruifengv! - Fix request headers not being passed correctly on some requests.

  • #2379 691ec46 Thanks @RealKai42! - Remove the blocking block/timeout wait from the TaskOutput tool so checking a background task can no longer stall the conversation; it now always returns an immediate snapshot, and completion still arrives via automatic notification.

  • #2395 d10b1c1 Thanks @sailist! - Fix sessions missing from the session picker when their cached metadata predates the archived flag.

View originalPermalink
How 0.31.0 went

0.30.0

Added 3
  • Add a customizable footer status line, configured via [status_line] in tui.toml
  • Show a quota note after installing official plugins that bill against plan quota such as Kimi Datasource
  • Show a notice when an official plugin used in the session has an update available
Changed 2
  • Stop the turn after repeated invalid tool calls instead of retrying indefinitely
  • Fail fast when account quota or balance is exhausted instead of silently retrying for ~3 minutes
Fixed 1
  • Fix garbled line numbers in code blocks in web
Removed 1
  • Remove the 50 MB size limit on file uploads to the built-in server
Minor Changes
  • #2255 67dd031 Thanks @he-yufeng! - Add a customizable footer status line, configured via [status_line] in tui.toml.
Patch Changes
  • #2313 de0ba9d Thanks @starquakee! - Stop the turn after repeated invalid tool calls instead of retrying indefinitely.

  • #2147 29783e4 Thanks @wbxl2000! - Show a quota note after installing official plugins that bill against plan quota (such as Kimi Datasource).

  • #2147 29783e4 Thanks @wbxl2000! - Show a notice when an official plugin used in the session has an update available. Run /plugins to install it.

  • #1857 cdbd33c Thanks @vinlee19! - Fail fast when account quota or balance is exhausted instead of silently retrying for ~3 minutes.

  • #2294 425cfdf Thanks @wbxl2000! - web: Fix garbled line numbers in code blocks.

  • #2312 d03a488 Thanks @sailist! - Remove the 50 MB size limit on file uploads to the built-in server.

View originalPermalink
How 0.30.0 went

0.29.2

Added 1
  • Allow hosts to defer registered user-tool schemas until needed by setting disclosure: "deferred" when registering a tool
Changed 3
  • Hold per-agent runtime state of the experimental engine in the agent-scope state container so it is observable in one place and disposed with the agent; state snapshots collapse class instances to name markers to prevent resource graphs from exhausting memory during export
  • Instantiate every registered service eagerly at scope creation on the experimental engine following the dependency graph automatically, removing hand-maintained lists that resolved side-effect services one by one at startup
  • Hold per-session runtime state of the experimental engine in the session-scope state container so it is observable in one place and disposed with the session
Fixed 4
  • Fix copying selected chat text over plain HTTP from replacing the clipboard with an event placeholder
  • Fix goal pursuit being interrupted when a goal turn reaches the per-turn step limit; the limit now splits goal work into more continuation turns instead of pausing the goal
  • Fix messages sent while a goal is running being rejected with a "Cannot launch a new turn while another turn is active" error; they are now steered into the active goal turn instead of being dropped
  • Fix /undo to restore conversation history, todo lists, plan mode, and task notifications consistently
Patch Changes
  • #2192 7799bd7 Thanks @sailist! - Hold per-agent runtime state of the experimental engine in the agent-scope state container, so it is observable in one place and disposed with the agent; state snapshots collapse class instances to name markers so resource graphs cannot exhaust memory during export.

  • #2119 f06eb5c Thanks @pvzheroes125! - Allow hosts to defer registered user-tool schemas until needed. Set disclosure: "deferred" when registering a tool.

  • #2192 7799bd7 Thanks @sailist! - Instantiate every registered service eagerly at scope creation on the experimental engine, following the dependency graph automatically, and drop the hand-maintained lists that resolved side-effect services one by one at startup.

  • #2120 0d00a07 Thanks @yicun! - web: Fix copying selected chat text over plain HTTP from replacing the clipboard with an event placeholder.

  • #2210 0cef160 Thanks @chengluyu! - Fix goal pursuit being interrupted when a goal turn reaches the per-turn step limit (loop_control.max_steps_per_turn); the limit now splits goal work into more continuation turns instead of pausing the goal.

  • #2153 c497af6 Thanks @chengluyu! - Fix messages sent while a goal is running being rejected with a "Cannot launch a new turn while another turn is active" error; they are now steered into the active goal turn instead of being dropped.

  • #2192 7799bd7 Thanks @sailist! - Hold per-session runtime state of the experimental engine in the session-scope state container, so it is observable in one place and disposed with the session.

  • #2055 d40d0d3 Thanks @7Sageer! - Fix /undo to restore conversation history, todo lists, plan mode, and task notifications consistently.

View originalPermalink
How 0.29.2 went

0.29.1

Added 3
  • Add global default MCP server timeouts in config.toml and env vars
  • Add experimental secondary-model bindings for newly spawned subagents, including per-agent model preferences and subagent-only model overrides
  • Add environment variables to configure the web search and web fetch services without OAuth login
Fixed 1
  • Fix loss of thinking content with OpenAI-compatible endpoints that return reasoning under a different field name by detecting the reasoning field per endpoint and echoing it back on follow-up requests
Removed 1
  • Remove the toolbar tip that suggested trying the superpowers plugin
Patch Changes
  • #2065 527d485 Thanks @7Sageer! - Add global default MCP server timeouts in config.toml and env vars.

  • #2104 66f611a Thanks @RealKai42! - Fix loss of thinking content with OpenAI-compatible endpoints that return reasoning under a different field name (e.g. newer vLLM); the reasoning field is now detected per endpoint and echoed back on follow-up requests.

  • #2089 ca38b7e Thanks @liruifengv! - Remove the toolbar tip that suggested trying the "superpowers" plugin.

  • #2064 7b62ed5 Thanks @7Sageer! - Add experimental secondary-model bindings for newly spawned subagents, including per-agent model preferences and subagent-only model overrides.

  • #2096 5fdbdb4 Thanks @7Sageer! - Add environment variables to configure the web search and web fetch services without OAuth login.

View originalPermalink
How 0.29.1 went

0.29.0

Added 9
  • Support selecting a thinking effort level from ACP clients with the thinking picker listing the current model's declared levels instead of only an on/off toggle
  • Allow custom agent files to restrict which sub-agent types they may delegate to (v2 engine only)
  • Support custom agents defined as Markdown files with frontmatter, usable as the main agent or a sub-agent (v2 engine only)
  • Add global tool gating to constrain which tools agents may use, with a per-session override (v2 engine only)
  • Add a GET /api/v1/fs:content server endpoint that serves any file on the host by absolute path as raw content with Content-Type, ETag, and Range support
  • Videos attached to a prompt now reach the model together with the prompt with no extra tool round trip and stay playable in the chat after a reload
Changed 1
  • Import many more providers from the models.dev catalog including vendor SDKs like xai and openrouter with per-model gateway protocol and endpoint overrides honored
Fixed 4
  • Fix catalog-imported Claude models being wrongly locked into always-on thinking and stop offering a misleading thinking Off option for models that cannot truly disable reasoning
  • Fix config environment overrides being persisted into config.toml by config API writes while the env var is set
  • Remove references to the non-existent kimi resume command from the scheduled-task tool descriptions
  • Fix cancelled model requests being wrapped as retryable provider errors so interrupting a request no longer triggers silent retries
Minor Changes
  • #1992 a8f1ca3 Thanks @RealKai42! - Support selecting a thinking effort level from ACP clients: the thinking picker now lists the current model's declared levels (for example off / low / medium / high) instead of only an on/off toggle. Use the thinking selector in your ACP client (e.g. Zed) to pick a level; the legacy on/off values keep working.

  • #1735 ce0e3ce Thanks @7Sageer! - Let custom agent files restrict which sub-agent types they may delegate to (v2 engine only).

  • #1735 ce0e3ce Thanks @7Sageer! - Support custom agents defined as Markdown files with frontmatter, usable as the main agent or a sub-agent (v2 engine only).

  • #1735 ce0e3ce Thanks @7Sageer! - Add global tool gating to constrain which tools agents may use, with a per-session override (v2 engine only).

  • #2012 d67a200 Thanks @sailist! - Add a GET /api/v1/fs:content server endpoint that serves any file on the host by absolute path as raw content with Content-Type, ETag, and Range support.

  • #1999 4c763f6 Thanks @RealKai42! - Videos attached to a prompt — pasted in the TUI or uploaded in the web UI — now reach the model together with the prompt, with no extra tool round trip, and stay playable in the chat after a reload.

  • #1735 ce0e3ce Thanks @7Sageer! - Support overriding the default main-agent system prompt with a user-level file for every session (v2 engine only).

Patch Changes
  • #1997 74da87a Thanks @sailist! - Add agent.created and agent.disposed events to the server session event stream, and expose each agent's disposal time in the transcript API.

  • #2030 ec88d35 Thanks @RealKai42! - Fix catalog-imported Claude models being wrongly locked into always-on thinking, and stop offering a misleading thinking Off option for models that cannot truly disable reasoning (such as Gemini 3). Also normalizes configured thinking effort values and unifies context-usage reporting.

  • #2015 b5efba7 Thanks @RealKai42! - Import many more providers from the models.dev catalog: vendor SDKs like xai and openrouter now import instead of being refused (with a "guessed" note), deprecated and alpha models are filtered out, per-model gateway protocol and endpoint overrides are honored, and context limits are correct (input limit for compaction, total window for completion). Imports lacking a usable endpoint now ask for one via --base-url or a prompt.

  • #1993 37eda4e Thanks @RealKai42! - Add environment variable overrides for agent loop and background task limits. Set KIMI_LOOP_MAX_STEPS_PER_TURN, KIMI_LOOP_MAX_RETRIES_PER_STEP, or KIMI_CODE_BACKGROUND_MAX_RUNNING_TASKS to take priority over the [loop_control] and [background] config.

  • #1993 37eda4e Thanks @RealKai42! - Fix config environment overrides (such as KIMI_IMAGE_MAX_EDGE_PX or KIMI_SUBAGENT_TIMEOUT_MS) being persisted into config.toml by config API writes while the env var is set, and keeping the old value after the env var is changed to an invalid value or removed.

  • #2050 8250e59 Thanks @sailist! - Remove references to the non-existent kimi resume command from the scheduled-task tool descriptions.

  • #1970 6dd4fd3 Thanks @sailist! - Fix cancelled model requests being wrapped as retryable provider errors, so interrupting a request no longer triggers silent retries.

  • #1970 6dd4fd3 Thanks @sailist! - Send the session prompt cache key to OpenAI and OpenAI Responses providers, restoring provider-side prompt cache affinity that previously only reached Kimi and Anthropic.

  • #1999 4c763f6 Thanks @RealKai42! - Fix ReadMediaFile failing on videos when the provider has no file upload channel — such videos now fall back to inline delivery.

  • #1968 71bcfba Thanks @RealKai42! - Fix sessions getting stuck on every turn with a provider "message must not be empty" error after a content-filtered response.

  • #2022 154e082 Thanks @wbxl2000! - web: Show transparent images over a checkerboard canvas so white and black content stays visible in both light and dark themes.

  • #1990 115b096 Thanks @liruifengv! - Fix goal mode continuation prompts leaking into the transcript when resuming a session.

  • #1970 6dd4fd3 Thanks @sailist! - Rework the model wire layer in the experimental v2 engine into a small set of protocol bases plus declarative provider trait definitions, so adding a provider no longer means copying adapter code, and per-turn request intent (cache key, thinking effort, sampling) flows as request parameters instead of cloned model objects. The never-functional [platforms] config section and the provider.platformId field are removed; credential resolution is now a two-layer model → provider lookup.

  • #1976 e458323 Thanks @liruifengv! - Improve TUI performance and resume speed for long-running sessions.

  • #1991 92576e4 Thanks @7Sageer! - Reconnect a dropped MCP server connection automatically when one of its tools is called, and retry the call once.

  • #1970 6dd4fd3 Thanks @sailist! - Add read-only model resolution inspection and a live connectivity probe to the server's RPC surface, reporting per-field value provenance (config, override, builtin, env, synthesized) for internal debugging tools.

  • #2015 b5efba7 Thanks @RealKai42! - Fix thinking levels being offered for models that do not support them (e.g. phantom levels on Kimi K3): levels now come from each model's declared capabilities. Models that cannot disable reasoning (e.g. gpt-5) no longer offer an Off option, and turning thinking Off on models that support it (e.g. xai grok) now truly disables reasoning.

  • #1735 ce0e3ce Thanks @7Sageer! - Warn when a tool allow/deny list entry can never match any tool, for example a misspelled name (v2 engine only).

  • #2005 a3699dd Thanks @7Sageer! - Add an active flag to each tool in the server's tool listing API.

  • #1995 73eb5f8 Thanks @liruifengv! - Remove red coloring from syntax highlighting in code previews and markdown code blocks.

  • #2014 576d650 Thanks @liruifengv! - Add a reminder for third-party install sources to use the official installer in the update prompt.

View originalPermalink
How 0.29.0 went

0.28.1

Added 1
  • Allow ACP sessions to start with configured non-OAuth model credentials instead of requiring terminal login
Changed 1
  • Run web servers foreground-only end to end: the /web slash command now always starts a new server, and foreground servers stop with Ctrl+C
Fixed 1
  • Fix running subagents not observing permission mode switches made after they started
Removed 1
  • Remove the kimi web kill and kimi web ps subcommands
Deprecated 1
  • Mark kimi server kill as a deprecated fallback that only stops servers started by a version before 0.28.0
Patch Changes
  • #934 c5b6103 Thanks @tt-a1i! - Allow ACP sessions to start with configured non-OAuth model credentials instead of requiring terminal login.

  • #1967 ad8cc85 Thanks @sailist! - Run web servers foreground-only end to end: the /web slash command now always starts a new server, and the kimi web kill / kimi web ps subcommands are removed — foreground servers stop with Ctrl+C. kimi server kill remains as a deprecated fallback that only stops servers started by a version before 0.28.0.

  • #1948 f6f4192 Thanks @sailist! - Fix running subagents not observing permission mode switches made after they started.

View originalPermalink
How 0.28.1 went

0.28.0

Added 2
  • Manage instances with kimi web kill [server-id|all], kimi web ps, and kimi web rotate-token
  • Add a note in the model switcher that switching models or thinking effort invalidates the existing prompt cache
Changed 3
  • Replace the kimi server command tree with kimi web: the server runs in the foreground (the background daemon and OS-service lifecycle commands are removed), and multiple servers can now share one home directory, each taking the next free port
  • Thinking effort persists only levels below the model's top tier (max)
  • Rename the stale afk reference to auto in the built-in MCP config skill guidance
Fixed 5
  • Correct the YOLO and Auto permission mode descriptions in CLI --help output and in the ACP session mode selector shown by IDE clients
  • Correct the YOLO and Auto permission mode descriptions in the slash command list and the mobile permission sheet
  • Fix the YOLO and Auto permission mode descriptions to match their actual behavior: YOLO auto-approves tool actions but the agent may still ask questions, while Auto is fully autonomous and never asks
  • Correct the YOLO mode notice shown when replaying a session: tool actions are auto-approved, but the agent may still ask questions
  • Fix the web backend ignoring symbolic links when loading AGENTS.md files and reading files
Deprecated 1
  • Any kimi server invocation prints a deprecation notice and exits 1
Minor Changes
  • #1826 a41a09c Thanks @sailist! - Replace the kimi server command tree with kimi web: the server runs in the foreground (the background daemon and OS-service lifecycle commands are removed), and multiple servers can now share one home directory, each taking the next free port. Manage instances with kimi web kill [server-id|all], kimi web ps, and kimi web rotate-token; any kimi server … invocation prints a deprecation notice and exits 1.

  • #1933 11c1683 Thanks @liruifengv! - Thinking effort persists only levels below the model's top tier (max).

Patch Changes
  • #1867 3086e47 Thanks @RealKai42! - Rename the stale "afk" reference to "auto" in the built-in MCP config skill guidance.

  • #1867 3086e47 Thanks @RealKai42! - Correct the YOLO and Auto permission mode descriptions in CLI --help output and in the ACP session mode selector shown by IDE clients.

  • #1867 3086e47 Thanks @RealKai42! - web: Correct the YOLO and Auto permission mode descriptions in the slash command list and the mobile permission sheet.

  • #1867 3086e47 Thanks @RealKai42! - Fix the YOLO and Auto permission mode descriptions to match their actual behavior: YOLO auto-approves tool actions but the agent may still ask questions, while Auto is fully autonomous and never asks.

  • #1867 3086e47 Thanks @RealKai42! - Correct the YOLO mode notice shown when replaying a session: tool actions are auto-approved, but the agent may still ask questions.

  • #1843 a3e773f Thanks @7Sageer! - Fix the web backend ignoring symbolic links when loading AGENTS.md files and reading files.

  • #1940 d71bf9e Thanks @wbxl2000! - web: Add a note in the model switcher that switching models or thinking effort invalidates the existing prompt cache.

View originalPermalink
How 0.28.0 went

0.27.0

Added 2
  • Add the /copy slash command to copy the last assistant message to the clipboard
  • Mount the dev-only /api/v1/debug RPC surface behind the --debug-endpoints flag, exposing every scoped service for local debugging on loopback binds
Changed 4
  • Using an API key for Kimi coding models now also fetches the latest model list automatically
  • Harden the embedded key-value engine's durability with improved WAL compaction, committed write detection, torn WAL tail handling, read-only file safety, corrupt index recovery, and process lock management
  • Speed up the embedded key-value engine under stress with streaming queries for skip/limit, O(1) LRU eviction, efficient TTL expiration, metadata-only operations, and full-text index robustness
  • Cluster readers of the embedded key-value engine now catch up incrementally by replaying only newly appended WAL frames after another process writes, reducing cross-process read latency by orders of magnitude
Fixed 7
  • Fix Esc and Ctrl+C cancelling compaction instead of closing an open /btw panel
  • Fix /export-debug-zip and kimi export overwriting the previous ZIP archive when run repeatedly on the same session; the default export filename now includes a timestamp
  • Fix AGENTS.md files installed as symbolic links being ignored by the web backend
  • Fix whitespace-only thinking content rendering as a blank bullet line in the transcript, both while streaming and when replaying session history
  • Fix duplicate workspace groups on Windows when the same folder is opened with different path spellings; all of the folder's sessions now list under the single merged group
  • Fix LaTeX formulas rendering as garbled overlapping text when the web UI is accessed over the network; the server's content security policy now allows the inline styles that math and code highlighting rely on
  • Keep the embedded key-value engine writable when a WAL compaction rotation fails mid-way, prevent rolled-back writes from erasing concurrently committed values, improve RESP server connection handling and pipelined command processing, and preserve the previous full-text index when a postings rebuild fails
Minor Changes
  • #1822 a5c568d Thanks @liruifengv! - Add the /copy slash command to copy the last assistant message to the clipboard.

  • #1824 bfecd01 Thanks @liruifengv! - Using an API key for Kimi coding models now also fetches the latest model list automatically.

Patch Changes
  • #1811 cec15e2 Thanks @liruifengv! - Fix Esc and Ctrl+C cancelling compaction instead of closing an open /btw panel.

  • #1806 9b49694 Thanks @sailist! - Mount the dev-only /api/v1/debug RPC surface behind the --debug-endpoints flag, exposing every scoped service for local debugging on loopback binds. Pass --debug-endpoints to kimi server run to enable it.

  • #1788 365ba00 Thanks @RealKai42! - Fix /export-debug-zip and kimi export overwriting the previous ZIP archive when run repeatedly on the same session; the default export filename now includes a timestamp.

  • #1840 fa7e4ba Thanks @7Sageer! - Fix AGENTS.md files installed as symbolic links being ignored by the web backend.

  • #1829 1b907b0 Thanks @RealKai42! - Fix whitespace-only thinking content rendering as a blank bullet line in the transcript, both while streaming and when replaying session history.

  • #1809 56a321d Thanks @sailist! - web: Fix duplicate workspace groups on Windows when the same folder is opened with different path spellings, such as a different drive-letter casing; all of the folder's sessions now list under the single merged group.

  • #1847 56ba8e0 Thanks @wbxl2000! - web: Fix LaTeX formulas rendering as garbled overlapping text when the web UI is accessed over the network; the server's content security policy now allows the inline styles that math and code highlighting rely on, while scripts remain strictly restricted.

  • #1816 44f3341 Thanks @sailist! - Harden the embedded key-value engine's durability: WAL compaction now always terminates under sustained write storms instead of chasing the tail forever, a committed write can no longer slip through a compaction rotation undetected, torn WAL tails no longer misplace later disk-mode value pointers, read-only opens never create or modify database files or compact under a live writer, corrupt index-definition files no longer force a full rebuild, stale compaction temp files are cleaned on open, and the process lock can no longer be taken over by several processes at once.

  • #1816 44f3341 Thanks @sailist! - Speed up the embedded key-value engine under stress: queries with skip/limit now stream candidates instead of decoding every match first, LRU eviction picks victims in O(1) instead of scanning every key, bursts of simultaneously expired TTL keys are drained within seconds, existence checks and size counting no longer read values when they only need metadata, and one oversized token can no longer poison the full-text index.

  • #1816 44f3341 Thanks @sailist! - Cluster readers of the embedded key-value engine now catch up incrementally by replaying only newly appended WAL frames after another process writes, instead of fully reopening the shard on every read; cross-process read latency drops by orders of magnitude at larger shard sizes, and readers still fall back to a full reopen after WAL rotation or truncation.

  • #1816 44f3341 Thanks @sailist! - Keep the embedded key-value engine writable when a WAL compaction rotation fails mid-way instead of wedging it until reopen, stop a rolled-back write from erasing a concurrently committed value for the same key, let the RESP server survive aborted connections, recover after oversized requests, and answer each pipelined command independently, and keep the previous full-text index intact when a postings rebuild fails.

  • #1808 b53e00d Thanks @wbxl2000! - Include the underlying network cause (DNS failure, refused connection, TLS or timeout errors) in OAuth connection error messages instead of a bare "fetch failed".

  • #1790 373abb0 Thanks @RealKai42! - Fix repeated request rejections after an interrupted model response by recording tool calls that never ran and closing them with an interrupted result.

  • #1791 3144972 Thanks @sailist! - Fix the built-in URL fetch tool's network safeguards: crafted domains and redirect chains can no longer reach loopback or internal network services.

  • #1787 319001a Thanks @sailist! - web: Remove per-workspace git repo badges and branch labels; branch, PR, and diff status remain shown for the active session.

  • #1838 9e12484 Thanks @wbxl2000! - web: Remember the thinking level per model, fixing an empty and unresponsive thinking picker when the active model does not support a previously stored level.

  • #1833 03021b6 Thanks @wbxl2000! - web: Fix queued messages silently re-sending previously uploaded files when a session is reopened.

View originalPermalink
How 0.27.0 went

0.26.0

Added 3
  • Expand the coder subagent tool set to include background tasks, todo lists, plan mode, skill invocation, and nested agents, mirroring the main agent's capabilities
  • Subagent runs now wait for their background tasks to settle before reporting completion
  • Support in-process editor hosts with session lifecycle, context, MCP configuration, and cross-platform session storage APIs
Changed 4
  • Optimize the unit formatting of the context usage display
  • Warn in the /model and /effort pickers that switching invalidates the existing prompt cache, and hint to use /new to avoid extra token costs
  • Replay empty thinking content verbatim instead of substituting a placeholder space on Anthropic-compatible and Kimi preserved-thinking endpoints
  • Refresh the model catalog for all providers when opening the model picker, so newly available models always show up
Fixed 8
  • Fix Kimi-provider models routed through the Anthropic protocol incorrectly showing reasoning effort options
  • Honor an explicit thinking off on OpenAI-compatible providers and report the actual current thinking effort instead of recording off for both
  • Fix the sidebar resize handle being covered by the chat composer background
  • Keep legacy migrations idempotent across multiple Kimi homes and report damaged or unmapped sessions instead of silently skipping them
  • Fix a resumed session being marked as just updated and jumping to the top of the session list without any new activity
  • Fix a race where resuming a background subagent right after it was manually stopped could fail with an already running error
  • Fix the context size indicator under-reporting the model's actual context usage
  • Report when users stop tasks and preserve other stop reasons in model context
Minor Changes
  • #1776 ffaf0b9 Thanks @sailist! - Expand the coder subagent tool set to include background tasks, todo lists, plan mode, skill invocation, and nested agents, mirroring the main agent's capabilities; a subagent run also waits for its background tasks to settle before reporting completion. Applies automatically to coder subagents launched through the Agent tool.
Patch Changes
  • #1771 b513975 Thanks @liruifengv! - Optimize the unit formatting of the context usage display.

  • #1765 d531398 Thanks @RealKai42! - Fix Kimi-provider models routed through the Anthropic protocol incorrectly showing reasoning effort options. Effort choices now come only from the model's declared metadata, and the inferred fallback profile applies solely to non-Kimi Anthropic-compatible providers.

  • #1774 3d5d630 Thanks @RealKai42! - Honor an explicit thinking "off" on OpenAI-compatible (chat completions) providers: it used to be indistinguishable from "never configured", so the history-based auto reasoning_effort injection kept the model reasoning (and could leak the field to models that reject it). The provider now also reports the actual current thinking effort ("on"/"off") instead of recording "off" for both.

  • #1766 7042af3 Thanks @kermanx! - web: Fix the sidebar resize handle being covered by the chat composer background.

  • #1769 d1ca65e Thanks @wbxl2000! - Keep legacy migrations idempotent across multiple Kimi homes and report damaged or unmapped sessions instead of silently skipping them.

  • #1763 81414b6 Thanks @liruifengv! - Warn in the /model and /effort pickers that switching invalidates the existing prompt cache, and hint to use /new to avoid extra token costs.

  • #1773 1169a6d Thanks @RealKai42! - Replay empty thinking content verbatim instead of substituting a placeholder space on Anthropic-compatible and Kimi preserved-thinking endpoints.

  • #1781 09e8554 Thanks @kermanx! - Report when users stop tasks and preserve other stop reasons in model context.

  • #1784 d465591 Thanks @sailist! - Fix a resumed session being marked as just updated and jumping to the top of the session list without any new activity.

  • #1759 9e3e670 Thanks @sailist! - Fix a race where resuming a background subagent right after it was manually stopped could fail with an "already running" error.

  • #1782 072eed4 Thanks @sailist! - Fix the context size indicator under-reporting the model's actual context usage.

  • #1769 d1ca65e Thanks @wbxl2000! - Support in-process editor hosts with session lifecycle, context, MCP configuration, and cross-platform session storage APIs.

  • #1772 78967e2 Thanks @sailist! - web: Refresh the model catalog for all providers when opening the model picker, so newly available models always show up.

View originalPermalink
How 0.26.0 went

0.25.0

Added 2
  • Allow attaching any file type in chat; files the model cannot consume inline are uploaded to the server and given to the model as a file path it can read on demand
  • Show every attachment a user sends — files, images, and videos — as chips in the message bubble, and allow files to be attached by dropping them anywhere in the window
Changed 3
  • Honor adaptive_thinking = false on Anthropic-compatible models by limiting thinking efforts to the legacy budget set and omitting the effort parameter from requests
  • Apply official Anthropic effort profiles and a 128k output fallback for unknown models; preserve compatible-provider thinking history across session resumes and model switches, normalize incomplete stream events, and warn on unlisted efforts
  • Move the server's v1 wire schema definitions into the engine domains and the server package, removing the shared schema package from the v2 server stack
Fixed 8
  • Fix custom-named models on Anthropic-compatible providers starting new sessions with thinking effort off instead of the model default, and not showing the thinking control in ACP clients
  • Fix the diagnostic log missing the actual error when the CLI exits unexpectedly
  • Fix the Content-Security-Policy on non-loopback server binds blocking the web UI's theme bootstrap script and bundled fonts, and tighten the policy with explicit form-action, base-uri, and frame-ancestors directives
  • Fix the CLI exiting unexpectedly when reading an image from the clipboard fails; it now falls back to pasting text
  • Report crash telemetry for unhandled promise rejections, so exits they cause are no longer invisible
  • Fix sessions failing to be created when the workspace directory is given through a symlink, which the v2 engine rejected as 'not a directory'
  • Fix completed background subagents losing their final output after a session reload, and retry the output backfill when a transient fetch failure occurs
  • Fix Enter not confirming modal confirmation dialogs in dev builds, and keep the dialog open with a loading state until the confirmed action completes
Security 2
  • Fix the web server bearer-token check being bypassed by percent-encoded API paths, which allowed unauthenticated access to every API route
  • Fix the session filesystem API following symlinks that point outside the workspace, which allowed reading, listing, creating, and downloading host files beyond the session directory through a planted symlink
Minor Changes
  • #1731 0b790cd Thanks @sailist! - web: Allow attaching any file type in chat; files the model cannot consume inline (documents, SVG images, archives, …) are uploaded to the server and given to the model as a file path it can read on demand.
Patch Changes
  • #1746 918c135 Thanks @RealKai42! - Honor adaptive_thinking = false on Anthropic-compatible models by limiting thinking efforts to the legacy budget set and omitting the effort parameter from requests.

  • #1746 918c135 Thanks @RealKai42! - Apply official Anthropic effort profiles and a 128k output fallback for unknown models. Preserve compatible-provider thinking history across session resumes and model switches, normalize incomplete stream events, and warn on unlisted efforts.

  • #1746 918c135 Thanks @RealKai42! - Fix custom-named models on Anthropic-compatible providers starting new sessions with thinking effort off instead of the model default, and not showing the thinking control in ACP clients.

  • #1757 f0c8a10 Thanks @RealKai42! - Fix the diagnostic log missing the actual error when the CLI exits unexpectedly.

  • #1731 0b790cd Thanks @sailist! - Fix the Content-Security-Policy on non-loopback server binds blocking the web UI's theme bootstrap script and bundled fonts, and tighten the policy with explicit form-action, base-uri, and frame-ancestors directives.

  • #1758 1d7c205 Thanks @RealKai42! - Fix the CLI exiting unexpectedly when reading an image from the clipboard fails; it now falls back to pasting text.

  • #1753 d8ddabb Thanks @sailist! - Fix the web server bearer-token check being bypassed by percent-encoded API paths (e.g. /%61pi/v1/…), which allowed unauthenticated access to every API route.

  • #1758 1d7c205 Thanks @RealKai42! - Report crash telemetry for unhandled promise rejections, so exits they cause are no longer invisible.

  • #1753 d8ddabb Thanks @sailist! - Fix the session filesystem API following symlinks that point outside the workspace, which allowed reading, listing, creating, and downloading host files beyond the session directory through a planted symlink.

  • #1753 d8ddabb Thanks @sailist! - Fix sessions failing to be created when the workspace directory is given through a symlink, which the v2 engine rejected as "not a directory".

  • #1754 1186686 Thanks @wbxl2000! - web: Fix completed background subagents losing their final output after a session reload, and retry the output backfill when a transient fetch failure occurs.

  • #1755 4f99114 Thanks @kermanx! - Move the server's v1 wire schema definitions into the engine domains and the server package, removing the shared schema package from the v2 server stack with no behavior change.

  • #1731 0b790cd Thanks @sailist! - web: Show every attachment a user sends — files, images, and videos — as chips in the message bubble, and let files be attached by dropping them anywhere in the window.

  • #1744 b89d385 Thanks @wbxl2000! - web: Fix Enter not confirming modal confirmation dialogs in dev builds, and keep the dialog open with a loading state until the confirmed action (such as archiving a session) completes.

  • #1756 e885aec Thanks @wbxl2000! - web: Show full diagnostics for model request failures — a semantic title, the provider's raw message, and expandable details (error code, HTTP status, request ID) with copy support — instead of a bare "Connection error" toast.

  • #1751 df75a0f Thanks @kermanx! - web: Keep session activity indicators in sync with agent work, prevent duplicate streamed content after session activation races or LLM retries, and flush durable session events promptly.

  • #1754 1186686 Thanks @wbxl2000! - web: Fix a background subagent showing up as two identical rows in the agents dock panel during streaming.

View originalPermalink
How 0.25.0 went

0.24.2

Added 2
  • Add a builtin `check-kimi-code-docs` skill that answers Kimi Code product questions against the official documentation with source links
  • Add the number of messages dropped during compaction retries to the session wire log's LLM request traces
Changed 5
  • Align the print-mode run lifecycle across engines so `print_background_mode` and `print_max_turns` take effect for `kimi -p` on the experimental engine, and `kimi -p "/goal ..."` now stays alive until the goal reaches a terminal state instead of exiting after the first turn
  • Align the subagent timeout across engines to a fixed 2-hour default, overridable with `[subagent] timeout_ms` in config.toml or the KIMI_SUBAGENT_TIMEOUT_MS environment variable
  • Increase the default per-step LLM retry budget from 3 to 10 attempts to retry transient provider failures with exponential backoff
  • Rename the dynamic tool loading model capability from `select_tools` to `dynamically_loaded_tools`
  • Enforce goal wall-clock budgets while model or tool work is still running
Fixed 9
  • Fix tool call id collisions across turns for Gemini-protocol models
  • Preserve active goal elapsed time across crash recovery
  • Correct the guidance text shown when a goal cannot be paused or resumed
  • Allow goals to use every configured turn before the turn budget stops further work
  • Restore the AgentSwarm member list after a page refresh on the v2 backend
  • Fix sessions created by newer builds failing to open in older CLI builds on the same machine
Patch Changes
  • #1704 38a2363 Thanks @sailist! - Align the print-mode run lifecycle across engines: print_background_mode and print_max_turns now take effect for kimi -p on the experimental engine, with the same exit / drain / steer semantics and defaults as the default engine, and kimi -p "/goal ..." now stays alive until the goal reaches a terminal state instead of exiting after the first turn.

  • #1704 38a2363 Thanks @sailist! - Align the subagent timeout across engines: a fixed 2-hour default, overridable with [subagent] timeout_ms in config.toml or the KIMI_SUBAGENT_TIMEOUT_MS environment variable.

  • #1727 286d3e7 Thanks @liruifengv! - Add a builtin check-kimi-code-docs skill that answers Kimi Code product questions (CLI usage, configuration, membership, error codes) against the official documentation with source links. It triggers automatically on product questions, or run /check-kimi-code-docs.

  • #1707 8490c3e Thanks @sailist! - Add the number of messages dropped during compaction retries to the session wire log's LLM request traces.

  • #1740 a74ab44 Thanks @sailist! - Increase the default per-step LLM retry budget from 3 to 10 attempts, so transient provider failures (429 / overload) are retried with exponential backoff for a few minutes before the turn fails. Tune with loop_control.max_retries_per_step in config.toml.

  • #1707 8490c3e Thanks @sailist! - Rename the dynamic tool loading model capability from select_tools to dynamically_loaded_tools, matching the model catalog vocabulary; the select_tools tool and the tool-select flag are unchanged.

  • #1698 722694a Thanks @chengluyu! - Enforce goal wall-clock budgets while model or tool work is still running.

  • #1730 72f425e Thanks @wbxl2000! - Fix tool call id collisions across turns for Gemini-protocol models, which merged separate swarm runs into a single card in the web UI.

  • #1695 5c0f17c Thanks @chengluyu! - Preserve active goal elapsed time across crash recovery.

  • #1743 481b28b Thanks @chengluyu! - Correct the guidance text shown when a goal cannot be paused or resumed.

  • #1692 e53cd79 Thanks @chengluyu! - Allow goals to use every configured turn before the turn budget stops further work.

  • #1719 b24a347 Thanks @wbxl2000! - web: Restore the AgentSwarm member list after a page refresh on the v2 backend.

  • #1704 38a2363 Thanks @sailist! - Fix sessions created by newer builds failing to open in older CLI builds on the same machine; new sessions are written in a compatible layout, and existing sessions are healed on first open.

  • #1708 ddfdfb0 Thanks @wbxl2000! - Fix sub-agent completions being signaled as session turn completions, which fired premature completion notifications, sounds, and unread markers while the main turn was still running.

  • #1714 20b6972 Thanks @wbxl2000! - web: Fix code block copy buttons when the web UI is served over plain HTTP.

  • #1643 d8d4e8c Thanks @wbxl2000! - web: Prevent long streaming responses from stalling after a tab is backgrounded.

  • #1715 de493ae Thanks @wbxl2000! - web: Use an upward chevron for the expand button on minimized plan review and question cards so the icon matches the direction the cards open.

  • #1641 b6ae0a1 Thanks @wbxl2000! - web: Show session list loading failures without discarding sessions that are still available.

  • #1719 b24a347 Thanks @wbxl2000! - web: Expand the AgentSwarm card by default while its subagents are still running.

  • #1693 7de218a Thanks @chengluyu! - web: Resume paused goals when you select Resume.

  • #1700 3107f96 Thanks @chengluyu! - Prevent late activity from replaced goals from changing or consuming the budget of replacement goals.

  • #1459 6eb8e13 Thanks @wbxl2000! - web: Fix mobile safe-area handling, including the composer floating above the on-screen keyboard on iOS, doubled landscape insets, the PWA top bar under the notch, and toasts overlapping the composer as it grows.

  • #1696 b781e8c Thanks @chengluyu! - Preserve final status messages when automatic goal continuations reach a budget or report a blocker.

  • #1722 3703d03 Thanks @sailist! - In print mode (kimi -p), keep the run alive by default while background tasks are pending and feed each completion back to the main agent as a new turn, with an effectively unbounded wait ceiling and turn cap and a 72-hour subagent timeout. Set print_background_mode = "exit" (or "drain") to restore the previous exit-after-one-turn behavior.

  • #1737 5d6ff02 Thanks @sailist! - In print mode (kimi -p), background Bash tasks and subagents no longer have a timeout by default — they run until they finish or the model stops them, and a foreground Bash command that times out is moved to the background without a new deadline. Interactive defaults are unchanged; tune per mode with bash_task_timeout_s under [background] or timeout_ms under [subagent] (0 = no timeout).

  • #1697 2bf009f Thanks @chengluyu! - Reject subagent goal requests consistently instead of starting goals they cannot finish.

  • #1711 9eff230 Thanks @wbxl2000! - Log failed requests, WebSocket auth rejections, shutdowns, and key operations (abort, cancel, approvals, config changes) in the web UI server so daemon problems can be diagnosed from its logs.

  • #1704 38a2363 Thanks @sailist! - Fix kimi server reporting the internal server package version instead of the CLI version in its metadata; the web UI settings now show the CLI version.

  • #1741 8a3f1ff Thanks @chengluyu! - web: Fix the session title not being generated when the first message is a skill slash command.

  • #1694 513f374 Thanks @chengluyu! - Reject malformed persisted goal records during session recovery.

  • #1704 38a2363 Thanks @sailist! - web: Show each message's actual send time in chat history after reloading a session, instead of the session creation time.

  • #1711 9eff230 Thanks @wbxl2000! - web: Surface server error details when actions such as stopping a session, archiving, or toggling modes fail, instead of failing silently, and log every operation failure to the console and the exported web log.

  • #1701 07c3632 Thanks @sailist! - Keep the workspace catalog complete and durable: creating a session registers its directory as a workspace, the server backfills missing workspaces from session history at startup, and a removed workspace no longer reappears after a restart.

View originalPermalink
How 0.24.2 went

0.24.1

Changed 2
  • Align thinking-level handling in web with the CLI: submit the selected level verbatim instead of silently downgrading it, pin the model's catalog default when nothing was chosen, pre-select the target model's default on model switches, and persist explicit picks as the daemon-wide default so new sessions inherit them
  • Show just the level name (e.g. Max) in the model pill instead of "thinking: max"
Fixed 4
  • Preserve goal completion summaries and show untyped LLM errors without an internal error-code prefix in step interruption events
  • Fix built-in tools being unavailable when the model provider becomes ready after the session starts
  • Fix Kimi sessions getting stuck when preserved-thinking history contains an empty reasoning step
  • Fix Thinking effort routing so non-Kimi providers preserve configured values for upstream validation, while Kimi models validate runtime selections, fall back safely during model resolution, and synchronize the effective effort back to clients
Patch Changes
  • #1678 ec1c974 Thanks @chengluyu! - Preserve goal completion summaries and show untyped LLM errors without an internal error-code prefix in step interruption events.

  • #1688 94c0ef8 Thanks @sailist! - Fix built-in tools being unavailable when the model provider becomes ready after the session starts.

  • #1684 e417ee7 Thanks @RealKai42! - Fix Kimi sessions getting stuck when preserved-thinking history contains an empty reasoning step.

  • #1673 0f64b4d Thanks @wbxl2000! - web: Align thinking-level handling with the CLI: submit the selected level verbatim instead of silently downgrading it, pin the model's catalog default when nothing was chosen, pre-select the target model's default on model switches, and persist explicit picks as the daemon-wide default so new sessions inherit them.

  • #1689 ab22a2a Thanks @wbxl2000! - web: Show just the level name (e.g. Max) in the model pill instead of "thinking: max".

  • #1625 d158e0a Thanks @RealKai42! - Fix Thinking effort routing so non-Kimi providers preserve configured values for upstream validation, while Kimi models validate runtime selections, fall back safely during model resolution, and synchronize the effective effort back to clients.

View originalPermalink
How 0.24.1 went

0.24.0

Added 2
  • Add v2 session export support for packaging diagnostic zip archives
  • Add session diagnostic export to download a session and bounded metadata-only troubleshooting logs as a ZIP via /export or the session's more menu
Changed 4
  • Move foreground Bash commands that hit their timeout to the background instead of killing them, with new bash_auto_background_on_timeout config option to restore kill-on-timeout behavior
  • Run the local server (kimi server run / kimi web) on the agent-core-v2 engine by default without requiring KIMI_CODE_EXPERIMENTAL_FLAG opt-in
  • Port progressive tool disclosure to the new agent engine with MCP tool schemas loaded on demand through select_tools tool
  • Mark plan exits as auto-approved in auto permission mode so the agent no longer treats automatic plan approval as a user signal
Fixed 8
  • Recover transient subagent rate limits in web without surfacing them as session errors
  • Fix session fork losing everything except the conversation log by carrying over media attachments, plan files, background task output, and cron tasks
  • Continue blocked goals after the user resumes them from the goal controls
  • Fix a race where a heartbeat write during server shutdown could recreate the instance file after it was removed
  • Fix OAuth login hanging after browser authorization when the provider configuration changes during sign-in
  • Prevent oversized image reads from poisoning sessions and recover existing request-too-large failures by removing unsafe media from provider requests
  • Store background task records per agent again so tasks written by older versions are found on resume
  • Fix providers without a configured base_url being rejected by falling back to official default endpoints
Minor Changes
  • #1441 ceb158d Thanks @sailist! - Add v2 session export support for packaging diagnostic zip archives.

  • #1591 83e1753 Thanks @liruifengv! - Move foreground Bash commands that hit their timeout to the background instead of killing them, so long-running commands survive the timeout and report back on completion. Set bash_auto_background_on_timeout = false under [background] in config.toml to restore the kill-on-timeout behavior.

  • #1617 4ec2e7f Thanks @sailist! - Run the local server (kimi server run / kimi web) on the agent-core-v2 engine by default — the KIMI_CODE_EXPERIMENTAL_FLAG opt-in is no longer needed, and the legacy v1 server package has been removed.

  • #1441 ceb158d Thanks @sailist! - Port progressive tool disclosure to the new agent engine: MCP tool schemas stay out of the top-level tool list, and the model loads them by name on demand through the announcements plus the select_tools tool, keeping the prompt cache stable. Off by default; set KIMI_CODE_EXPERIMENTAL_TOOL_SELECT=1 to enable.

  • #1646 5eb6217 Thanks @wbxl2000! - web: Add session diagnostic export to download a session and bounded metadata-only troubleshooting logs as a ZIP. Run /export or pick Export session from a session's more menu. Web downloads are limited to 64 MiB.

Patch Changes
  • #1638 7c889f3 Thanks @RealKai42! - In auto permission mode, plan exits are now marked as auto-approved (not user-reviewed) in both the tool result and the transcript, so the agent no longer treats automatic plan approval as a user signal to start executing.

  • #1598 4feca6b Thanks @kermanx! - web: Recover transient subagent rate limits without surfacing them as session errors.

  • #1635 e49b3b8 Thanks @sailist! - Request task-owned work to stop on session close, honoring background.keep_alive_on_exit for independent processes and background.kill_grace_period_ms before attempting force-stop.

  • #1629 0527ca2 Thanks @sailist! - Fix session fork losing everything except the conversation log: forked sessions now carry over media attachments, plan files, background task output, and cron tasks, and a failed fork no longer leaves a broken half-copy behind.

  • #1627 28e9dd4 Thanks @chengluyu! - web: Continue blocked goals after the user resumes them from the goal controls.

  • #1631 2d874fb Thanks @sailist! - Fix a race where a heartbeat write in flight during server shutdown could recreate the instance file right after it was removed.

  • #1663 1294a0e Thanks @7Sageer! - Fix OAuth login hanging after browser authorization when the provider configuration changes during sign-in.

  • #1657 32a89c3 Thanks @RealKai42! - Prevent oversized image reads from poisoning sessions and recover existing request-too-large failures by removing unsafe media from provider requests.

  • #1635 e49b3b8 Thanks @sailist! - Store background task records per agent again, so tasks written by older versions are found on resume and one agent's restore no longer marks another agent's tasks as lost.

  • #1632 a4aae87 Thanks @sailist! - Fix providers without a configured base_url being rejected: anthropic/openai and other protocol providers now fall back to their official default endpoints again, as before.

  • #1588 2061590 Thanks @liruifengv! - Fix pasted media being dropped from /skill and plugin command arguments.

  • #1588 2061590 Thanks @liruifengv! - Fix pasted images being dropped when steering with Ctrl-S.

  • #1629 0527ca2 Thanks @sailist! - Fix the v2 engine never activating tool-call deduplication: identical tool calls issued in the same step no longer execute multiple times, and repeated identical calls across steps receive escalating reminders again.

  • #1441 ceb158d Thanks @sailist! - Fix a race in the experimental v2 config service that could drop a just-written setting from the config response.

  • #1614 3c0e368 Thanks @chengluyu! - Fix a server crash when the first goal-mode prompt is submitted while the v2 agent is still starting.

  • #1631 2d874fb Thanks @sailist! - Surface the provider's actual rejection message instead of a misleading re-login prompt when an OAuth-managed model keeps returning 401 after a token refresh.

  • #1631 2d874fb Thanks @sailist! - Rewrite repeated-tool-call reminders to redirect the agent toward a different action instead of prohibiting the call, and treat a dismissed question prompt as no answer rather than the recommended option.

  • #1636 8027fe2 Thanks @sailist! - Make file tools able to reach skill directories outside the working directory in the v2 engine (experimental), and honor --skillsDir in v2 print mode and the server's skillDirs option.

  • #1630 0303b82 Thanks @sailist! - Fix ReadMediaFile results losing their image rendering after a session reload or resume on the v2 server backend.

  • #1441 ceb158d Thanks @sailist! - Fix a storage race in the experimental v2 engine that could fail value reads when writes overlap with compaction.

  • #1601 dc309a7 Thanks @kermanx! - web: Fix the context usage indicator dropping to 0 when a session is reopened or the session list reloads (e.g. after a sidebar search) — the cached live usage is now kept instead of the session record's all-zero placeholder.

  • #1620 e91a616 Thanks @wbxl2000! - web: Fix duplicate user message bubbles after a session snapshot resync.

  • #1672 88629ba Thanks @yicun! - web: Fix uploaded and persisted images failing to display on non-loopback server connections.

  • #1609 e223549 Thanks @wbxl2000! - web: Fix a running multi-step turn rendering a duplicated wall of text after the page reconnects or refreshes mid-turn.

  • #1611 32cbd0c Thanks @chengluyu! - web: Fix the workspace picker menu sizing too narrowly for its content.

  • #1635 e49b3b8 Thanks @sailist! - Fix possible record loss when resuming sessions whose wire log needs migration, and reject session logs missing the version envelope instead of silently misreading them.

  • #1441 ceb158d Thanks @sailist! - Fix MCP tools being unavailable on the first turn after session startup.

  • #1580 83370f1 Thanks @wszqkzqk! - Fix bash auto-detection on Windows failing when git comes from a native MSYS2 toolchain (ucrt64/clang64/clangarm64).

  • #1676 d1820ff Thanks @RealKai42! - Preserve empty model reasoning blocks across providers so multi-step tool calls can continue.

  • #1669 490303d Thanks @chengluyu! - web: Refine goal mode controls with animated strip interactions, budget-aware progress, and design-system cancellation confirmation.

  • #1597 d601847 Thanks @7Sageer! - Send the kimi-code-cli User-Agent on provider registry (api.json) and model catalog fetches, so registries can identify the client version.

  • #1441 ceb158d Thanks @sailist! - Fix approval and question prompts not appearing in real time for web clients connected to the v2 server; they previously only showed up after a page refresh.

  • #1441 ceb158d Thanks @sailist! - Log a warning when a skill fails to parse instead of silently dropping it, and fix the skill catalog so scanned skill roots and policy-skipped skills are actually reported.

  • #1589 f338fcd Thanks @wbxl2000! - web: Fix the AgentSwarm member list disappearing after a page refresh while subagents are still running.

  • #1591 83e1753 Thanks @liruifengv! - Optimize the TaskOutput tool prompts to discourage blocking waits on background tasks.

  • #1441 ceb158d Thanks @sailist! - Enforce a typed registry for v2 engine telemetry events and redact URLs, tokens, and file paths from outgoing telemetry properties.

  • #1624 3215129 Thanks @kermanx! - Fix the experimental v2 engine crashing when the first prompt is sent right after a new conversation is created (for example sending /goal on the web's new-conversation page): agent creation now joins the in-flight bootstrap instead of failing, and the v2 agent lifecycle is split into focused existence, sub-agent, and session MCP domains.

  • #1637 0e0a6e9 Thanks @sailist! - Support caller-supplied MCP server configs on session create in the v2 engine (experimental), merged over the file config and under plugin servers.

  • #1626 1c85f94 Thanks @sailist! - v2 engine: expose the prompt scheduler over /api/v2 for native clients, and add an experimental fault-injection service (KIMI_CODE_EXPERIMENTAL_FAULT_INJECTION) that arms a one-shot provider failure so the media-degraded / media-stripped recovery resends can be exercised end-to-end.

  • #1441 ceb158d Thanks @sailist! - Introduce a graded error taxonomy for the v2 engine's filesystem, storage, and wire layers, translating raw OS and parse failures into specific error codes instead of generic internal errors.

  • #1626 1c85f94 Thanks @sailist! - v2 engine: block unsupported image formats (AVIF, HEIC, BMP, TIFF, ICO) at every ingestion point so they can no longer poison session history, and auto-recover provider image-format rejections with a media-stripped resend.

  • #1626 1c85f94 Thanks @sailist! - v2 engine: recover image-heavy sessions from provider request-size rejections (HTTP 413) by resending with older media degraded to text markers, re-encode oversized WebP images instead of passing them through, and keep downscaled PNGs readable by switching to JPEG below 1000px.

  • #1613 b2daa40 Thanks @7Sageer! - Support the services.moonshot_search api-key config for WebSearch in the v2 engine, matching v1: the tool is now available without an OAuth login, and explicit config takes precedence over the OAuth-derived provider.

  • #1590 8a4ee05 Thanks @sailist! - Fix bash auto-detection on Windows in the experimental v2 engine when git comes from a native MSYS2 toolchain (ucrt64/clang64/clangarm64).

  • #1441 ceb158d Thanks @sailist! - Send the CLI identity headers (User-Agent and device identity) with outbound requests from the experimental v2 server, matching direct CLI runs.

  • #1593 2185237 Thanks @kermanx! - Declare v2 engine wire op payloads with required zod schemas and derive their types from the schemas, with ops declared on their models and every op type registered for replay classification.

  • #1441 ceb158d Thanks @sailist! - Keep sessions from the new agent engine compatible with existing transcript replay.

  • #1592 924d5c9 Thanks @wbxl2000! - web: Show the connected backend engine (v1 / v2) in Settings, and add a dev-mode backend pill next to the sidebar brand that can switch the dev proxy between the two engines at runtime.

  • #1606 2da45fc Thanks @liruifengv! - web: Fix the goal card disappearing after a page refresh while a session goal is active.

  • #1587 49a8c84 Thanks @wbxl2000! - web: Let wide Markdown tables in the desktop chat grow up to 1040px with each column capped at 700px so long cell content wraps, temporarily hiding the conversation outline while a table passes under it; anything wider still scrolls inside the table.

View originalPermalink
How 0.24.0 went

0.23.6

Added 2
  • Add a print-mode background policy that lets kimi -p stay alive across background-task completions so the main agent can be steered into follow-up turns via [background].print_background_mode = "steer"
  • Add a subagent.timeout_ms config option to control how long a single subagent may run before timing out, and raise the default from 30 minutes to 2 hours
Changed 7
  • Treat a dismissed question prompt as the user choosing not to answer, instead of implicitly selecting the recommended option
  • Rename the dynamic tool loading model capability from select_tools to dynamically_loaded_tools
  • Keep kimi -p runs alive after a turn ends while a goal is still active or a cron task is pending, so goal continuations and cron fires run their turns instead of being cut off
  • Keep the server access token for up to 7 days across tab close and browser restarts instead of asking for it again with every new tab
  • Auto-enable the default thinking effort when switching to a model that supports effort levels in the web UI
  • Let wide Markdown tables in the desktop chat grow beyond the reading column up to 1040px, temporarily hiding the conversation outline while a table passes under it
  • Let wide Markdown tables scroll horizontally inside the table instead of being squeezed into the reading column
Fixed 7
  • Recognize the support_efforts and default_effort fields when importing a custom registry so thinking effort levels are available for those models
  • Fix sessions getting stuck in a sending state after a reconnect so the working spinner stops and the next message sends normally once a turn finishes while the connection is down
  • Fix the first visit after starting or updating the web UI bouncing to the login page when the initial auth check fails by keeping the connecting screen up, showing the connection error, and retrying until the server answers
  • Fix the chat view jumping downward while scrolling through conversation history
  • Fix the model dropdown showing checkmarks on same-named models from other providers by matching the current model by its unique model id
  • Fix ReadMediaFile results rendering as plain tool cards instead of images after resuming or reloading a session
  • Fix sidebar lag with many sessions by removing repeated session list scans during rendering
Patch Changes
  • #1550 f17a6ec Thanks @wbxl2000! - Treat a dismissed question prompt as the user choosing not to answer, instead of implicitly selecting the recommended option.

  • #1488 7bd29ab Thanks @starquakee! - Rename the dynamic tool loading model capability from select_tools to dynamically_loaded_tools.

  • #1497 c6e02da Thanks @sailist! - Add a print-mode background policy that lets kimi -p stay alive across background-task completions so the main agent can be steered into follow-up turns. Set [background].print_background_mode = "steer" to enable it.

  • #1555 2f97917 Thanks @sailist! - Keep kimi -p runs alive after a turn ends while a goal is still active or a cron task is pending, so goal continuations and cron fires run their turns instead of being cut off when the main turn finishes.

  • #1564 cc03816 Thanks @sailist! - Recognize the support_efforts and default_effort fields when importing a custom registry, so thinking effort levels are available for those models.

  • #1562 faefad0 Thanks @sailist! - Add a subagent.timeout_ms config option to control how long a single subagent may run before timing out, and raise the default from 30 minutes to 2 hours. Set [subagent] timeout_ms in config.toml (or the KIMI_SUBAGENT_TIMEOUT_MS env var) to adjust it.

  • #1572 3a7aad6 Thanks @wbxl2000! - web: Fix sessions getting stuck in a sending state after a reconnect, so the working spinner stops and the next message sends normally once a turn finishes while the connection is down.

  • #1574 b1942bd Thanks @wbxl2000! - web: Fix the first visit after starting or updating the web UI bouncing to the login page when the initial auth check fails; the connecting screen now stays up, shows the connection error, and retries until the server answers.

  • #1553 264525e Thanks @wbxl2000! - web: Fix the chat view jumping downward while scrolling through conversation history.

  • #1565 1d3dba5 Thanks @wbxl2000! - web: Fix the model dropdown showing checkmarks on same-named models from other providers; the current model is now matched by its unique model id.

  • #1567 f901b9e Thanks @wbxl2000! - web: Keep the server access token for up to 7 days across tab close and browser restarts, instead of asking for it again with every new tab.

  • #1552 37bb4b8 Thanks @wbxl2000! - web: Fix ReadMediaFile results rendering as plain tool cards instead of images after resuming or reloading a session.

  • #1563 c982386 Thanks @wbxl2000! - web: Fix sidebar lag with many sessions by removing repeated session list scans during rendering.

  • #1475 5a208cb Thanks @wbxl2000! - web: Auto-enable the default thinking effort when switching to a model that supports effort levels in the web UI.

  • #1577 6fc1deb Thanks @wbxl2000! - web: Let wide Markdown tables in the desktop chat grow beyond the reading column up to 1040px, temporarily hiding the conversation outline while a table passes under it; anything wider still scrolls inside the table.

  • #1575 9d96b53 Thanks @wbxl2000! - web: Let wide Markdown tables scroll horizontally inside the table instead of being squeezed into the reading column.

  • #1556 d2c2c33 Thanks @wbxl2000! - web: Add workspaces by typing an absolute path directly in the workspace picker's search box, with live validation and completion suggestions.

  • #1547 19c5aa6 Thanks @wbxl2000! - Update the WebBridge install page link opened from the /plugins panel.

View originalPermalink
How 0.23.6 went

0.23.5

Changed 1
  • Retry provider 429, overload, and other transient errors more reliably, honoring the server Retry-After delay, and surface retries in -p --output-format stream-json
Fixed 3
  • Fix the "Turn finished" desktop notification and completion sound firing twice per turn
  • Hide the internal image-compression note so it no longer renders as user message text
  • Stop unsupported image formats (AVIF, BMP, TIFF, ICO, …) from breaking sessions at every entry point and recover an already-stuck session by dropping the offending image and retrying
Patch Changes
  • #1542 f80b2ea Thanks @wbxl2000! - web: Fix the "Turn finished" desktop notification and completion sound firing twice per turn.

  • #1535 04041eb Thanks @wbxl2000! - web: Hide the internal image-compression note so it no longer renders as user message text.

  • #1536 db61c9e Thanks @RealKai42! - Stop unsupported image formats (AVIF, BMP, TIFF, ICO, …) from breaking sessions at every entry point — including remote image URLs and images mislabeled by a tool — and recover an already-stuck session by dropping the offending image and retrying, so one such image can no longer make every later request fail.

  • #1530 9f66ec4 Thanks @sailist! - Retry provider 429, overload, and other transient errors more reliably, honoring the server Retry-After delay, and surface retries in -p --output-format stream-json.

View originalPermalink
How 0.23.5 went

0.23.4

Added 3
  • Display Extra Usage (fuel pack) balance in `/usage` and `/status` commands
  • Add a Kimi WebBridge entry to the Official tab of the /plugins panel that opens the WebBridge install page in your browser
  • Add notifications when a tool needs approval in web interface, and improve notification reliability
Changed 4
  • Keep image-heavy sessions within provider request-size limits: model-read images now honor a 256 KB per-image budget and a 2000px downscale cap (configurable via `[image]` in config.toml or `KIMI_IMAGE_*` env vars), oversized WebP is compressed as well, HEIC/HEIF reads are refused with a platform-matched conversion command instead of poisoning the session, and a request-too-large rejection (HTTP 413) now recovers automatically — the request and /compact both retry with older media replaced by text markers instead of failing the session
  • Polish the session sidebar layout, colors, icons, and typography in web interface
  • The `[image]` limits in config.toml now also apply to pasted images (CLI paste and ACP prompts), and each core now uses its own settings, so reloading one client's config no longer changes another client's image compression
  • Polish the chat UI with Inter typography, localized labels, and tighter sidebar, composer, and menu styling in web interface
Fixed 3
  • Fix resuming sessions whose original working directory no longer exists
  • Fix prompt-mode goals so they run until completion and report invalid goal commands before sending prompts
  • Fix an occasional 'another turn is active' error when sending the first message of a new conversation in web interface, and show a starting state while it is being sent
Patch Changes
  • #1501 b91099e Thanks @liruifengv! - Display Extra Usage (fuel pack) balance in /usage and /status commands.

  • #1517 173bdfd Thanks @chengluyu! - Fix resuming sessions whose original working directory no longer exists.

  • #1516 9fb1915 Thanks @chengluyu! - Fix prompt-mode goals so they run until completion and report invalid goal commands before sending prompts.

  • #1508 1bf2c9a Thanks @RealKai42! - Keep image-heavy sessions within provider request-size limits: model-read images now honor a 256 KB per-image budget and a 2000px downscale cap (configurable via [image] in config.toml or KIMI_IMAGE_* env vars), oversized WebP is compressed as well, HEIC/HEIF reads are refused with a platform-matched conversion command instead of poisoning the session, and a request-too-large rejection (HTTP 413) now recovers automatically — the request and /compact both retry with older media replaced by text markers instead of failing the session.

  • #1519 170ae44 Thanks @liruifengv! - web: Polish the session sidebar layout, colors, icons, and typography.

  • #1521 046b6c4 Thanks @RealKai42! - The [image] limits in config.toml now also apply to pasted images (CLI paste and ACP prompts), and each core now uses its own settings, so reloading one client's config no longer changes another client's image compression.

  • #1494 a354803 Thanks @wbxl2000! - Add a Kimi WebBridge entry to the Official tab of the /plugins panel that opens the WebBridge install page in your browser.

  • #1479 735922c Thanks @liruifengv! - web: Add notifications when a tool needs approval, and improve notification reliability.

  • #1522 ec8dc34 Thanks @wbxl2000! - web: Fix an occasional "another turn is active" error when sending the first message of a new conversation, and show a starting state while it is being sent.

  • #1502 ad30a1c Thanks @chengluyu! - web: Polish the chat UI with Inter typography, localized labels, and tighter sidebar, composer, and menu styling.

View originalPermalink
How 0.23.4 went

0.23.3

Fixed 1
  • Fix misleading 'OAuth login expired' message shown when a model is not available for the current account; the CLI now shows the provider's actual error
Patch Changes
  • #1506 e83511a Thanks @7Sageer! - Fix a misleading "OAuth login expired" message shown when a model is not available for the current account; the CLI now shows the provider's actual error.
View originalPermalink
How 0.23.3 went

0.23.2

Added 2
  • Add the Vercel plugin to the bundled plugin marketplace
  • Press Enter to confirm in archive and other confirmation dialogs
Changed 8
  • Count the turn that starts an autonomous goal toward its goal turn usage
  • Tighten goal-mode guidance for blocked and complete status updates
  • Raise the image downscale cap from 2000px to 3000px and fix swapped width/height for EXIF-rotated portrait photos in compression captions and media read notes
  • Compile icons at build time so the bundled web UI only carries the icons it renders
  • Progressive tool disclosure now discards loaded tool schemas on compaction instead of re-injecting them, keeping post-compaction context at minimal floor
  • The composer model switcher bumps the global default model so new sessions inherit the choice
  • Redesign the scheduled reminder UI
  • Show session skills in the slash menu as /skill:<name> so they are distinguishable from built-in commands
Fixed 4
  • Fix kimi -p runs exiting with code 0 when a turn fails
  • Fix console windows flashing on Windows each time a hook runs
  • Fix the connection error toast lingering after the WebSocket reconnects when returning from the background
  • Prevent autonomous goals from being paused by model-reported status updates
Patch Changes
  • #1489 2206d21 Thanks @wbxl2000! - Add the Vercel plugin to the bundled plugin marketplace. Run /plugins and select Vercel Plugin to install it.

  • #1477 150206a Thanks @chengluyu! - Count the turn that starts an autonomous goal toward its goal turn usage.

  • #1483 f30781b Thanks @wbxl2000! - Fix kimi -p runs exiting with code 0 when a turn fails.

  • #1466 063bce2 Thanks @liruifengv! - Fix console windows flashing on Windows each time a hook runs.

  • #1474 11c6a37 Thanks @wbxl2000! - web: Fix the connection error toast lingering after the WebSocket reconnects when returning from the background.

  • #1476 d1a964f Thanks @chengluyu! - Prevent autonomous goals from being paused by model-reported status updates.

  • #1481 1317000 Thanks @chengluyu! - Tighten goal-mode guidance for blocked and complete status updates.

  • #1460 474ce28 Thanks @RealKai42! - Raise the image downscale cap from 2000px to 3000px, and fix swapped width/height for EXIF-rotated (portrait) photos in compression captions and media read notes so region readback coordinates map correctly.

  • #1467 ee38545 Thanks @liruifengv! - web: Compile icons at build time so the bundled web UI only carries the icons it renders.

  • #1471 9b76e5b Thanks @starquakee! - Progressive tool disclosure (select_tools, experimental): compaction now discards the loaded tool schemas instead of re-injecting them. After a compaction the boundary announcement re-lists every loadable tool name and the model re-selects what it still needs; a from-memory call to a no-longer-loaded tool is rejected with guidance to select it first. This keeps the post-compaction context at its minimal users+summary floor and removes the schema-rebuild budget heuristics. No effect unless the tool-select experimental flag and a select_tools-capable model are active.

  • #1491 0cc9831 Thanks @wbxl2000! - web: The composer model switcher switches the active session's model as before and additionally bumps the global default model, so new sessions inherit the choice.

  • #1490 b30a45e Thanks @wbxl2000! - web: Press Enter to confirm in archive and other confirmation dialogs.

  • #1480 2ad0120 Thanks @liruifengv! - web: Redesign the scheduled reminder UI.

  • #1492 b0809dd Thanks @wbxl2000! - web: Show session skills in the slash menu as /skill:<name> so they are distinguishable from built-in commands; typing the bare skill name still works.

View originalPermalink
How 0.23.2 went

0.23.1

Changed 7
  • Preserve prior turns' thinking by default on the Anthropic provider (Claude and Kimi's Anthropic-compatible mode), matching the Kimi default, with option to disable via `[thinking] keep = "off"` or `KIMI_MODEL_THINKING_KEEP=off`
  • Stop showing tool-produced `<system>` metadata in tool outputs; failed tools now show their own error text
  • Honor explicit Anthropic `max_output_size` settings instead of clamping them to built-in ceilings
  • Keep goal tools available to the main agent and return clear messages for invalid goal-control calls
  • Show long-running goal wall-clock budget reminders in hours
  • Tighten goal-mode guidance so agents continue reasonable work across turns instead of ending goals prematurely
  • Clarify the permission mode descriptions shown by `/permission`, `/auto`, and `/yolo`, and reorder `/auto` and `/yolo` in the command list
Fixed 10
  • Recover chat streaming after a stale background-tab WebSocket instead of requiring a page refresh
  • Fix goal completion and blocked updates to produce one final user-facing outcome summary from the tool result
  • Fix goal startup and queue handling so failed starts restore permission mode and queued goals wait behind new user messages
  • Fix goal token budgets to count model completion tokens and stop without extra continuation steps when the budget is exhausted
  • Fix kimi -p abandoning background subagents that start late or run long, so their results reach the main agent
  • Respect the --skills-dir flag in interactive mode
Patch Changes
  • #1432 25a655c Thanks @RealKai42! - Preserve prior turns' thinking by default on the Anthropic provider (Claude and Kimi's Anthropic-compatible mode), matching the Kimi default. Disable with [thinking] keep = "off" or KIMI_MODEL_THINKING_KEEP=off.

  • #1451 16dc940 Thanks @wbxl2000! - web: Recover chat streaming after a stale background-tab WebSocket instead of requiring a page refresh.

  • #1456 e9ef939 Thanks @chengluyu! - Fix goal completion and blocked updates to produce one final user-facing outcome summary from the tool result.

  • #1456 e9ef939 Thanks @chengluyu! - Fix goal startup and queue handling so failed starts restore permission mode and queued goals wait behind new user messages.

  • #1456 e9ef939 Thanks @chengluyu! - Fix goal token budgets to count model completion tokens and stop without extra continuation steps when the budget is exhausted.

  • #1452 244ec07 Thanks @sailist! - Fix kimi -p abandoning background subagents that start late or run long, so their results reach the main agent.

  • #1457 260a807 Thanks @liruifengv! - Respect the --skills-dir flag in interactive mode.

  • #1445 809a88c Thanks @wbxl2000! - web: Fix /btw [<question>] opening an empty side chat on the new-session screen.

  • #1445 809a88c Thanks @wbxl2000! - web: Fix /goal <objective> silently doing nothing on the new-session screen.

  • #1445 809a88c Thanks @wbxl2000! - web: Fix slash skill activations (for example /pre-changelog) silently doing nothing on the new-session screen.

  • #1437 743f66e Thanks @RealKai42! - Stop showing tool-produced <system> metadata in tool outputs; failed tools now show their own error text.

  • #1465 bfdbce5 Thanks @liruifengv! - Honor explicit Anthropic max_output_size settings instead of clamping them to built-in ceilings.

  • #1456 e9ef939 Thanks @chengluyu! - Keep goal tools available to the main agent and return clear messages for invalid goal-control calls.

  • #1463 03e78ae Thanks @chengluyu! - Fix newer Claude minor versions (e.g. Opus 4.8) defaulting to the family-baseline max output tokens; an uncatalogued minor now reuses the nearest earlier known version's limit.

  • #1456 e9ef939 Thanks @chengluyu! - Show long-running goal wall-clock budget reminders in hours.

  • #1456 e9ef939 Thanks @chengluyu! - Tighten goal-mode guidance so agents continue reasonable work across turns instead of ending goals prematurely.

  • #1450 7a65e0d Thanks @liruifengv! - Clarify the permission mode descriptions shown by /permission, /auto, and /yolo, and reorder /auto and /yolo in the command list.

  • #1448 65d3017 Thanks @RealKai42! - Record a per-request trace in the session wire log, so model requests can be reconstructed for debugging. Not a user-facing feature.

View originalPermalink
How 0.23.1 went

0.23.0

Added 4
  • Add server APIs to restore archived sessions and list only archived sessions
  • Add experimental progressive tool disclosure (select_tools) that keeps MCP tool schemas out of the request's top-level tools[] and allows the model to load tools on demand by exact name via a built-in select_tools tool
  • Add an Archived sessions page in Settings to browse and restore archived sessions
  • Show compaction summaries in the TUI after compaction, toggleable with Ctrl-O
Changed 3
  • Enable Preserved Thinking by default for Kimi models when Thinking is on, keeping prior reasoning across turns, configurable via [thinking] keep setting in config.toml or KIMI_MODEL_THINKING_KEEP environment variable
  • Replace the swarm footer with a single inline tool card that shows live subagent progress and the aggregated result, and keep swarm badges stable after refresh
  • AskUserQuestion now feeds answers back to the model as question text and option labels instead of synthesized ids, so the model no longer has to map positional ids back to the original options
Fixed 8
  • Fix @ file completion missing deeply nested files in large projects after adding extra workspace directories
  • Fix the Bash tool card collapsing in height when a multi-line command finishes with short output, and visually separate the command from its output
  • Fix the edit approval preview shown by ctrl+e to include surrounding context lines, matching the summary panel
  • Fix the Edit tool card jumping in height and flickering while its result streams in
  • Fix tool calling with Google Gemini models, including Gemini 3 thinking-signature round-trips across turns
  • Show the correct session search shortcut on Windows
  • Fix the collapsed sidebar not hiding and squeezing the conversation layout
  • Fix the input box shifting upward after the slash command menu closes
Minor Changes
  • #1417 79b360c Thanks @RealKai42! - Enable Preserved Thinking by default for Kimi models when Thinking is on, keeping prior reasoning across turns. Set [thinking] keep = "off" in config.toml (or KIMI_MODEL_THINKING_KEEP=off) to disable it.

  • #1073 6c0ce09 Thanks @sailist! - Add server APIs to restore archived sessions and list only archived sessions.

  • #1369 f0896a5 Thanks @starquakee! - Add experimental progressive tool disclosure (select_tools). When the tool-select experimental flag is on and the active model declares the select_tools capability, MCP tool schemas stay out of the request's top-level tools[] (preserving the provider prompt cache); the model loads tools on demand by exact name via the new built-in select_tools tool, guided by <tools_added>/<tools_removed> announcements. Off by default and inert on models without the capability — behavior is unchanged until a supporting model is catalogued. The SDK additionally maps the select_tools capability when building model aliases from a catalog and reports the new flag through getExperimentalFeatures().

  • #1073 6c0ce09 Thanks @sailist! - web: Add an Archived sessions page in Settings to browse and restore archived sessions. Open Settings → Archived to find it.

  • #1425 c5e3e80 Thanks @wbxl2000! - web: Replace the swarm footer with a single inline tool card that shows live subagent progress and the aggregated result, and keep swarm badges stable after refresh.

Patch Changes
  • #1414 c12f309 Thanks @RealKai42! - AskUserQuestion now feeds answers back to the model as question text and option labels (e.g. {"answers":{"Which database?":"Postgres"}}) instead of synthesized ids like q_0/opt_0_1, so the model no longer has to map positional ids back to the original options — the wire protocol is unchanged, clients still answer with option ids. Question texts must now be unique per call and option labels unique per question; the web transcript card resolves both the new label form and legacy id transcripts.

  • #1408 fc259ab Thanks @liruifengv! - Fix @ file completion missing deeply nested files in large projects after adding extra workspace directories.

  • #1346 b9258ee Thanks @liruifengv! - Show compaction summaries in the TUI after compaction. Press Ctrl-O to show or hide the summary.

  • #1419 5ea3ec4 Thanks @liruifengv! - Fix the Bash tool card collapsing in height when a multi-line command finishes with short output, and visually separate the command from its output.

  • #1410 1c817df Thanks @liruifengv! - Fix the edit approval preview shown by ctrl+e to include surrounding context lines, matching the summary panel.

  • #1421 1de0286 Thanks @liruifengv! - Fix the Edit tool card jumping in height and flickering while its result streams in.

  • #1389 ebdffc7 Thanks @sailist! - Fix tool calling with Google Gemini models, including Gemini 3 thinking-signature round-trips across turns.

  • #1393 4c43935 Thanks @justjavac! - web: Show the correct session search shortcut on Windows.

  • #1406 ce41f4b Thanks @wbxl2000! - web: Fix the collapsed sidebar not hiding and squeezing the conversation layout.

  • #1413 913d042 Thanks @liruifengv! - Fix the input box shifting upward after the slash command menu closes.

  • #1433 ac5b5e4 Thanks @liruifengv! - web: Fix tool components jumping the conversation when expanded or collapsed.

  • #1394 e95fc83 Thanks @justjavac! - web: Fix the font size setting so chat text, composer text, and sidebar text follow the selected size.

  • #1411 e6e6dd5 Thanks @wbxl2000! - web: Stop the chat history from replaying its entrance animation every time a session is opened.

  • #1409 578f7d3 Thanks @wbxl2000! - web: Fix the end of a reply staying missing after reopening a session.

  • #1390 083d0ca Thanks @sailist! - Fix sessions that exist on disk but were missing from the session list or returned 404 on direct access, by rebuilding the session index at server startup and keeping it consistent.

  • #1357 be7c991 Thanks @wbxl2000! - web: Fix queued media messages not loading back into the composer and keep attachments when undoing a message.

  • #1428 903e8ed Thanks @wbxl2000! - web: Add an Archived sessions entry to the mobile settings sheet and clarify the archive confirmation to mention restoring from Settings.

  • #1391 c5c6282 Thanks @wbxl2000! - web: Render AskUserQuestion answers as a readable option list with the chosen option(s) highlighted, instead of raw JSON.

  • #1423 fa6d198 Thanks @liruifengv! - web: Fix an almost-invisible composer input caret and a washed-out strikethrough on completed todos.

  • #1436 a5fbcb7 Thanks @wbxl2000! - web: Keep the composer toolbar from clipping its controls on narrow windows and phones, with the context ring staying visible at every width.

  • #1426 2374bc4 Thanks @liruifengv! - web: Show scheduled-reminder (cron) fires as notice cards in the chat instead of hiding them.

  • #1391 c5c6282 Thanks @wbxl2000! - web: Align the markdown diff code block with the design system: code text keeps the normal ink colour while the sign and a soft row background carry the change, matching the ~/diff panel.

  • #1434 4aacddc Thanks @wbxl2000! - Show the Kimi icon and clearer titles in web desktop notifications.

  • #1392 4963c90 Thanks @sailist! - web: Show available skills in the composer before a session is created.

  • #1438 d86fa38 Thanks @wbxl2000! - web: Prevent chat text from hyphenating at line breaks and render code without font ligatures.

  • #1391 c5c6282 Thanks @wbxl2000! - web: Drop the stray left indent in the tool-call card body so expanded content aligns with the header.

View originalPermalink
How 0.23.0 went

0.22.3

Added 3
  • Add click-to-enlarge for images uploaded in web chat to open images by clicking them in messages
  • Add --dangerous-bypass-auth and --keep-alive flags to kimi server run to allow the server to run without a token on trusted networks and stay alive past the idle timeout
  • Add segmented thinking-level control in web model picker for models that support multiple reasoning efforts, accessible from the composer model menu
Changed 1
  • Wait for background subagents to finish and respond to their results before exiting in kimi -p instead of ending the turn early
Fixed 2
  • Revert TUI transcript rendering changes to original upstream behavior while rendering issues are reworked
  • Fix uploaded videos failing to play in web chat
Patch Changes
  • #1367 23daf0f - Revert the recent TUI transcript rendering changes to the original upstream behavior while rendering issues are reworked.

  • #1343 ec758c7 - Add click-to-enlarge for images uploaded in the web chat. Click an image in a message to open it.

  • #1343 ec758c7 - Fix uploaded videos failing to play in the web chat.

  • #1371 5394fea - Wait for background subagents to finish and respond to their results before exiting in kimi -p, instead of ending the turn early.

  • #1373 e715b16 - Add --dangerous-bypass-auth and --keep-alive flags to kimi server run, so the server can run without a token on trusted networks and stay alive past the idle timeout.

  • #1344 26b9022 - Add a segmented thinking-level control in the web model picker for models that support multiple reasoning efforts. Open the composer model menu to choose a level.

View originalPermalink
How 0.22.3 went

0.22.2

Added 2
  • Record model response ids in session wire logs to make individual model requests easier to trace
  • Add a TUI preference to keep rapid multi-line pastes from submitting line by line when bracketed paste is unavailable with `disable_paste_burst = true` in `tui.toml`
Changed 6
  • Have context-compaction notes capture a forward plan for the remaining work — upcoming steps, settled decisions, and foreseeable obstacles — instead of only the immediate next step, so the agent continues more coherently after auto-compaction
  • Enrich PATH from the user's login shell at startup, so shell commands find user-installed tools even when kimi-code was launched without the full profile PATH
  • Promote the language-matching rule to a dedicated section in the system prompt, so replies and reasoning consistently follow the user's language through long English tool output, while repository artifacts keep project conventions
  • In `kimi -p` runs, wait for background subagents to finish before exiting when `background.keep_alive_on_exit` is enabled
  • Keep subagent cards at a stable height and show a live status spinner with a compact two-row activity window
  • Rebuild the web design-system easter egg as an in-app overlay that uses the app's real design tokens, so it stays in sync instead of drifting as a separate copy
Fixed 6
  • Fix duplicated transcript content appearing in scrollback during streaming
  • Fix sessions silently dropping later user messages after a turn was interrupted between a tool call and its result
  • Fix requests being rejected by strict providers when the model emits duplicate tool call ids
  • Keep automatic background updates from flashing a console window on Windows
  • Fix `kimi upgrade` failing on Windows with a spawn error when installing the new version
  • Fix compressed-image prompts leaking an internal `<system>` compression note into the visible message and the session title
Patch Changes
  • #1353 68ad686 - Fix duplicated transcript content appearing in scrollback during streaming.

  • #1340 e2fe62a - Fix sessions silently dropping later user messages after a turn was interrupted between a tool call and its result.

  • #1342 84d8d5b - Have context-compaction notes capture a forward plan for the remaining work — upcoming steps, settled decisions, and foreseeable obstacles — instead of only the immediate next step, so the agent continues more coherently after auto-compaction.

  • #1340 e2fe62a - Fix requests being rejected by strict providers when the model emits duplicate tool call ids.

  • #1339 021786f - Enrich PATH from the user's login shell at startup, so shell commands find user-installed tools (e.g. Homebrew's gh) even when kimi-code was launched without the full profile PATH.

  • #1336 4c1d0a1 - Keep automatic background updates from flashing a console window on Windows.

  • #1332 93f16c3 - Fix kimi upgrade failing on Windows with a spawn error when installing the new version.

  • #1348 175b95f - Fix compressed-image prompts leaking an internal <system> compression note into the visible message and the session title.

  • #1338 276407d - Promote the language-matching rule to a dedicated section in the system prompt, so replies and reasoning consistently follow the user's language through long English tool output, while repository artifacts keep project conventions.

  • #1347 02da587 - In kimi -p runs, wait for background subagents to finish before exiting when background.keep_alive_on_exit is enabled. Set keep_alive_on_exit = true to let concurrent background subagents complete.

  • #1349 e9db9ca - Record model response ids in session wire logs to make individual model requests easier to trace.

  • #1345 3ed22e3 - Keep subagent cards at a stable height and show a live status spinner with a compact two-row activity window.

  • #1305 9091627 - Add a TUI preference to keep rapid multi-line pastes from submitting line by line when bracketed paste is unavailable. Set disable_paste_burst = true in tui.toml to turn it off.

  • #1328 01b65bd - Rebuild the web design-system easter egg as an in-app overlay that uses the app's real design tokens, so it stays in sync instead of drifting as a separate copy.

View originalPermalink
How 0.22.2 went

0.22.1

Added 1
  • Save shell commands to input history and recall them in bash mode by pressing Up on an empty ! prompt to browse previous shell commands
Changed 7
  • 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
  • Clear the screen fully when starting a new session via /new, /clear, or a session switch
  • Show an up arrow on the web composer send button
  • Refresh the web UI icon set and unify the message copy and undo button hover states and tooltips
  • Improve compaction handoff summaries for more reliable resumed sessions by keeping the latest intent, key tool results, decisions, open questions, and context to re-check
  • Trim redundant and incorrect tooltips in the web UI
  • Let the web sidebar collapse an expanded workspace session list back to its first page
Fixed 6
  • Fix TUI rendering bugs that caused the screen to go blank and the input box to disappear
  • Fix the TUI crashing when the terminal is resized to a very narrow width while the input contains CJK or emoji text
  • Fix the session search dialog showing a horizontal scrollbar for long session titles or snippets
  • Fix web tooltips that could get stuck on screen when their trigger element is removed while open
  • Fix the sidebar session row shifting its title and status badges when hovered
  • Fix the web UI becoming sluggish after opening many sessions
Removed 2
  • Remove duplicate newline-shortcut handling from the prompt editor
  • Remove the experimental micro compaction feature and its toggle from the experiments panel
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.

View originalPermalink
How 0.22.1 went

0.22.0

Added 2
  • Automatically compress oversized images before they reach the model, downsampling to longest edge ≤ 2000px and re-encoding to fit a per-image byte budget, with screenshots staying lossless PNG and degrading to JPEG only when necessary
  • Add model alias overrides so manual thinking effort levels and model metadata survive provider catalog refreshes
Changed 7
  • 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
  • Replace the Explore and Native theme options with a single chat layout and a Blue or Black accent-color setting
  • Reduce the default TUI transcript window to keep long sessions responsive
  • Show time, duration, connection, and stack details in web error and warning toasts
  • Reduce the web composer's default height for a more compact empty state
  • Show queued prompts inline below the running turn in the web chat, and split Stop into its own button so Send no longer interrupts
  • Hide the conversation outline when there is not enough room to expand its labels, so it no longer clips against the window edge
Fixed 10
  • Show draft pull requests with a distinct draft status instead of displaying them as open
  • Fix the transcript jumping to the top when scrolling up through history during streaming output
  • Fix plan, swarm, and goal modes being shared across sessions in the web UI; each session now keeps its own toggles
  • Release pasted images and streaming timers once they are no longer shown, so memory stops growing in long sessions
  • Fix the terminal being left in raw mode with a hidden cursor and disabled flow control after a crash or abrupt exit
  • 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
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 via ReadMediaFile, 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.

View originalPermalink
How 0.22.0 went

0.21.1

Fixed 1
  • Keep the waiting spinner visible while encrypted reasoning streams, fixing a blank spinner-less gap before the first response text appears
Patch Changes
  • #1256 0cc02ac - Keep the waiting spinner visible while encrypted reasoning streams, fixing a blank spinner-less gap before the first response text appears.
View originalPermalink
How 0.21.1 went

0.21.0

Added 5
  • Plugins can now provide slash commands via a commands field in their manifest, registered as <plugin>:<command> and invoked with $ARGUMENTS expansion
  • Add a server-side key-value store API for persisting web UI preferences to the user's data directory
  • Add a double-Esc shortcut to open the undo selector
  • Show file path completions when typing / in shell mode (!)
  • Add Mermaid diagram rendering to the web chat for fenced mermaid blocks in assistant responses
Changed 6
  • Rework conversation compaction to keep only recent user prompts plus a single user-role summary and drop assistant and tool messages
  • Micro-compaction now defaults off
  • Refactor the thinking effort system
  • Split LLM streaming timing in the session log into client vs. API-server portions to help attribute slow turns without parsing the wire log
  • KaTeX math and Mermaid diagram parsing now run in Web Workers to keep the UI responsive during live streaming
  • Always show the usage-data opt-out toggle in the web settings with a clearer label and description
Fixed 8
  • Repair tool_use/tool_result adjacency before sending to fix HTTP 400 errors when a tool call and its result became non-adjacent
  • Merge consecutive user turns for strict providers (Gemini/Vertex) to fix HTTP 400 errors after compaction or when a turn is steered in right after a tool result
  • Fix @ file mentions not opening when typed inside a slash command argument
  • Force-exit headless runs so a stray ref'd handle left over from the run can't keep a completed run alive until an external timeout
  • Fix adding a workspace by path in the web UI failing silently when the daemon rejects the path; it now shows an error instead
  • Fix duplicate workspaces showing in the web sidebar when the same folder is registered more than once
  • Stop a malformed message history from permanently bricking a session on strict providers; the request is repaired before sending and resent once with a wire-compliant rebuild if the provider still rejects it
  • Fix the web workspace rename not persisting after a page refresh
Minor Changes
  • #1204 5cb80ce - Plugins can now provide slash commands via a commands field in their manifest, registered as <plugin>:<command> and invoked with $ARGUMENTS expansion.

  • #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.
  • #1132 108299b - Refactor the thinking effort system

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 and KIMI_CODE_DEBUG=1 output 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. Fenced mermaid blocks 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.

View originalPermalink
How 0.21.0 went

0.20.3

Changed 3
  • Refresh provider model lists automatically in the background instead of only at startup, so newly available models appear without restarting
  • 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
  • Align malformed tool call argument handling with schema validation fallback
Fixed 2
  • Fix provider error messages rendering as blank lines in the TUI when the server returns an HTML error page
  • Fix the web composer being hidden behind the mobile Safari toolbar and the page auto-zooming when the composer is focused
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.

View originalPermalink
How 0.20.3 went

0.20.2

Added 3
  • Add an optional exclude_empty parameter to the session list API to omit sessions that have no messages
  • Add KIMI_CODE_CUSTOM_HEADERS for custom outbound LLM request headers and send the User-Agent header to non-Kimi providers
  • Add a completion sound and question notifications to the web UI with separate Settings toggles for completion notifications, question notifications, and sound
Changed 10
  • Cap compaction output at 128k tokens by default to avoid provider max_tokens errors
  • Route managed Kimi Code models on the Anthropic-compatible protocol through the beta Messages API
  • Support the Anthropic-compatible protocol for managed Kimi Code, including video input
  • Upgrade web markdown renderer dependencies (katex, markstream-vue, shiki) for bug fixes and performance improvements
  • 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
  • Replace the web composer attach button's plus icon with an image icon
Fixed 7
  • Fix compaction ignoring the configured max output size
  • Fix unnecessary full-screen redraws when typing in the input box or toggling the slash panel
  • Fix debug timing output lingering after undoing a turn
  • Fix the web composer occasionally keeping typed text after sending the first message of a new session
  • Fix working tips getting squeezed against the agent swarm progress bar
  • Recover from provider 413 context overflows by compacting before retrying
  • Restore each session's scroll position when switching back to it in the web UI
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, /new and /clear are 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 - Add KIMI_CODE_CUSTOM_HEADERS for custom outbound LLM request headers and send the User-Agent header to non-Kimi providers. Set KIMI_CODE_CUSTOM_HEADERS to newline-separated Name: Value lines.

  • #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.

View originalPermalink
How 0.20.2 went

0.20.1

Added 5
  • Add an `update` alias for the `kimi upgrade` command
  • Show the done / in progress / pending breakdown of hidden todos in the collapsed todo panel
  • Add optional feedback attachments for diagnostic logs and codebase context
  • Plugins can now declare hooks in their manifest to run scripts on lifecycle events
  • Add a --allowed-host flag to kimi server run that lets extra Host header values pass the DNS-rebinding check
Changed 5
  • Cap completion tokens to the remaining context window for chat-completions providers, avoiding context-overflow and invalid max_tokens errors
  • Harden the default system prompt and built-in tool descriptions to stop the agent from blocking on background tasks and surface tool-result details
  • Keep the terminal responsive in long conversations by caching rendered message lines
  • Keep long sessions responsive by retaining only recent turns in the transcript and collapsing older steps within each turn
  • Make the web chat input grow with its content and add an expandable editor for longer messages
Fixed 2
  • 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
  • Fix the /web slash command not carrying the server token, so the opened web UI signs in automatically
Patch Changes
  • #1125 e9a3b7c - Add an update alias for the kimi upgrade command. Run kimi update to 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.

View originalPermalink
How 0.20.1 went

0.20.0

Added 6
  • Add shell mode for running shell commands by typing ! in the input box, with command output visible to the AI and Ctrl+B to background long-running commands
  • Add a confirmation prompt before installing third-party plugins
  • Show update badges on the /plugins Installed tab with Enter to install updates and I to open plugin details
  • Add server authentication with per-start bearer tokens, Host/Origin checks, and --host flag with public-binding hardening tier requiring KIMI_CODE_PASSWORD, TLS, and security response headers
  • Show a line-by-line diff when the agent edits or writes a file in the web chat
  • Add a hint to the per-turn step limit error pointing users to the loop_control.max_steps_per_turn config option
Changed 5
  • Redesign /plugins as a single tabbed panel with Installed, Official, Third-party, and Custom tabs, with lazy loading and offline support
  • Replace silent AGENTS.md truncation with a visible warning in the TUI status bar and web UI
  • Show the plan body and approach choices in the plan review card when exiting plan mode in the web UI
  • Improve the image paste hint
  • Stop auto-dismissing questions in the web UI after 60 seconds so they wait for the user's answer
Fixed 7
  • Fix Ctrl-C during compaction to clear a pending editor draft first instead of cancelling immediately
  • Fix explore subagents silently losing git context when git commands time out or the directory is not a repository
  • Fix a startup crash on Linux caused by an unhandled native clipboard error
  • Fix the terminal window repeatedly losing focus on Linux Wayland, which broke IME input
  • Fix MCP server working directories when sessions are hosted by the web server
  • Fix truncated skill descriptions missing an ellipsis in the model's skill listing
  • Fix kimi web and /web failing to start the background server daemon on Windows with spawn EFTYPE when the CLI is installed via npm/pnpm or run from source
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 login to sign in to the GitHub CLI without opening a new terminal, so Kimi can use gh.

  • #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 /plugins as 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-Tab switch tabs. The Official and Third-party catalogs load lazily, so /plugins opens instantly and keeps working offline — a marketplace fetch failure is shown inline instead of closing the panel. The tab strip is shared with the /model provider tabs via the new renderTabStrip helper.

  • #1006 60dfb68 - Add server authentication and safe --host exposure. 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 --host with a public-binding hardening tier: mandatory KIMI_CODE_PASSWORD, TLS (or --insecure-no-tls), auth-failure rate limiting, disabled remote shutdown/terminals, and security response headers. See packages/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
  • #1072 a86bb97 - Improve the image paste hint.

  • #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 - Fix kimi web and /web failing to start the background server daemon on Windows with spawn EFTYPE when 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 - /reload now 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 the sessions array 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.

View originalPermalink
How 0.20.0 went

0.19.2

Added 7
  • Add `-c` as a shorthand for `--continue`
  • Show a transient footer hint when an image is detected in the clipboard, displaying the platform-appropriate paste shortcut
  • Show the command in running Bash tool cards and allow expanding it with Ctrl+O before the result arrives
  • Add a Ctrl+T shortcut to expand and collapse a truncated todo list
  • Show subcommand suggestions after Tab-completing a slash command name
  • Add an Alt+S shortcut in the model picker to switch the model for the current session only, without saving it as the default
  • Add a development-mode indicator to the web sidebar for local development
Changed 2
  • Read large text files in bounded memory and read tail lines without scanning whole files
  • Reorganize the web app's components into area subdirectories (chat/settings/dialogs/mobile) and refresh the component path comments
Fixed 10
  • Fix stale rows occasionally leaving duplicate input boxes after tall content shrinks
  • Fix inline images being rendered as broken escape sequences in the transcript
  • Fix resume not realigning a tool call that was interrupted mid-history
  • Fix the Tab key unexpectedly opening the file completion list
  • Fix clipboard copy actions in the web UI when served over plain HTTP
  • Fix code blocks nested inside list items rendering blank in the web chat after a turn finishes generating
Patch Changes
  • #999 6b68aa8 - Add -c as a shorthand for --continue.

  • #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 /messages wire 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.

  • #1033 b1e6b64 - Optimize the loading tips display.

View originalPermalink
How 0.19.2 went

0.19.1

Changed 1
  • Consolidate web client localStorage access and split the root state store and app shell into focused composables
Fixed 3
  • Fix ACP editors such as Zed failing to start a new thread
  • Clear all per-session state when a session is archived or removed so archived sessions no longer leave orphaned data behind
  • Fix the web sidebar's unread dots getting out of sync across browser tabs
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.

View originalPermalink
How 0.19.1 went

0.19.0

Added 2
  • Add the ability to add extra workspace directories using the `/add-dir <path>` command or `kimi --add-dir <path>` on startup
  • Manage project-level local config in `.kimi-code/local.toml`
Changed 5
  • Speed up session snapshot loading with a direct disk reader and a request timeout safeguard
  • Polish file mention UX
  • Show longer branch names in the web chat header and expose the full name on hover
  • Keep the web page title fixed instead of changing with the session or workspace name
  • Consolidate web client localStorage access and decouple appearance and notification state into dedicated modules
Fixed 8
  • Fix provider requests failing when restored conversation history contains empty text content blocks
  • Surface provider safety-policy blocks instead of silently treating them as completed turns
  • Prevent the context token count from dropping to zero after a filtered response
  • 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
  • Stop showing unread dots on cancelled or failed sessions in the web sidebar
  • Fix commands flashing an empty console window on Windows
  • Allow long-running foreground commands and subagents to be moved into background tasks with Ctrl+B and inspect them via the `/tasks` panel
  • Unify image format detection when sniffing fails
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.
  • #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 /tasks panel.

  • #812 c0eeca2 - Polish file mention UX.

  • #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.

View originalPermalink
How 0.19.0 went

0.18.0

Added 4
  • Add an environment variable to cap AgentSwarm concurrency during the initial ramp, so large swarms do not trip provider rate limits as easily
  • Add instant session search to the web sidebar, filtering by title and the last user prompt
  • Add scroll-up lazy loading for older messages in the web chat session view
  • Show the connected server version in the web settings General tab
Changed 3
  • 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
  • Allow long web slash command names and descriptions to wrap without overflowing the slash menu
  • Suggest `/reload` alongside `/new` in plugin-change hints
Fixed 6
  • Fix the web workspace session count so it drops to 0 after archiving the last session instead of staying at 1
  • Fix the web login slash command description to match the browser authorization flow
  • Fix the "new messages" pill overlapping the composer dock
  • Fix the web app only loading the 20 most recent sessions; it now follows pagination so older sessions are reachable
  • Keep the highlighted web slash command visible while navigating a long slash menu
  • Fix web slash skill selection sending immediately and allow slash search to match skill names by substring
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 /reload alongside /new in 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.

View originalPermalink
How 0.18.0 went

0.17.1

Changed 1
  • Group the default model dropdown in web settings by provider
Fixed 3
  • Prevent the web login dialog from closing when clicking the backdrop
  • Stop the background local server from locking the directory it was started in
  • Fix the local server failing to start in the background on the native binary
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.

View originalPermalink
How 0.17.1 went

0.17.0

Added 4
  • Add `kimi server` command to start, stop, and manage the local server
  • Add `kimi web` command to open the server-hosted web UI in a browser
  • Add server REST and WebSocket APIs for the web client
  • Add web chat layout, session list, auto-scroll, and related behaviors
Changed 2
  • 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
Fixed 3
  • Skip debug TPS when the output stream is too short to measure reliably
  • Restore the turn counter from persisted loop events on resume so post-resume turns no longer reuse turn ids that already appear in history
  • Fix the web login page and no-workspace conversation startup flow
Minor Changes
  • #625 9a8fea5 - Add the server-hosted web UI and the CLI commands that power it:

    • kimi server to start, stop, and manage the local server.
    • kimi web to 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.

View originalPermalink
How 0.17.0 went

0.16.0

Added 2
  • Add a built-in `kimi vis` command that launches the session visualizer in your browser, pointed at your local sessions, with support for `--port`/`--host`, `--no-open`, and `kimi vis <sessionId>` deep-links
  • Add configurable banner display frequencies with local display state
Changed 3
  • Polish queue pane styling
  • Reduce the maximum height of the /btw side panel from half to one-third of the terminal
  • Project session replay ranges over rendered replay records instead of raw persisted records
Fixed 3
  • Close wrapped output streams when buffered readers are destroyed
  • Fix repeated compaction handling when context remains over the blocking threshold
  • Prevent session shutdown from resuming the agent when stopping background tasks
Removed 1
  • Remove redundant LLM request logging context plumbing
Security 1
  • Stop Anthropic-compatible providers from reading ambient Anthropic shell credentials and custom headers
Minor Changes
  • #788 efdf8a1 - Add a built-in kimi vis command that launches the session visualizer in your browser, pointed at your local sessions. Supports --port/--host, --no-open, and kimi 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.

  • #801 ff332be - Polish queue pane styling

  • #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.

View originalPermalink
How 0.16.0 went

0.15.0

Added 2
  • Add an all-sessions picker view with name search, paginated browsing, and clipboard-ready resume commands for sessions in other working directories
  • Add support for legacy SSE MCP servers alongside stdio and streamable HTTP transports
Changed 11
  • Prompt the CLI to show one brief same-language status sentence before non-trivial tool calls
  • Optimize the npm packaging system
  • Collapse hidden directories in the workspace prompt and explain how to inspect them
  • Read media files using header-detected types before falling back to media extensions
  • Include the skill's directory on the loaded-skill context block so the agent can locate a skill's bundled resources after it is invoked
  • Decouple agent skill access from session-specific registry implementations
Fixed 6
  • Stop writing resume version markers into persisted agent metadata
  • Recover resumed sessions when an interrupted tool call result was not recorded
  • Repair mismatched JSON Schema types emitted by Xcode 26.5 MCP server for Moonshot compatibility
  • Show the all-sessions toggle hint when the current working directory has no sessions
  • Do not carry obsolete legacy loop, background, plan, yolo, or unknown experimental flags into migrated config files
  • Prioritize clearing draft editor text before Ctrl-C cancels an active stream
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.

  • #775 3fa1b8e - Optimize the npm packaging system.

  • #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.

View originalPermalink
How 0.15.0 went

0.14.3

Fixed 1
  • Refresh provider model metadata before opening the model picker
Patch Changes
  • #713 f874251 - Refresh provider model metadata before opening the model picker.
View originalPermalink
How 0.14.3 went

0.14.2

Added 1
  • Expose sub-skills as dotted slash commands in the TUI with parent prefix qualification
Changed 3
  • Allow --auto, --yolo, and --plan to be combined with --session or --continue by applying the requested mode to the resumed session
  • Stream foreground Bash stdout and stderr while commands are still running
  • Sync custom registry provider additions, removals, and rotated registry keys during startup refresh
Fixed 4
  • Fix endless desktop notifications in iTerm2 by only sending terminal progress sequences to terminals that support them
  • Show completed and cancelled compaction records correctly when resuming a session
  • Skip re-entering plan mode when resuming a session that is already in plan mode and stop re-applying startup flags when switching sessions through the /sessions picker
  • Drop invalid config.toml sections with a warning instead of failing to start
Patch Changes
  • #683 ad239cb - Allow --auto, --yolo, and --plan to be combined with --session or --continue by 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/--plan startup flags when switching sessions through the /sessions picker.

  • #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.

View originalPermalink
How 0.14.2 went

0.14.1

Added 3
  • Add runtime support for dynamic MCP server updates, reference skills, replay timestamps, and Node file uploads
  • Add a YOLO choice when starting swarm tasks from Manual mode
  • Display a tips banner below the welcome panel on startup
Changed 7
  • Require AgentSwarm tool calls to run alone in a model response
  • Degrade unsupported audio/video to placeholder text and reattach tool result media instead of silently dropping them
  • Send OpenAI Responses system prompts as request instructions
  • Propagate configured execution environment overrides across spawned processes
  • Polish builtin skills
  • Find slash commands by their aliases in autocomplete — typing /clear now suggests new (clear)
  • Stop background tasks by default when sessions close
Fixed 5
  • Wrap long command and skill descriptions in the autocomplete menu onto a second line instead of cutting them off
  • Cancel active turns during session shutdown so foreground shell commands do not outlive prompt-mode exits
  • Fix premature stream close errors when shell processes time out or are killed
  • Fix ACP file reads and edits for Windows workspaces opened through IDE clients
  • Prevent overlapping interactive agent requests from using the wrong active agent
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.

  • #644 a58b5b2 - Polish builtin skills.

  • #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 /clear now suggests new (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.

View originalPermalink
How 0.14.1 went

0.14.0

Added 1
  • Add an Interrupt hook event that fires when the user interrupts a turn, letting hooks observe the turn stopping instead of getting stuck on a working state
Fixed 1
  • Preserve image outputs from tools when using OpenAI-compatible chat completions
Minor Changes
  • #607 b253a82 - Add an Interrupt hook 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
  • #626 856ec00 - Preserve image outputs from tools when using OpenAI-compatible chat completions.
View originalPermalink
How 0.14.0 went

0.13.1

Added 2
  • Add Claude Fable 5 support to the Anthropic provider
  • Add an interactive undo selector and clearer undo-limit messages
Changed 4
  • Clarify active skill prompts so loaded skills are no longer represented as system reminders
  • Prevent forking sessions during active turns and consolidate wire protocol definitions into a shared internal package
  • Tighten file tool guidance to route incremental edits through Edit
  • YOLO mode no longer asks before writing or editing files outside the working directory
Fixed 2
  • Fix Kimi Datasource to use the matching OAuth credentials and service endpoint for the active Kimi Code environment
  • Fix goal marker text overflowing terminal width
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.

View originalPermalink
How 0.13.1 went

0.13.0

Added 3
  • Add custom color themes by defining a JSON file in ~/.kimi-code/themes/ or generating one with the built-in /custom-theme skill command
  • Add /import-from-cc-codex command to import selected Claude Code and Codex instructions, Skills, and MCP settings
  • Show available plugin updates in the marketplace with update badges displaying local and latest versions, and mark up-to-date plugins with installed status
Changed 1
  • Clarify grouped subagent progress with active status breakdowns and elapsed time
Fixed 3
  • Fix device login to keep the URL and code visible when the browser cannot be opened
  • Fix Windows builds and development launches that could fail when package binaries resolve to command shims
  • Truncate queued message display to a single line with ellipsis when it exceeds terminal width
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-theme skill command.

  • #582 d85dc0b - Add /import-from-cc-codex to 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 an update <local> → <latest> badge (and updates in place on Enter); up-to-date plugins show installed · v<version>. The marketplace version served 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.

View originalPermalink
How 0.13.0 went

0.12.1

Changed 1
  • Pass through xhigh reasoning effort for OpenAI-compatible chat completions requests
Fixed 1
  • Allow obsolete experimental config entries to remain without blocking startup
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.

View originalPermalink
How 0.12.1 went

0.12.0

Added 2
  • Honor the standard `HTTP_PROXY` / `HTTPS_PROXY` / `ALL_PROXY` / `NO_PROXY` environment variables, including SOCKS proxies, for all outbound traffic
  • Add the `/swarm` command for running agent swarms with live progress and rate-limit-aware retries
Changed 8
  • Enable micro compaction by default while keeping its opt-out flag
  • Detect Homebrew installations and use `brew upgrade kimi-code` for updates instead of falling back to npm
  • Make goals, background questions, and sub-skill discovery available without experimental opt-ins
  • Rework file reference completion in the TUI
  • Wrap long single-line shell commands in approval prompts so the full command remains visible
  • Load Kimi-specific user Skills and global agent instructions from `KIMI_CODE_HOME` when it is set
  • Show full plan cards directly and remove the Plan card keyboard shortcut
  • Improve goal mode outcome handling with follow-up messages, safer error pauses, and clearer TUI transcript display
Fixed 8
  • Fix ACP slash skill routing, bootstrap context reads, file and permission edge cases, subagent event handling, and stale-file edit messaging
  • Detect Git Bash installed through Scoop and other Git shims on Windows
  • Fix goal resume behavior by restoring goal state from agent records
  • Fix the `/mcp` status panel border being broken by multi-line MCP server errors, which are now folded onto a single row
  • Fix session workdir mismatch on Windows caused by inconsistent path separators
  • Allow the startup session picker to exit with repeated Ctrl-C or Ctrl-D
  • Show the underlying error when migration fails
  • Fix thinking text and tool output display for subagents
Removed 1
  • Remove the per-turn auto-compaction limit so long conversations can keep compacting instead of failing early
Minor Changes
  • #569 d7407b0 - Enable micro compaction by default while keeping its opt-out flag.

  • #531 b47734c - Detect Homebrew installations and use brew upgrade kimi-code for updates instead of falling back to npm.

  • #487 4d11394 - Honor the standard HTTP_PROXY / HTTPS_PROXY / ALL_PROXY / NO_PROXY environment 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 /swarm command 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.

  • #547 3765a49 - Rework file reference completion in the TUI.

  • #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 /mcp status 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 from KIMI_CODE_HOME when 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.

View originalPermalink
How 0.12.0 went

0.11.0

Added 5
  • Add experimental sub-skill discovery gated by the KIMI_CODE_EXPERIMENTAL_SUB_SKILL environment variable with sub-skill builtin bundle (sub-skill.review, sub-skill.consolidate) for inventorying and consolidating skills into hierarchical groups
  • Migrate environment variables KIMI_MODEL_TEMPERATURE, KIMI_MODEL_TOP_P for sampling parameters applied globally to any kimi provider
  • Migrate environment variable KIMI_MODEL_THINKING_KEEP for Moonshot preserved-thinking passthrough (thinking.keep) injected only while Thinking is on
  • Migrate environment variable KIMI_CODE_NO_AUTO_UPDATE (legacy alias KIMI_CLI_NO_AUTO_UPDATE) to fully disable the update preflight
  • Support multiline edits when managing upcoming goals
Changed 7
  • Show built-in skills as direct slash commands and group them ahead of external skill commands
  • Use a fixed 30-minute timeout for subagents and show concise resume instructions when they time out
  • Show the upcoming-goal confirmation with the same accent treatment as goal lifecycle messages
  • Show concise provider filtering errors when responses are blocked before visible output
  • Ask before starting goals in YOLO mode so users can switch to Auto for unattended work
  • Start upcoming goals immediately when there is no active goal to wait for
  • Highlight goal queue subcommands while typing slash commands
Fixed 7
  • Fix slash command autocomplete so goal text can be submitted when the cursor is before existing text
  • Fix queued goals so failed promotion attempts do not lose or duplicate queued work
  • Show unknown command instead of too many arguments when an invalid subcommand is entered
  • Fix upcoming-goal queue handling while editing or pasting queued goals
  • Clamp OpenAI Chat Completions xhigh and max thinking effort to high unless the model supports xhigh on v1/chat/completions
  • Preserve thinking effort when compacting long conversations
  • Refresh provider model metadata when capabilities change without model ID changes
Minor Changes
  • #468 df4f2d6 - Add experimental sub-skill discovery gated by the KIMI_CODE_EXPERIMENTAL_SUB_SKILL environment variable. Ships the sub-skill builtin 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 any kimi provider (not tied to KIMI_MODEL_NAME).
    • KIMI_MODEL_THINKING_KEEP — Moonshot preserved-thinking passthrough (thinking.keep), injected only while Thinking is on.
    • KIMI_CODE_NO_AUTO_UPDATE (legacy alias KIMI_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 Completions xhigh and max thinking effort to high unless the model supports xhigh on v1/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.

View originalPermalink
How 0.11.0 went

0.10.1

Fixed 1
  • Fix a crash when starting a goal in the TUI
Patch Changes
  • #443 15a4c64 - Fix a crash when starting a goal in the TUI.
View originalPermalink
How 0.10.1 went

0.10.0

Added 5
  • Add the built-in update-config skill to allow Kimi to edit its own config files
  • Add persistent experimental feature toggles and a TUI panel that applies confirmed changes by reloading the current session
  • Add /reload command to reload the current session and apply updated config files, plus /reload-tui to reload only TUI preferences
  • Allow users to prepare several goals for the agent to work on sequentially using /goal next <objective> to queue a goal and /goal next manage to review and change the queue interactively
  • Add a doctor command for validating Kimi Code configuration files
Changed 4
  • Point session error diagnostics to the /export-debug-zip command
  • Start automatic background updates as soon as startup's fresh update check finds a newer version
  • Lowercase the stale file content message in edit tool errors
  • Set the CLI process title to kimi-code during startup
Fixed 7
  • Stop carrying active and queued goals into forked sessions
  • Set terminal tab titles without renaming the running process
  • Ensure Nix-packaged CLI builds can find ripgrep and fd
  • Normalize malformed Responses stream rate limit errors as provider rate limit failures
  • Refresh the update target before showing foreground update prompts so the displayed version matches the install
  • Keep managed OAuth credentials scoped to their configured authentication and API endpoints
  • Fail early when Git Bash is missing on Windows before starting CLI sessions
Minor Changes
  • #433 85338e9 - Add the built-in update-config skill — 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 manage to 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-zip command.

  • #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.

View originalPermalink
How 0.10.0 went

0.9.0

Added 3
  • Add @moonshot-ai/acp-adapter and the kimi acp subcommand to speak Agent Client Protocol 0.23 over stdio for IDEs and custom clients to drive sessions directly
  • Add /btw command for side-channel conversations without steering the active main turn
  • Log enabled experimental flags at startup
Changed 6
  • Allow /btw to open the side-channel panel before entering a question
  • Use the OpenAI completion token field required by newer Chat Completions models
  • Resume saved subagents lazily when they are accessed
  • Allow SDK runtime creation to use a separate RPC client while preserving local CLI startup
  • Unify the interaction and visuals across TUI dialogs and selectors
  • Use configured model output limits for completion token caps
Fixed 2
  • Fix external editor (Ctrl+G) on Windows by removing /bin/sh dependency and using platform-aware shell quoting for temp file paths
  • Fix goal budget tool schemas for OpenAI-compatible providers
Minor Changes
  • #368 3eafa79 - Add @moonshot-ai/acp-adapter and the kimi acp subcommand: 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 /btw for side-channel conversations without steering the active main turn.

  • #357 179aecf - Log enabled experimental flags at startup.

  • #378 e0d28b4 - Allow /btw to open the side-channel panel before entering a question.

Patch Changes
  • #246 7d1f889 - Fix external editor (Ctrl+G) on Windows by removing /bin/sh dependency 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.

View originalPermalink
How 0.9.0 went

0.8.0

Added 8
  • Append the current todo list as markdown to compaction summaries before writing them to history
  • Add background automatic upgrades, which can be disabled in tui.toml
  • Add experimental goal mode for longer tasks that need more than one turn, enabled with KIMI_CODE_EXPERIMENTAL_GOAL_COMMAND=1, with commands /goal, /goal status, /goal pause, /goal resume, /goal cancel, and /goal replace
  • Add background structured questions so agents can continue while waiting for user answers
  • Add kimi provider CLI subcommand with add, remove, list, and catalog list / catalog add actions for managing providers from custom registry or public models.dev catalog
  • Add /undo slash command to withdraw the last prompt from conversation history and keep replay records in sync
  • Add kimi upgrade command for manually checking and upgrading Kimi Code CLI
  • Add approval lifecycle hook events for observing pending and completed permission prompts
Changed 4
  • Consolidate background task management under the agent background runtime
  • Show the full model name in the footer status bar instead of truncating the provider prefix
  • Allow glob searches to target explicit absolute paths outside the workspace
  • Show MCP server summary in the welcome panel and add configuration hints in the /mcp command output
Fixed 6
  • Prevent modified keyboard release sequences from appearing after exiting the CLI
  • Fix custom registry provider handling during re-import to prevent loss of multi-provider entries and remove stale providers
  • Normalize glob patterns before brace expansion to prevent incorrect path matching
  • Fix crash in the /sessions picker on very narrow terminals by clamping every rendered line to terminal width
  • Fix tool output preview rendering by trimming trailing empty lines, appending ellipsis to multi-line Bash command headers, and truncating long single-line output
  • Fix Git Bash path detection on Windows by searching usr\bin\bash.exe locations
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 with KIMI_CODE_EXPERIMENTAL_GOAL_COMMAND=1 before 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 test
    

    Kimi 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 - Add kimi provider CLI subcommand with add, remove, list, and catalog list / catalog add actions, 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 /undo slash command to withdraw the last prompt from conversation history, and keep replay records in sync when a prompt is undone.

  • #334 eeefa98 - Add a kimi upgrade command 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 /sessions picker 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 searching usr\bin\bash.exe locations, which is where bash lives in many Git for Windows installations where bin\bash.exe does 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 /provider instead of the removed /connect command 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.

View originalPermalink
How 0.8.0 went

0.7.0

Added 6
  • Add KIMI_MODEL_ADAPTIVE_THINKING environment variable and matching adaptive_thinking model-alias field to force adaptive thinking on or off, overriding Anthropic model-name version inference
  • Add /provider command for managing AI providers with support for custom registry imports
  • Introduce a tabbed model selector in the UI
  • Render scheduled reminders distinctly in the TUI
  • Expose cron fired events to SDK clients
  • Report cron fire times with local timezone offsets
Changed 5
  • Include match count in truncation messages
  • Report truncated compaction summaries clearly
  • Apply valid completion token budgets across supported providers
  • Polish TUI visual interaction
  • Clarify Kimi Platform API key login labels and prompt details
Fixed 1
  • Fix glob pattern backslash escaping
Minor Changes
  • #232 a24bfb1 - Add KIMI_MODEL_ADAPTIVE_THINKING (and a matching adaptive_thinking model-alias field) to force adaptive thinking (thinking: { type: 'adaptive' }) on or off, overriding the Anthropic model-name version inference. This lets custom-named staff endpoints that back an adaptive-capable model opt in even when the model name does not encode a parseable Claude version.

  • #264 42bb914 - Add /provider command 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.

  • #260 178827d - Polish a small TUI visual interaction.

  • #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.

View originalPermalink
How 0.7.0 went

0.6.0

Added 3
  • Add a KIMI_MODEL_* environment-variable channel that lets you run Kimi Code against a specific model without editing config.toml
  • Install plugins directly from GitHub repository URLs, and surface each install's origin and trust level in the plugin manager
  • Support querying sessions by sessionId or workDir in listSessions, and show a helpful cd command when resuming a session from a different working directory
Changed 8
  • Introduce ModelProvider interface and SingleModelProvider to decouple Agent from ProviderManager
  • Expand the footer's rotating tips to surface more commands and shortcuts, featuring newer and important ones more prominently
  • Improve the usage information display in the TUI
  • Project persisted hook and blocked prompt messages into model context
  • Restrict plugin trust badges to Kimi-hosted plugin CDN URL patterns
  • Slim the LLM diagnostic logs with fewer, more compact fields
  • Split RuntimeConfig into Kaos and ToolServices and update all references accordingly
  • Clarify subagent and background task stop messages as user-initiated
Fixed 8
  • 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
  • Back off failed compaction retries by a fixed slice of the model context window
  • Handle context overflow errors consistently across provider responses
  • Fix the native self-updater reporting a successful update when the install command actually failed
  • Fix footer leaking onto the terminal when resuming a non-existent session
  • Fix automatic ripgrep installation when temporary files are on another filesystem
  • Recover from provider model token limit errors during long conversations
  • Automatically retry when a model response stream is dropped mid-flight instead of failing the turn
Removed 1
  • Remove the default per-turn step limit of 1000
Minor Changes
  • #212 2bbea75 - Add a KIMI_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 editing config.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 set max_steps_per_turn in 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 - Introduce ModelProvider interface and SingleModelProvider to decouple Agent from ProviderManager.

  • #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 (a terminated error) instead of failing the turn.

  • #190 1873859 - Slim the LLM diagnostic logs with fewer, more compact fields.

  • #185 114777e - Split RuntimeConfig into Kaos and ToolServices and 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.

View originalPermalink
How 0.6.0 went

0.5.0

Added 3
  • Add /auto slash command and --auto CLI flag for auto permission mode
  • Add scheduled tasks allowing the assistant to remind at a specific time, run recurring cron schedule tasks, or continue on its own in a few minutes
  • Add clickable changelog link to the update prompt
Changed 8
  • Show the full Bash command when expanding a Bash tool card with ctrl+o
  • Shorten the session title written to the terminal window/tab from 80 to 32 characters
  • Cap the inline todo panel at five rows and show a +N more indicator
  • Clarify plugin manager keyboard shortcuts and show plugin state changes inline
  • Report discovered plugin skills in plugin manager summaries
  • Show file content and diff in Write and Edit approval prompts, and open them in a dedicated full-screen viewer on ctrl+e
  • Wrap long question, body, and option text in the AskUserQuestion dialog instead of truncating with an ellipsis
  • Offload large base64 media payloads from wire.jsonl into external blob files to reduce wire size and memory pressure during session replay
Fixed 3
  • Fix compaction to handle edge cases where no messages are compactable and improve retry logic
  • Fix official datasource tools to preserve complete responses and write returned result files
  • Fix migration mapping the legacy default_yolo key to the dead yolo field instead of default_permission_mode
Minor Changes
  • #163 07dd604 - Add /auto slash command and --auto CLI flag for auto permission mode.

  • #157 971fce6 - Add scheduled tasks:

    You can now ask the assistant 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 with ctrl+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 more indicator 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 legacy default_yolo key to the dead yolo field instead of default_permission_mode.

  • #164 0a76658 - Clarify plugin manager keyboard shortcuts and show plugin state changes inline.

  • #142 dad2b87 - Refactor TUI code structure.

  • #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 on BlobStore so 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.

View originalPermalink
How 0.5.0 went

0.4.0

Added 3
  • Add user-global plugin installation, interactive plugin management, plugin-provided skills, and plugin-owned MCP servers
  • Add /export-debug-zip slash command to export the current session as a debug ZIP archive directly from the TUI
  • Add /export-md slash command to export the current session as a Markdown file
Changed 7
  • Expand folded paste markers on second paste so that when the cursor is on a paste marker and the user pastes again, the marker expands back to the original content instead of inserting new clipboard data
  • Rework tool permissions so reads outside cwd no longer prompt, session approvals match the exact call, and path-based rules are case-insensitive
  • Enhance kimi export to include more diagnostic information in the manifest
  • Show the original session resume command after forking a session
  • Restrict plugin zip installs to manifests at the archive root or a single wrapper directory
  • Route session-tagged log entries exclusively to the session sink instead of duplicating them to the global sink and consistently omit stable main-agent context keys from all session log lines that carry agentId=main
  • Use one retry classification for transient LLM failures across regular turns and compaction
Fixed 2
  • Prevent the TUI from crashing when pull request lookup fails during startup
  • Fix thinking spinner leaking past turn end when an empty thinking delta creates an orphaned thinking component
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-zip slash command to export the current session as a debug ZIP archive directly from the TUI.

  • #113 028d069 - Add /export-md slash command to export the current session as a Markdown file.

Patch Changes
  • #105 d599183 - Enhance kimi export to 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.

  • #88 ce420bf - Refactor TUI resume replay logic.

  • #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 carry agentId=main.

  • #92 4e458d6 - Use one retry classification for transient LLM failures across regular turns and compaction.

View originalPermalink
How 0.4.0 went

0.3.0

Changed 6
  • /logout now opens a picker to choose which provider to log out of, with the current provider highlighted by default, and is also available as /disconnect
  • Todo panel is hidden on resume when all todos are already completed
  • Improve the Write tool UX
  • Prevent running the /model and /sessions slash commands while streaming or compacting context
  • OpenAI-compatible reasoner models now work out of the box with auto-detection of thinking fields, serialization as reasoning_content, and auto-injection of reasoning_effort, eliminating the need for hand-set reasoning_key for services like DeepSeek and Qwen
  • Avoid overly small local completion caps that can truncate reasoning before summaries are produced
Fixed 7
  • API key input dialog no longer shows a masked dot in empty state
  • User skills in ~/.agents/ are now loaded correctly
  • Real-time token display for running subagents in the TUI is restored
  • Always emit a paired tool result when a tool returns a malformed or missing result to prevent the next request from failing with a missing tool_call_id error
  • Plan mode session resets so new sessions no longer fail after plan review rejection and continue receiving events after setup errors
  • Exit promptly when the controlling terminal goes away by handling SIGHUP, SIGTERM, and stdout/stderr I/O errors to prevent leftover processes
  • Preserve catalog-declared interleaved reasoning fields for OpenAI-compatible models configured through /connect
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 - Make AgentRecords hold the Agent instance directly and inline the restore dispatch logic.

  • #73 bddc60f - Prevent running the /model and /sessions slash 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. The openai provider now auto-detects thinking on incoming responses by scanning the de facto field set (reasoning_content, reasoning_details, reasoning), serializes thinking back as reasoning_content by default, and auto-injects reasoning_effort whenever the conversation history contains prior thinking — so DeepSeek, Qwen, One API and other gateway-fronted services no longer require a hand-set reasoning_key. The reasoning_key model-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.

  • #81 1fbefc9 - Improve the Write tool UX.

  • #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 handles SIGHUP / SIGTERM and stdout/stderr EIO / EPIPE / ENOTCONN errors, preventing leftover kimi processes 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.

View originalPermalink
How 0.3.0 went

0.2.0

Added 4
  • Add a `/connect` command that configures a provider and model from a model catalog
  • The `/connect` provider and model pickers now support type-to-search filtering, and long lists are paginated
  • Add `Ctrl-J` as an additional shortcut for inserting new lines in the TUI prompt
  • Migrate user skills from `~/.kimi/skills/` to `~/.kimi-code/skills/` during the first-launch migration
Changed 6
  • 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
  • The `/model` picker is now paginated when many models are configured
  • Report the macOS product version in OAuth device information instead of the Darwin kernel version
  • Persist model selections from the terminal UI to the default configuration, and honor the configured default thinking state for new sessions
  • Resume sessions with a newer wire protocol version instead of failing, with a warning shown in the TUI and records replayed without migration
  • Let Kimi requests use the remaining context window for completion tokens by default while keeping explicit environment limits as hard caps
Fixed 9
  • Correct the `X-Msh-Platform` header value to `kimi_code_cli`
  • Clarify the prompt-mode error when no model is configured by pointing users to the login flow
  • Hide the empty current session from the sessions picker while keeping other empty sessions visible
  • Stop mentioning OAuth credentials in the migration UI and prevent OAuth-only installs from triggering the migration screen
  • When no models are configured, `/model` and the welcome panel now point users to `/login` for Kimi and `/connect` for other providers
  • Surface API-provided error messages during feedback, usage, login, and model setup failures
Minor Changes
  • #30 a200a29 - Add a /connect command that configures a provider and model from a model catalog.

  • #30 a200a29 - The /connect provider and model pickers now support type-to-search filtering, and long lists are paginated. The /model picker 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 - Add Ctrl-J as 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 the X-Msh-Platform header value to kimi_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, /model and 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.

View originalPermalink
How 0.2.0 went
View all

Discussion