Kimi Code CLI 快速入门
Kimi Code CLI 快速入门
kimi 命令行参考
5 分钟阅读
kimi 命令
kimi 是 Kimi Code CLI 的主入口命令,覆盖交互式会话、非交互执行、IDE集成、Web服务、配置管理等全场景功能,是所有操作的统一入口。不带任何参数运行时,它会在当前工作目录下开启一个新会话,自动加载项目内的.git、AGENTS.md、.kimi等配置信息;配合不同的 flag,可以续接历史会话、跳过审批、从 Plan 模式启动,或者指定自定义的 Skills 目录,满足不同使用场景的需求。
主命令选项
所有 flag 都是可选的,直接运行 kimi 即可进入交互式 TUI 会话,适合大多数日常使用场景:
| 选项 | 简写 | 说明 | 补充场景 |
|---|---|---|---|
--version | -V | 打印版本号并退出 | 提bug、排查兼容性问题时需要提供版本号,建议优先确认版本 |
--help | -h | 显示帮助信息并退出 | 输出当前版本的最新帮助信息,优先级高于文档,版本不一致时以该输出为准 |
--session [id] | -S | 恢复一个会话。带 ID 时直接打开指定会话;不带 ID 时进入交互式选择器 | 脚本化恢复指定会话、跨目录恢复历史会话时使用,会话ID可从~/.kimi-code/sessions/目录名或/sessions命令中获取 |
--continue | -C | 继续当前工作目录下最近一次的会话,无需手动指定 ID | 最常用的会话恢复方式,每天打开项目时直接运行kimi -C即可续上上次的工作,无需查找会话ID |
--model <model> | -m | 为本次启动指定模型别名。省略时新会话使用配置文件中的 default_model | 临时切换模型时使用,模型别名可从/provider命令的模型列表中获取,无需输入完整模型ID |
--prompt <prompt> | -p | 非交互执行单次 prompt,并把 Assistant 输出流式写到 stdout。该模式不会打开 TUI | 适合脚本化、CI/CD场景使用,如自动生成changelog、批量处理文件、自动代码评审等 |
--output-format <format> | 设置非交互输出格式,支持 text 与 stream-json。仅可与 --prompt 一起使用,默认 text | text格式适合人类阅读,stream-json为JSON Lines格式,适合程序解析处理 | |
--yolo | -y | 自动批准普通工具调用,跳过审批请求 | 适合在个人测试项目、完全信任AI操作的场景下使用,可节省大量审批时间 |
--auto | 以 auto 权限模式启动;工具审批自动处理,Agent 不会向用户提问 | 适合完全自动化场景,如无人值守的CI/CD任务、批量处理任务,AI会自主处理所有问题,不会发起任何用户交互 | |
--plan | 以 Plan 模式启动新会话,AI 会优先使用只读工具进行探索和规划 | 首次接触新项目、需求不明确时使用,确保AI不会直接修改业务文件,仅生成规划方案 | |
--skills-dir <dir> | 从指定目录加载 Skills,替换自动发现的用户和项目目录。可重复传入 | 团队共享Skills、临时加载自定义Skills集合时使用,可叠加多个目录 |
-r / --resume 是 --session 的隐藏别名;--yes 和 --auto-approve 是 --yolo 的隐藏别名,在帮助信息中不显示,用于兼容老版本用户的使用习惯。
flag 冲突规则
为避免逻辑歧义,以下组合会在启动时被拒绝并抛出明确错误提示:
--continue与--session互斥——两者都表示"恢复历史会话",同时指定时无法确定要恢复的会话--yolo和--auto互斥——两种权限模式逻辑冲突,无法同时生效--prompt不能与--yolo、--auto或--plan同时使用——非交互模式固定使用auto权限,无需额外指定;Plan模式需要人工审批退出,不适用于非交互场景--output-format只能与--prompt一起使用——交互式模式下无需指定输出格式
恢复会话时,可以通过 --auto、--yolo 或 --plan 覆盖原会话保存的权限或计划模式。例如,kimi --continue --auto 会恢复最近会话并切换到 auto 权限模式,无需进入会话后手动修改。
典型用法
以下为高频使用场景的命令示例,覆盖绝大多数日常使用需求:
基础会话操作
直接运行开启新会话,自动加载当前目录的项目信息:
预期结果:进入TUI交互界面,状态栏显示当前工作目录、模型、权限模式等信息,输入框可正常输入。
从上次中断的地方继续(自动找到当前目录最近的会话):
预期结果:直接进入最近一次的会话,完整保留历史对话和上下文,可从上次中断的位置继续工作。
从历史会话列表中挑选,或直接指定已知 ID:
预期结果:不带ID时弹出交互式会话选择器,按上下键选择后回车即可进入;带ID时直接打开指定会话。
权限与模式配置
跳过审批确认,适合已知安全的批处理任务:
预期结果:状态栏显示黄色
YOLO标识,AI调用普通工具时不会弹出审批框,直接执行。
让 Agent 自行处理一切,不再向用户提问:
预期结果:状态栏显示红色
AUTO标识,AI不会发起任何用户交互,所有审批自动处理。
先阅读代码、产出实现计划,而不是立刻动手修改文件:
预期结果:状态栏显示蓝色
PLAN标识,AI仅调用只读工具做调研,仅可写入计划文件,不会修改其他业务文件。
自定义 Skills 目录
有两种方式指定 Skills 目录,语义不同,按需选择:
-
--skills-dir <dir>(CLI flag):替换自动发现的用户和项目目录,仅对本次启动生效。可重复传入以叠加多个目录,适合临时使用团队共享Skills的场景: -
extra_skill_dirs(config.toml):叠加到自动发现的目录之上,长期生效,适合配置团队共享 Skills,无需每次启动都指定参数。详见 Agent Skills。
非交互执行
在脚本或 CI 中运行单次 prompt 时,使用 -p 参数,无需打开TUI即可获取AI输出:
输出规则:transcript 样式的输出中,thinking 内容和 Assistant 正文都以
•开头,换行后两个空格缩进。Assistant 正文输出到 stdout;thinking、工具进度和"恢复会话"提示输出到 stderr。脚本中只需捕获stdout即可获得纯净的AI输出,stderr可重定向到日志文件用于排查问题。-p模式不会请求人工审批,普通工具调用按auto权限策略处理,静态 deny 规则仍然生效,避免执行危险操作。
临时切换模型执行非交互任务:
最佳实践:若长期使用某一模型,可在
config.toml中配置default_model,无需每次都加-m参数。
需要结构化读取输出时,使用 stream-json 格式——stdout 每行都是一个独立的 JSON 对象,方便程序解析:
JSON格式说明:
stream-json模式下,普通回复输出type: "assistant_message"的JSON对象;模型调用工具时,先输出带tool_calls的 Assistant 消息,再输出对应的type: "tool_message"对象,最后继续输出后续 Assistant 消息。thinking 内容不会写入 JSONL;工具进度和恢复会话提示仍写到 stderr,不会影响结构化解析。
子命令
kimi 提供丰富的子命令,覆盖登录、IDE集成、Web服务、配置校验、数据迁移、版本升级等全生命周期管理需求:
login(非交互式登录)、acp(ACP IDE 模式)、server(运行并管理本地 REST/WebSocket/web 服务)、web(kimi server run --open 的别名)、doctor(校验配置文件)、export(导出会话)、migrate(迁移旧版数据)、upgrade(检查更新)、provider(管理供应商)。
kimi login
通过 RFC 8628 device-code 流程登录 Kimi Code OAuth,无需进入 TUI 即可完成登录,适合服务器部署、脚本化初始化场景使用。命令会发起一次 device authorization 请求,将验证地址和用户码打印到 stderr,然后轮询直到浏览器侧完成授权。生成的 token 写入与 TUI /login 相同的本地位置,下次启动 kimi 时会自动加载。
预期结果:终端打印验证地址(如
https://kimi.moonshot.cn/device)和6位用户码,打开地址输入用户码完成登录后,终端提示登录成功,token自动保存到本地。
该子命令没有任何 flag。在轮询期间随时按 Ctrl-C 可取消登录;取消或失败时退出码为 1,成功为 0,脚本中可通过退出码判断登录结果。
kimi acp
把 Kimi Code CLI 切换到 ACP(Agent Client Protocol)模式,在标准输入/输出上以 JSON-RPC 形式与 IDE 对话,让编辑器直接驱动 kimi 的会话和工具调用。通常不需要手动运行——IDE 会把它作为子进程入口启动。配置方式见在 IDE 中使用,技术细节见 kimi acp 参考。
kimi server
运行并管理本地 Kimi 服务 —— 同一个进程同时挂载 REST + WebSocket API 与 web UI,可实现Web端交互、第三方系统集成等能力。父命令拆成按需入口 (run) 与 OS 级生命周期管理 (install、uninstall、start、stop、restart、status)。kimi server run 会确保一个后台守护进程在运行、健康后返回;如需把服务挂在当前终端,请加 --foreground。
服务运行时,GET /openapi.json 会返回 REST OpenAPI 文档,GET /asyncapi.json 会返回本地 WebSocket 协议的 AsyncAPI 文档,可用于二次开发、集成到内部系统。
kimi server run
启动本地服务,支持以下选项:
| 选项 | 说明 | 补充说明 |
|---|---|---|
--port <port> | 绑定端口;默认 58627 | 端口被占用时可指定其他空闲端口 |
--log-level <level> | 按所选级别开启服务日志;默认不输出 | 调试时可设置为debug级别,查看详细请求日志 |
--debug-endpoints | 挂载 /api/v1/debug/* 调试路由(默认关闭) | 仅开发调试时开启,生产环境请勿开启,避免安全风险 |
--foreground | 前台运行,不 spawn 后台守护进程 | 调试服务时使用,可实时查看日志输出 |
--open | 服务健康后用默认浏览器打开 web UI | 启动后自动打开Web界面,无需手动输入地址 |
kimi server run 只绑定本机 loopback 地址(127.0.0.1),不会暴露到公网,安全可控。默认会 spawn 一个后台守护进程(多次运行会复用同一个),健康后即退出;守护进程在最后一个 web 客户端断开后10分钟自动关闭,无需手动停止,不会长期占用系统资源。加 --foreground 则在当前进程中运行——保持挂在终端,在 SIGINT / SIGTERM 时干净退出。
kimi server install
把服务注册成 OS 管理的进程,实现开机自启、崩溃后自动重启,适合经常使用Web UI的用户,无需每次手动启动服务。根据当前平台选择对应后端:
- macOS:写 LaunchAgent plist 到
~/Library/LaunchAgents/ai.moonshot.kimi-server.plist,并通过launchctl bootstrap gui/<uid>启动,仅当前用户登录时运行。 - Linux:写
--usersystemd unit 到~/.config/systemd/user/kimi-server.service,并执行systemctl --user enable --now,仅当前用户登录时运行。 - Windows:通过
schtasks /Create /XML注册名为KimiServer的计划任务,用户登录后自动运行。
| 选项 | 说明 | 补充说明 |
|---|---|---|
--port <port> | 被托管的服务绑定端口;默认 58627 | 自定义服务端口 |
--log-level <level> | 写入生成 unit 的日志级别 | 配置服务的日志输出级别 |
--force | 已安装时强制覆盖 | 更新服务配置时使用,覆盖已有的服务定义 |
--json | 用 JSON 替代人类可读输出 | 适合脚本化部署时解析结果 |
本机地址、选定的端口和日志级别会写入 ~/.kimi-code/server/install.json,即便服务停掉 kimi server status 也能读到配置信息。
生命周期子命令
用于管理已注册的系统服务:
| 命令 | 说明 | 补充说明 |
|---|---|---|
kimi server uninstall | 停止并移除 OS 服务定义。幂等 | 不会删除本地会话和配置,仅移除系统服务注册 |
kimi server start | 启动 OS 管理的服务。未安装时会报错 | 启动已注册的服务 |
kimi server stop | 停止 OS 管理的服务 | 停止运行中的服务,下次开机仍会自动启动 |
kimi server restart | 重启 OS 管理的服务 | 配置更新后重启生效 |
kimi server status | 打印 installed / running / pid / port / log-path;--json 用于脚本 | 查看服务运行状态、端口、日志路径等信息,排查服务问题时优先使用 |
kimi web
在浏览器中打开 Kimi 的图形会话界面,作为终端 TUI 的替代入口,适合不习惯终端操作的用户使用。
等价于 kimi server run --open:在后台启动本地 Kimi 服务(若已运行则复用),用默认浏览器打开 web UI,随后命令返回,服务驻留后台。与 kimi server run 的唯一区别是默认启用 --open(自动打开浏览器),其余行为完全一致。
停止服务使用 kimi server kill,查看活动连接使用 kimi server ps;--port、--log-level 等选项与 kimi server run 完全一致。
kimi doctor
校验 config.toml 和 tui.toml 配置文件的语法和合法性,不会启动 TUI,也不会修改任一文件,适合修改配置文件后、启动CLI前执行,提前发现配置错误,避免启动失败。默认检查 KIMI_CODE_HOME 下的文件;未设置该环境变量时检查 ~/.kimi-code。默认路径缺失时会显示为跳过,因为内置默认值仍可生效。
| 命令 | 说明 | 补充说明 |
|---|---|---|
kimi doctor | 校验默认 config.toml 和 tui.toml | 日常配置校验首选 |
kimi doctor config [path] | 只校验 config.toml;传入 path 时使用该文件而不是默认文件 | 单独校验运行时配置 |
kimi doctor tui [path] | 只校验 tui.toml;传入 path 时使用该文件而不是默认文件 | 替换TUI配置前校验候选文件的合法性 |
显式传入路径时,文件必须存在。所有被检查的文件都有效或被跳过时,退出码为 0;任何指定文件缺失或配置无效时,退出码为 1,脚本中可通过退出码判断配置是否合法。
kimi export
把一个会话打包成 ZIP 文件,便于分享、归档或提交问题反馈,导出内容包含会话的完整历史、工具调用记录、日志等信息。
| 参数 / 选项 | 简写 | 说明 | 补充说明 |
|---|---|---|---|
sessionId | 要导出的会话 ID。省略时自动选择当前工作目录下最近一次的会话,并要求确认 | 导出指定会话时使用 | |
--output <path> | -o | 输出 ZIP 文件路径。省略时写入当前目录下的默认文件名(格式为kimi-session-<id>-<timestamp>.zip) | 自定义导出路径和文件名 |
--yes | -y | 跳过默认会话的确认提示,直接导出 | 脚本化导出时使用,无需人工交互 |
--no-include-global-log | 不打包全局诊断日志。默认包含 | 分享会话时使用,避免全局日志中包含其他项目的敏感信息 |
导出包含目标会话目录内的所有文件。全局诊断日志(~/.kimi-code/logs/kimi-code.log)默认包含,因为它可能含有其他会话或项目的事件;不想分享时加 --no-include-global-log,仅导出当前会话的相关数据。
kimi migrate
将旧版 kimi-cli 的本地数据迁移到 kimi-code,包括历史会话和配置文件。纯交互式运行,会引导你完成全流程,无需手动拷贝文件,迁移过程不会修改或删除旧版数据,可放心执行。
完整迁移说明见从 kimi-cli 迁移。
kimi upgrade
立即检查最新版本并展示更新提示,选择操作后退出,支持多种安装方式的自动升级,无需手动下载安装包。
对全局 npm、pnpm、yarn、bun 以及 macOS / Linux native 安装,kimi upgrade 会展示更新选项;选择 Install update now 后运行对应的前台安装命令,全程自动完成。当前安装方式无法自动升级时(如 Windows native 安装),改为打印手动更新命令和下载地址。升级过程不会删除本地会话和配置,可放心执行。
kimi vis
在浏览器中启动会话可视化工具,直观查看一次会话的全过程,包括AI的思考流程、工具调用顺序、参数、返回结果等信息,适合调试复杂任务、排查AI执行问题时使用。命令会启动一个指向本地会话的进程内服务器,打印访问地址并打开浏览器,持续运行直到你按下 Ctrl-C。
| 参数 / 选项 | 说明 | 补充说明 |
|---|---|---|
sessionId | 直接打开指定会话的可视化页面。省略时打开列出所有会话的首页 | 直接查看指定会话的可视化流程 |
--port <number> | 绑定的端口。默认自动挑选一个空闲端口 | 自定义端口,适合远程服务器部署时使用 |
--host <host> | 绑定的主机。默认 127.0.0.1 | 远程服务器上使用时可绑定0.0.0.0,允许外部访问 |
--no-open | 不自动打开浏览器,仅打印访问地址 | 远程服务器上使用时使用,本地无需打开浏览器 |
安全提示:绑定
0.0.0.0时请确保网络环境安全,避免未授权访问。
kimi provider
在 shell 中管理模型供应商,相当于 TUI 中 /provider 的非交互版本。适合脚本化部署、CI 初始化,以及在新机器上一行完成配置,无需手动编辑配置文件。
包含五个动作,覆盖供应商的全生命周期管理:
kimi provider add <url>
从自定义 registry(api.json)批量导入所有供应商。命令会拉取 registry,为每个条目创建 [providers.<id>] 和 [models.<alias>],并写入 source 元数据,使 TUI 下次启动时自动刷新同一 registry 地址下的供应商和模型,适合企业内部模型服务的批量配置。
| 参数 / 选项 | 说明 | 补充说明 |
|---|---|---|
<url> | Registry 地址 | 企业内部模型registry的公开地址 |
--api-key <key> | 访问 registry 时携带的 Bearer token。未传时回退到环境变量 KIMI_REGISTRY_API_KEY,必填 | 建议通过环境变量传入,避免在命令历史中泄露密钥 |
如果某个 provider id 已存在,会先删除再重新写入,确保配置为最新版本。不会自动设置默认模型,后续可用 -m 或 TUI 内的 /model 选择。
kimi provider remove <providerId>
删除指定供应商及其所有模型 alias。如果被删除的供应商正好是 default_model 所属,则同时清空 default_model,下次启动时会提示选择新的默认模型。
kimi provider list
按行打印每个已配置的供应商,含类型、模型数量、来源。加 --json 可输出原始的 providers 和 models 表,便于程序化处理。
kimi provider catalog list [providerId]
在不修改任何配置的情况下浏览公开的 models.dev 模型目录。不传参数时列出所有供应商及协议类型和模型数量;传 providerId 时列出该供应商下所有模型的上下文窗口和能力,方便选型。
| 参数 / 选项 | 说明 | 补充说明 |
|---|---|---|
[providerId] | 可选,要查看的供应商 id | 查看指定供应商的所有模型 |
--filter <substring> | 按 id 或 name 大小写不敏感子串过滤 | 快速查找目标供应商或模型 |
--url <url> | 覆盖 catalog 地址,默认 https://models.dev/api.json | 访问私有catalog时使用 |
--json | 以 JSON 形式输出匹配片段 | 程序解析时使用 |
kimi provider catalog add <providerId>
按 id 从 catalog 直接导入一个已知供应商,协议类型、base URL、模型信息均由 catalog 提供,只需提供 API key,无需手动编写配置,适合快速接入主流模型供应商。
| 参数 / 选项 | 说明 | 补充说明 |
|---|---|---|
<providerId> | catalog 中的供应商 id,如 anthropic、openai | 要导入的供应商ID |
--api-key <key> | 供应商 API key。未传时回退到 KIMI_REGISTRY_API_KEY,必填 | 建议通过环境变量传入,避免泄露 |
--default-model <modelId> | 可选,导入后把 default_model 设为 <providerId>/<modelId> | 导入后直接设置为默认模型,无需后续手动配置 |
--url <url> | 覆盖 catalog 地址,默认 https://models.dev/api.json | 从私有catalog导入时使用 |