kimi-code/docs/zh/reference/kimi-command.md
liruifengv 07dd604c3c
feat: add /auto slash command and --auto CLI flag (#163)
* feat: add /auto slash command and --auto CLI flag

* feat: add /auto slash command and --auto CLI flag
2026-05-28 20:24:50 +08:00

163 lines
8.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# kimi 命令
`kimi` 是 Kimi Code CLI 的主命令,用于在终端中启动一次交互式会话。不带任何参数运行时,它会在当前工作目录下开启一个新会话;配合不同的 flag可以续上历史会话、跳过审批、从 Plan 模式开始,或者指定自定义的 Skills 目录。
```sh
kimi [options]
kimi <subcommand> [options]
```
## 主命令选项
下表列出 `kimi` 主命令支持的全部选项。所有 flag 都是可选的,直接运行 `kimi` 即可进入交互式会话。
| 选项 | 简写 | 说明 |
| --- | --- | --- |
| `--version` | `-V` | 打印版本号并退出。 |
| `--help` | `-h` | 显示帮助信息并退出。 |
| `--session [id]` | `-S` | 恢复一个会话。带 ID 时直接打开指定会话;不带 ID 时进入交互式选择器,从历史会话中挑选。 |
| `--continue` | `-C` | 继续当前工作目录下最近一次的会话,无需手动指定 ID。 |
| `--model <model>` | `-m` | 为本次启动指定模型别名。省略时,新会话使用配置文件中的 `default_model`,恢复会话使用会话当前模型。 |
| `--prompt <prompt>` | `-p` | 非交互执行单次 prompt并把 Assistant 输出流式写到 stdout。该模式会使用 `auto` 权限处理工具调用,不会打开 TUI。 |
| `--output-format <format>` | | 设置非交互输出格式,支持 `text``stream-json`。仅可与 `--prompt` 一起使用,默认 `text`。 |
| `--yolo` | `-y` | 自动批准普通工具调用跳过审批请求Plan 模式中的 `Bash` 审批和退出审批不会被跳过。 |
| `--auto` | | 以 auto 权限模式启动。工具审批自动处理Agent 不会向用户提问。 |
| `--plan` | | 以 Plan 模式启动新会话AI 会优先使用只读工具进行探索和规划可以写入当前计划文件Plan 模式中的 `Bash` 按权限模式单独处理。 |
| `--skills-dir <dir>` | | 从指定目录加载 Skills替换自动发现的用户和项目目录。可重复传入以叠加多个目录。详见下文 [自定义 Skills 目录](#自定义-skills-目录)。 |
`-r` / `--resume``--session` 的隐藏别名;`--yes``--auto-approve``--yolo` 的隐藏别名。它们在帮助信息中不会显示,行为与对应的官方 flag 完全一致。
::: warning 注意
`--yolo` 会跳过普通工具调用的人工确认,包括文件写入和 Shell 命令执行。请只在受信任的工作目录下使用。Plan 模式的退出审批不会被 `--yolo` 跳过Plan 模式下的 `Bash` 也按 `--yolo` 的普通放行规则处理。
:::
### flag 冲突规则
以下组合会在启动时被拒绝:
- `--continue``--session` 互斥:两者都表示"恢复历史会话",含义重叠。
- `--yolo` 不能与 `--continue``--session` 同时使用:恢复会话时会沿用原会话的审批设置。此规则仅适用于交互式模式;在 `--prompt` 模式下,`--yolo` 已因与 `--prompt` 互斥而被更早拦截。
- `--auto` 不能与 `--continue``--session` 同时使用:与 `--yolo` 同理。
- `--auto` 不能与 `--yolo` 同时使用:两种权限模式互斥。
- `--plan` 不能与 `--continue``--session` 同时使用Plan 模式只对新会话生效。
- `--prompt` 不能与 `--yolo``--auto``--plan` 同时使用:非交互模式固定使用 `auto` 权限,并且不进入 Plan 模式。
- `--prompt` 可以与 `--continue` 或带 ID 的 `--session <id>` 一起使用;不带 ID 的 `--session` 会尝试打开选择器,因此不能用于非交互模式。
- `--output-format` 只能与 `--prompt` 一起使用;交互式 TUI 不支持把完整事件流写成 stdout JSONL。
如果需要在恢复会话时强制使用 YOLO 或 Plan 模式,请改在交互式会话内通过斜杠命令切换。
## 典型用法
最常见的入口是直接运行 `kimi`,在当前目录开启一次全新的会话:
```sh
kimi
```
如果上一次会话被打断(关闭终端、网络断开等),想从断点继续,使用 `--continue`
```sh
kimi --continue
```
它会自动找到当前工作目录下时间最近的那个会话并恢复。若想挑选其他历史会话,运行 `kimi --session` 进入交互式选择器,或者直接传入已知的 session ID
```sh
kimi --session 01HZ...XYZ
```
当任务比较琐碎,不希望被频繁的审批请求打断时,可以加上 `--yolo`
```sh
kimi --yolo
```
希望 Agent 自行处理审批且不再向用户提问时,使用 `--auto`
```sh
kimi --auto
```
需要先让 AI 阅读代码、产出实现计划,而不是立刻动手修改文件时,使用 `--plan` 进入 Plan 模式:
```sh
kimi --plan
```
### 自定义 Skills 目录
如果需要加载自定义的 Skills 目录,可以通过两种方式指定:
- **CLI flag `--skills-dir <dir>`**:可重复传入,会**替换**自动发现的用户和项目目录,适合临时切换或在脚本中使用。例如同时挂载两个目录:
```sh
kimi --skills-dir /path/to/team-skills --skills-dir ./local-skills
```
- **`config.toml` 的 `extra_skill_dirs`**:在配置文件中追加额外目录,与自动发现的目录**叠加**生效,适合长期配置团队共享 Skills详见 [Agent Skills](../customization/skills.md))。
## 非交互执行
需要在脚本或 CI 中运行单次 prompt 时,使用 `-p`
```sh
kimi -p "Summarize the current repository status"
```
输出采用 transcript 样式thinking 内容和 Assistant 正文都会以 `` 开头换行后使用两个空格缩进。Assistant 正文会输出到 stdoutthinking、工具进度和 `To resume this session: kimi -r <id>` 提示输出到 stderr。`-p` 模式不会请求人工审批普通工具调用、Plan 审批和 Agent 提问都会按 `auto` 权限策略处理。静态 deny 规则仍然会阻止匹配的工具调用。
需要临时切换模型时,加上 `-m`
```sh
kimi -m kimi-code/kimi-for-coding -p "Explain the latest diff"
```
如果脚本需要结构化读取输出,可以使用 JSONL
```sh
kimi -p "List changed files" --output-format stream-json
```
`stream-json` 模式下stdout 每行都是一个 JSON 对象。普通回复会输出 Assistant 消息;如果模型调用工具,会先输出带 `tool_calls` 的 Assistant 消息,再输出对应的 Tool 消息,最后继续输出后续 Assistant 消息。thinking 内容不会写入 JSONL工具进度和恢复会话提示仍然写到 stderr。
## 子命令
### `kimi export`
把一个会话打包成 ZIP 文件,便于分享、归档或者提交问题反馈。导出的压缩包包含会话目录下的所有文件,例如上下文记录、状态文件和会话诊断日志(如果该会话已经产生 `logs/kimi-code.log`)。
```sh
kimi export [sessionId] [options]
```
| 参数 / 选项 | 简写 | 说明 |
| --- | --- | --- |
| `sessionId` | | 要导出的会话 ID。省略时会自动选择当前工作目录下最近一次的会话并要求确认。 |
| `--output <path>` | `-o` | 输出 ZIP 文件路径。省略时写入当前目录下的默认文件名。 |
| `--yes` | `-y` | 跳过默认会话的确认提示,直接导出。 |
| `--no-include-global-log` | | 不打包当前活动的全局诊断日志,即 `~/.kimi-code/logs/kimi-code.log`。默认包含。 |
默认导出包含目标会话目录内的文件;如果会话目录里有 `logs/kimi-code.log`,会一并出现在 ZIP 的 `logs/kimi-code.log`。全局诊断日志 `~/.kimi-code/logs/kimi-code.log` 默认也会打包,因为它可能包含其它会话或其它项目的事件,如果不想分享可以加 `--no-include-global-log`。加上后ZIP 内路径是 `logs/global/kimi-code.log`,不会包含轮转出来的 `kimi-code.log.1` 等旧文件。
省略 `sessionId` 时,命令会先打印待导出的会话信息并请求确认;用 `-y` 可以跳过确认,适合在脚本里使用:
```sh
# 导出当前工作目录最近一次会话,跳过确认
kimi export -y
# 导出指定会话到自定义路径
kimi export 01HZ...XYZ -o ./bug-report.zip
# 排除全局诊断日志,避免分享其它会话的事件
kimi export 01HZ...XYZ -o ./bug-report.zip --no-include-global-log
```
### `kimi migrate`
将旧版 kimi-cli 的本地数据迁移到 kimi-code。该命令无任何 flag纯交互式运行会引导你完成数据迁移的全流程。
```sh
kimi migrate
```
如果你之前使用过旧版 kimi-cli可以运行此命令将历史会话、配置等数据迁移到 kimi-code 中,避免数据丢失。完整的迁移流程、迁移内容与注意事项见 [从 kimi-cli 迁移](../guides/migration.md)。