Skip to main content
运行 npx -y cc-safety-net@latest install --kimi-code,并从两种方式中选择一种:由安装程序把全局 hook 写入 ~/.kimi-code/config.toml,或在 Kimi Code 内安装原生插件。两种方式对每次工具调用执行相同的检查,用 npx cc-safety-net doctor 都能确认是否生效。无论哪种方式,Kimi Code 的 hook 都是 fail open。

在 Kimi Code 中安装 CC Safety Net

在终端中,install --kimi-code 和交互式安装程序会询问是立即安装全局 hook,还是打印原生插件的安装步骤。选择插件时不会写入任何内容。在终端以外的环境中,例如 CI,该选项直接安装全局 hook,不会询问。
1

运行安装程序

在终端中,在提示里选择全局 hook。
2

确认 hook 已生效

如果想在 Kimi Code 中编写规则,请添加规则编写技能。

Kimi Code 全局 hook 安装会改动什么

安装程序把一个 [[hooks]] 块写入 ~/.kimi-code/config.toml,设置了 KIMI_CODE_HOME 时写入 $KIMI_CODE_HOME/config.toml。该块在每次 PreToolUse 调用时运行 npx -y cc-safety-net hook --kimi-code。

Kimi Code hook 检查什么

全局 hook 和插件对每次工具调用执行相同的检查:把 Bash 调用当作 shell 命令分析,并检查其他工具输入中的受保护路径。

Kimi Code 检查失败时会怎样

Kimi Code 的 hook 是 fail open。无论哪种方式,hook 进程无法启动、崩溃或超时时,工具调用都会照常执行。此外,只要有一个 hooks 条目无效,Kimi Code 就会忽略 config.toml 中的所有 hook。见 Kimi Code 中无效的 hooks 条目。

Kimi Code 的覆盖限制

在 kimi web 和 ACP 会话中,Kimi Code 把服务器的启动目录作为 payload 的 cwd 发送,而不是会话自己的目录。因此在这些会话中,CC Safety Net 会以服务器启动目录为基准检查每次 Bash 调用:
  • 相对路径,以及针对工作目录之外路径的规则,都按错误的目录解析。安全的命令可能被阻止,本应阻止的命令也可能被放行。
  • 如果 cwd 参数指定的会话目录位于服务器启动目录之外,hook 会拒绝该调用。
终端中的 kimi 会话不受影响。这个缺口只能由 Kimi Code 发送会话目录来弥补。

从全局 hook 迁移到原生插件

先安装插件并确认它已生效,再移除全局 hook:
两者短暂同时运行,只会让拒绝消息重复出现;两者都未生效的空窗期则会让你失去保护。

在 Kimi Code 中更新 CC Safety Net

update 会刷新全局 hook,但从不更新原生插件。对于插件,它会打印:

从 Kimi Code 卸载 CC Safety Net

卸载只移除全局 hook,不会改动原生插件。

Kimi Code 故障排除

Kimi Code 中无效的 hooks 条目

只要有一个 hooks 条目不符合 schema,Kimi Code 就会忽略 config.toml 中的所有 hook。因此 doctor 会检查每一个 [[hooks]] 条目,而不只是 CC Safety Net 的那一个,并为每个有问题的条目打印以下错误:
<n> 从 1 开始计数。<problem> 为以下之一:

Kimi Code 插件已安装但未启用

doctor 从 Kimi 主目录($KIMI_CODE_HOME 或 ~/.kimi-code)下 plugins 中的 installed.json 读取插件记录。记录显示未启用时,会打印:
请在 Kimi Code 中运行 /plugins enable cc-safety-net。doctor 无法读取该文件时,会打印 Cannot read <path>, so doctor cannot tell whether the Kimi Code plugin is installed 并以 1 退出。
最后修改于 2026年10月22日