npx -y cc-safety-net@latest install --copilot-cli。它通过 Copilot CLI 自己的插件市场命令安装 cc-safety-net@cc-marketplace 插件。插件原先被禁用时,还会在 ~/.copilot/settings.json 中启用它。之后请重启 Copilot CLI,插件要重启后才会加载。
在 GitHub Copilot CLI 中安装 CC Safety Net
1
运行安装程序
2
重启 Copilot CLI
重启 Copilot CLI,加载插件。
3
确认插件已生效
GitHub Copilot CLI 安装会改动什么
- 如果
cc-marketplace市场尚未注册,则添加它。 - 安装
cc-safety-net@cc-marketplace插件。 - 如果插件被显式禁用,则在
~/.copilot/settings.json的enabledPlugins中把它设为true。
GitHub Copilot CLI hook 检查什么
插件的 hook 在 Copilot CLI 的preToolUse 事件上运行。它把 bash 和 powershell 工具调用当作 shell 命令分析,并检查其他工具输入中的受保护路径。
手动添加 hook 时,能否生效取决于 Copilot CLI 的版本:设置文件中的内联 hook 定义需要 1.0.8 或更高版本,用户 hook 文件需要 0.0.422 或更高版本。doctor 会报告检测到的版本,以及该版本支持哪些 hook 来源。
GitHub Copilot CLI 检查失败时会怎样
hook 崩溃、以非零状态退出或无法启动时,GitHub Copilot CLI 会阻止工具调用。hook 超过默认的 30 秒超时或输出无效内容时,调用照常执行。从 GitHub Copilot CLI 卸载 CC Safety Net
GitHub Copilot CLI 故障排除
doctor 会检查插件,以及你手动添加的 CC Safety Net hook。COPILOT_HOME 默认为 ~/.copilot。
手动添加的 hook
以下任一文件中的 CC Safety Net hook 都会被doctor 计入,按优先级从高到低排列:
<repo>/.github/copilot/settings.local.json<repo>/.github/copilot/settings.json<repo>/.claude/settings.local.json<repo>/.claude/settings.json$COPILOT_HOME/settings.json- hook 文件
<repo>/.github/hooks/*.json和$COPILOT_HOME/hooks/*.json
.claude 文件中的条目只有在命令包含 hook --copilot-cli 或 hook -cp 时才计入,仅有 Claude Code hook 不算。
只要某个 hook 文件或设置条目仍在运行 CC Safety Net hook,即使插件已禁用,doctor 也会以 hook config 方式报告它。
hook 或插件被关闭
- 仓库设置文件中的
disableAllHooks: true会在该仓库中关闭 CC Safety Net,插件也包括在内。 $COPILOT_HOME/settings.json中的disableAllHooks: true只关闭该文件自己的内联 hook,hook 文件和插件照常运行。- 自身把
disableAllHooks设为true的 hook 文件不计入,其他 hook 文件仍然计入。 - 对于
enabledPlugins中的cc-safety-net@cc-marketplace,第一个设置了它的仓库设置文件优先于$COPILOT_HOME/settings.json。仓库中的true会重新启用用户级的false。