内容
# flagrix
在克隆之前,从终端、CI 或 AI 代理扫描 GitHub 仓库和个人资料中的恶意软件。 与 [Flagrix 浏览器扩展](https://flagrix.io) 相同的提交固定判决,现可调用。
```bash
npx flagrix scan https://github.com/some-org/coding-assignment
```
```
some-org/coding-assignment @ 3f9c2a1
高风险 — 请勿克隆 安全评分 12/100
3 个文件扫描 · 10 个依赖 · 2 个问题
严重 数据泄露模式检测到:键盘记录器模式
assignment.js:14
14 document.addEventListener("keydown", (e) => send(e.key))
```
在针对开发者的真实虚假招聘活动(窃取钱包、SSH 密钥和浏览器会话的“编码作业”仓库)开始后构建。
## 命令
```bash
flagrix scan <url | owner/repo> # 扫描一个仓库 (--ref <branch|sha>)
flagrix scan-user <username> # 为诈骗信号评分 GitHub 个人资料
flagrix mcp # MCP 服务器(stdio)用于 AI 代理
```
## 退出代码
| 代码 | 含义 |
|---|---|
| 0 | 低风险 |
| 1 | 扫描失败 |
| 2 | 中等风险 — 在继续之前请审查 |
| 3 | 高风险 — 请勿克隆 |
`--json`(当 stdout 被管道化时自动发出)发出完整结果。判决**固定到扫描的提交**(JSON 中的 `commitSha`):在该 SHA 处读取每个文件,因此在扫描期间或之后推送无法悄悄使其失效。
## AI 代理
```bash
claude mcp add flagrix -- npx -y flagrix mcp
```
工具:`scan_github_repo`,`scan_github_user`。 一个 Claude Code 钩子, gated 每个 `git clone` 在 [hooks/](hooks/) 中进行扫描 — 请参阅 [docs/agent-gating.md](docs/agent-gating.md)。
## 令牌和速率限制
未经身份验证的扫描使用 GitHub 的 60 req/h 预算(一次扫描每个文件发出一个请求,最多 ~50)。设置 `GITHUB_TOKEN`(或 `FLAGRIX_GITHUB_TOKEN` 或 `--token`)将其提高到 5,000/h 并扫描私有仓库。
## 隐私
完全本地。无遥测,无帐户,无 Flagrix 后端 — 唯一网络调用前往 GitHub/npm API 和公共 [检测规则](https://github.com/flagrix-io/flagrix-detection-rules) 仓库(签名刷新,缓存 6 小时,带有捆绑的离线快照)。
## 工作原理
扫描逻辑位于 [@flagrix/scanner-core](https://github.com/flagrix-io/flagrix-scanner-core) (MIT),签名位于 [flagrix-detection-rules](https://github.com/flagrix-io/flagrix-detection-rules) (MIT)— 与浏览器扩展相同的引擎和规则。判决是风险评估,而不是确定的欺诈确定;始终通过官方渠道验证。
## AI 公告
该项目利用 Claude AI 进行样板生成、测试套件扩展和优化。所有 AI 生成的代码都经过严格审查、重构和验证后由人类维护人员合并。
## 许可证
MIT — 请参阅 [LICENSE](LICENSE)。