oracle-cli 1.24.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. kimi_cli/CHANGELOG.md +1024 -0
  2. kimi_cli/__init__.py +29 -0
  3. kimi_cli/__main__.py +30 -0
  4. kimi_cli/acp/AGENTS.md +92 -0
  5. kimi_cli/acp/__init__.py +13 -0
  6. kimi_cli/acp/convert.py +128 -0
  7. kimi_cli/acp/kaos.py +270 -0
  8. kimi_cli/acp/mcp.py +46 -0
  9. kimi_cli/acp/server.py +448 -0
  10. kimi_cli/acp/session.py +477 -0
  11. kimi_cli/acp/tools.py +158 -0
  12. kimi_cli/acp/types.py +13 -0
  13. kimi_cli/acp/version.py +45 -0
  14. kimi_cli/agents/default/agent.yaml +31 -0
  15. kimi_cli/agents/default/sub.yaml +14 -0
  16. kimi_cli/agents/default/system.md +142 -0
  17. kimi_cli/agents/okabe/agent.yaml +18 -0
  18. kimi_cli/agentspec.py +143 -0
  19. kimi_cli/app.py +422 -0
  20. kimi_cli/auth/__init__.py +5 -0
  21. kimi_cli/auth/oauth.py +793 -0
  22. kimi_cli/auth/platforms.py +295 -0
  23. kimi_cli/background/__init__.py +36 -0
  24. kimi_cli/background/ids.py +17 -0
  25. kimi_cli/background/manager.py +405 -0
  26. kimi_cli/background/models.py +89 -0
  27. kimi_cli/background/store.py +195 -0
  28. kimi_cli/background/summary.py +61 -0
  29. kimi_cli/background/worker.py +209 -0
  30. kimi_cli/cli/__init__.py +859 -0
  31. kimi_cli/cli/__main__.py +8 -0
  32. kimi_cli/cli/_lazy_group.py +222 -0
  33. kimi_cli/cli/export.py +74 -0
  34. kimi_cli/cli/info.py +62 -0
  35. kimi_cli/cli/mcp.py +349 -0
  36. kimi_cli/cli/plugin.py +302 -0
  37. kimi_cli/cli/toad.py +73 -0
  38. kimi_cli/cli/vis.py +22 -0
  39. kimi_cli/cli/web.py +80 -0
  40. kimi_cli/config.py +369 -0
  41. kimi_cli/constant.py +33 -0
  42. kimi_cli/exception.py +43 -0
  43. kimi_cli/llm.py +273 -0
  44. kimi_cli/metadata.py +79 -0
  45. kimi_cli/notifications/__init__.py +33 -0
  46. kimi_cli/notifications/llm.py +77 -0
  47. kimi_cli/notifications/manager.py +137 -0
  48. kimi_cli/notifications/models.py +50 -0
  49. kimi_cli/notifications/notifier.py +41 -0
  50. kimi_cli/notifications/store.py +99 -0
  51. kimi_cli/notifications/wire.py +21 -0
  52. kimi_cli/plugin/__init__.py +124 -0
  53. kimi_cli/plugin/manager.py +153 -0
  54. kimi_cli/plugin/tool.py +173 -0
  55. kimi_cli/prompts/__init__.py +6 -0
  56. kimi_cli/prompts/compact.md +73 -0
  57. kimi_cli/prompts/init.md +21 -0
  58. kimi_cli/py.typed +0 -0
  59. kimi_cli/session.py +286 -0
  60. kimi_cli/session_state.py +52 -0
  61. kimi_cli/share.py +16 -0
  62. kimi_cli/skill/__init__.py +310 -0
  63. kimi_cli/skill/flow/__init__.py +99 -0
  64. kimi_cli/skill/flow/d2.py +482 -0
  65. kimi_cli/skill/flow/mermaid.py +266 -0
  66. kimi_cli/skills/kimi-cli-help/SKILL.md +55 -0
  67. kimi_cli/skills/skill-creator/SKILL.md +367 -0
  68. kimi_cli/soul/__init__.py +282 -0
  69. kimi_cli/soul/agent.py +407 -0
  70. kimi_cli/soul/approval.py +159 -0
  71. kimi_cli/soul/compaction.py +189 -0
  72. kimi_cli/soul/context.py +215 -0
  73. kimi_cli/soul/denwarenji.py +39 -0
  74. kimi_cli/soul/dynamic_injection.py +66 -0
  75. kimi_cli/soul/dynamic_injections/__init__.py +0 -0
  76. kimi_cli/soul/dynamic_injections/plan_mode.py +238 -0
  77. kimi_cli/soul/kimisoul.py +1091 -0
  78. kimi_cli/soul/message.py +88 -0
  79. kimi_cli/soul/slash.py +285 -0
  80. kimi_cli/soul/toolset.py +530 -0
  81. kimi_cli/tools/AGENTS.md +5 -0
  82. kimi_cli/tools/__init__.py +109 -0
  83. kimi_cli/tools/ask_user/__init__.py +134 -0
  84. kimi_cli/tools/ask_user/description.md +19 -0
  85. kimi_cli/tools/background/__init__.py +317 -0
  86. kimi_cli/tools/background/list.md +10 -0
  87. kimi_cli/tools/background/output.md +11 -0
  88. kimi_cli/tools/background/stop.md +8 -0
  89. kimi_cli/tools/display.py +43 -0
  90. kimi_cli/tools/dmail/__init__.py +38 -0
  91. kimi_cli/tools/dmail/dmail.md +17 -0
  92. kimi_cli/tools/file/__init__.py +30 -0
  93. kimi_cli/tools/file/glob.md +17 -0
  94. kimi_cli/tools/file/glob.py +148 -0
  95. kimi_cli/tools/file/grep.md +5 -0
  96. kimi_cli/tools/file/grep_local.py +314 -0
  97. kimi_cli/tools/file/plan_mode.py +45 -0
  98. kimi_cli/tools/file/read.md +14 -0
  99. kimi_cli/tools/file/read.py +189 -0
  100. kimi_cli/tools/file/read_media.md +24 -0
  101. kimi_cli/tools/file/read_media.py +215 -0
  102. kimi_cli/tools/file/replace.md +7 -0
  103. kimi_cli/tools/file/replace.py +191 -0
  104. kimi_cli/tools/file/utils.py +257 -0
  105. kimi_cli/tools/file/write.md +5 -0
  106. kimi_cli/tools/file/write.py +176 -0
  107. kimi_cli/tools/multiagent/__init__.py +7 -0
  108. kimi_cli/tools/multiagent/create.md +11 -0
  109. kimi_cli/tools/multiagent/create.py +58 -0
  110. kimi_cli/tools/multiagent/task.md +26 -0
  111. kimi_cli/tools/multiagent/task.py +167 -0
  112. kimi_cli/tools/plan/__init__.py +295 -0
  113. kimi_cli/tools/plan/description.md +25 -0
  114. kimi_cli/tools/plan/enter.py +158 -0
  115. kimi_cli/tools/plan/enter_description.md +29 -0
  116. kimi_cli/tools/plan/heroes.py +277 -0
  117. kimi_cli/tools/shell/__init__.py +228 -0
  118. kimi_cli/tools/shell/bash.md +35 -0
  119. kimi_cli/tools/shell/powershell.md +30 -0
  120. kimi_cli/tools/test.py +55 -0
  121. kimi_cli/tools/think/__init__.py +21 -0
  122. kimi_cli/tools/think/think.md +1 -0
  123. kimi_cli/tools/todo/__init__.py +33 -0
  124. kimi_cli/tools/todo/set_todo_list.md +15 -0
  125. kimi_cli/tools/utils.py +191 -0
  126. kimi_cli/tools/web/__init__.py +4 -0
  127. kimi_cli/tools/web/fetch.md +1 -0
  128. kimi_cli/tools/web/fetch.py +161 -0
  129. kimi_cli/tools/web/search.md +1 -0
  130. kimi_cli/tools/web/search.py +132 -0
  131. kimi_cli/ui/__init__.py +0 -0
  132. kimi_cli/ui/acp/__init__.py +99 -0
  133. kimi_cli/ui/print/__init__.py +143 -0
  134. kimi_cli/ui/print/visualize.py +180 -0
  135. kimi_cli/ui/shell/__init__.py +611 -0
  136. kimi_cli/ui/shell/console.py +32 -0
  137. kimi_cli/ui/shell/debug.py +190 -0
  138. kimi_cli/ui/shell/echo.py +17 -0
  139. kimi_cli/ui/shell/export_import.py +111 -0
  140. kimi_cli/ui/shell/keyboard.py +300 -0
  141. kimi_cli/ui/shell/mcp_status.py +108 -0
  142. kimi_cli/ui/shell/oauth.py +143 -0
  143. kimi_cli/ui/shell/placeholders.py +530 -0
  144. kimi_cli/ui/shell/prompt.py +1939 -0
  145. kimi_cli/ui/shell/replay.py +207 -0
  146. kimi_cli/ui/shell/setup.py +212 -0
  147. kimi_cli/ui/shell/slash.py +551 -0
  148. kimi_cli/ui/shell/startup.py +32 -0
  149. kimi_cli/ui/shell/task_browser.py +504 -0
  150. kimi_cli/ui/shell/update.py +215 -0
  151. kimi_cli/ui/shell/usage.py +278 -0
  152. kimi_cli/ui/shell/visualize.py +1604 -0
  153. kimi_cli/utils/__init__.py +0 -0
  154. kimi_cli/utils/aiohttp.py +12 -0
  155. kimi_cli/utils/aioqueue.py +72 -0
  156. kimi_cli/utils/broadcast.py +37 -0
  157. kimi_cli/utils/changelog.py +108 -0
  158. kimi_cli/utils/clipboard.py +169 -0
  159. kimi_cli/utils/datetime.py +37 -0
  160. kimi_cli/utils/diff.py +87 -0
  161. kimi_cli/utils/editor.py +91 -0
  162. kimi_cli/utils/environment.py +58 -0
  163. kimi_cli/utils/envvar.py +12 -0
  164. kimi_cli/utils/export.py +690 -0
  165. kimi_cli/utils/frontmatter.py +50 -0
  166. kimi_cli/utils/io.py +27 -0
  167. kimi_cli/utils/logging.py +124 -0
  168. kimi_cli/utils/media_tags.py +29 -0
  169. kimi_cli/utils/message.py +24 -0
  170. kimi_cli/utils/path.py +140 -0
  171. kimi_cli/utils/proctitle.py +33 -0
  172. kimi_cli/utils/pyinstaller.py +32 -0
  173. kimi_cli/utils/rich/__init__.py +33 -0
  174. kimi_cli/utils/rich/columns.py +99 -0
  175. kimi_cli/utils/rich/markdown.py +900 -0
  176. kimi_cli/utils/rich/markdown_sample.md +108 -0
  177. kimi_cli/utils/rich/markdown_sample_short.md +2 -0
  178. kimi_cli/utils/rich/syntax.py +113 -0
  179. kimi_cli/utils/signals.py +43 -0
  180. kimi_cli/utils/slashcmd.py +124 -0
  181. kimi_cli/utils/string.py +22 -0
  182. kimi_cli/utils/subprocess_env.py +52 -0
  183. kimi_cli/utils/term.py +168 -0
  184. kimi_cli/utils/typing.py +20 -0
  185. kimi_cli/vis/__init__.py +0 -0
  186. kimi_cli/vis/api/__init__.py +5 -0
  187. kimi_cli/vis/api/sessions.py +504 -0
  188. kimi_cli/vis/api/statistics.py +209 -0
  189. kimi_cli/vis/api/system.py +16 -0
  190. kimi_cli/vis/app.py +177 -0
  191. kimi_cli/web/__init__.py +5 -0
  192. kimi_cli/web/api/__init__.py +15 -0
  193. kimi_cli/web/api/config.py +208 -0
  194. kimi_cli/web/api/open_in.py +197 -0
  195. kimi_cli/web/api/sessions.py +1384 -0
  196. kimi_cli/web/app.py +545 -0
  197. kimi_cli/web/auth.py +191 -0
  198. kimi_cli/web/models.py +98 -0
  199. kimi_cli/web/runner/__init__.py +5 -0
  200. kimi_cli/web/runner/messages.py +57 -0
  201. kimi_cli/web/runner/process.py +745 -0
  202. kimi_cli/web/runner/worker.py +87 -0
  203. kimi_cli/web/store/__init__.py +1 -0
  204. kimi_cli/web/store/sessions.py +517 -0
  205. kimi_cli/wire/__init__.py +148 -0
  206. kimi_cli/wire/file.py +151 -0
  207. kimi_cli/wire/jsonrpc.py +247 -0
  208. kimi_cli/wire/protocol.py +2 -0
  209. kimi_cli/wire/serde.py +26 -0
  210. kimi_cli/wire/server.py +814 -0
  211. kimi_cli/wire/types.py +550 -0
  212. oracle_cli-1.24.0.dist-info/METADATA +89 -0
  213. oracle_cli-1.24.0.dist-info/RECORD +215 -0
  214. oracle_cli-1.24.0.dist-info/WHEEL +4 -0
  215. oracle_cli-1.24.0.dist-info/entry_points.txt +6 -0
kimi_cli/CHANGELOG.md ADDED
@@ -0,0 +1,1024 @@
1
+ # Changelog
2
+
3
+ <!--
4
+ Release notes will be parsed and available as /release-notes
5
+ The parser extracts for each version:
6
+ - a short description (first paragraph after the version header)
7
+ - bullet entries beginning with "- " under that version (across any subsections)
8
+ Internal builds may append content to the Unreleased section.
9
+ Only write entries that are worth mentioning to users.
10
+ -->
11
+
12
+ ## Unreleased
13
+
14
+ - Shell: Show the current working directory, git branch, dirty state, and ahead/behind sync status directly in the prompt toolbar
15
+ - Shell: Surface active background bash task counts in the toolbar, rotate shortcut tips on a timer, and gracefully truncate the toolbar on narrow terminals to avoid overflow
16
+ - Web: Fix tool execution status synchronization on cancel and approval — tools now correctly transition to `output-denied` state when generation is stopped, and show the loading spinner (instead of checkmark) while executing after approval
17
+ - Web: Dismiss stale approval and question dialogs on session replay — when replaying a session or when the backend reports idle/stopped/error status, any pending approval/question dialogs are now properly dismissed to prevent orphaned interactive elements
18
+ - Web: Enable inline math formula rendering — single-dollar inline math (`$...$`) is now supported in addition to block math (`$$...$$`)
19
+ - Web: Improve Switch toggle proportions and alignment — the toggle track is now larger (36×20) with a consistent 16px thumb and smoother 16px travel animation
20
+
21
+ ## 1.24.0 (2026-03-18)
22
+
23
+ - Shell: Increase pasted text placeholder thresholds to 1000 characters or 15 lines (previously 300 characters or 3 lines), making voice/typeless workflows less disruptive
24
+ - Core: Plan mode now supports multiple selectable approach options — when the agent's plan contains distinct alternative paths, `ExitPlanMode` can present 2–3 labeled choices for the user to pick which approach to execute; the chosen option is returned to the agent as the selected approach
25
+ - Core: Persist plan session ID and file path across process restarts — the plan session identifier and file slug are saved to `SessionState`, so restarting Kimi Code mid-plan resumes the same plan file in `~/.kimi/plans/` instead of creating a new one
26
+ - Core: Plan mode now supports incremental plan edits — the agent can use `StrReplaceFile` to surgically update sections of the plan file instead of rewriting the entire file with `WriteFile`, and non-plan file edits are now hard-blocked rather than requiring approval
27
+ - Core: Defer MCP startup and surface loading progress — MCP servers now initialize asynchronously after the shell UI starts, with live progress indicators showing connection status; Shell displays connecting and ready states in the status area, Web shows server connection status
28
+ - Core: Optimize lightweight startup paths — implement lazy-loading for CLI subcommands and version metadata, significantly reducing startup time for common commands like `--version` and `--help`
29
+ - Build: Fix Nix `FileCollisionError` for `bin/kimi` — remove duplicate entry point from `kimi-code` package so `kimi-cli` owns `bin/kimi` exclusively
30
+ - Shell: Preserve unsubmitted input across agent turns — text typed in the prompt while the agent is running is no longer lost when the turn ends; the user can press Enter to submit the draft as the next message
31
+ - Shell: Fix Ctrl-C and Ctrl-D not working correctly after an agent run completes — keyboard interrupts and EOF were silently swallowed instead of showing the tip or exiting the shell
32
+
33
+ ## 1.23.0 (2026-03-17)
34
+
35
+ - Shell: Add background bash — the `Shell` tool now accepts `run_in_background=true` to launch long-running commands (builds, tests, servers) as background tasks, freeing the agent to continue working; new `TaskList`, `TaskOutput`, and `TaskStop` tools manage task lifecycle, and the system automatically notifies the agent when tasks reach a terminal state
36
+ - Shell: Add `/task` slash command with interactive task browser — a three-column TUI to view, monitor, and manage background tasks with real-time refresh, output preview, and keyboard-driven stopping
37
+ - Web: Fix global config not refreshing on other tabs when model is changed — when the model is changed in one tab, other tabs now detect the config update and automatically refresh their global config
38
+
39
+ ## 1.22.0 (2026-03-13)
40
+
41
+ - Shell: Collapse long pasted text into `[Pasted text #n]` placeholders — text pasted via `Ctrl-V` or bracketed paste that exceeds 300 characters or 3 lines is displayed as a compact placeholder token in the prompt buffer while the full content is sent to the model; the external editor (`Ctrl-O`) expands placeholders for editing and re-folds them on save
42
+ - Shell: Cache pasted images as attachment placeholders — images pasted from the clipboard are stored on disk and shown as `[image:…]` tokens in the prompt, keeping the input buffer readable
43
+ - Shell: Fix UTF-16 surrogate characters in pasted text causing serialization errors — lone surrogates from Windows clipboard data are now sanitized before storage, preventing `UnicodeEncodeError` in history writes and JSON serialization
44
+ - Shell: Redesign slash command completion menu — replace the default completion popup with a full-width custom menu that shows command names and multi-line descriptions, with highlight and scroll support
45
+ - Shell: Fix cancelled shell commands not properly terminating child processes — when a running command is cancelled, the subprocess is now explicitly killed to prevent orphaned processes
46
+
47
+ ## 1.21.0 (2026-03-12)
48
+
49
+ - Shell: Add inline running prompt with steer input — agent output is now rendered inside the prompt area while the model is running, and users can type and send follow-up messages (steers) without waiting for the turn to finish; approval requests and question panels are handled inline with keyboard navigation
50
+ - Core: Change steer injection from synthetic tool calls to regular user messages — steer content is now appended as a standard user message instead of a fake `_steer` tool-call/tool-result pair, improving compatibility with context serialization and visualization
51
+ - Wire: Add `SteerInput` event — a new Wire protocol event emitted when the user sends a follow-up steer message during a running turn
52
+ - Shell: Echo user input after submission in agent mode — the prompt symbol and entered text are printed back to the terminal for a clearer conversation transcript
53
+ - Shell: Improve session replay with steer inputs — replay now correctly reconstructs and displays steer messages alongside regular turns, and filters out internal system-reminder messages
54
+ - Shell: Fix upgrade command in toast notifications — the upgrade command text is now sourced from a single `UPGRADE_COMMAND` constant for consistency
55
+ - Core: Persist system prompt in `context.jsonl` — the system prompt is now written as the first record of the context file and frozen per session, so visualization tools can read the full conversation context and session restores reuse the original prompt instead of regenerating it
56
+ - Vis: Add session directory shortcuts in `kimi vis` — open the current session folder directly from the session page, copy the raw session directory path with `Copy DIR`, and support opening directories on both macOS and Windows
57
+ - Shell: Improve API key login UX — show a spinner during key verification, display a helpful hint when a 401 error suggests the wrong platform was selected, show a setup summary on success, and default thinking mode to "on"
58
+
59
+ ## 1.20.0 (2026-03-11)
60
+
61
+ - Web: Add plan mode toggle in web UI — switch control in the input toolbar with a dashed blue border on the composer when plan mode is active, and support setting plan mode via the `set_plan_mode` Wire protocol method
62
+ - Core: Persist plan mode state across session restarts — `plan_mode` is saved to `SessionState` and restored when a session resumes
63
+ - Core: Fix StatusUpdate not reflecting plan mode changes triggered by tools — send a corrected `StatusUpdate` after `EnterPlanMode`/`ExitPlanMode` tool execution so the client sees the up-to-date state
64
+ - Core: Fix HTTP header values containing trailing whitespace/newlines on certain Linux systems (e.g. kernel 6.8.0-101) causing connection errors — strip whitespace from ASCII header values before sending
65
+ - Core: Fix OpenAI Responses provider sending implicit `reasoning.effort=null` which breaks Responses-compatible endpoints that require reasoning — reasoning parameters are now omitted unless explicitly set
66
+ - Vis: Add session download, import, export and delete — one-click ZIP download from session explorer and detail page, ZIP import into a dedicated `~/.kimi/imported_sessions/` directory with "Imported" filter toggle, `kimi export <session_id>` CLI command, and delete support for imported sessions with AlertDialog confirmation
67
+ - Core: Fix context compaction failing when conversation contains media parts (images, audio, video) — switch from blacklist filtering (exclude `ThinkPart`) to whitelist filtering (only keep `TextPart`) to prevent unsupported content types from being sent to the compaction API
68
+ - Web: Fix `@` file mention index not refreshing after switching sessions or when workspace files change — reset index on session switch, auto-refresh after 30s staleness, and support path-prefix search beyond the 500-file limit
69
+
70
+ ## 1.19.0 (2026-03-10)
71
+
72
+ - Core: Add plan mode — the agent can enter a planning phase (`EnterPlanMode`) where only read-only tools (Glob, Grep, ReadFile) are available, write a structured plan to a file, and present it for user approval (`ExitPlanMode`) before executing; toggle manually via `/plan` slash command or `Shift-Tab` keyboard shortcut
73
+ - Vis: Add `kimi vis` command for launching an interactive visualization dashboard to inspect session traces — includes wire event timeline, context viewer, session explorer, and usage statistics
74
+ - Web: Fix session stream state management — guard against null reference errors during state resets and preserve slash commands across session switches to avoid a brief empty gap
75
+
76
+ ## 1.18.0 (2026-03-09)
77
+
78
+ - ACP: Support embedded resource content in ACP mode so that Zed's `@` file references correctly include file contents
79
+ - Core: Use `parameters_json_schema` instead of `parameters` in Google GenAI provider to bypass Pydantic validation that rejects standard JSON Schema metadata fields in MCP tools
80
+ - Shell: Enhance `Ctrl-V` clipboard paste to support video files in addition to images — video file paths are inserted as text, and a crash when clipboard data is `None` is fixed
81
+ - Core: Pass session ID as `user_id` metadata to Anthropic API
82
+ - Web: Preserve slash commands on WebSocket reconnect and add automatic retry logic for session initialization
83
+
84
+ ## 1.17.0 (2026-03-03)
85
+
86
+ - Core: Add `/export` command to export current session context (messages, metadata) to a Markdown file, and `/import` command to import context from a file or another session ID into the current session
87
+ - Shell: Show token counts (used/total) alongside context usage percentage in the status bar (e.g., `context: 42.0% (4.2k/10.0k)`)
88
+ - Shell: Rotate keyboard shortcut tips in the toolbar — tips cycle through available shortcuts on each prompt submission to save horizontal space
89
+ - MCP: Add loading indicators for MCP server connections — Shell displays a "Connecting to MCP servers..." spinner and Web shows a status message while MCP tools are being loaded
90
+ - Web: Fix scrollable file list overflow in the toolbar changes panel
91
+ - Core: Add `compaction_trigger_ratio` config option (default `0.85`) to control when auto-compaction triggers — compaction now fires when context usage reaches the configured ratio or when remaining space falls below `reserved_context_size`, whichever comes first
92
+ - Core: Support custom instructions in `/compact` command (e.g., `/compact keep database discussions`) to guide what the compaction preserves
93
+ - Web: Add URL action parameters (`?action=create` to open create-session dialog, `?action=create-in-dir&workDir=xxx` to create a session directly) for external integrations, and support Cmd/Ctrl+Click on new-session buttons to open session creation in a new browser tab
94
+ - Web: Add todo list display in prompt toolbar — shows task progress with expandable panel when the `SetTodoList` tool is active
95
+ - ACP: Add authentication check for session operations with `AUTH_REQUIRED` error responses for terminal-based login flow
96
+
97
+ ## 1.16.0 (2026-02-27)
98
+
99
+ - Web: Update ASCII logo banner to a new styled design
100
+ - Core: Add `--add-dir` CLI option and `/add-dir` slash command to expand the workspace scope with additional directories — added directories are accessible to all file tools (read, write, glob, replace), persisted across sessions, and shown in the system prompt
101
+ - Shell: Add `Ctrl-O` keyboard shortcut to open the current input in an external editor (`$VISUAL`/`$EDITOR`), with auto-detection fallback to VS Code, Vim, Vi, or Nano
102
+ - Shell: Add `/editor` slash command to configure and switch the default external editor, with interactive selection and persistent config storage
103
+ - Shell: Add `/new` slash command to create and switch to a new session without restarting Kimi Code CLI
104
+ - Wire: Auto-hide `AskUserQuestion` tool when the client does not support the `supports_question` capability, preventing the LLM from invoking unsupported interactions
105
+ - Core: Estimate context token count after compaction so context usage percentage is not reported as 0%
106
+ - Web: Show context usage percentage with one decimal place for better precision
107
+
108
+ ## 1.15.0 (2026-02-27)
109
+
110
+ - Shell: Simplify input prompt by removing username prefix for a cleaner appearance
111
+ - Shell: Add horizontal separator line and expanded keyboard shortcut hints to the toolbar
112
+ - Shell: Add number key shortcuts (1–5) for quick option selection in question and approval panels, with redesigned bordered panel UI and keyboard hints
113
+ - Shell: Add tab-style navigation for multi-question panels — use Left/Right arrows or Tab to switch between questions, with visual indicators for answered, current, and pending states, and automatic state restoration when revisiting a question
114
+ - Shell: Allow Space key to submit single-select questions in the question panel
115
+ - Web: Add tab-style navigation for multi-question dialogs with clickable tab bar, keyboard navigation, and state restoration when revisiting a question
116
+ - Core: Set process title to "Kimi Code" (visible in `ps` / Activity Monitor / terminal tab title) and label web worker subprocesses as "kimi-code-worker"
117
+
118
+ ## 1.14.0 (2026-02-26)
119
+
120
+ - Shell: Make FetchURL tool's URL parameter a clickable hyperlink in the terminal
121
+ - Tool: Add `AskUserQuestion` tool for presenting structured questions with predefined options during execution, supporting single-select, multi-select, and custom text input
122
+ - Wire: Add `QuestionRequest` / `QuestionResponse` message types and capability negotiation for structured question interactions
123
+ - Shell: Add interactive question panel for `AskUserQuestion` with keyboard-driven option selection
124
+ - Web: Add `QuestionDialog` component for answering structured questions inline, replacing the prompt composer when a question is pending
125
+ - Core: Persist session state across sessions — approval decisions (YOLO mode, auto-approved actions) and dynamic subagents are now saved and restored when resuming a session
126
+ - Core: Use atomic JSON writes for metadata and session state files to prevent data corruption on crash
127
+ - Wire: Add `steer` request to inject user messages into an active agent turn (protocol version 1.4)
128
+ - Web: Allow Cmd/Ctrl+Click on FetchURL tool's URL parameter to open the link in a new browser tab, with platform-appropriate tooltip hint
129
+
130
+ ## 1.13.0 (2026-02-24)
131
+
132
+ - Core: Add automatic connection recovery that recreates the HTTP client on connection and timeout errors before retrying, improving resilience against transient network failures
133
+
134
+ ## 1.12.0 (2026-02-11)
135
+
136
+ - Web: Add subagent activity rendering to display subagent steps (thinking, tool calls, text) inside Task tool messages
137
+ - Web: Add Think tool rendering as a lightweight reasoning-style block
138
+ - Web: Replace emoji status indicators with Lucide icons for tool states and add category-specific icons for tool names
139
+ - Web: Enhance Reasoning component with improved thinking labels and status icons
140
+ - Web: Enhance Todo component with status icons and improved styling
141
+ - Web: Implement WebSocket reconnection with automatic request resending and stale connection watchdog
142
+ - Web: Enhance session creation dialog with command value handling
143
+ - Web: Support tilde (`~`) expansion in session work directory paths
144
+ - Web: Fix assistant message content overflow clipping
145
+ - Wire: Fix deadlock when multiple subagents run concurrently by not blocking the UI loop on approval and tool-call requests
146
+ - Wire: Clean up stale pending requests after agent turn ends
147
+ - Web: Show placeholder text in prompt input with hints for slash commands and file mentions
148
+ - Web: Fix Ctrl+C not working in uvicorn web server by restoring default SIGINT handler and terminal state after shell mode exits
149
+ - Web: Improve session stop handling with proper async cleanup and timeout
150
+ - ACP: Add protocol version negotiation framework for client-server compatibility
151
+ - ACP: Add session resume method to restore session state (experimental)
152
+
153
+ ## 1.11.0 (2026-02-10)
154
+
155
+ - Web: Move context usage indicator from workspace header to prompt toolbar with a hover card showing detailed token usage breakdown
156
+ - Web: Add folder indicator with work directory path to the bottom of the file changes panel
157
+ - Web: Fix stderr not being restored when switching to web mode, which could suppress web server error output
158
+ - Web: Fix port availability check by setting SO_REUSEADDR on the test socket
159
+
160
+ ## 1.10.0 (2026-02-09)
161
+
162
+ - Web: Add copy and fork action buttons to assistant messages for quick content copying and session forking
163
+ - Web: Add keyboard shortcuts for approval actions — press `1` to approve, `2` to approve for session, `3` to decline
164
+ - Web: Add message queueing — queue follow-up messages while the AI is processing; queued messages are sent automatically when the response completes
165
+ - Web: Replace Git diff status bar with unified prompt toolbar showing activity status, message queue, and file changes in collapsible tabs
166
+ - Web: Load global MCP configuration in web worker so web sessions can use MCP tools
167
+ - Web: Improve mobile prompt input UX — reduce textarea min-height, add `autoComplete="off"`, and disable focus ring on small screens
168
+ - Web: Handle models that stream text before thinking by ensuring thinking messages always appear before text in the message list
169
+ - Web: Show more specific status messages during session connection ("Loading history...", "Starting environment..." instead of generic "Connecting...")
170
+ - Web: Send error status when session environment initialization fails instead of leaving UI in a waiting state
171
+ - Web: Auto-reconnect when no session status received within 15 seconds after history replay completes
172
+ - Web: Use non-blocking file I/O in session streaming to avoid blocking the event loop during history replay
173
+
174
+ ## 1.9.0 (2026-02-06)
175
+
176
+ - Config: Add `default_yolo` config option to enable YOLO (auto-approve) mode by default
177
+ - Config: Accept both `max_steps_per_turn` and `max_steps_per_run` as aliases for the loop control setting
178
+ - Wire: Add `replay` request to stream recorded Wire events (protocol version 1.3)
179
+ - Web: Add session fork feature to branch off a new session from any assistant response
180
+ - Web: Add session archive feature with auto-archive for sessions older than 15 days
181
+ - Web: Add multi-select mode for bulk archive, unarchive, and delete operations
182
+ - Web: Add media preview for tool results (images/videos from ReadMediaFile) with clickable thumbnails
183
+ - Web: Add shell command and todo list display components for tool outputs
184
+ - Web: Add activity status indicator showing agent state (processing, waiting for approval, etc.)
185
+ - Web: Add error fallback UI when images fail to load
186
+ - Web: Redesign tool input UI with expandable parameters and syntax highlighting for long values
187
+ - Web: Show compaction indicator when context is being compacted
188
+ - Web: Improve auto-scroll behavior in chat for smoother following of new content
189
+ - Web: Update `last_session_id` for work directory when session stream starts
190
+ - Shell: Remove `Ctrl-/` keyboard shortcut that triggered `/help` command
191
+ - Rust: Move the Rust implementation to `MoonshotAI/kimi-agent-rs` with independent releases; binary renamed to `kimi-agent`
192
+ - Core: Preserve session id when reloading configuration so the session resumes correctly
193
+ - Shell: Fix session replay showing messages that were cleared by `/clear` or `/reset`
194
+ - Web: Fix approval request states not updating when session is interrupted or cancelled
195
+ - Web: Fix IME composition issue when selecting slash commands
196
+ - Web: Fix UI not clearing messages after `/clear`, `/reset`, or `/compact` commands
197
+
198
+ ## 1.8.0 (2026-02-05)
199
+
200
+ - CLI: Fix startup errors (e.g. invalid config files) being silently swallowed instead of displayed
201
+
202
+ ## 1.7.0 (2026-02-05)
203
+
204
+ - Rust: Add `kagent`, the Rust implementation of Kimi agent kernel with wire-mode support (experimental)
205
+ - Auth: Fix OAuth token refresh conflicts when running multiple sessions simultaneously
206
+ - Web: Add file mention menu (`@`) to reference uploaded attachments and workspace files with autocomplete
207
+ - Web: Add slash command menu in chat input with autocomplete, keyboard navigation, and alias support
208
+ - Web: Prompt to create directory when specified path doesn't exist during session creation
209
+ - Web: Fix authentication token persistence by switching from sessionStorage to localStorage with 24-hour expiry
210
+ - Web: Add server-side pagination for session list with virtualized scrolling for better performance
211
+ - Web: Improve session and work directories loading with smarter caching and invalidation
212
+ - Web: Fix WebSocket errors during history replay by checking connection state before sending
213
+ - Web: Git diff status bar now shows untracked files (new files not yet added to git)
214
+ - Web: Restrict sensitive APIs only in public mode; update origin enforcement logic
215
+
216
+ ## 1.6 (2026-02-03)
217
+
218
+ - Web: Add token-based authentication and access control for network mode (`--network`, `--lan-only`, `--public`)
219
+ - Web: Add security options: `--auth-token`, `--allowed-origins`, `--restrict-sensitive-apis`, `--dangerously-omit-auth`
220
+ - Web: Change `--host` option to bind to specific IP address; add automatic network address detection
221
+ - Web: Fix WebSocket disconnect when creating new sessions
222
+ - Web: Increase maximum image dimension from 1024 to 4096 pixels
223
+ - Web: Improve UI responsiveness with enhanced hover effects and better layout handling
224
+ - Wire: Add `TurnEnd` event to signal the completion of an agent turn (protocol version 1.2)
225
+ - Core: Fix custom agent prompt files containing `$` causing silent startup failure
226
+
227
+ ## 1.5 (2026-01-30)
228
+
229
+ - Web: Add Git diff status bar showing uncommitted changes in session working directory
230
+ - Web: Add "Open in" menu for opening files/directories in Terminal, VS Code, Cursor, or other local applications
231
+ - Web: Add search functionality to filter sessions by title or working directory
232
+ - Web: Improve session title display with proper overflow handling
233
+
234
+ ## 1.4 (2026-01-30)
235
+
236
+ - Shell: Merge `/login` and `/setup` commands; `/setup` is now an alias for `/login`
237
+ - Shell: `/usage` now shows remaining quota percentage; add `/status` alias
238
+ - Config: Add `KIMI_SHARE_DIR` environment variable to customize the share directory path (default: `~/.kimi`)
239
+ - Web: Add new Web UI for browser-based interaction
240
+ - CLI: Add `kimi web` subcommand to launch the Web UI server
241
+ - Auth: Fix encoding error when device name or OS version contains non-ASCII characters
242
+ - Auth: OAuth credentials are now stored in files instead of keyring; existing tokens are automatically migrated on startup
243
+ - Auth: Fix authorization failure after the system sleeps or hibernates
244
+
245
+ ## 1.3 (2026-01-28)
246
+
247
+ - Auth: Fix authentication issue during agent turns
248
+ - Tool: Wrap media content with descriptive tags in `ReadMediaFile` for better path traceability
249
+
250
+ ## 1.2 (2026-01-27)
251
+
252
+ - UI: Show description for `kimi-for-coding` model
253
+
254
+ ## 1.1 (2026-01-27)
255
+
256
+ - LLM: Fix `kimi-for-coding` model's capabilities
257
+
258
+ ## 1.0 (2026-01-27)
259
+
260
+ - Shell: Add `/login` and `/logout` slash commands for login and logout
261
+ - CLI: Add `kimi login` and `kimi logout` subcommands
262
+ - Core: Fix subagent approval request handling
263
+
264
+ ## 0.88 (2026-01-26)
265
+
266
+ - MCP: Remove `Mcp-Session-Id` header when connecting to MCP servers to fix compatibility
267
+
268
+ ## 0.87 (2026-01-25)
269
+
270
+ - Shell: Fix Markdown rendering error when HTML blocks appear outside any element
271
+ - Skills: Add more user-level and project-level skills directory candidates
272
+ - Core: Improve system prompt guidance for media file generation and processing tasks
273
+ - Shell: Fix image pasting from clipboard on macOS
274
+
275
+ ## 0.86 (2026-01-24)
276
+
277
+ - Build: Fix binary builds
278
+
279
+ ## 0.85 (2026-01-24)
280
+
281
+ - Shell: Cache pasted images to disk for persistence across sessions
282
+ - Shell: Deduplicate cached attachments based on content hash
283
+ - Shell: Fix display of image/audio/video attachments in message history
284
+ - Tool: Use file path as media identifier in `ReadMediaFile` for better traceability
285
+ - Tool: Fix some MP4 files not being recognized as videos
286
+ - Shell: Handle Ctrl-C during slash command execution
287
+ - Shell: Fix shlex parsing error in shell mode when input contains invalid shell syntax
288
+ - Shell: Fix stderr output from MCP servers and third-party libraries polluting shell UI
289
+ - Wire: Graceful shutdown with proper cleanup of pending requests when connection closes or Ctrl-C is received
290
+
291
+ ## 0.84 (2026-01-22)
292
+
293
+ - Build: Add cross-platform standalone binary builds for Windows, macOS (with code signing and notarization), and Linux (x86_64 and ARM64)
294
+ - Shell: Fix slash command autocomplete showing suggestions for exact command/alias matches
295
+ - Tool: Treat SVG files as text instead of images
296
+ - Flow: Support D2 markdown block strings (`|md` syntax) for multiline node labels in flow skills
297
+ - Core: Fix possible "event loop is closed" error after running `/reload`, `/setup`, or `/clear`
298
+ - Core: Fix panic when `/clear` is used in a continued session
299
+
300
+ ## 0.83 (2026-01-21)
301
+
302
+ - Tool: Add `ReadMediaFile` tool for reading image/video files; `ReadFile` now focuses on text files only
303
+ - Skills: Flow skills now also register as `/skill:<skill-name>` commands (in addition to `/flow:<skill-name>`)
304
+
305
+ ## 0.82 (2026-01-21)
306
+
307
+ - Tool: Allow `WriteFile` and `StrReplaceFile` tools to edit/write files outside the working directory when using absolute paths
308
+ - Tool: Upload videos to Kimi files API when using Kimi provider, replacing inline data URLs with `ms://` references
309
+ - Config: Add `reserved_context_size` setting to customize auto-compaction trigger threshold (default: 50000 tokens)
310
+
311
+ ## 0.81 (2026-01-21)
312
+
313
+ - Skills: Add flow skill type with embedded Agent Flow (Mermaid/D2) in SKILL.md, invoked via `/flow:<skill-name>` commands
314
+ - CLI: Remove `--prompt-flow` option; use flow skills instead
315
+ - Core: Replace `/begin` command with `/flow:<skill-name>` commands for flow skills
316
+
317
+ ## 0.80 (2026-01-20)
318
+
319
+ - Wire: Add `initialize` method for exchanging client/server info, external tools registration and slash commands advertisement
320
+ - Wire: Support external tool calls via Wire protocol
321
+ - Wire: Rename `ApprovalRequestResolved` to `ApprovalResponse` (backwards-compatible)
322
+
323
+ ## 0.79 (2026-01-19)
324
+
325
+ - Skills: Add project-level skills support, discovered from `.agents/skills/` (or `.kimi/skills/`, `.claude/skills/`)
326
+ - Skills: Unified skills discovery with layered loading (builtin → user → project); user-level skills now prefer `~/.config/agents/skills/`
327
+ - Shell: Support fuzzy matching for slash command autocomplete
328
+ - Shell: Enhanced approval request preview with shell command and diff content display, use `Ctrl-E` to expand full content
329
+ - Wire: Add `ShellDisplayBlock` type for shell command display in approval requests
330
+ - Shell: Reorder `/help` to show keyboard shortcuts before slash commands
331
+ - Wire: Return proper JSON-RPC 2.0 error responses for invalid requests
332
+
333
+ ## 0.78 (2026-01-16)
334
+
335
+ - CLI: Add D2 flowchart format support for Prompt Flow (`.d2` extension)
336
+
337
+ ## 0.77 (2026-01-15)
338
+
339
+ - Shell: Fix line breaking in `/help` and `/changelog` fullscreen pager display
340
+ - Shell: Use `/model` to toggle thinking mode instead of Tab key
341
+ - Config: Add `default_thinking` config option (need to run `/model` to select thinking mode after upgrade)
342
+ - LLM: Add `always_thinking` capability for models that always use thinking mode
343
+ - CLI: Rename `--command`/`-c` to `--prompt`/`-p`, keep `--command`/`-c` as alias, remove `--query`/`-q`
344
+ - Wire: Fix approval requests not responding properly in Wire mode
345
+ - CLI: Add `--prompt-flow` option to load a Mermaid flowchart file as a Prompt Flow
346
+ - Core: Add `/begin` slash command if a Prompt Flow is loaded to start the flow
347
+ - Core: Replace Ralph Loop with Prompt Flow-based implementation
348
+
349
+ ## 0.76 (2026-01-12)
350
+
351
+ - Tool: Make `ReadFile` tool description reflect model capabilities for image/video support
352
+ - Tool: Fix TypeScript files (`.ts`, `.tsx`, `.mts`, `.cts`) being misidentified as video files
353
+ - Shell: Allow slash commands (`/help`, `/exit`, `/version`, `/changelog`, `/feedback`) in shell mode
354
+ - Shell: Improve `/help` with fullscreen pager, showing slash commands, skills, and keyboard shortcuts
355
+ - Shell: Improve `/changelog` and `/mcp` display with consistent bullet-style formatting
356
+ - Shell: Show current model name in the bottom status bar
357
+ - Shell: Add `Ctrl-/` shortcut to show help
358
+
359
+ ## 0.75 (2026-01-09)
360
+
361
+ - Tool: Improve `ReadFile` tool description
362
+ - Skills: Add built-in `kimi-cli-help` skill to answer Kimi Code CLI usage and configuration questions
363
+
364
+ ## 0.74 (2026-01-09)
365
+
366
+ - ACP: Allow ACP clients to select and switch models (with thinking variants)
367
+ - ACP: Add `terminal-auth` authentication method for setup flow
368
+ - CLI: Deprecate `--acp` option in favor of `kimi acp` subcommand
369
+ - Tool: Support reading image and video files in `ReadFile` tool
370
+
371
+ ## 0.73 (2026-01-09)
372
+
373
+ - Skills: Add built-in skill-creator skill shipped with the package
374
+ - Tool: Expand `~` to the home directory in `ReadFile` paths
375
+ - MCP: Ensure MCP tools finish loading before starting the agent loop
376
+ - Wire: Fix Wire mode failing to accept valid `cancel` requests
377
+ - Setup: Allow `/model` to switch between all available models for the selected provider
378
+ - Lib: Re-export all Wire message types from `kimi_cli.wire.types`, as a replacement of `kimi_cli.wire.message`
379
+ - Loop: Add `max_ralph_iterations` loop control config to limit extra Ralph iterations
380
+ - Config: Rename `max_steps_per_run` to `max_steps_per_turn` in loop control config (backward-compatible)
381
+ - CLI: Add `--max-steps-per-turn`, `--max-retries-per-step` and `--max-ralph-iterations` options to override loop control config
382
+ - SlashCmd: Make `/yolo` toggle auto-approve mode
383
+ - UI: Show a YOLO badge in the shell prompt
384
+
385
+ ## 0.72 (2026-01-04)
386
+
387
+ - Python: Fix installation on Python 3.14.
388
+
389
+ ## 0.71 (2026-01-04)
390
+
391
+ - ACP: Route file reads/writes and shell commands through ACP clients for synced edits/output
392
+ - Shell: Add `/model` slash command to switch default models and reload when using the default config
393
+ - Skills: Add `/skill:<name>` slash commands to load `SKILL.md` instructions on demand
394
+ - CLI: Add `kimi info` subcommand for version/protocol details (supports `--json`)
395
+ - CLI: Add `kimi term` to launch the Toad terminal UI
396
+ - Python: Bump the default tooling/CI version to 3.14
397
+
398
+ ## 0.70 (2025-12-31)
399
+
400
+ - CLI: Add `--final-message-only` (and `--quiet` alias) to only output the final assistant message in print UI
401
+ - LLM: Add `video_in` model capability and support video inputs
402
+
403
+ ## 0.69 (2025-12-29)
404
+
405
+ - Core: Support discovering skills in `~/.kimi/skills` or `~/.claude/skills`
406
+ - Python: Lower the minimum required Python version to 3.12
407
+ - Nix: Add flake packaging; install with `nix profile install .#kimi-cli` or run `nix run .#kimi-cli`
408
+ - CLI: Add `kimi-cli` script alias for invoking the CLI; can be run via `uvx kimi-cli`
409
+ - Lib: Move LLM config validation into `create_llm` and return `None` when missing config
410
+
411
+ ## 0.68 (2025-12-24)
412
+
413
+ - CLI: Add `--config` and `--config-file` options to pass in config JSON/TOML
414
+ - Core: Allow `Config` in addition to `Path` for the `config` parameter of `KimiCLI.create`
415
+ - Tool: Include diff display blocks in `WriteFile` and `StrReplaceFile` approvals/results
416
+ - Wire: Add display blocks to approval requests (including diffs) with backward-compatible defaults
417
+ - ACP: Show file diff previews in tool results and approval prompts
418
+ - ACP: Connect to MCP servers managed by ACP clients
419
+ - ACP: Run shell commands in ACP client terminal if supported
420
+ - Lib: Add `KimiToolset.find` method to find tools by class or name
421
+ - Lib: Add `ToolResultBuilder.display` method to append display blocks to tool results
422
+ - MCP: Add `kimi mcp auth` and related subcommands to manage MCP authorization
423
+
424
+ ## 0.67 (2025-12-22)
425
+
426
+ - ACP: Advertise slash commands in single-session ACP mode (`kimi --acp`)
427
+ - MCP: Add `mcp.client` config section to configure MCP tool call timeout and other future options
428
+ - Core: Improve default system prompt and `ReadFile` tool
429
+ - UI: Fix Ctrl-C not working in some rare cases
430
+
431
+ ## 0.66 (2025-12-19)
432
+
433
+ - Lib: Provide `token_usage` and `message_id` in `StatusUpdate` Wire message
434
+ - Lib: Add `KimiToolset.load_tools` method to load tools with dependency injection
435
+ - Lib: Add `KimiToolset.load_mcp_tools` method to load MCP tools
436
+ - Lib: Move `MCPTool` from `kimi_cli.tools.mcp` to `kimi_cli.soul.toolset`
437
+ - Lib: Add `InvalidToolError`, `MCPConfigError` and `MCPRuntimeError`
438
+ - Lib: Make the detailed Kimi Code CLI exception classes extend `ValueError` or `RuntimeError`
439
+ - Lib: Allow passing validated `list[fastmcp.mcp_config.MCPConfig]` as `mcp_configs` for `KimiCLI.create` and `load_agent`
440
+ - Lib: Fix exception raising for `KimiCLI.create`, `load_agent`, `KimiToolset.load_tools` and `KimiToolset.load_mcp_tools`
441
+ - LLM: Add provider type `vertexai` to support Vertex AI
442
+ - LLM: Rename Gemini Developer API provider type from `google_genai` to `gemini`
443
+ - Config: Migrate config file from JSON to TOML
444
+ - MCP: Connect to MCP servers in background and parallel to reduce startup time
445
+ - MCP: Add `mcp-session-id` HTTP header when connecting to MCP servers
446
+ - Lib: Split slash commands (prev "meta commands") into two groups: Shell-level and KimiSoul-level
447
+ - Lib: Add `available_slash_commands` property to `Soul` protocol
448
+ - ACP: Advertise slash commands `/init`, `/compact` and `/yolo` to ACP clients
449
+ - SlashCmd: Add `/mcp` slash command to display MCP server and tool status
450
+
451
+ ## 0.65 (2025-12-16)
452
+
453
+ - Lib: Support creating named sessions via `Session.create(work_dir, session_id)`
454
+ - CLI: Automatically create new session when specified session ID is not found
455
+ - CLI: Delete empty sessions on exit and ignore sessions whose context file is empty when listing
456
+ - UI: Improve session replaying
457
+ - Lib: Add `model_config: LLMModel | None` and `provider_config: LLMProvider | None` properties to `LLM` class
458
+ - MetaCmd: Add `/usage` meta command to show API usage for Kimi Code users
459
+
460
+ ## 0.64 (2025-12-15)
461
+
462
+ - UI: Fix UTF-16 surrogate characters input on Windows
463
+ - Core: Add `/sessions` meta command to list existing sessions and switch to a selected one
464
+ - CLI: Add `--session/-S` option to specify session ID to resume
465
+ - MCP: Add `kimi mcp` subcommand group to manage global MCP config file `~/.kimi/mcp.json`
466
+
467
+ ## 0.63 (2025-12-12)
468
+
469
+ - Tool: Fix `FetchURL` tool incorrect output when fetching via service fails
470
+ - Tool: Use `bash` instead of `sh` in `Shell` tool for better compatibility
471
+ - Tool: Fix `Grep` tool unicode decoding error on Windows
472
+ - ACP: Support ACP session continuation (list/load sessions) with `kimi acp` subcommand
473
+ - Lib: Add `Session.find` and `Session.list` static methods to find and list sessions
474
+ - ACP: Update agent plans on the client side when `SetTodoList` tool is called
475
+ - UI: Prevent normal messages starting with `/` from being treated as meta commands
476
+
477
+ ## 0.62 (2025-12-08)
478
+
479
+ - ACP: Fix tool results (including Shell tool output) not being displayed in ACP clients like Zed
480
+ - ACP: Fix compatibility with the latest version of Zed IDE (0.215.3)
481
+ - Tool: Use PowerShell instead of CMD on Windows for better usability
482
+ - Core: Fix startup crash when there is broken symbolic link in the working directory
483
+ - Core: Add builtin `okabe` agent file with `SendDMail` tool enabled
484
+ - CLI: Add `--agent` option to specify builtin agents like `default` and `okabe`
485
+ - Core: Improve compaction logic to better preserve relevant information
486
+
487
+ ## 0.61 (2025-12-04)
488
+
489
+ - Lib: Fix logging when used as a library
490
+ - Tool: Harden file path check to protect against shared-prefix escape
491
+ - LLM: Improve compatibility with some third-party OpenAI Responses and Anthropic API providers
492
+
493
+ ## 0.60 (2025-12-01)
494
+
495
+ - LLM: Fix interleaved thinking for Kimi and OpenAI-compatible providers
496
+
497
+ ## 0.59 (2025-11-28)
498
+
499
+ - Core: Move context file location to `.kimi/sessions/{workdir_md5}/{session_id}/context.jsonl`
500
+ - Lib: Move `WireMessage` type alias to `kimi_cli.wire.message`
501
+ - Lib: Add `kimi_cli.wire.message.Request` type alias request messages (which currently only includes `ApprovalRequest`)
502
+ - Lib: Add `kimi_cli.wire.message.is_event`, `is_request` and `is_wire_message` utility functions to check the type of wire messages
503
+ - Lib: Add `kimi_cli.wire.serde` module for serialization and deserialization of wire messages
504
+ - Lib: Change `StatusUpdate` Wire message to not using `kimi_cli.soul.StatusSnapshot`
505
+ - Core: Record Wire messages to a JSONL file in session directory
506
+ - Core: Introduce `TurnBegin` Wire message to mark the beginning of each agent turn
507
+ - UI: Print user input again with a panel in shell mode
508
+ - Lib: Add `Session.dir` property to get the session directory path
509
+ - UI: Improve "Approve for session" experience when there are multiple parallel subagents
510
+ - Wire: Reimplement Wire server mode (which is enabled with `--wire` option)
511
+ - Lib: Rename `ShellApp` to `Shell`, `PrintApp` to `Print`, `ACPServer` to `ACP` and `WireServer` to `WireOverStdio` for better consistency
512
+ - Lib: Rename `KimiCLI.run_shell_mode` to `run_shell`, `run_print_mode` to `run_print`, `run_acp_server` to `run_acp`, and `run_wire_server` to `run_wire_stdio` for better consistency
513
+ - Lib: Add `KimiCLI.run` method to run a turn with given user input and yield Wire messages
514
+ - Print: Fix stream-json print mode not flushing output properly
515
+ - LLM: Improve compatibility with some OpenAI and Anthropic API providers
516
+ - Core: Fix chat provider error after compaction when using Anthropic API
517
+
518
+ ## 0.58 (2025-11-21)
519
+
520
+ - Core: Fix field inheritance of agent spec files when using `extend`
521
+ - Core: Support using MCP tools in subagents
522
+ - Tool: Add `CreateSubagent` tool to create subagents dynamically (not enabled in default agent)
523
+ - Tool: Use MoonshotFetch service in `FetchURL` tool for Kimi Code plan
524
+ - Tool: Truncate Grep tool output to avoid exceeding token limit
525
+
526
+ ## 0.57 (2025-11-20)
527
+
528
+ - LLM: Fix Google GenAI provider when thinking toggle is not on
529
+ - UI: Improve approval request wordings
530
+ - Tool: Remove `PatchFile` tool
531
+ - Tool: Rename `Bash`/`CMD` tool to `Shell` tool
532
+ - Tool: Move `Task` tool to `kimi_cli.tools.multiagent` module
533
+
534
+ ## 0.56 (2025-11-19)
535
+
536
+ - LLM: Add support for Google GenAI provider
537
+
538
+ ## 0.55 (2025-11-18)
539
+
540
+ - Lib: Add `kimi_cli.app.enable_logging` function to enable logging when directly using `KimiCLI` class
541
+ - Core: Fix relative path resolution in agent spec files
542
+ - Core: Prevent from panic when LLM API connection failed
543
+ - Tool: Optimize `FetchURL` tool for better content extraction
544
+ - Tool: Increase MCP tool call timeout to 60 seconds
545
+ - Tool: Provide better error message in `Glob` tool when pattern is `**`
546
+ - ACP: Fix thinking content not displayed properly
547
+ - UI: Minor UI improvements in shell mode
548
+
549
+ ## 0.54 (2025-11-13)
550
+
551
+ - Lib: Move `WireMessage` from `kimi_cli.wire.message` to `kimi_cli.wire`
552
+ - Print: Fix `stream-json` output format missing the last assistant message
553
+ - UI: Add warning when API key is overridden by `KIMI_API_KEY` environment variable
554
+ - UI: Make a bell sound when there's an approval request
555
+ - Core: Fix context compaction and clearing on Windows
556
+
557
+ ## 0.53 (2025-11-12)
558
+
559
+ - UI: Remove unnecessary trailing spaces in console output
560
+ - Core: Throw error when there are unsupported message parts
561
+ - MetaCmd: Add `/yolo` meta command to enable YOLO mode after startup
562
+ - Tool: Add approval request for MCP tools
563
+ - Tool: Disable `Think` tool in default agent
564
+ - CLI: Restore thinking mode from last time when `--thinking` is not specified
565
+ - CLI: Fix `/reload` not working in binary packed by PyInstaller
566
+
567
+ ## 0.52 (2025-11-10)
568
+
569
+ - CLI: Remove `--ui` option in favor of `--print`, `--acp`, and `--wire` flags (shell is still the default)
570
+ - CLI: More intuitive session continuation behavior
571
+ - Core: Add retry for LLM empty responses
572
+ - Tool: Change `Bash` tool to `CMD` tool on Windows
573
+ - UI: Fix completion after backspacing
574
+ - UI: Fix code block rendering issues on light background colors
575
+
576
+ ## 0.51 (2025-11-08)
577
+
578
+ - Lib: Rename `Soul.model` to `Soul.model_name`
579
+ - Lib: Rename `LLMModelCapability` to `ModelCapability` and move to `kimi_cli.llm`
580
+ - Lib: Add `"thinking"` to `ModelCapability`
581
+ - Lib: Remove `LLM.supports_image_in` property
582
+ - Lib: Add required `Soul.model_capabilities` property
583
+ - Lib: Rename `KimiSoul.set_thinking_mode` to `KimiSoul.set_thinking`
584
+ - Lib: Add `KimiSoul.thinking` property
585
+ - UI: Better checks and notices for LLM model capabilities
586
+ - UI: Clear the screen for `/clear` meta command
587
+ - Tool: Support auto-downloading ripgrep on Windows
588
+ - CLI: Add `--thinking` option to start in thinking mode
589
+ - ACP: Support thinking content in ACP mode
590
+
591
+ ## 0.50 (2025-11-07)
592
+
593
+ ### Changed
594
+
595
+ - Improve UI look and feel
596
+ - Improve Task tool observability
597
+
598
+ ## 0.49 (2025-11-06)
599
+
600
+ ### Fixed
601
+
602
+ - Minor UX improvements
603
+
604
+ ## 0.48 (2025-11-06)
605
+
606
+ ### Added
607
+
608
+ - Support Kimi K2 thinking mode
609
+
610
+ ## 0.47 (2025-11-05)
611
+
612
+ ### Fixed
613
+
614
+ - Fix Ctrl-W not working in some environments
615
+ - Do not load SearchWeb tool when the search service is not configured
616
+
617
+ ## 0.46 (2025-11-03)
618
+
619
+ ### Added
620
+
621
+ - Introduce Wire over stdio for local IPC (experimental, subject to change)
622
+ - Support Anthropic provider type
623
+
624
+ ### Fixed
625
+
626
+ - Fix binary packed by PyInstaller not working due to wrong entrypoint
627
+
628
+ ## 0.45 (2025-10-31)
629
+
630
+ ### Added
631
+
632
+ - Allow `KIMI_MODEL_CAPABILITIES` environment variable to override model capabilities
633
+ - Add `--no-markdown` option to disable markdown rendering
634
+ - Support `openai_responses` LLM provider type
635
+
636
+ ### Fixed
637
+
638
+ - Fix crash when continuing a session
639
+
640
+ ## 0.44 (2025-10-30)
641
+
642
+ ### Changed
643
+
644
+ - Improve startup time
645
+
646
+ ### Fixed
647
+
648
+ - Fix potential invalid bytes in user input
649
+
650
+ ## 0.43 (2025-10-30)
651
+
652
+ ### Added
653
+
654
+ - Basic Windows support (experimental)
655
+ - Display warnings when base URL or API key is overridden in environment variables
656
+ - Support image input if the LLM model supports it
657
+ - Replay recent context history when continuing a session
658
+
659
+ ### Fixed
660
+
661
+ - Ensure new line after executing shell commands
662
+
663
+ ## 0.42 (2025-10-28)
664
+
665
+ ### Added
666
+
667
+ - Support Ctrl-J or Alt-Enter to insert a new line
668
+
669
+ ### Changed
670
+
671
+ - Change mode switch shortcut from Ctrl-K to Ctrl-X
672
+ - Improve overall robustness
673
+
674
+ ### Fixed
675
+
676
+ - Fix ACP server `no attribute` error
677
+
678
+ ## 0.41 (2025-10-26)
679
+
680
+ ### Fixed
681
+
682
+ - Fix a bug for Glob tool when no matching files are found
683
+ - Ensure reading files with UTF-8 encoding
684
+
685
+ ### Changed
686
+
687
+ - Disable reading command/query from stdin in shell mode
688
+ - Clarify the API platform selection in `/setup` meta command
689
+
690
+ ## 0.40 (2025-10-24)
691
+
692
+ ### Added
693
+
694
+ - Support `ESC` key to interrupt the agent loop
695
+
696
+ ### Fixed
697
+
698
+ - Fix SSL certificate verification error in some rare cases
699
+ - Fix possible decoding error in Bash tool
700
+
701
+ ## 0.39 (2025-10-24)
702
+
703
+ ### Fixed
704
+
705
+ - Fix context compaction threshold check
706
+ - Fix panic when SOCKS proxy is set in the shell session
707
+
708
+ ## 0.38 (2025-10-24)
709
+
710
+ - Minor UX improvements
711
+
712
+ ## 0.37 (2025-10-24)
713
+
714
+ ### Fixed
715
+
716
+ - Fix update checking
717
+
718
+ ## 0.36 (2025-10-24)
719
+
720
+ ### Added
721
+
722
+ - Add `/debug` meta command to debug the context
723
+ - Add auto context compaction
724
+ - Add approval request mechanism
725
+ - Add `--yolo` option to automatically approve all actions
726
+ - Render markdown content for better readability
727
+
728
+ ### Fixed
729
+
730
+ - Fix "unknown error" message when interrupting a meta command
731
+
732
+ ## 0.35 (2025-10-22)
733
+
734
+ ### Changed
735
+
736
+ - Minor UI improvements
737
+ - Auto download ripgrep if not found in the system
738
+ - Always approve tool calls in `--print` mode
739
+ - Add `/feedback` meta command
740
+
741
+ ## 0.34 (2025-10-21)
742
+
743
+ ### Added
744
+
745
+ - Add `/update` meta command to check for updates and auto-update in background
746
+ - Support running interactive shell commands in raw shell mode
747
+ - Add `/setup` meta command to setup LLM provider and model
748
+ - Add `/reload` meta command to reload configuration
749
+
750
+ ## 0.33 (2025-10-18)
751
+
752
+ ### Added
753
+
754
+ - Add `/version` meta command
755
+ - Add raw shell mode, which can be switched to by Ctrl-K
756
+ - Show shortcuts in bottom status line
757
+
758
+ ### Fixed
759
+
760
+ - Fix logging redirection
761
+ - Merge duplicated input histories
762
+
763
+ ## 0.32 (2025-10-16)
764
+
765
+ ### Added
766
+
767
+ - Add bottom status line
768
+ - Support file path auto-completion (`@filepath`)
769
+
770
+ ### Fixed
771
+
772
+ - Do not auto-complete meta command in the middle of user input
773
+
774
+ ## 0.31 (2025-10-14)
775
+
776
+ ### Fixed
777
+
778
+ - Fix step interrupting by Ctrl-C, for real
779
+
780
+ ## 0.30 (2025-10-14)
781
+
782
+ ### Added
783
+
784
+ - Add `/compact` meta command to allow manually compacting context
785
+
786
+ ### Fixed
787
+
788
+ - Fix `/clear` meta command when context is empty
789
+
790
+ ## 0.29 (2025-10-14)
791
+
792
+ ### Added
793
+
794
+ - Support Enter key to accept completion in shell mode
795
+ - Remember user input history across sessions in shell mode
796
+ - Add `/reset` meta command as an alias for `/clear`
797
+
798
+ ### Fixed
799
+
800
+ - Fix step interrupting by Ctrl-C
801
+
802
+ ### Changed
803
+
804
+ - Disable `SendDMail` tool in Kimi Koder agent
805
+
806
+ ## 0.28 (2025-10-13)
807
+
808
+ ### Added
809
+
810
+ - Add `/init` meta command to analyze the codebase and generate an `AGENTS.md` file
811
+ - Add `/clear` meta command to clear the context
812
+
813
+ ### Fixed
814
+
815
+ - Fix `ReadFile` output
816
+
817
+ ## 0.27 (2025-10-11)
818
+
819
+ ### Added
820
+
821
+ - Add `--mcp-config-file` and `--mcp-config` options to load MCP configs
822
+
823
+ ### Changed
824
+
825
+ - Rename `--agent` option to `--agent-file`
826
+
827
+ ## 0.26 (2025-10-11)
828
+
829
+ ### Fixed
830
+
831
+ - Fix possible encoding error in `--output-format stream-json` mode
832
+
833
+ ## 0.25 (2025-10-11)
834
+
835
+ ### Changed
836
+
837
+ - Rename package name `ensoul` to `kimi-cli`
838
+ - Rename `ENSOUL_*` builtin system prompt arguments to `KIMI_*`
839
+ - Further decouple `App` with `Soul`
840
+ - Split `Soul` protocol and `KimiSoul` implementation for better modularity
841
+
842
+ ## 0.24 (2025-10-10)
843
+
844
+ ### Fixed
845
+
846
+ - Fix ACP `cancel` method
847
+
848
+ ## 0.23 (2025-10-09)
849
+
850
+ ### Added
851
+
852
+ - Add `extend` field to agent file to support agent file extension
853
+ - Add `exclude_tools` field to agent file to support excluding tools
854
+ - Add `subagents` field to agent file to support defining subagents
855
+
856
+ ## 0.22 (2025-10-09)
857
+
858
+ ### Changed
859
+
860
+ - Improve `SearchWeb` and `FetchURL` tool call visualization
861
+ - Improve search result output format
862
+
863
+ ## 0.21 (2025-10-09)
864
+
865
+ ### Added
866
+
867
+ - Add `--print` option as a shortcut for `--ui print`, `--acp` option as a shortcut for `--ui acp`
868
+ - Support `--output-format stream-json` to print output in JSON format
869
+ - Add `SearchWeb` tool with `services.moonshot_search` configuration. You need to configure it with `"services": {"moonshot_search": {"api_key": "your-search-api-key"}}` in your config file.
870
+ - Add `FetchURL` tool
871
+ - Add `Think` tool
872
+ - Add `PatchFile` tool, not enabled in Kimi Koder agent
873
+ - Enable `SendDMail` and `Task` tool in Kimi Koder agent with better tool prompts
874
+ - Add `ENSOUL_NOW` builtin system prompt argument
875
+
876
+ ### Changed
877
+
878
+ - Better-looking `/release-notes`
879
+ - Improve tool descriptions
880
+ - Improve tool output truncation
881
+
882
+ ## 0.20 (2025-09-30)
883
+
884
+ ### Added
885
+
886
+ - Add `--ui acp` option to start Agent Client Protocol (ACP) server
887
+
888
+ ## 0.19 (2025-09-29)
889
+
890
+ ### Added
891
+
892
+ - Support piped stdin for print UI
893
+ - Support `--input-format=stream-json` for piped JSON input
894
+
895
+ ### Fixed
896
+
897
+ - Do not include `CHECKPOINT` messages in the context when `SendDMail` is not enabled
898
+
899
+ ## 0.18 (2025-09-29)
900
+
901
+ ### Added
902
+
903
+ - Support `max_context_size` in LLM model configurations to configure the maximum context size (in tokens)
904
+
905
+ ### Improved
906
+
907
+ - Improve `ReadFile` tool description
908
+
909
+ ## 0.17 (2025-09-29)
910
+
911
+ ### Fixed
912
+
913
+ - Fix step count in error message when exceeded max steps
914
+ - Fix history file assertion error in `kimi_run`
915
+ - Fix error handling in print mode and single command shell mode
916
+ - Add retry for LLM API connection errors and timeout errors
917
+
918
+ ### Changed
919
+
920
+ - Increase default max-steps-per-run to 100
921
+
922
+ ## 0.16.0 (2025-09-26)
923
+
924
+ ### Tools
925
+
926
+ - Add `SendDMail` tool (disabled in Kimi Koder, can be enabled in custom agent)
927
+
928
+ ### SDK
929
+
930
+ - Session history file can be specified via `_history_file` parameter when creating a new session
931
+
932
+ ## 0.15.0 (2025-09-26)
933
+
934
+ - Improve tool robustness
935
+
936
+ ## 0.14.0 (2025-09-25)
937
+
938
+ ### Added
939
+
940
+ - Add `StrReplaceFile` tool
941
+
942
+ ### Improved
943
+
944
+ - Emphasize the use of the same language as the user
945
+
946
+ ## 0.13.0 (2025-09-25)
947
+
948
+ ### Added
949
+
950
+ - Add `SetTodoList` tool
951
+ - Add `User-Agent` in LLM API calls
952
+
953
+ ### Improved
954
+
955
+ - Better system prompt and tool description
956
+ - Better error messages for LLM
957
+
958
+ ## 0.12.0 (2025-09-24)
959
+
960
+ ### Added
961
+
962
+ - Add `print` UI mode, which can be used via `--ui print` option
963
+ - Add logging and `--debug` option
964
+
965
+ ### Changed
966
+
967
+ - Catch EOF error for better experience
968
+
969
+ ## 0.11.1 (2025-09-22)
970
+
971
+ ### Changed
972
+
973
+ - Rename `max_retry_per_step` to `max_retries_per_step`
974
+
975
+ ## 0.11.0 (2025-09-22)
976
+
977
+ ### Added
978
+
979
+ - Add `/release-notes` command
980
+ - Add retry for LLM API errors
981
+ - Add loop control configuration, e.g. `{"loop_control": {"max_steps_per_run": 50, "max_retry_per_step": 3}}`
982
+
983
+ ### Changed
984
+
985
+ - Better extreme cases handling in `read_file` tool
986
+ - Prevent Ctrl-C from exiting the CLI, force the use of Ctrl-D or `exit` instead
987
+
988
+ ## 0.10.1 (2025-09-18)
989
+
990
+ - Make slash commands look slightly better
991
+ - Improve `glob` tool
992
+
993
+ ## 0.10.0 (2025-09-17)
994
+
995
+ ### Added
996
+
997
+ - Add `read_file` tool
998
+ - Add `write_file` tool
999
+ - Add `glob` tool
1000
+ - Add `task` tool
1001
+
1002
+ ### Changed
1003
+
1004
+ - Improve tool call visualization
1005
+ - Improve session management
1006
+ - Restore context usage when `--continue` a session
1007
+
1008
+ ## 0.9.0 (2025-09-15)
1009
+
1010
+ - Remove `--session` and `--continue` options
1011
+
1012
+ ## 0.8.1 (2025-09-14)
1013
+
1014
+ - Fix config model dumping
1015
+
1016
+ ## 0.8.0 (2025-09-14)
1017
+
1018
+ - Add `shell` tool and basic system prompt
1019
+ - Add tool call visualization
1020
+ - Add context usage count
1021
+ - Support interrupting the agent loop
1022
+ - Support project-level `AGENTS.md`
1023
+ - Support custom agent defined with YAML
1024
+ - Support oneshot task via `kimi -c`