Find a file
qer 2f12469301
fix(transcript): fold mid-turn task notifications into the current turn on cold rebuild (#3102)
* fix(transcript): fold mid-turn task notifications into the current turn on cold rebuild

* chore: changeset for the notification fold fix

* fix(transcript): key the notification fold on persisted task-turn boundaries, not the previous message role

* fix(transcript): collect background_task turn origins too, and fall back when the wire has no turn.started records

* fix(transcript): fold consecutive task notifications into the same turn

* fix(transcript): normalize folded notification text to the live title/body form

* fix(transcript): stop folded notification text before child blocks, preserve legacy background_task turns absent from the boundary set

* fix(transcript): truncate folded notification text at the first child-block tag, not just the tag lines

* fix(transcript): drop folded notifications without a persisted step, truncate only at output blocks

* fix(transcript): attach mid-turn task notifications to the following step, cold and live

* fix(transcript): keep other tasks' notifications in task-origin turns

* fix(transcript): derive task-turn boundaries from durable turn.prompt records

* feat(transcript): carry subagent model and thinking effort on task entities

* fix(transcript): mirror turn liveness into meta.activity, live and cold

* fix(transcript): populate the prompts entity from prompt.accepted/queued engine events

* fix(transcript): reconcile liveness and the prompt queue at backfill from the live loop state

* fix(transcript): include the prompts entity in the REST transcript response

* fix(agent-core-v2): publish prompt.accepted on the event bus

* test(transcript): add the contract-level e2e covering every entity the client renders from

* fix(transcript): guard the prompt backfill against missing services; align stream expectations with prompt.accepted on the bus

* test(agent-core-v2): re-record event stream snapshots with prompt.accepted published

* fix(transcript): settle the spawned agent row when its lifecycle redirects to the task row

* test(transcript): move the contract e2e timeout to the describe arg (jest lint)

* fix(transcript): declare task model fields in the wire schema, carry prompt content on accepted, normalize queued content

- transcriptTaskSchema declares model/thinkingEffort: Zod strips
  undeclared keys, so schema-driven REST/WS consumers lost both fields
  the projector now populates.
- PromptAccepted carries the admitted content (it is the only event a
  first-turn prompt ever emits, and the bare id left the prompts entity
  permanently partial) — projected with userMessageId and the public
  content shape via projectPromptContentParts, same as queued and the
  live backfill.
- Regenerate the wire manifest and re-record the affected event-stream
  snapshots.

* fix(transcript): preserve task model fields across termination and accepted prompt details across queueing

- onTaskLifecycle carried resultSummary/usage/error/stateReason but
  dropped model/thinkingEffort: a completed detached-Agent row lost the
  metadata spawned set while running.
- prompt.queued rebuilt the entity from scratch, discarding the
  userMessageId and createdAt that prompt.accepted had just stamped —
  build the queued update from prev.

* fix(transcript): keep prompt.accepted out of the public v1 event stream

The observable marker made the broadcaster forward every accepted
prompt to v1 WS clients, but events-zod has no accepted variant (v1
surfaces submission through the service-synthesized prompt.submitted)
and the SDK mapper didn't drop it — schema-driven clients could reject
the frame. Drop it at the WS edge and in the SDK's dropped set; the
transcript projection keeps consuming it internally.

* fix(transcript): derive cold task-turn boundaries through undo anchor replays

* fix(transcript): flush trailing folded notifications into the open turn

* fix(transcript): drop trailing buffered notifications to match the live projector

* chore: split transcript changesets per logical change

* fix(transcript): parse only the generated Title/Severity header lines in folded notifications
2026-08-24 14:33:36 +08:00
.agents/skills chore: simplify the gen-changesets skill (#3024) 2026-08-18 13:05:50 +08:00
.changeset fix(transcript): fold mid-turn task notifications into the current turn on cold rebuild (#3102) 2026-08-24 14:33:36 +08:00
.github docs: align contributor entry docs with approved-bug-fix-only policy (#3089) 2026-08-19 20:31:56 +08:00
apps refactor(agent-core-v2): featurize todo/cron/interaction and migrate goal to agent runtime (#3184) 2026-08-23 23:03:51 +08:00
build chore: drop #/ import array fallbacks and custom resolution plugins (#1594) 2026-07-13 16:37:35 +08:00
docs fix(agent-core-v2): honor default thinking effort for secondary-bound subagents (#3191) 2026-08-24 14:14:47 +08:00
packages fix(transcript): fold mid-turn task notifications into the current turn on cold rebuild (#3102) 2026-08-24 14:33:36 +08:00
plugins feat: add Tencent CloudBase plugin to the curated marketplace (#3136) 2026-08-20 22:15:09 +08:00
scripts refactor(agent-core-v2): strip comments from agent-core-v2, kap-server, and transcript (#3010) 2026-08-18 00:30:49 +08:00
.editorconfig Kimi For Coding 2026-05-22 15:54:50 +08:00
.gitattributes ci: run unit tests on windows (#1037) 2026-06-26 11:56:41 +08:00
.gitignore chore(web): replace apps/kimi-web with the code-app web bundle (#2599) 2026-08-05 13:38:30 +08:00
.npmrc Kimi For Coding 2026-05-22 15:54:50 +08:00
.nvmrc Kimi For Coding 2026-05-22 15:54:50 +08:00
.oxfmtrc.json Kimi For Coding 2026-05-22 15:54:50 +08:00
.oxlintrc.json feat: isolate the full-text search index from the session index and the main thread (#2701) 2026-08-07 07:38:16 +08:00
AGENTS.md chore: simplify the gen-changesets skill (#3024) 2026-08-18 13:05:50 +08:00
CLAUDE.md chore: symlink CLAUDE.md to AGENTS.md for compatibility (#1420) 2026-07-06 16:21:52 +08:00
CONTRIBUTING.md docs: align contributor entry docs with approved-bug-fix-only policy (#3089) 2026-08-19 20:31:56 +08:00
CONTRIBUTING.zh-CN.md docs: align contributor entry docs with approved-bug-fix-only policy (#3089) 2026-08-19 20:31:56 +08:00
flake.lock Kimi For Coding 2026-05-22 15:54:50 +08:00
flake.nix refactor(agent-core-v2): migrate agent domains to agent runtime architecture (#3175) 2026-08-23 17:36:59 +08:00
GOAL.md feat(agent-core): add tower command to orchestrate multi-agents (#2633) 2026-08-16 15:13:42 +08:00
LICENSE Kimi For Coding 2026-05-22 15:54:50 +08:00
Makefile Kimi For Coding 2026-05-22 15:54:50 +08:00
package.json refactor(agent-core-v2): strip comments from agent-core-v2, kap-server, and transcript (#3010) 2026-08-18 00:30:49 +08:00
pnpm-lock.yaml refactor(agent-core-v2): migrate agent domains to agent runtime architecture (#3175) 2026-08-23 17:36:59 +08:00
pnpm-workspace.yaml chore: remove kimi-desktop app and desktop release pipeline (#1849) 2026-07-17 20:32:47 +08:00
README.md feat(cli): add third-party source note to update prompt (#2014) 2026-07-21 20:42:23 +08:00
README.zh-CN.md feat(cli): add third-party source note to update prompt (#2014) 2026-07-21 20:42:23 +08:00
SECURITY.md Kimi For Coding 2026-05-22 15:54:50 +08:00
tsconfig.json feat(kimi-code): vendor @moonshot-ai/pi-tui (#1254) 2026-07-01 20:23:35 +08:00
vitest.config.ts feat(vscode): migrate extension to Node SDK (#1769) 2026-07-16 17:27:21 +08:00

Kimi Code CLI

License Docs
Documentation · Issues · 中文

Demo of using Kimi Code

What is Kimi Code CLI

Kimi Code CLI is an AI coding agent that runs in your terminal — it can read and edit code, run shell commands, search files, fetch web pages, and choose the next step based on the feedback it receives. It works out of the box with Moonshot AIs Kimi models and can also be configured to use other compatible providers.

Install

Install with the official script. No Node.js required.

  • macOS or Linux:
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
  • Windows (PowerShell):
irm https://code.kimi.com/kimi-code/install.ps1 | iex

On Windows, install Git for Windows before first launch because Kimi Code CLI uses the bundled Git Bash as its shell environment. If Git Bash is installed in a custom location, set KIMI_SHELL_PATH to the absolute path of bash.exe.

Then, run it with a new shell session:

kimi --version

For npm install, upgrade, uninstall, see Getting Started.

Quick Start

Open a project and start the interactive UI:

cd your-project
kimi

On first launch, run /login inside Kimi Code CLI and choose either Kimi Code OAuth or a Moonshot AI Open Platform API key. After login, try your first task:

Take a look at this project and explain its main directories.

Key Features

  • Single-binary distribution. Install with one command: no Node.js setup, PATH gymnastics, or global module conflicts.
  • Blazing-fast startup. The TUI is ready in milliseconds, so starting a session never feels heavy.
  • Purpose-built TUI. A carefully tuned interface, optimized end to end for long, focused agent sessions.
  • Video input. Drop a screen recording or demo clip into the chat and let the agent watch what is hard to describe in words — turn a reference clip into a LUT, a long video into a short, a screen recording into working code, and more.
  • AI-native MCP configuration. Add, edit, and authenticate Model Context Protocol servers conversationally with /mcp-config, without hand-editing JSON.
  • Rich plugin ecosystem. Install skills, MCP servers, and data sources from the marketplace or any GitHub repo, with each install's trust level surfaced up front.
  • Subagents for focused, parallel work. Dispatch built-in coder, explore, and plan subagents in isolated contexts while keeping the main conversation clean.
  • Lifecycle hooks. Run local commands at key points to gate risky tool calls, audit decisions, trigger desktop notifications, or connect to your own automation.
  • Editor & IDE integration (ACP). Drive a Kimi Code CLI session straight from Zed, JetBrains, or any Agent Client Protocol client with kimi acp.

Use it in your editor (ACP)

Kimi Code CLI speaks the Agent Client Protocol, so ACP-compatible editors and IDEs (Zed, JetBrains, …) can drive a session over stdio. Log in once, then point your editor at the kimi acp subcommand — no extra login needed.

For Zed, add this to ~/.config/zed/settings.json:

{
  "agent_servers": {
    "Kimi Code CLI": {
      "type": "custom",
      "command": "kimi",
      "args": ["acp"],
      "env": {}
    }
  }
}

Then open a new conversation in Zed's Agent panel. See Using in IDEs for JetBrains setup and troubleshooting, and the kimi acp reference for the full capability matrix.

Docs

Develop

Requirements: Node.js ≥ 24.15.0, pnpm 10.33.0.

git clone https://github.com/MoonshotAI/kimi-code.git
cd kimi-code
pnpm install
pnpm dev:cli    # run the CLI in dev mode
pnpm test       # run tests
pnpm typecheck  # TypeScript check
pnpm lint       # oxlint
pnpm build      # build all packages

See CONTRIBUTING.md for the full contribution guide.

Community

Acknowledgements

Our TUI is built on top of pi-tui. We thank the authors of pi-tui for their valuable work.

License

Released under the MIT License.