wbw20000/vibe-guardian
GitHub: wbw20000/vibe-guardian
一款面向 AI 编码场景的 pre-commit 本地安全门禁工具,在代码进入 git 历史前拦截硬编码密钥、注入漏洞及 Supabase 错误配置。
Stars: 0 | Forks: 0
# Vibe Guardian 🛡️
**用于 vibe coding 的 pre-commit 安全门禁。**
捕获 AI 编码工具最常带来的漏洞——在它们进入 commit *之前*。
[](https://github.com/wbw20000/vibe-guardian/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/vibe-guardian)
[](https://www.npmjs.com/package/vibe-guardian)
[](LICENSE)

Cursor、Claude Code 和 Lovable 写代码很快——但硬编码的 API key、SQL 注入和完全敞开的 Supabase 表出现得也同样快。Vibe Guardian 会在两道门禁处拦截它们:
1. **AI 编码时**(Claude Code 插件):Claude 编写的每个文件都会被立即扫描;发现问题后,Claude 会准确得知哪里出了错,并在当场进行修复。
2. **提交时**(git pre-commit 钩子):脆弱的代码绝不会进入你的历史记录。
**100% 本地静态规则。无 LLM 调用。零依赖。毫秒级扫描。你的代码永远不会离开你的机器。**
## 快速开始
```
npx vibe-guardian scan # scan your project right now
npx vibe-guardian install-hook # install the git pre-commit gate
```
作为 Claude Code 插件:
```
/plugin marketplace add wbw20000/vibe-guardian
/plugin install vibe-guardian@vibe-guardian
```
## 捕获内容
| 类别 | 规则 | 严重程度 |
|----------|-------|----------|
| 密钥 | AWS / OpenAI / Anthropic / GitHub / Stripe / Google / Slack key、私钥块、明文密码赋值、已提交的 `.env` 文件 | error |
| 密钥 | JWT 字面量 | warn |
| SQL 注入 | 模板字符串 / 字符串拼接 / Python f-string 构建的查询 | error |
| XSS | `innerHTML`、`dangerouslySetInnerHTML`(未消毒)、`document.write`、`insertAdjacentHTML` | warn |
| 命令注入 | 带有插值输入的 `eval` / `new Function` / `exec` | error |
| Supabase | 客户端代码中的 `service_role` key、带有 `NEXT_PUBLIC_` 前缀的密钥、没有 Row Level Security 的 `CREATE TABLE` | error / warn |
| 配置 | CORS 通配符 + credentials | warn |
只有高置信度的规则(**error**)才会阻止你的 commit——启发式规则(**warn**)只会提醒你。没有告警疲劳,也没有 `--no-verify` 的诱惑。
出现误报?在该行(或其上方)添加 `// vibe-guardian: ignore`。
## 命令
```
vibe-guardian scan [paths...] scan files/directories (default: cwd)
vibe-guardian scan --staged scan the git staging area only
vibe-guardian install-hook install the pre-commit hook
vibe-guardian uninstall-hook remove the pre-commit hook
--strict treat warnings as failures
--json JSON output
```
## 常见问题
**我该如何阻止 AI 生成的代码泄露我的 API key?**
安装 pre-commit 门禁(`npx vibe-guardian install-hook`)。硬编码的 OpenAI/AWS/Stripe/Supabase key 在进入 git 历史记录之前就会被拦截——爬虫在代码 push 后几分钟内就能发现它们。
**我的代码会被发送到任何地方吗?**
不会。Vibe Guardian 是纯粹的本地静态分析——没有 LLM 调用,没有遥测,完全没有任何网络请求。
**这和 gitleaks 或 semgrep 有什么区别?**
那些都是针对安全团队的优秀通用扫描器。Vibe Guardian 是为 vibe coder 构建的:零配置、零依赖,规则专注于 AI 助手实际会犯的错误(包括 Supabase RLS 错误配置),并且有一个 Claude Code 钩子可以在 *AI 编码时* 捕捉问题——而不仅仅是在提交时。它是第一道门禁,不能替代企业 CI 中的完整 SAST。
**它适用于哪些 AI 编码工具?**
pre-commit 钩子可以保护任何仓库,无论你使用什么编辑器——Cursor、Windsurf、VS Code Copilot、Lovable 导出。写入时的钩子是 Claude Code 原生的。
## 中文说明
给用 Cursor / Claude Code / Lovable 做 vibe coding 的独立开发者:AI 写代码很快,但硬编码密钥、SQL 注入、裸奔的 Supabase 表也来得很快。Vibe Guardian 在两道关口拦住它们:
1. **写入时**(Claude Code 插件):AI 每次写文件后立即扫描,发现问题直接让 AI 当场修复
2. **提交时**(git pre-commit 钩子):带漏洞的代码根本进不了 commit
### 快速开始
```
npx vibe-guardian scan # 扫描当前项目
npx vibe-guardian install-hook # 安装 git pre-commit 钩子
```
作为 Claude Code 插件:`/plugin marketplace add wbw20000/vibe-guardian` → `/plugin install vibe-guardian@vibe-guardian`
### 检测规则
| 类别 | 规则 | 级别 |
|------|------|------|
| 密钥 | AWS / OpenAI / Anthropic / GitHub / Stripe / Google / Slack key、私钥块、通用明文密码赋值、误提交 .env | error |
| 密钥 | JWT 字面量 | warn |
| SQL 注入 | 模板字符串/字符串拼接/Python f-string 拼 SQL | error |
| XSS | innerHTML、dangerouslySetInnerHTML(无消毒)、document.write、insertAdjacentHTML | warn |
| 命令注入 | eval / new Function / exec 拼接变量 | error |
| Supabase | service_role key 出现在客户端代码、NEXT_PUBLIC_ 前缀密钥、建表未启用 RLS | error / warn |
| 配置 | CORS 通配 + credentials | warn |
**只有高置信度规则(error)才拦截提交**,启发式规则(warn)只提示——不制造狼来了,不逼你 `--no-verify`。
误报处理:在该行或上一行加注释 `// vibe-guardian: ignore`。
### 设计原则
- **零依赖、纯本地**:不上传任何代码,不调用任何 API,隐私和速度都有保证
- **error 才拦截**:高置信度规则(密钥、SQL 注入)阻断提交;启发式规则只警告
- **给 AI 看的报错**:Claude Code 钩子的 block 消息直接告诉 AI 怎么修,形成"写→拦→自动修"闭环
## License
MIT标签:AI辅助开发, DOE合作, Git钩子, GNU通用公共许可证, MITM代理, Node.js, 开发安全, 暗色界面, 自定义脚本, 错误基检测, 静态代码分析