跳转到内容

核心操作

输入与控制

多行输入

有时你需要输入多行内容,比如贴入一段代码或错误日志。按 Ctrl-JAlt-Enter 可以插入换行,而不是直接发送消息。

输入完成后,按 Enter 发送整条消息。

剪贴板与媒体粘贴

Ctrl-V 可以粘贴剪贴板中的文本、图片或视频文件。

在 Agent 模式下,较长的粘贴文本(超过 1000 字符或 15 行)会自动折叠为 [Pasted text #n] 占位符显示在输入框中,保持界面整洁。完整内容仍会在发送时展开并传递给模型。使用外部编辑器(Ctrl-O)时,占位符会自动展开为原始文本,保存后未修改的部分重新折叠。

如果剪贴板中是图片,Kimi Code CLI 会将图片缓存到磁盘并在输入框中显示为 [image:…] 占位符。发送消息后,AI 可以看到并分析这张图片。如果剪贴板中是视频文件,其文件路径会以文本形式插入输入框。

提示:图片输入需要当前模型支持 image_in 能力,视频输入需要支持 video_in 能力。

@ 路径补全

在消息中输入 @ 后,Kimi Code CLI 会自动补全工作目录中的文件和目录路径。这让你可以方便地引用项目中的文件:

帮我看一下 @src/components/Button.tsx 这个文件有没有问题

输入 @ 后开始输入文件名,会显示匹配的补全项。按 TabEnter 选择补全项。在 Git 仓库中,文件发现优先使用 git ls-files 查询,可以在包含数万文件的大型仓库中快速定位文件;非 Git 项目则回退到目录扫描。

斜杠命令

斜杠命令是以 / 开头的特殊指令,用于执行 Kimi Code CLI 的内置功能,如 /help/login/sessions 等。输入 / 后会自动显示可用命令列表。完整的斜杠命令列表请参考「参考手册」中的斜杠命令章节。

运行中发送消息(steer)

当 AI 正在执行任务时,你可以直接在输入框中输入并发送后续消息,无需等待当前轮次结束。这个功能称为"引导"(steer),可以在 AI 运行过程中调整其方向。发送时有两种方式:

  • 排队(Enter):放入队列,当前轮次完成后自动发送
  • 立即注入(Ctrl+S):立即注入当前轮次上下文

无论哪种方式,发送的引导消息都会追加到上下文中,AI 会看到并响应你的消息。在 AI 运行期间,审批请求和问答面板也支持内联键盘交互。

提示:引导消息不会中断 AI 当前正在执行的步骤,而是在步骤间被处理。如果需要立即中断,请使用 Ctrl-C

侧问

在 AI 工作期间,你可以使用 /btw 命令提出快速侧问,不会打断主对话流程。

/btw 这个函数的返回类型是什么?

侧问在隔离的上下文中运行:能看到对话历史但不会修改它,也不会调用工具。响应会显示在一个可滚动的模态面板中,使用 ↑/↓ 滚动,Escape 关闭。

Wire/ACP 集成:Wire 和 ACP 客户端可使用 BtwBegin/BtwEnd Wire 事件配合 run_side_question() API。

审批与确认

当 AI 需要执行可能有影响的操作(如修改文件、运行命令)时,Kimi Code CLI 会请求你的确认。

确认提示会显示操作的详情,包括 Shell 命令和文件 Diff 预览。如果内容较长被截断,可以按 Ctrl-E 展开查看完整内容。你可以选择:

  • 允许:执行这次操作
  • 本会话允许:在当前会话中自动批准同类操作(此决策会随会话持久化,恢复会话时自动还原)
  • 拒绝:不执行此操作
  • 附带反馈拒绝:拒绝操作并输入文字反馈,告诉 Agent 应该如何调整

如果你信任 AI 的操作,或者你正在安全的隔离环境中运行 Kimi Code CLI,可以启用「YOLO 模式」来自动批准所有请求:

sh
# 启动时启用
kimi --yolo

# 或在运行中切换
/yolo

你也可以在配置文件中设置 default_yolo = true,每次启动时默认开启 YOLO 模式。

开启 YOLO 模式后,底部状态栏会显示黄色的 YOLO 标识。再次输入 /yolo 可关闭。

注意:YOLO 模式会跳过所有确认,请确保你了解可能的风险。建议仅在可控环境中使用。

切换模型

你可以通过 /model 命令切换模型和 Thinking 模式。

此命令会先从 API 平台刷新可用模型列表。不带参数调用时,显示交互式选择界面,首先选择模型,然后选择是否开启 Thinking 模式(如果模型支持)。

选择完成后,Kimi Code CLI 会自动更新配置文件并重新加载。

提示:此命令仅在使用默认配置文件时可用。如果通过 --config--config-file 指定了配置,则无法使用此命令。

结构化问答

在执行过程中,AI 可能需要你做出选择来决定下一步方向。此时 AI 会使用 AskUserQuestion 工具向你展示结构化的问题和选项。

问题面板会显示问题描述和可选项,你可以通过键盘选择:

  • 使用方向键(上 / 下)浏览选项
  • Enter 确认选择
  • Space 切换多选模式下的选中状态
  • 选择 "Other" 选项可以输入自定义文本
  • Esc 跳过问题

每个问题支持 2–4 个预定义选项,AI 会根据当前任务上下文设置合适的选项和说明。如果有多个问题需要回答,面板会以标签页形式展示,使用左右方向键或 Tab 键在问题间切换,已回答的问题会标记为已完成状态,切换回已回答的问题时会恢复之前的选择。

提示:AI 只会在你的选择真正影响后续操作时才使用此工具。对于能从上下文推断的决策,AI 会自行判断并继续执行。

后台任务

当 AI 需要执行耗时较长的命令(如构建项目、运行测试套件、启动开发服务器)时,可以将命令作为后台任务启动。后台任务在独立进程中运行,AI 可以继续处理其他请求,无需等待命令完成。

后台任务的工作流程:

  1. AI 使用 Shell 工具的 run_in_background=true 参数启动命令
  2. 工具立即返回任务 ID,AI 继续处理其他工作
  3. 任务完成后,如果 AI 处于空闲状态(等待用户输入),系统会自动触发新的 Agent 轮次来处理结果,无需你手动输入

你可以使用 /task 斜杠命令打开交互式任务浏览器,实时查看所有后台任务的状态和输出(包括正在运行中的任务)。

提示:默认最多同时运行 4 个后台任务,可在配置文件的 [background] 节中调整。CLI 退出时默认会终止所有后台任务。

上下文管理

会话续接

Kimi Code CLI 会自动保存你的对话历史,方便你随时继续之前的工作。

每次启动 Kimi Code CLI 时,都会创建一个新的会话。在运行过程中,你也可以输入 /new 命令随时创建并切换到一个新会话,无需退出程序。

如果你想继续之前的对话,有几种方式:

继续最近的会话

使用 --continue 参数可以继续当前工作目录下最近的会话:

sh
kimi --continue

交互式选择会话

使用 --session(或 --resume-S-r)不带参数可以打开交互式会话选择器,用方向键选择要恢复的会话:

sh
kimi --session

提示:交互式选择器仅在 Shell 模式下可用。

恢复指定会话

使用 --session(或 --resume)加上会话 ID 可以恢复指定的会话:

sh
kimi -r abc123

如果指定的会话 ID 不存在,会自动创建一个新会话。

在运行中切换会话

输入 /sessions(或 /resume)可以查看当前工作目录的所有会话列表,使用方向键选择要切换的会话:

/sessions

列表会显示每个会话的标题和最后更新时间,帮助你找到想要继续的对话。按 Ctrl-A 可在「仅当前目录」和「所有目录」之间切换范围,方便跨项目查找会话。使用 /title <text> 可以为会话设置一个自定义标题,方便后续查找。

退出时的续接提示

当会话退出时(包括正常退出、Ctrl-C 中断、/undo、/fork、/sessions 切换等场景),Kimi Code CLI 会自动打印一条续接命令提示:

To resume this session: kimi -r <session-id>

你可以直接复制这条命令,下次在终端中运行即可快速恢复该会话。空会话不会显示此提示。

启动回放

当你继续一个已有会话时,Kimi Code CLI 会回放之前的对话历史,让你快速了解上下文。回放过程中会显示之前的消息和 AI 的回复。

会话状态持久化

除了对话历史,Kimi Code CLI 还会自动保存和恢复会话的运行状态。当你恢复一个会话时,以下状态会自动还原:

  • 审批决策:YOLO 模式的开关状态、通过 "本会话允许" 批准过的操作类型
  • Plan 模式:Plan 模式的开关状态
  • 子 Agent 实例:通过 Agent 工具在会话中创建的子 Agent 实例状态和上下文历史
  • 额外目录:通过 --add-dir/add-dir 添加的工作区目录

这意味着你不需要在每次恢复会话时重新配置这些设置。例如,如果你在上次会话中批准了某类 Shell 命令的自动执行,恢复会话后这些批准仍然有效。

导出与导入

Kimi Code CLI 支持将会话上下文导出为文件,或从外部文件和其他会话导入上下文。

导出会话

输入 /export 可以将当前会话的完整对话历史导出为 Markdown 文件:

/export

导出文件包含会话元数据、对话概览和按轮次组织的完整对话记录。你也可以指定输出路径:

/export ~/exports/my-session.md

导入上下文

输入 /import 可以从文件或其他会话导入上下文。导入的内容会作为参考信息附加到当前会话中:

/import ./previous-session-export.md
/import abc12345

支持导入常见的文本格式文件(Markdown、代码、配置文件等)。你也可以传入一个会话 ID,从该会话导入完整的对话历史。

提示:导出文件可能包含敏感信息(如代码片段、文件路径等),分享前请注意检查。

清空与压缩

随着对话的进行,上下文会越来越长。Kimi Code CLI 会在需要的时候自动对上下文进行压缩,确保对话能够继续。

你也可以使用斜杠命令手动管理上下文:

清空上下文

输入 /clear 可以清空当前会话的所有上下文,重新开始对话:

/clear

清空后,AI 会忘记之前的所有对话内容。通常你不需要使用这个命令,对于新任务,开启新的会话会是更好的选择。

压缩上下文

输入 /compact 可以让 AI 总结当前的对话,并用总结替换原有的上下文:

/compact

你也可以在命令后附带自定义指引,告诉 AI 在压缩时优先保留哪些内容:

/compact 保留数据库相关的讨论

压缩会保留关键信息,同时减少 token 消耗。这在对话很长但你还想保留一些上下文时很有用。

提示:底部状态栏会显示当前的上下文使用率和 Token 数量(如 context: 42.0% (4.2k/10.0k)),帮助你了解何时需要清空或压缩。

提示:/clear/reset 会清空对话上下文,但不会重置会话状态(如审批决策、动态子 Agent 和额外目录)。如需完全重新开始,建议创建一个新会话。

工作模式

Agent 与 Shell 模式

Kimi Code CLI 有两种输入模式:

  • Agent 模式:默认模式,输入的内容会发送给 AI 处理
  • Shell 模式:直接执行 Shell 命令,无需离开 Kimi Code CLI

Ctrl-X 可以在两种模式之间切换。当前模式会显示在底部状态栏中。

在 Shell 模式下,你可以像在普通终端中一样执行命令:

sh
$ ls -la
$ git status
$ npm run build

Shell 模式也支持部分斜杠命令,包括 /help/exit/version/editor/changelog/feedback/export/import/task

注意:Shell 模式中每个命令独立执行,cdexport 等改变环境的命令不会影响后续命令。

Plan 模式

Plan 模式是一种只读的规划模式,让 AI 在动手编码之前先制定实施方案,避免在错误方向上浪费精力。

在 Plan 模式下,AI 只能使用只读工具(GlobGrepReadFile)探索代码库,不能修改任何文件或执行命令。AI 会将方案写入一个专门的 plan 文件,然后提交给你审批。你可以选择批准、拒绝或提供修改意见。

进入 Plan 模式

有四种方式进入 Plan 模式:

  • 启动参数:使用 kimi --plan 直接以 Plan 模式启动新会话
  • 快捷键:按 Shift-Tab 切换 Plan 模式的开关
  • 斜杠命令:输入 /plan/plan on
  • AI 主动触发:面对复杂任务时,AI 可能会通过 EnterPlanMode 工具请求进入 Plan 模式,你可以选择同意或拒绝

你也可以在配置文件中设置 default_plan_mode = true,让每次新建会话都默认进入 Plan 模式。

进入 Plan 模式后,提示符会变为 📋,底部状态栏会显示蓝色的 plan 标识。

审批方案

AI 完成方案后会通过 ExitPlanMode 提交审批。审批面板会显示完整的方案内容,你可以:

  • 批准执行:如果方案包含多个可选实施路径,AI 会列出 2–3 个带标签的选项(如 "方案 A"、"方案 B (Recommended)")供你选择,选中后 AI 退出 Plan 模式并按该路径执行;如果方案只有一条路径,则显示 Approve 按钮
  • Reject:拒绝方案,保持 Plan 模式,你可以在对话中提供反馈
  • Reject and Exit:拒绝方案并退出 Plan 模式,一步完成拒绝和退出操作
  • Revise:输入修改意见,AI 会据此修订方案并重新提交

Ctrl-E 可以在全屏分页器中查看完整方案内容。

管理 Plan 模式

使用 /plan 命令可以管理 Plan 模式:

  • /plan:切换 Plan 模式开关
  • /plan on:开启 Plan 模式
  • /plan off:关闭 Plan 模式
  • /plan view:查看当前方案内容
  • /plan clear:清除当前方案文件

Thinking 模式

Thinking 模式让 AI 在回答前进行更深入的思考,适合处理复杂问题。

你可以通过 /model 命令切换模型和 Thinking 模式。在选择模型后,如果模型支持 Thinking 模式,系统会询问是否开启。也可以在启动时通过 --thinking 参数启用:

sh
kimi --thinking

提示:Thinking 模式需要当前模型支持。部分模型(如 kimi-k2-thinking-turbo)始终使用 Thinking 模式,无法关闭。

Print 模式让 Kimi Code CLI 以非交互方式运行,适合脚本调用和自动化场景。

基本用法

使用 --print 参数启用 Print 模式:

sh
# 通过 -p 传入指令(或 -c)
kimi --print -p "列出当前目录的所有 Python 文件"

# 通过 stdin 传入指令
echo "解释这段代码的作用" | kimi --print

Print 模式的特点:

  • 非交互:执行完指令后自动退出
  • 自动审批:隐式启用 --yolo 模式,所有操作自动批准,交互式问答(AskUserQuestion)和计划模式切换也会自动处理
  • 文本输出:AI 的回复输出到 stdout

仅输出最终消息

使用 --final-message-only 选项可以只输出最终的 assistant 消息,跳过中间的工具调用过程:

sh
kimi --print -p "根据当前变更给我一个 Git commit message" --final-message-only

--quiet--print --output-format text --final-message-only 的快捷方式,适合只需要最终结果的场景:

sh
kimi --quiet -p "根据当前变更给我一个 Git commit message"

JSON 格式

Print 模式支持 JSON 格式的输入和输出,方便程序化处理。输入和输出都使用 Message 格式。

  • JSON 输出

使用 --output-format=stream-json 以 JSONL(每行一个 JSON)格式输出:

sh
kimi --print -p "你好" --output-format=stream-json

输出示例:

jsonl
{"role":"assistant","content":"你好!有什么可以帮助你的吗?"}

如果 AI 调用了工具,会依次输出 assistant 消息和 tool 消息。

  • JSON 输入

使用 --input-format=stream-json 接收 JSONL 格式的输入:

sh
echo '{"role":"user","content":"你好"}' | kimi --print --input-format=stream-json --output-format=stream-json

这种模式下,Kimi Code CLI 会持续读取 stdin,每收到一条用户消息就处理并输出响应,直到 stdin 关闭。

Message 格式

输入和输出都使用统一的 Message 格式。

  • User 消息
json
{"role": "user", "content": "你的问题或指令"}

也可以使用数组形式的 content:

json
{"role": "user", "content": [{"type": "text", "text": "你的问题"}]}
  • Assistant 消息
json
{"role": "assistant", "content": "回复内容"}

带工具调用的助手消息包含 tool_calls 字段。

  • Tool 消息
json
{"role": "tool", "tool_call_id": "tc_1", "content": "工具执行结果"}

退出码

Print 模式使用退出码表示执行结果,方便脚本和 CI 系统判断是否需要重试:

退出码含义说明
0成功任务正常完成
1失败(不可重试)配置错误、认证失败、额度用尽等永久性错误
75失败(可重试)429 速率限制、5xx 服务端错误、连接超时等暂时性错误

使用场景

  • CI/CD 集成
sh
kimi --print -p "检查 src/ 目录下是否有明显的安全问题,输出 JSON 格式的报告"
  • 批量处理
sh
for file in src/*.py; do
  kimi --print -p "为 $file 添加类型注解"
done
  • 与其他工具集成
sh
my-tool | kimi --print --input-format=stream-json --output-format=stream-json | process-output