开源 · AI 编程助手密钥脱敏代理

你的 AI 助手正在读取 你的密钥。

你发出的每一条 LLM prompt,都带着 API key、密码和数据库连接串直奔大模型云端。Veil 是本地脱敏代理,在数据离开本机前完成 PII 脱敏——大模型只看到格式保留的安全占位符。

  • 运行在 127.0.0.1
  • 无云端中继
  • Apache-2.0

功能

密钥绝不以明文 进入模型

用 Claude Code 或 Codex CLI 的你,每次请求都在把 env 变量、连接串和 API key 送进大模型。Veil 作为本地脱敏代理拦截这些数据——下面是它的处理方式。

开始使用
  • 被粘进 prompt 的密钥

    密钥自动拦截脱敏

    API key、密码、数据库连接串、邮箱、IP 地址——Veil 在请求离开 localhost 之前全部检测并脱敏。

  • 多轮对话中反复出现的密钥

    同一个值,同一个安全 token

    Veil 对每个密钥做确定性 token 化——同一个值始终映射到同一占位符,大模型可以跨轮次推理引用关系,但永远接触不到真实值。

  • 识别不了的请求格式

    失败即拦截,绝不静默泄露

    Veil 认不出的请求格式,一律失败即拦截(fail closed)——不会静默放行,不会把明文 prompt 或 API key 转发出去。

  • 又一个要维护的服务

    只是一个本地进程

    不用注册,没有控制台,没有云端。Veil 作为本地脱敏代理运行在 127.0.0.1,只改写请求和响应正文中的敏感数据。你的 API key 凭据原样透传给上游。

覆盖范围

Veil 能识别并脱敏的数据

Veil 识别 LLM prompt 和工具调用中的 PII 及凭据,在数据离开本机前完成格式保留脱敏——每一项都替换为确定性、可还原的安全占位符。

  • 密钥
    API key · token · 密码 · DSN
  • 邮箱
    user@example.com
  • 电话
    +1 555 123 4567
  • IP 地址
    192.168.1.1 · 2001:db8::1
  • 银行卡
    4111 1111 1111 1111
  • 账号
    银行与金融标识
  • URL
    https://internal.corp/api
  • 日期可选开启
    默认关闭
  • 姓名与地址可选开启
    可选的语义检测

凭什么信任 Veil

任何东西离开你的机器之前, 都已脱敏。

出站完成大模型数据防泄漏,入站自动还原真实值。没有黑魔法,没有云端,除了 localhost 不需要信任任何人。

  • 100% 本地

    Veil 只绑定 127.0.0.1。没有云端中继,没有远程服务器,你和 API 提供商之间只有一个本地进程。

  • 失败即拦截(fail closed)

    无法识别的请求格式、解析出错的 prompt、不支持的端点——Veil 一律拦截,绝不把明文数据转发给大模型。

  • API key 始终是你的

    Veil 不存储、不接触你的 API 凭据。它只改写请求和响应的正文内容。

  • 自己看源码

    Apache-2.0 许可。每一行都可审计。看完威胁模型和发布产物,再决定信不信。

安全模型

精确的安全保证,而非模糊承诺

Veil 小巧、本地、可审计。下面是它确切会做、以及不会做的事。

100% 本地运行

绑定到 127.0.0.1。没有云端中继、没有远程服务器,Veil 不存储你的任何 API key 或 PII 数据。

失败即拦截

解析错误、检测错误、策略冲突或不支持的端点——一律失败即拦截(fail closed),而不是把明文 prompt 或 API key 泄露给上游大模型。

确定性 token 化

同一个值在同一作用域内做确定性 token 化,始终映射到同一占位符。多轮上下文和 LLM prompt 缓存在脱敏后依然有效,不影响大模型推理。

本地可逆

模型只看到占位符;你的终端、文件和工具调用拿回的是真实值。

工作原理

把你的助手指向 本地 proxy。

没有控制台,无需注册。改一个环境变量,让 Claude Code 或 Codex CLI 经由本地脱敏代理发起请求——你的工具和工作流完全不变。

启动 proxy
  1. 启动 Veil

    一条命令在 localhost 启动 proxy。这就是你的隐私边界。

    $ veil proxy --addr 127.0.0.1:8788
  2. 配置你的助手

    把 Claude Code 或 Codex CLI 的 base URL 改一下。一个环境变量的事。

    $ export ANTHROPIC_BASE_URL=http://127.0.0.1:8788
  3. 继续写代码

    其他什么都不用变。你的凭据、工作流、工具链——全部照旧。Veil 只在传输过程中脱敏内容。

开始使用

一条命令 即可上手。

选择你的平台,二进制几秒内就到位。然后把你的 AI 助手指向代理即可。

全部版本
macOS 和 Linuxcurl — 无需其他依赖
sh
curl -fsSL https://veil.sh/install.sh | sh
npmmacOS · Linux · Windows 通用
sh
npm install -g @paiartcom/veil
Homebrewtap PAIArtCom/veil
sh
brew install PAIArtCom/veil/veil
WindowsPowerShell — 自动加入 PATH
powershell
irm https://veil.sh/install.ps1 | iex
然后接入你的 AI 助手

Claude Code

查看指南 →

启动 Veil 本地代理,export 一个变量,打开 Claude Code——Claude Code 密钥脱敏即刻生效。

bash
$ veil proxy --addr 127.0.0.1:8788 &
$ export ANTHROPIC_BASE_URL=http://127.0.0.1:8788
$ claude

用 OpenAI 上游启动 Veil 本地代理,把 Codex CLI 的请求指向 127.0.0.1——API key 自动脱敏,无需改动代码。

bash
$ veil proxy --addr 127.0.0.1:8788 --upstream https://api.openai.com
# ~/.codex/config.toml
model_provider = "veil"

更多方式(go install、源码编译) →

兼容性

现在能用什么, 接下来做什么。

Veil 对脱敏覆盖范围实话实说——当前支持 Claude Code 和 Codex CLI 的大模型网关流量。保护不了的格式,要么失败即拦截,要么明确告诉你。

现已支持 (v0.1.0)

  • Claude Code (Anthropic Messages)
  • Codex CLI (OpenAI Responses)
  • Go SDK 集成
  • 已支持格式中的文本和工具调用字段

即将支持

  • OpenAI Chat Completions
  • Gemini
  • OCR、附件、文档解析
  • 远程 MCP 工具流量

FAQ

常见问题

  • Veil 会增加延迟吗?

    它运行在 localhost,只重写请求和响应的 body,开销仅是一次本地跳转——相比到提供商的网络往返可以忽略不计。

  • 脱敏会影响大模型的输出质量吗?

    不会。占位符是确定性且保留格式的,模型基于稳定、规范的值进行推理。Veil 会在响应里先还原真实值,再交给你的工具。

  • Veil 会看到我的 API key 吗?

    Veil 从不存储或接触你的提供商凭据。它只重写请求和响应 body 中的内容,你的 API key 原样透传。

  • 支持哪些 AI 编程助手和大模型客户端?

    v0.1.0 支持 Claude Code(Anthropic Messages API)和 Codex CLI(OpenAI Responses API),以及 Go SDK 集成。这两个 AI 编程助手的 API key 脱敏和 PII 脱敏均已覆盖。OpenAI Chat Completions、Gemini 等大模型客户端在路线图上。

  • 如何移除?

    取消那个环境变量即可。Veil 只是一个本地脱敏代理进程——没有要卸载的账号、后台 agent 或守护进程,不留任何痕迹。