开源 · 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 经由 localhost 发起请求——你的工具和工作流完全不变。

安装后台服务
  1. 安装 Veil 服务

    一条命令让 localhost 代理在后台常驻。这就是你的隐私边界。

    $ veil service install
  2. 配置你的助手

    把 Claude Code 或 Codex CLI 配置里的 base URL 改一下,不需要长期开 proxy 终端。

    $ ~/.claude/settings.json -> ANTHROPIC_BASE_URL=http://127.0.0.1:8787
  3. 继续写代码

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

开始使用

安装一次, 即可上手。 持续可用。

对大多数用户来说,npm 是最短路径:一条安装命令,一条后台服务命令,然后在 AI 助手配置里填本地 base URL。

全部版本
curl 安装器macOS · Linux 备用
sh
curl -fsSL https://veil.paiart.com/install.sh | sh
Homebrewtap PAIArtCom/veil
sh
brew install PAIArtCom/veil/veil
WindowsPowerShell — 自动加入 PATH
powershell
irm https://veil.paiart.com/install.ps1 | iex
简单上手

安装、启动、配置。

不需要 clone 源码,也不需要开一个长期 proxy 终端。npm 会下载对应平台二进制,后台服务负责登录后常驻运行。

  1. 01
    安装 Veil

    除非你明确需要 Homebrew 或 shell 安装器,否则直接用 npm。

    npm i -g @paiart/veil
  2. 02
    启动后台服务

    让本地代理常驻在 127.0.0.1:8787。

    veil service install && veil status
  3. 03
    配置 AI 助手 base URL

    Claude Code 写 settings.json;Codex 写 config.toml。配置后照常使用。

    http://127.0.0.1:8787
然后接入你的 AI 助手

Claude Code

查看指南 →

安装一次 Veil 后台服务,把 base URL 写进 ~/.claude/settings.json,再打开 Claude Code。

bash
$ veil service install
# ~/.claude/settings.json
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8787"

把 OpenAI 配成后台服务 upstream,再把 Codex CLI 指向本地 Responses base URL。

bash
$ veil service install --force --upstream https://api.openai.com
# ~/.codex/config.toml
base_url = "http://127.0.0.1:8787/v1"

把 OpenRouter upstream 直接写进本地 base_url 路径。Veil 会在本地拆分它,只重写已支持的请求和响应 body 字段。

bash
$ veil service install
# ~/.codex/config.toml
model_provider = "veil-openrouter"
base_url = "http://127.0.0.1:8787/veil/upstream=https://openrouter.ai/api/v1"

base_url 使用 http://127.0.0.1:8787/veil/upstream=https://openrouter.ai/api/v1。Codex 会追加 /responses。Chat Completions 暂不支持。

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

兼容性

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

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

现已支持 (v0.1.2)

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

即将支持

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

FAQ

常见问题

  • Veil 会增加延迟吗?

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

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

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

  • Veil 会看到我的 API key 吗?

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

  • 能用 OpenRouter 或其他第三方网关吗?

    可以,但前提是客户端使用 Veil 已支持的 API 形态。OpenRouter 推荐用 Codex 的 Responses 路径:base_url 写 http://127.0.0.1:8787/veil/upstream=https://openrouter.ai/api/v1,并配置 wire_api="responses"。Codex 会追加 /responses,Veil 会转发到 OpenRouter 的 /api/v1/responses。不要把 Chat Completions 请求直接打到 Veil;不支持的端点会失败即拦截。

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

    支持 Claude Code(Anthropic Messages API)、Codex CLI(OpenAI Responses API)、通过 Codex Responses 接入 OpenRouter,以及 Go SDK 集成。Chat Completions 客户端、Gemini 等仍在路线图上。

  • 如何移除?

    从 AI 助手配置里移除本地 base URL,并执行 veil service uninstall。Veil 没有账号、云端中继或远程后台进程。