Kimi Code 是什么

装上就跑、命令面、七种运行形态,以及它与「一个 CLI 工具」的区别。

作者 David更新于 第 1 篇(共 33 篇)

装上就跑

官方脚本安装,不需要 Node.js(发布为单文件二进制):

curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash

Windows PowerShell:

irm https://code.kimi.com/kimi-code/install.ps1 | iex

Windows 上需先装 Git for Windows——Kimi Code 用其自带的 Git Bash 作为 shell 环境。装在非默认位置时,用环境变量 KIMI_SHELL_PATH 指向 bash.exe 的绝对路径。

进项目、起交互式 UI:

cd your-project
kimi

首次运行在 TUI 里执行 /login,可选 Kimi Code OAuth 或 Moonshot 开放平台 API Key。

从源码跑

读源码时通常要自己构建。仓库是 pnpm monorepo:

git clone https://github.com/MoonshotAI/kimi-code.git
cd kimi-code
pnpm install
pnpm dev:cli

最后一行以开发模式跑 CLI。硬性环境要求(.npmrc 里 engine-strict=true,不满足直接装不上):

项版本
Node.js>=24.15.0(.nvmrc 为 24.15.0)
pnpm10.33.0

命令面

主命令 kimi 直接进 TUI。子命令在 apps/kimi-code/src/cli/commands.ts 注册,实现多在 cli/sub/:

子命令源文件作用
kimi acpsub/acp.ts以 Agent Client Protocol 走 stdio,供 Zed / JetBrains 等编辑器驱动
kimi loginsub/login.ts、sub/login-flow.ts设备码流程登录
kimi providersub/provider.ts非交互管理模型供应商(add / remove / list / catalog)
kimi sessionsub/session.ts非交互管理会话(目前只有 list)
kimi forksub/fork.ts把会话分叉成新会话
kimi exportsub/export.ts把会话导出为 ZIP
kimi doctorsub/doctor.ts校验 config.toml 与 tui.toml
kimi web / kimi rcsub/web/起本地 Kimi 服务并打开 Web UI;rc(别名 remote)经 Remote Control 访问
kimi vissub/vis.ts在浏览器里起会话可视化调试器(apps/vis)
kimi migratemigration/command.ts从旧版 kimi-cli 迁移数据
kimi upgradecli/commands.ts自升级(别名 update,-y 跳过确认)

常用选项(定义在 cli/commands.ts,校验在 cli/options.ts):

选项作用
-S, --session [id] / -c, --continue恢复指定会话 / 接着当前目录的上一次会话
-p, --prompt非交互跑一条 prompt;--output-format 可选 text 或 stream-json
-y, --yolo「Ask When Needed」模式:常规编辑与命令自动执行,高风险操作仍会询问
--auto「Never Ask」模式:全程不打断
--plan以计划模式启动
-m, --model本次使用的模型别名
--agent / --agent-file指定 agent profile
--add-dir / --skills-dir额外工作目录 / 指定 skills 目录

隐藏的 --yes、--auto-approve 等同于 --yolo。

七种运行形态

这是理解这份源码的第一个关键点:Kimi Code 不是「一个 CLI」,而是一个引擎 + 一圈前端。

形态入口怎么接到引擎
TUIkiminode-sdk 的 createKimiHarness → klient 内存传输 → 进程内的 agent-core-v2
headlesskimi -p "..."cli/v2/run-v2-print.ts 自己 bootstrap() 引擎,直接 loop.submit
ACPkimi acp懒加载 packages/acp-server:bootstrap() + klient 内存传输,走 stdio
Webkimi webpackages/kap-server 提供 REST + WebSocket,页面是随 CLI 发布的预构建产物
Remote Controlkimi rcpackages/remote-control 把本机登记到中继,再把流量转发给本地服务
VS Codeapps/vscode插件进程里直接调 node-sdk 的 createKimiHarness
SDKpackages/node-sdk@moonshot-ai/kimi-code-sdk,TUI 与 VS Code 共用的宿主层(package.json 标 private,不单独发布)

Web UI 的源码已不在这个仓库:它在另一个仓库开发,构建产物以 apps/kimi-code/dist-web 的形式提交进来。

七种形态共用同一个引擎。这个复用需求塑造了整份代码的架构——后面那些看似过度设计的层(SDK 宿主层、klient 契约、DI 容器、transcript 独立包),基本都是为了让这些前端能共享同一套核心而不互相绑死。

核心能力

对照《从 LLM 到 Coding Agent》列的「一个 Coding Agent 该做的事」,Kimi Code 的覆盖情况(路径除注明外都在 packages/agent-core-v2/src/ 下):

能力实现位置本专栏章节
Agent 主循环agent/loop/、human/agent/Agent 循环:三台状态机
LLM 请求human/llm/、llm-adapter/kosong
工具系统agent/tools/、agent/toolExecutor/、tool/工具契约
上下文与压缩agent/contextProjector/、agent/fullCompaction/上下文、压缩
会话持久化session/、wire/、persistence/、packages/minidb会话、minidb
权限与审批agent/permissionPolicy/、agent/toolApproval/ 等权限
子代理session/subagent/、features/swarm/子代理
MCPmcpCore/、agent/mcp/、workspace/workspaceMcp/MCP
Skillsfeatures/skill/Skills
Hooksfeatures/externalHooks/Hooks
后台任务agent/task/、app/task/后台任务
Web 抓取与检索agent/tools/fetch-url/、agent/tools/web-search/Web 工具与服务注入
终端 UIpackages/pi-tui、apps/kimi-code/src/tui/pi-tui

packages/kosong 仍在仓库里,但引擎已不再依赖它,模型请求改由 human/llm/ 完成。

独有的几样东西

相比同类项目,Kimi Code 有几处不常见的选择:

  • 视频输入。ReadMediaFile 工具(agent/tools/read-media-file/)能读视频,可以把录屏丢进对话,让模型「看」难以用文字描述的东西。
  • AI 原生的 MCP 配置。/mcp-config 是一个内置 skill(features/skill/catalog/builtin/),用对话方式增删改 MCP 服务器,不用手写 JSON。
  • Goal 系统。比「任务列表」更进一步的长程目标追踪(features/goal/),带预算限制;v0.43.0 去掉了 24 小时的时间预算上限,会话关闭期间也不再计时。
  • 远程与多 agent。kimi rc 或 /remote-control 把本地会话经中继开放给远程访问(v0.42 起默认开启);/swarm 跑 agent 群,/btw 开旁路对话、不干扰主回合;实验中的 tower 模式(KIMI_CODE_EXPERIMENTAL_TOWER=1)让多个 agent 围绕同一目标协作。
  • 一次走完的引擎换代。v1 已删除,现役只有 agent-core-v2,演进过程见第 7 部分。

下一篇:monorepo 全景——19 个代码单元各自负责什么、依赖关系如何。

本页目录