关于 Whisper
Whisper 是用于为 AI Agent 分配可路由 IPv6 身份并访问安全图谱的命令行工具和 MCP 服务。MCP 工具支持免密身份检查与图谱查询,使用 API 密钥还可访问更多工具。
主要功能
- 01为 Agent 分配可路由 IPv6 身份
- 02将出口流量绑定到身份
- 03通过 DNSSEC 和 DANE 验证身份
- 04查询安全图谱
- 05提供命令行和终端界面
适用场景
- 01验证 Agent 地址或主机名
- 02评估域名、IP、ASN 或文件哈希
- 03查询安全图谱数据
- 04通过指定身份路由 Agent 流量
MCP 相关
Whisper 提供本地 stdio 和远程 Streamable HTTP MCP 服务。两者均可免密提供身份检查和安全图谱工具;身份配置与治理工具需通过 API 密钥认证后使用。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://whisper.online/mcpclaude mcp add --transport http whisper-sec-whisper https://whisper.online/mcp{"mcpServers":{"whisper-sec-whisper":{"type":"http","url":"https://whisper.online/mcp"}}}在 Cursor 中打开{"servers":{"whisper-sec-whisper":{"type":"http","url":"https://whisper.online/mcp"}}}在 VS Code 中打开{"mcpServers":{"whisper-sec-whisper":{"type":"http","url":"https://whisper.online/mcp"}}}{"mcpServers":{"whisper-sec-whisper":{"serverUrl":"https://whisper.online/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
17| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | object | 是 | 此操作的参数,格式为对象。示例传入 {"email":"[email protected]"}。 |
详细介绍
whisper
只需一条命令,即可为你的 Agent 配置真实、可路由的 Whisper IPv6 身份。
whisper 是 Whisper 的命令行客户端:一个静态二进制文件,可为 Agent 配置 AS219419 上真实、可路由的 IPv6 /128 地址,设置出口流量,使 Agent 的流量源自该地址,并进行端到端验证。该地址就是身份——由 DNSSEC 签名、通过 DANE 固定,并可在公共 RDAP 中解析。一个二进制文件,使用标准端口,无需配置即可开始使用。
它基于同一核心提供两种使用方式:完全可脚本化的 Cobra CLI,以及在没有子命令的终端中运行 whisper 时出现的全屏 Bubble Tea TUI。它还可连接到 whisper.security 图谱:使用 whisper query 执行原始 Cypher 查询,使用 whisper graph 访问包含 29 个配方的目录(见下文查询安全图谱)。
无需账户,即可通过 AI 助手使用
无需 API 密钥,也无需安装。在客户端配置中添加以下内容,即可看到五个工具,而且这五个工具无需密钥即可使用。在机器上通过环境变量或运行一次 whisper login 添加密钥后,同一服务将列出 45 个工具:
{
"mcpServers": {
"whisper": {
"command": "npx",
"args": ["-y", "@whisper-security/whisper-mcp"]
}
}
}
Claude Desktop、Claude Code、Cursor、Windsurf、VS Code、Cline 和 Zed 都使用相同的三行配置。已经安装 CLI?whisper mcp 就是相同的服务。
以下五个工具在机器上的任何位置都没有密钥时,对照服务进行过测试:
whisper_verify- 检查该地址或主机名是否属于真实 Agent,以及其所属对象。它会从 IANA 根开始,针对 DNSSEC 签名的 DNS 检查 DANE 固定记录。whisper_rdap- 任意/128地址的公共注册记录。whisper_assess- 对域名、IP、ASN 或文件哈希给出判定及相关证据。whisper_identify- 识别指标的类别、供应商和级别。whisper_explain- 提供判定背后的评分说明及其来源。
添加密钥后,同一服务将列出 45 个工具:完整图谱,以及注册 Agent、设置解析器策略、下发出口配置、读取每个 Agent 的活动记录和撤销身份等功能。
或连接到 URL,无需运行任何程序
https://whisper.online/mcp
大多数客户端只需提供该 URL,无需其他设置。例如,在 Claude Code 中运行:
claude mcp add --transport http whisper https://whisper.online/mcp。
使用 Streamable HTTP。initialize 和 tools/list 无需凭据即可响应,因此支持直接填写 URL 的客户端无需其他设置。这是与上述服务不同的另一个服务,列出的工具也不同:无密钥时有 17 个工具,每个工具都无需密钥即可使用;发送 X-API-Key 标头中的密钥后,则有 39 个工具。
无密钥即可使用的 17 个工具包括身份检查和图谱工具:whisper_verify、whisper_rdap、whisper_assess、whisper_identify、whisper_explain、whisper_walk、whisper_watch、whisper_variants、whisper_origins、whisper_history、whisper_asset、whisper_psl、whisper_threatintel、whisper_lookupTlsFingerprint、whisper_lookupTorRelay、whisper_topAsnsByPrefixCount,以及仅凭电子邮件地址即可为你签发 API 密钥的 whisper_signup。添加密钥后增加的 22 个工具属于配置和治理类,其中 21 个是 whisper_agents_*,第 22 个是 whisper_submit,它会向图谱写入声明,因此需要可追溯到具体提交者。
whisper_verify 和 whisper_rdap 用于检查其他人的 Agent。带密钥工具集中的 whisper_agents_verify 则用于验证你控制的域名,两者并不相同。
验证其他人的 Agent 无需任何东西,甚至无需客户端:
curl -s https://rdap.whisper.online/verify-identity/2a04:2a01:b69a:6717:e3b0:51ff:3bf7:f478
安装
这条一行命令会直接从此仓库的 GitHub Releases 获取经过签名的二进制文件,
验证其 SHA-256(如果系统中有 gpg,还会验证其 PGP 签名),并将其放入你的
PATH:
curl -fsSL https://get.whisper.online | sh
Windows(PowerShell):
irm https://get.whisper.online/install.ps1 | iex
Homebrew(macOS/Linux):
brew install whisper-sec/tap/whisper
Scoop(Windows):
scoop bucket add whisper https://github.com/whisper-sec/scoop-bucket
scoop install whisper
使用 Go:
go install github.com/whisper-sec/whisper-cli/cmd/whisper@latest
使用 mise(GitHub-release 后端,无需插件):
mise use -g "github:whisper-sec/whisper-cli[exe=whisper]"
(asdf 没有内置的 GitHub-release 后端,因此使用 asdf 时请改用 mise,或使用社区提供的
ubi 风格插件。)
在 Debian/Ubuntu 上(apt)——签名仓库:
curl -fsSL https://get.whisper.online/whisper.gpg | sudo tee /usr/share/keyrings/whisper.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/whisper.gpg] https://get.whisper.online/deb stable main" | sudo tee /etc/apt/sources.list.d/whisper.list
sudo apt update && sudo apt install whisper
在 Fedora/RHEL 上(dnf)——签名仓库:
sudo tee /etc/yum.repos.d/whisper.repo >/dev/null <<'EOF'
[whisper]
name=Whisper
baseurl=https://get.whisper.online/rpm
enabled=1
gpgcheck=1
gpgkey=https://get.whisper.online/whisper.gpg
EOF
sudo dnf install whisper
在 Alpine 上(apk)——签名仓库:
wget -qO /etc/apk/keys/whisper-apk.rsa.pub https://get.whisper.online/apk/whisper-apk.rsa.pub
echo "https://get.whisper.online/apk" | sudo tee -a /etc/apk/repositories
sudo apk add whisper
这三个仓库均由我们自己的基础设施(AS219419)提供,并使用 Whisper 软件包密钥签名(get.whisper.online/whisper.gpg;apk 仓库使用自己的
whisper-apk.rsa.pub)。
或者从发布页面下载适用于你平台的二进制文件,将其设为可执行文件,并放入你的
PATH。
安装脚本(
scripts/install.sh、scripts/install.ps1)发布在此处,方便检查整个安装流程。它们与get.whisper.online提供的脚本相同,唯一的区别是默认下载源:这些脚本从此仓库的发布页获取whisper-<os>-<arch>(以及.sha256和.asc),而在线提供的副本则从cli.whisper.online/dl获取相同的二进制文件。无论哪种方式,SHA-256 校验都是硬性门槛——不匹配就会中止安装——而 PGP 校验则是额外的保障。将WHISPER_CLI_BASE指向任意镜像即可覆盖来源。
验证下载文件
发布版本使用 AS219419 PGP 密钥签名:
Fingerprint: EFF1663D992539682106A5EAD0F70908CF3B7929
公钥发布于 https://as219419.net/。要验证手动下载的二进制文件:
# 1. SHA-256 - compare against the asset's .sha256 (and the release checksums.txt)
sha256sum -c whisper-linux-amd64.sha256
# 2. PGP - import the AS219419 key, then verify the detached signature
curl -fsSL https://as219419.net/whisper-release.asc | gpg --import
gpg --verify whisper-linux-amd64.asc whisper-linux-amd64
有效签名会显示由上述指纹对应密钥签发的 Good signature。
快速入门
不带参数运行 whisper 即可进入引导流程。它会为你登录(通过浏览器设备登录或粘贴 API 密钥),如果你还没有 Agent,则会帮助你为其命名并创建,然后建立连接并进行验证:
$ whisper
whisper: signed in.
whisper: name your agent: my-first-agent
whisper: created my-first-agent → 2a04:2a01:…::1
whisper: connecting…
2a04:2a01:…::1 ✓ egress verified
Connected ✓
命名是必须的——Agent 的名称是其身份的一部分,因此流程会在创建前询问你。同样的步骤也可以通过脚本执行:
whisper connect # bring up egress bound to your /128 (Tier-1.5 SOCKS5/HTTPS)
whisper connect --tier wireguard # Tier-1: routed /128 over a userspace WireGuard tunnel (no root)
whisper ip # print your egress IP and verify it IS your /128 (exit 0 = verified)
whisper run -- curl ifconfig.co # run any command with your Whisper egress wired in
whisper claude # run Claude Code through your Whisper egress, one step
whisper init claude # wire THIS project so Claude Code always egresses from its own /128
whisper use my-agent # choose the agent the rest of `whisper` binds to
whisper status # key state, selected agent, connection state
whisper ip 以退出码为准:当检测到的出口地址位于
2a04:2a01::/32 且 与你所选 Agent 的 /128 相等时返回 0,否则返回 1——因此脚本和 Agent 可以据此进行判断。为任何命令添加 --json,即可获取原始、可供脚本处理的结果封装。
Claude Code 的项目级 Agent 身份。 whisper init claude 可让项目实现零配置:在某个目录中运行一次后,Claude Code 及其启动的每个子 Agent 都会通过该项目专属的 /128 出口连接,使用 SOCKS5(默认方式)或 --tier wireguard。它会将项目的 Agent 和层级固定写入 .whisper/config,在 .claude/settings.local.json 中配置本地代理(安全合并——绝不会覆盖你的设置),并通过轻量的自动重连守护进程保持连接。不同项目使用不同身份,无需记忆任何配置。传入 --agent <name|/128> 可复用现有 Agent,或传入 --name <new> 创建新 Agent。
其他实用命令:whisper list、whisper logs、whisper policy、`whisper rdap
查询安全图谱
Whisper 解析器每次查询都会使用的同一个 whisper.security 图谱——包含 7.5B 个节点(主机名、IP、ASN、证书、威胁情报)和 39.8B 个关系——也是一流的 CLI 接口。whisper query 执行原始参数化 Cypher;whisper graph 执行嵌入式目录中的命名配方:
whisper query "CALL whisper.identify(['api.openai.com'])" # who operates this host?
whisper query 'CALL whisper.assess([$v])' --param v=8.8.8.8 # threat posture, one row per host
whisper graph list # all 29 recipes, each with its docs URL
whisper graph variants paypal.com # registered typosquat look-alikes, one table
whisper graph typosquat paypal.com # the full brand-impersonation flow (streams NDJSON)
直接配方会返回一个结果表(--json 会输出原始的 {columns,rows,statistics} 封装);流程配方会将各步骤以 NDJSON 流式输出——可将其传递给 jq。每个配方都有自述文档:whisper graph <recipe> --help。
query 和 graph 使用你的 API 密钥进行身份验证(whisper login、WHISPER_API_KEY 或 --key)。图谱端点本身采用双层模式:直接读取操作(whisper.identify、whisper.assess、whisper.variants、whisper.explain、db.schema 等)也支持无需密钥且有速率限制的访问——无需账户:
curl -s https://graph.whisper.online/api/query \
-H 'content-type: application/json' \
-d '{"query":"CALL whisper.assess([\"8.8.8.8\"])"}'
使用密钥可解除速率限制,并启用原始 Cypher 和多步骤流程。同样的工具也可通过 MCP 服务调用(whisper mcp):whisper_graph_query,以及每个配方对应的一个工具。文档:www.whisper.security/docs——原始 Cypher API 见 /docs/cypher-api,各操作的页面见 /docs/whisper-graph。
以你的 Agent 身份签名、验证和加密
你的 Agent 的 /128 携带一个专属的 Agent EC P-256 密钥,并固定在 DNSSEC 签名的 DNS 中——因此它可以以自身身份签名文档,任何人都可以验证,无需账户或证书颁发机构。信任由 DANE 锚定,而不依赖你必须安装的 CA。
# Sign any file, PDF or email as your agent -> a detached S/MIME (.p7s):
whisper sign file contract.pdf
# Verify with NO key: checks the CMS signature AND that the signer's key matches the
# DNSSEC-validated SMIMEA (RFC 8162) pin for the signer - resolved from the IANA root, in-process:
whisper sign verify contract.pdf --sig contract.pdf.p7s
# Encrypt a file so ONLY the named agent can read it (keyless), then decrypt as that agent (keyed):
whisper encrypt --to [email protected] secret.txt # -> secret.txt.wenc
whisper decrypt secret.txt.wenc
陌生人解析到的专属 Agent 验证密钥是 Agent 的 DANE TLSA 3 1 1(用于签名时还包括 SMIMEA 3 1 1)——两者均由 DNSSEC 签名,可使用 dig + openssl 检查,无需 Whisper 账户。完整指南(包括逐字节精确的签名封装):https://whisper.online/docs/sign-encrypt。
你将获得
- 一个真正可路由的
/128,来自2a04:2a01::/32,由 AS219419 宣告——这是你自己的互联网地址,而非共享 NAT 地址池。 - 可从外部验证的身份。 正向 DNS 由 DNSSEC 签名并通过 DANE 固定;反向 DNS(
ip6.arpaPTR)解析到该 Agent;此分配可在公共 RDAP rdap.whisper.online 中查看。 - 与身份绑定的出口流量。
whisper connect会配置一个本地代理,其流量源自你的/128;whisper ip可证明源地址属于你,无需节点,也无需第三方参与。--tier wireguard会通过用户空间 WireGuard 隧道将/128配置为路由地址(wireguard-go netstack——仍然无需 root、内核wg或 TUN 设备),并由同一个本地代理作为入口,因此工具无需更改。 - 单个二进制文件,零配置。 静态编译、不依赖 CGO,并内嵌 CA 证书包——可在裸机或精简容器中直接运行。
在代码中使用
使用你选择的语言,获取相同的身份和出口流量——这些是此 CLI 的轻量封装:
Python - pip install whisper-id
from whisper_id import register, egress
agent = register("my-bot") # a routable /128
with egress(): # this block leaves from your /128
requests.get("https://api64.ipify.org")
Node - npm i whisper-id
import { register, withEgress } from "whisper-id";
const agent = await register("my-bot");
await withEgress(async () => { /* env-aware clients leave from your /128 */ });
在容器中运行
官方镜像会将 CLI 作为出口 sidecar 运行,让任意容器都通过你的 /128 发出流量:
docker run --rm ghcr.io/whisper-sec/whisper:latest --version
whisper init compose 和 whisper init k8s 会生成可直接合并的 sidecar 清单。支持多架构(amd64/arm64),采用 distroless,大小约为 18 MB。
从源代码构建
需要 Go 1.26.9+。
git clone https://github.com/whisper-sec/whisper-cli
cd whisper-cli
go build -o whisper ./cmd/whisper
./whisper --version
将所有受支持的平台交叉编译到 dist/(二进制文件 + .sha256,命名与发布资源完全一致):
./build-all.sh # → dist/whisper-<os>-<arch>[.exe] + .sha256
./build-all.sh dist v1.0.0 # stamp a version into `whisper --version`
platforms.txt 是目标矩阵的唯一事实来源,由 build-all.sh 和安装程序共用。
源码在这里,二进制文件在那里
此仓库是 Whisper 客户端:身份、出口、连接、验证、安全图界面和 TUI。它采用 MIT 许可证,你从中构建的就是这个客户端。
已发布的二进制文件不止包含这些。whisper 还包含 Whisper 的端点传感器——service、sensor 和 posture 命令;目前该传感器并非开源。它以二进制文件形式发布,源代码保持闭源,因此从发行版、curl -fsSL https://get.whisper.online | sh 或 apt、dnf、apk、brew、scoop 获取的二进制文件都包含这些命令。从此代码树构建的任何内容都不包含这些命令:go install、本地 go build,以及从源代码构建的 snap。
有两点值得明确说明。MIT 许可证涵盖此仓库中的源码,不涵盖已发布二进制文件中额外包含的闭源组件。如果你需要端点传感器,请安装已发布的二进制文件,而不要从源代码构建。
平台
| OS \ Arch | amd64 | arm64 | arm | riscv64 | mips | mipsle | 386 |
|---|---|---|---|---|---|---|---|
| linux | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| darwin | ✓ | ✓ | |||||
| windows | ✓ | ✓ |
linux-arm 是 32 位 ARMv7。所有目标都是静态、无 CGO 的构建,并且均使用 AS219419 发布密钥签名。
链接
- Whisper - whisper.online
- 文档(图操作流程、配方、Cypher API) - www.whisper.security/docs
- 注册表 / NIC - nic.whisper.online
- RDAP - rdap.whisper.online
- AS219419(发布签名密钥、网络信息) - as219419.net
贡献
欢迎提交问题和拉取请求——请参阅 CONTRIBUTING.md。提交 PR 前,请运行
go build ./...、go vet ./...、go test ./... 和 gofmt -l .。
报告安全问题,请参阅 SECURITY.md。
许可证
MIT © 2026 viaGraph B.V.(Whisper Security)——适用于此仓库中的源码。已发布的二进制文件还包含闭源端点传感器;请参阅源码在这里,二进制文件在那里。
内嵌的 Mozilla CA 证书列表
(internal/client/cabundle/mozilla-cacert.pem)依据 Mozilla Public
License 2.0 分发。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。