ohitslaurence/strix-cli
GitHub: ohitslaurence/strix-cli
面向 Strix 渗透测试平台的单二进制 CLI,将漏洞结果结构化输出供 AI 修复 agent 和人类开发者消费,并跟踪修复与重新验证的完整闭环。
Stars: 0 | Forks: 0
# strix-cli
一个快速的单二进制 CLI,用于 [Strix](https://strix.ai) 渗透测试结果——其设计初衷是让人工智能修复 agent 和人类都能同样流畅地驱动。
如果你运行 Strix 进行自动化渗透测试,这个 CLI 会提取出测试结果,以便你自己的 agent(或你自己)可以阅读每个漏洞,确切了解如何修复它,按照你代码库自身的规范进行修复,然后将其标记为已修复并重新验证。Strix 自身的“创建修复 PR”功能被刻意**不**接入——修复通过你自己的 agent 和你的审查流程落地。
每个命令都说两种语言:默认是人类友好的 text/CSV,以及用于脚本和 agent 的稳定、有文档记录的 **`--json`** 模式。在底层,它是一个强类型的 [Effect](https://effect.website) 应用,使用 [Bun](https://bun.sh) 编译成一个单独的 `strix` 二进制文件。
```
strix vulns --status open --severity critical # the fix queue, worst first
strix brief # a self-contained fix packet for an agent
strix status fixed --note "acme/api#123" # record the fix
strix retest # ask Strix to re-verify
```
## agent 修复循环
`strix brief ` 是核心重地。它输出一个自包含的 Markdown 修复数据包——包括标题、严重程度、CWE/CVSS、它所在的 repo/branch/file、问题所在、概念验证、修复步骤,以及 Strix 建议的修改前/修改后/diff——这是 agent 在无需第二次 API 调用的情况下修复漏洞所需的一切。直接将其管道传输给 agent:
```
strix vulns --status open --json | jq -r '.[].id' | while read id; do
strix brief "$id" > "/tmp/$id.md" # hand each packet to a fixing agent
done
```
针对每个漏洞的典型循环:
1. `strix brief ` → 交给修复 agent,它会通过 **Where** 行(`location_meta.repo_url` + `branch` + `code_file`)定位代码。
2. agent 按照 repo 内的规范进行修复,并创建一个 PR。
3. `strix resolve --note ""` → 一步将其标记为已修复**并**排队等待重新测试,以便 Strix 重新验证,该漏洞随之从队列中清除。
`resolve` 也是处理**过期漏洞**的工具。有些漏洞比较陈旧,可能已经在当前代码中被修复。将 agent 指向队列,让它根据代码检查每个漏洞,对于任何已经解决的内容:
```
strix resolve --note "already fixed in "
```
重新测试才是真正将其从 Strix 中清除的步骤——agent 的声明会得到验证,而不是仅仅被盲目信任。
### 限定为你关心的 repo
漏洞可能跨越多个目标(`acme/api`、`staging.acme.dev`、`acme/legacy` 等)。对队列进行范围限定,以便 agent 只能看到正在处理的内容:
```
strix vulns --repo api # only findings in acme/api
strix vulns --status open --not-repo legacy --not-repo staging # hide the rest
```
`--repo` / `--not-repo` 可以重复使用,并匹配漏洞的目标(不区分大小写的子字符串——可以是 repo slug 或 URL host)。排除项优先于包含项。
## 安装
需要 [Bun](https://bun.sh) (`curl -fsSL https://bun.sh/install | bash`)。
直接运行,无需安装:
```
bunx @ohitslaurence/strix-cli --help
```
或者全局安装:
```
bun install -g @ohitslaurence/strix-cli
strix --help
```
或者从源码构建独立二进制文件:
```
git clone https://github.com/ohitslaurence/strix-cli && cd strix-cli
bun install
bun run build # compiles dist/strix
ln -s "$PWD/dist/strix" ~/.local/bin/strix # put it on your PATH
```
验证:
```
strix --version
strix --help
```
## 快速开始(20 秒)
```
bun install -g @ohitslaurence/strix-cli
strix auth login # paste your token (see "Authentication")
strix vulns --status open
```
## 身份验证
CLI 需要一个 **Strix API token**。在 Strix 应用的 **Settings → API Access** 下创建一个。为其分配 CLI 使用的 scope:
- `vulnerabilities:read` — `vulns`, `vuln`, `brief`, `history`
- `vulnerabilities:write` — `status`, `severity`, `retest`
- `scans:read` — `scans`
`auth login` 会验证 token 并将其保存:
```
strix auth login # prompts for the token (input hidden)
strix auth status # → Authenticated to
strix auth login --token strix_xxx # non-interactive (CI / agents)
strix auth logout # remove the saved token
```
`auth login` 将 token 存储在 `~/.config/strix/env` 中(模式为 `0600`)。不想持久化存储?可以改为导出它——**环境变量优先级**高于文件:
```
export STRIX_API_TOKEN=strix_xxx
```
**切勿提交你的 token**——该 repo 的 `.gitignore` 已排除了 `.env`。
## 命令
| 命令 | 作用 |
| --- | --- |
| `strix vulns [--repo --not-repo --status --severity --scan --search --limit]` | 列出漏洞(修复队列),CVSS 最高的排在前面。 |
| `strix vuln ` | 单个漏洞的完整详情。 |
| `strix brief ` | 为修复 agent 提供的 Markdown 修复数据包。 |
| `strix resolve --note` | 完全清除:标记为已修复**并**重新测试。用于已完成的修复和过期/已修复的漏洞。 |
| `strix history ` | 状态/严重程度变更和重新测试的审计跟踪。 |
| `strix status [--note]` | 仅更新状态。 |
| `strix severity --reason` | 覆盖严重程度。 |
| `strix retest ` | 在修复后排队进行重新验证。 |
| `strix scans [--status --type --repo --limit]` | 列出渗透测试扫描。 |
## 输出模式
默认输出紧凑且易读(列表为 CSV,详情为 text):
```
$ strix vulns --limit 2
id,ref,severity,status,cvss,title,target
7c1e…,STRIX-42,critical,open,9.8,SQL injection in /login,https://app.example.com
9b0a…,STRIX-41,high,open,7.5,Reflected XSS in search,https://app.example.com
```
为任何命令添加 `--json` 以获得稳定的、机器可读的输出——字段名与 Strix API 对应,因此 agent 可以直接交叉参考 Strix 文档。
`strix brief --json` 返回原始漏洞对象(Markdown 数据包是默认的文本模式)。
## 范围说明
Strix API 本身也可以创建修复 PR (`create-fix-pr`) 并将漏洞导出到工单提供商。这些功能在这里被故意**不**公开——此工具的职责是将漏洞提供给你自己的修复 agent 并跟踪结果。如果你想添加它们,请参阅 `AGENTS.md`。
标签:AI智能体, Bun, Effect, GPT, 模块化设计, 漏洞管理, 自动化修复, 自动化攻击