SieveAI-dev/sieve
GitHub: SieveAI-dev/sieve
Sieve 是一款完全本地运行的 LLM 流量安全代理,为加密原生开发者在 AI 编码工作流中提供机密脱敏和高危操作拦截的双重防护。
Stars: 3 | Forks: 0
# Sieve
English | [中文](./README.zh-CN.md)
[](./LICENSE)
[](#installation-phase-1-macos-only)
[](#project-status)
Sieve 是一个完全本地的 LLM 流量安全代理(单一的 Rust 二进制文件),位于您的 AI 编码代理(Claude Code / Codex CLI / Cursor)与上游模型 API(Anthropic / OpenAI / 中继)之间。它会双向检查流量——在输出时脱敏机密信息,并在输入时阻断危险的 tool call(故障关闭)——从而在不可逆的操作(签名、转账、部署)之前强制产生一刻认知摩擦。专为加密原生开发者打造。
所有的检测推理均 100% 在您的本地机器上运行。Sieve 绝不上传您的 prompt、响应或 API key。
## 工作原理
您的代理将其 base URL 指向一个回环监听器(`127.0.0.1`)。Sieve 通过端到端 TLS 将流量转发到真实的上游——它**不会**安装本地 CA 或对您的连接进行 MITM。在输出时,它会匹配出站规则并就地脱敏机密信息;在输入时,它会拦截 Critical tool call 并将其挂起以等待人工确认(HIPS — 主机入侵防御系统)。
```
flowchart LR
A["AI agent
Claude Code / Codex / Cursor"] S["Sieve
(local · 127.0.0.1)"] U["Upstream
Anthropic / OpenAI / relay"] A -- "request" --> S S -- "outbound: redact secrets
(OUT-01..05/12, auto, no popup)" --> U U -- "response" --> S S -- "inbound: block Critical tool calls
fail-closed + HIPS confirmation" --> A S -.-> D["100% local detection
no cloud verifier"] ``` Sieve 自身产生的唯一出站流量是获取签名的规则更新——请参阅[隐私](#privacy)。 ## 为什么选择 Sieve 1. **上游是不受信任的**——您路由所经过的中继可以重写您的 `tool_call`;当泄露的 key 抽干钱包时,官方 API 不会赔偿您的损失。 2. **没有其他人会保护您**——钱包安全产品永远看不到您的 prompt,LLM 安全产品不懂加密,而 DLP 并不存在于您的工作流中。 3. **Sieve 是客户端的最后一道门**——检测推理完全本地化,双向扫描字节流,并且 Sieve **绝不上传您的 prompt、响应、API key 或任何使用记录**。 4. **您不仅是在信任我们,您可以验证我们**——公开的源代码、签名的发布、可复现的构建,以及透明的规则更新日志。 ## 隐私 Sieve 每天**4 次**连接到更新服务器以获取最新规则。每个请求仅包含 **5 个字段**:version / OS / CPU 架构 / 本地生成的随机安装 ID(不与任何账户或设备绑定)/ channel。它**绝不上传 prompt、响应、API key 或任何使用记录**。 - `SIEVE_NO_TELEMETRY=1` —— 禁用安装计数遥测(不影响规则更新)。 - `SIEVE_NO_UPDATE=1` —— 完全禁用更新检查。 请参阅 [SPEC-006](./docs/specs/SPEC-006-update-and-telemetry.md)。 ## Sieve 的独特之处(护城河) 1. **在 LLM 流量层的独占位置**——钱包安全产品看不到 prompt;DLP 不在工作流中。 2. **本地推理 + 明确受限的更新通道**——检测 100% 本地化,零云依赖。 3. **针对加密的特定检测**——在受调研的 19 款 LLM/DLP 产品和 9 款 AI 代理安全工具中,没有一款具备此能力。 4. **双向检测 + 故障关闭**——在任何模式下都无法禁用 Critical。 ## 快速开始 ### 安装(阶段 1:仅限 macOS) 大多数 `curl … | sh` 安装程序要求您盲目信任直接管道输入到 shell 的脚本。Sieve 的做法恰恰相反:**在将任何内容放到磁盘上之前,安装程序会使用 cosign / sigstore 验证自身的发布产物**(无密钥签名 + Rekor 透明度日志)。如果二进制文件被篡改或不是来自 Sieve 的发布工作流,它会**故障关闭并拒绝安装**。一条命令,依然可验证。验证是安装程序为您完成的家庭作业,而不是交给您的障碍。安全工具的安装程序就应该如此([ADR-036](./docs/design/ADR-036-self-verifying-installer.md))。 从无缝体验到硬核操作,请选择适合您的路径: **1. Homebrew(macOS 上推荐)** —— brew 原生验证 sha256。 ``` # CLI / daemon brew tap SieveAI-dev/sieve && brew install sieve # GUI .app brew install --cask sieve ``` **2. 自验证单行安装程序** —— 安装 `sieve` CLI / daemon 二进制文件。下载裸二进制文件及其 `.sigstore.json` 包,并在安装前进行验证(如果存在 cosign 则使用,否则回退到对照 `SHA256SUMS` 检查 sha256 并给出明确警告),出现任何不匹配都会故障关闭。 ``` curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/SieveAI-dev/sieve/main/scripts/install.sh | bash ``` **3. cargo install** —— 从源码构建。 ``` cargo install --git https://github.com/SieveAI-dev/sieve sieve-cli # available now cargo install sieve # from crates.io, from Phase 2 ``` **4. 手动安装(适合极度谨慎者)** —— 从 [GitHub Releases](https://github.com/SieveAI-dev/sieve/releases) 下载签名的 `.dmg` (GUI) 或裸二进制文件,并手动验证 cosign 签名。请参阅下方的 [自行验证](#verify-it-yourself) 和 [deployment.md](./docs/guides/deployment.md)。 安装后,GUI 用户装载 `.dmg`,将 `SieveGUI.app` 拖入 `/Applications`,并在首次启动时运行 `sieve setup`。Linux 和 Windows 将推迟到阶段 2。 ### 连接您的代理 ``` # Claude Code 一次性配置 # (设置 ANTHROPIC_BASE_URL + 注册 PreToolUse hook + 安装 launchd plist) sieve setup # 健康检查 sieve doctor ``` `sieve setup` 在内部执行的操作: - 检测是否安装了 Claude Code / Codex CLI / Cursor; - 将 `ANTHROPIC_BASE_URL=http://127.0.0.1:9119` 写入 `~/.claude/settings.json`; - 注册 PreToolUse hook([ADR-014 双层防御](./docs/design/ADR-014-dual-layer-defense.md)); - 安装 macOS launchd plist,以便 daemon 在登录时启动。 完整的安装与操作指南:[docs/guides/deployment.md](./docs/guides/deployment.md)。开发与构建:[docs/guides/development.md](./docs/guides/development.md)。 ### 自行验证 验证在安装过程中已经自动完成——安装程序(和 Homebrew)拒绝落地任何未通过验证的内容。运行 `sieve doctor` 查看验证状态。以下步骤是**可选的**,适用于想手动重新验证的用户。 **手动 cosign 验证(可选):** ``` cosign verify-blob \ --certificate-identity-regexp '^https://github.com/SieveAI-dev/sieve/\.github/workflows/release\.yml@refs/tags/v[0-9.]+$' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ --bundle SieveGUI-.dmg.sigstore \
SieveGUI-.dmg
# 预期输出:Verified OK
```
每个签名也会被写入公开的 [Rekor](https://search.sigstore.dev/) 透明度日志中,并且每个版本都可以从源码逐字节地独立复现——请参阅 [deployment.md §3](./docs/guides/deployment.md) 和 [ADR-006](./docs/design/ADR-006-sigstore-reproducible-build.md)。任何重新签名都会在 Rekor 中留下痕迹,无法悄无声息地进行。
### 验证拦截
```
# 让 Claude Code 输出一个伪造的 mnemonic(测试样本)。
# Sieve 应当拦截它并弹出 HIPS 提示(GUI)或写入一个 IPC 待处理文件(CLI)。
sieve decisions watch # take over decisions from the CLI when the GUI is unavailable
```
### 卸载
```
sieve uninstall # reverses every step of setup
```
## 配置
Sieve 读取 `~/.sieve/config.toml` 并可同时绑定多个上游监听器([ADR-026](./docs/design/ADR-026-port-based-listener-routing.md)):
```
[[listener]]
name = "anthropic-official"
port = 9119
protocol = "anthropic"
upstream = "https://api.anthropic.com"
api_key = "${ANTHROPIC_API_KEY}"
[[listener]]
name = "openai-via-relay"
port = 9120
protocol = "openai"
upstream = "https://your-relay.example.com/v1"
api_key = "${RELAY_API_KEY}"
[detection]
sequence_detection = false # behavioral-sequence detection, off by default at GA
[telemetry]
# Install-count telemetry 默认开启;SIEVE_NO_TELEMETRY=1 将全局禁用它。
enabled = true
```
完整 schema:[api-reference §3](./docs/api/api-reference.md)。
## 项目状态
该代码库目前已**公开**,处于 **正式发布前的封闭测试阶段**(仅限受邀测试人员)。公开源代码是为了兑现我们的信任叙事——*可验证,而不仅仅是被信任*。
质量基线(根据 `tasks/PROGRESS.md`):Critical 误报率 **0.00%** / 攻击召回率 **99.71%**;**clippy 0 警告**(`fmt` / `deny` 全绿);包含真实攻击复现样本的全面测试套件。
## 自我托管的信任
Sieve 对自己的要求与对上游的要求保持一致:
- **sigstore 签名 + 可复现构建** —— 每个版本都可以被独立复现和验证([ADR-006](./docs/design/ADR-006-sigstore-reproducible-build.md))。
- **Pinned dependencies** —— 避免供应链事件。
- **公开源代码** —— 拦截逻辑完全可审计。
- **透明的规则更新日志** —— 每次更新都附带 changelog 和哈希值,以便用户独立验证。
## 定价
阶段 1 期间免费。
## 技术栈
**Daemon:** Rust + hyper (HTTP / 反向代理) + tokio (异步) + rustls (TLS) + vectorscan-rs (SIMD 多模式正则表达式) + serde_json。
**GUI:** SwiftUI + Combine (macOS 13+, Apple Silicon + Intel) —— 在单独的 [`SieveAI-dev/sieve-gui-macos`](https://github.com/SieveAI-dev/sieve-gui-macos) 仓库中维护。
## 文档
| 入口 | 用途 |
|------|------|
| [docs/glossary.md](./docs/glossary.md) | 词汇表 —— 领域术语的统一定义 |
| [docs/design/ADR-INDEX.md](./docs/design/ADR-INDEX.md) | 架构决策记录,索引 |
| [docs/design/architecture.md](./docs/design/architecture.md) | 架构设计 |
| [docs/design/data-model.md](./docs/design/data-model.md) | 数据模型 |
| [docs/api/api-reference.md](./docs/api/api-reference.md) | API 参考(包含配置 schema) |
| [docs/specs/INDEX.md](./docs/specs/INDEX.md) | 技术规范,索引 |
| [docs/guides/development.md](./docs/guides/development.md) | 开发与构建指南 |
| [docs/guides/deployment.md](./docs/guides/deployment.md) | 部署与操作指南 |
| [docs/changelog/CHANGELOG.md](./docs/changelog/CHANGELOG.md) | 更新日志 |
| [CLAUDE.md](./CLAUDE.md) | 面向使用 Claude Code 的贡献者的项目指南 |
项目站点:[sieveai.dev](https://sieveai.dev)
### 文档地图
```
graph TD
README["README.md
project entry"] ADR["docs/design/ADR-INDEX.md
decision records"] ARCH["docs/design/architecture.md
architecture"] DATA["docs/design/data-model.md
data model"] API["docs/api/api-reference.md
API reference"] SPECS["docs/specs/INDEX.md
specifications"] GUIDES["docs/guides/
development + deployment"] CL["docs/changelog/CHANGELOG.md
changelog"] README --> ADR README --> ARCH README --> GUIDES ARCH --> DATA ARCH --> API ARCH --> SPECS API --> CL ARCH --> CL ``` ## 安全 请**不要**通过公开的 GitHub issues 报告安全漏洞。请通过 [GitHub Security Advisories](https://github.com/SieveAI-dev/sieve/security/advisories/new) 私密报告 —— 有关完整的披露流程,请参阅 [SECURITY.md](./SECURITY.md)。 ## 许可证 - **代码** —— [Apache License 2.0](./LICENSE) - **文档**(`docs/` 下的所有内容,以及 README / CLAUDE.md 和其他非源码的 Markdown / 配置) —— [CC BY-NC-SA 4.0](./LICENSE-DOCS)
Claude Code / Codex / Cursor"] S["Sieve
(local · 127.0.0.1)"] U["Upstream
Anthropic / OpenAI / relay"] A -- "request" --> S S -- "outbound: redact secrets
(OUT-01..05/12, auto, no popup)" --> U U -- "response" --> S S -- "inbound: block Critical tool calls
fail-closed + HIPS confirmation" --> A S -.-> D["100% local detection
no cloud verifier"] ``` Sieve 自身产生的唯一出站流量是获取签名的规则更新——请参阅[隐私](#privacy)。 ## 为什么选择 Sieve 1. **上游是不受信任的**——您路由所经过的中继可以重写您的 `tool_call`;当泄露的 key 抽干钱包时,官方 API 不会赔偿您的损失。 2. **没有其他人会保护您**——钱包安全产品永远看不到您的 prompt,LLM 安全产品不懂加密,而 DLP 并不存在于您的工作流中。 3. **Sieve 是客户端的最后一道门**——检测推理完全本地化,双向扫描字节流,并且 Sieve **绝不上传您的 prompt、响应、API key 或任何使用记录**。 4. **您不仅是在信任我们,您可以验证我们**——公开的源代码、签名的发布、可复现的构建,以及透明的规则更新日志。 ## 隐私 Sieve 每天**4 次**连接到更新服务器以获取最新规则。每个请求仅包含 **5 个字段**:version / OS / CPU 架构 / 本地生成的随机安装 ID(不与任何账户或设备绑定)/ channel。它**绝不上传 prompt、响应、API key 或任何使用记录**。 - `SIEVE_NO_TELEMETRY=1` —— 禁用安装计数遥测(不影响规则更新)。 - `SIEVE_NO_UPDATE=1` —— 完全禁用更新检查。 请参阅 [SPEC-006](./docs/specs/SPEC-006-update-and-telemetry.md)。 ## Sieve 的独特之处(护城河) 1. **在 LLM 流量层的独占位置**——钱包安全产品看不到 prompt;DLP 不在工作流中。 2. **本地推理 + 明确受限的更新通道**——检测 100% 本地化,零云依赖。 3. **针对加密的特定检测**——在受调研的 19 款 LLM/DLP 产品和 9 款 AI 代理安全工具中,没有一款具备此能力。 4. **双向检测 + 故障关闭**——在任何模式下都无法禁用 Critical。 ## 快速开始 ### 安装(阶段 1:仅限 macOS) 大多数 `curl … | sh` 安装程序要求您盲目信任直接管道输入到 shell 的脚本。Sieve 的做法恰恰相反:**在将任何内容放到磁盘上之前,安装程序会使用 cosign / sigstore 验证自身的发布产物**(无密钥签名 + Rekor 透明度日志)。如果二进制文件被篡改或不是来自 Sieve 的发布工作流,它会**故障关闭并拒绝安装**。一条命令,依然可验证。验证是安装程序为您完成的家庭作业,而不是交给您的障碍。安全工具的安装程序就应该如此([ADR-036](./docs/design/ADR-036-self-verifying-installer.md))。 从无缝体验到硬核操作,请选择适合您的路径: **1. Homebrew(macOS 上推荐)** —— brew 原生验证 sha256。 ``` # CLI / daemon brew tap SieveAI-dev/sieve && brew install sieve # GUI .app brew install --cask sieve ``` **2. 自验证单行安装程序** —— 安装 `sieve` CLI / daemon 二进制文件。下载裸二进制文件及其 `.sigstore.json` 包,并在安装前进行验证(如果存在 cosign 则使用,否则回退到对照 `SHA256SUMS` 检查 sha256 并给出明确警告),出现任何不匹配都会故障关闭。 ``` curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/SieveAI-dev/sieve/main/scripts/install.sh | bash ``` **3. cargo install** —— 从源码构建。 ``` cargo install --git https://github.com/SieveAI-dev/sieve sieve-cli # available now cargo install sieve # from crates.io, from Phase 2 ``` **4. 手动安装(适合极度谨慎者)** —— 从 [GitHub Releases](https://github.com/SieveAI-dev/sieve/releases) 下载签名的 `.dmg` (GUI) 或裸二进制文件,并手动验证 cosign 签名。请参阅下方的 [自行验证](#verify-it-yourself) 和 [deployment.md](./docs/guides/deployment.md)。 安装后,GUI 用户装载 `.dmg`,将 `SieveGUI.app` 拖入 `/Applications`,并在首次启动时运行 `sieve setup`。Linux 和 Windows 将推迟到阶段 2。 ### 连接您的代理 ``` # Claude Code 一次性配置 # (设置 ANTHROPIC_BASE_URL + 注册 PreToolUse hook + 安装 launchd plist) sieve setup # 健康检查 sieve doctor ``` `sieve setup` 在内部执行的操作: - 检测是否安装了 Claude Code / Codex CLI / Cursor; - 将 `ANTHROPIC_BASE_URL=http://127.0.0.1:9119` 写入 `~/.claude/settings.json`; - 注册 PreToolUse hook([ADR-014 双层防御](./docs/design/ADR-014-dual-layer-defense.md)); - 安装 macOS launchd plist,以便 daemon 在登录时启动。 完整的安装与操作指南:[docs/guides/deployment.md](./docs/guides/deployment.md)。开发与构建:[docs/guides/development.md](./docs/guides/development.md)。 ### 自行验证 验证在安装过程中已经自动完成——安装程序(和 Homebrew)拒绝落地任何未通过验证的内容。运行 `sieve doctor` 查看验证状态。以下步骤是**可选的**,适用于想手动重新验证的用户。 **手动 cosign 验证(可选):** ``` cosign verify-blob \ --certificate-identity-regexp '^https://github.com/SieveAI-dev/sieve/\.github/workflows/release\.yml@refs/tags/v[0-9.]+$' \ --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \ --bundle SieveGUI-
project entry"] ADR["docs/design/ADR-INDEX.md
decision records"] ARCH["docs/design/architecture.md
architecture"] DATA["docs/design/data-model.md
data model"] API["docs/api/api-reference.md
API reference"] SPECS["docs/specs/INDEX.md
specifications"] GUIDES["docs/guides/
development + deployment"] CL["docs/changelog/CHANGELOG.md
changelog"] README --> ADR README --> ARCH README --> GUIDES ARCH --> DATA ARCH --> API ARCH --> SPECS API --> CL ARCH --> CL ``` ## 安全 请**不要**通过公开的 GitHub issues 报告安全漏洞。请通过 [GitHub Security Advisories](https://github.com/SieveAI-dev/sieve/security/advisories/new) 私密报告 —— 有关完整的披露流程,请参阅 [SECURITY.md](./SECURITY.md)。 ## 许可证 - **代码** —— [Apache License 2.0](./LICENSE) - **文档**(`docs/` 下的所有内容,以及 README / CLAUDE.md 和其他非源码的 Markdown / 配置) —— [CC BY-NC-SA 4.0](./LICENSE-DOCS)
标签:DLL 劫持, DLL注入, Rust, Web3, 可视化界面, 大语言模型, 安全代理, 本地部署, 流量审计, 网络安全, 网络流量审计, 请求响应过滤, 通知系统, 隐私保护