1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | cc-safety-net |
| 作者/维护者 | J Liew(GitHub: kenryu42) |
| 来源链接 | https://github.com/kenryu42/cc-safety-net |
| 许可证 | MIT(GitHub API 确认) |
| GitHub Stars | 1,449(GitHub API) |
| Forks | 69(GitHub API) |
| 最新版本 | v1.0.6(GitHub Tags) |
| 安装方式 | Claude Code / Codex 通过插件市场一键安装;Gemini CLI / GitHub Copilot CLI / Kimi Code / OpenCode / Pi 各自使用原生扩展命令安装 |
2. 功能介绍与亮点
cc-safety-net 是一个 PreToolUse 钩子(hook),在编码智能体真正执行 Bash 命令之前对命令做语义解析,拦截具有破坏性的操作:
- 语义级拦截:识别
rm -rf、git reset --hard、git push --force、find -delete、dd/mkfs等命令的真实意图,而非简单字符串匹配——git checkout -b(安全)放行,git checkout -- file(破坏性)拦截 - 穿透式检测:递归识别
bash -c等 shell 包装器(最深 10 层)及python -c、node -e等解释器单行破坏性代码 - 默认拒绝失败:无法解析的输入一律按“拦截”处理
- 可自定义规则本:支持用户级、项目级、以 SHA-256 摘要锁定的 GitHub 共享规则源,只能新增限制、不能削弱内置保护
- 审计日志:拦截记录写入本地日志并自动脱敏
- 诊断工具:
cc-safety-net doctor自检、cc-safety-net explain "命令"展示判定过程 - 跨平台:自动适配 Windows/macOS/Linux 的命令行为差异
3. 适用场景
固定分类:工程效率与代码质量
任何允许编码智能体(Claude Code、Codex 等)在终端里自主执行命令的用户都是受益对象,尤其是:
- 习惯让智能体长时间无人值守运行、或开启自动批准(auto-approve/yolo)模式的用户
- 初中级开发者——
CLAUDE.md/AGENTS.md里写“别用 rm -rf”这类软性约束,智能体在长对话或指令误解时仍可能忽略,需要一层硬性技术兜底 - 团队协作场景中,希望统一放置在项目里的规则本,让每个成员的智能体都遵守同一条“红线”
4. 跨 Agent 兼容性
- Claude Code:原生支持——插件市场一条命令安装
- Codex:原生支持——插件市场安装,需先在配置中开启
plugin_hooks - OpenClaw:不支持——官方文档列出的 7 个受支持 CLI(Claude Code、Codex、Gemini CLI、GitHub Copilot CLI、Kimi Code、OpenCode、Pi)中不含此项
- Hermes Agent:不支持——同上,官方支持列表未覆盖
5. 推荐理由
在危险命令执行前语义拦截,防止智能体误删代码或工作区
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | GitHub 1,449 Stars;npm 近 30 天下载量 8,447 次;issue 区有多轮真实用户参与的技术讨论 |
| 可用性 | 9 | 覆盖 7 种主流编码智能体 CLI 的一键安装;内置 doctor/explain 诊断命令;文档站完整;最近一次代码提交在 3 周内 |
| 安全性 | 9 | 见下方检查清单 |
安全检查清单:
① Shell 命令执行:有,但仅用于本地静态解析并拦截命令,不代为执行任何破坏性操作 ② 联网外发:默认零网络请求;仅用户主动配置 GitHub 规则源时才拉取,且以 SHA-256 摘要锁定防篡改 ③ API Key/凭据:不需要 ④ 可疑指令:抓取的 README、SKILL.md、package.json 均未发现可疑或越权指令 ⑤ 作者信誉:个人开发者,GitHub 144 个公开仓库、68 名关注者;仓库配有 CI、Codecov、独立安全策略文档(SECURITY.md) ⑥ License:MIT,明确 ⑦ 最近维护:2026-06-30 有提交,活跃维护中,issue 响应及时
7. 跟同类 Skills 相比的优势
| 项目 | 定位 | 与 cc-safety-net 的差异 |
|---|---|---|
| lobster-cage(CAGE) | 默认拒绝式命令防护环境,覆盖 Claude Code、Codex、Cursor、Aider | 同为“默认拒绝”思路,但配置门槛更高,GitHub 仅个位数 Star,社区验证尚不充分 |
| saferun-guard | Claude Code 运行时安全防火墙,拦截危险命令并保护敏感文件 | 思路相近,但只支持 Claude Code 单一智能体,且仍处于早期阶段(个位数 Star) |
| Trail of Bits agentic-actions-auditor | 审计 CI/CD 流水线中 GitHub Actions 里 AI 集成的安全隐患 | 保护对象是仓库里的工作流配置文件,而非终端里正在执行的实时命令,二者覆盖不同层面、可搭配使用 |
8. 用户评价
- GitHub 用户 mcdow-webworks 在 issue #2 中报告了 Windows 平台下脚本调用失败的问题,并在作者连续两个版本的修复后回归验证、确认问题解决
- GitHub 用户 djethino 在同一 issue 讨论中提交了具体的兼容性修复方案,被后续版本迭代采纳参考
这两条均来自仓库 issue 区可查证的真实往来记录,反映出作者对问题的响应速度与社区的实际参与深度。
9. 其他补充
项目提供独立文档站点(ccsafetynet.com/docs),涵盖安装、配置、安全模型、已知局限等完整内容;npm 包名与仓库同名(cc-safety-net),也可直接通过 npx cc-safety-net 调用命令行工具本身。
10. 安装使用方式
Claude Code:
/plugin marketplace add kenryu42/cc-marketplace
/plugin install safety-net@cc-marketplace
/reload-plugins
Codex:先在 ~/.codex/config.toml 开启 plugin_hooks,再执行 codex plugin marketplace add kenryu42/cc-marketplace,在 TUI 的 /plugins 中安装并信任该 hook
Gemini CLI:gemini extensions install https://github.com/kenryu42/gemini-safety-net
GitHub Copilot CLI:/plugin install kenryu42/copilot-safety-net
Kimi Code:npx -y cc-safety-net hook install --kimi-code
OpenCode:opencode plugin -g cc-safety-net
Pi:pi install npm:cc-safety-net
安装后无需重启终端,下一次智能体调用 Bash 工具时即生效。可选 Strict(严格拒绝无法解析的命令)、Paranoid(连工作目录内的 rm -rf 也拦截)、Worktree(放宽对已验证 git worktree 的本地丢弃操作)三种模式,均通过环境变量开启。
11. 注意事项
- 早期版本在 Windows 上曾出现 Python 脚本文件关联导致钩子无法正确调用的问题,目前已通过直接执行方式改进;Windows 用户建议安装后先运行
cc-safety-net doctor自检 - 自定义规则只能新增限制、不能绕过内置的核心保护,团队共享规则本时仍需自行评估规则本身是否过严影响正常工作流
- 该工具是“拦截”而非“提示确认”,如有确需执行的高风险操作(如清空构建产物目录),应提前通过规则本加入例外,避免误伤合法操作