关于 Keyblind
Keyblind 是面向 AI Agent 的加密密钥库,可在运行时解析密钥,而不将明文放入 LLM 对话记录。开发者可在本地管理密钥、使用支持的后端,并通过 MCP 向 Agent 提供密钥库操作。
主要功能
- 01加密并存储密钥
- 02解析密钥而不暴露于对话记录
- 03配置 MCP 客户端
- 04将 .env 值替换为确定性假值
- 05管理团队密钥库和审计操作
- 06使用多种密钥后端
适用场景
- 01让 Agent 使用 API 凭据而不暴露在聊天中
- 02用虚假环境值测试项目
- 03在团队内共享和管理密钥
- 04审查 Agent 的密钥访问和操作
MCP 相关
Keyblind 是 MCP 服务,提供密钥存储、运行时解析、沙盒、团队密钥库、TOTP 和审计等工具。其配置命令可设置受支持的 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Keyblind——让 AI 盲用你的密钥
适用于 AI Agent 的加密密钥库,支持 MCP。一条命令即可配置所有编辑器。密钥在运行时解析,绝不会泄露到 LLM 对话中。
为什么
开发者经常会将 API 密钥、密码和令牌泄露给 AI 编码工具。2025 年,搜索引擎发现有超过 100,000 段包含泄露密钥的 LLM 对话被编入索引。
AI Agent 会读取你的 .env 文件,将密钥复制粘贴到对话中,甚至会意外提交这些密钥。Keyblind 通过静态加密保存密钥,并在_运行时_解析密钥来防止这种情况——明文值绝不会出现在 LLM 对话记录中。
工作原理
┌──────────┐ ┌────────────────┐ ┌─────────────────┐
│ AI Agent │ ──→ │ Keyblind MCP │ ──→ │ Encrypted │
│ (Claude) │ │ Server │ │ SQLite Vault │
│ │ ←── │ (27 tools) │ ←── │ (AES-256-GCM) │
└──────────┘ └────────────────┘ └─────────────────┘
↑ │
│ secret value never appears │ secrets never
│ in conversation transcript │ stored in plaintext
快速开始
# 1. Install
npm i -g keyblind
# 2. One-command setup (initialize vault + configure Claude Code)
keyblind quickstart
# 3. Store secrets
echo "sk-proj-abc123" | keyblind set OPENAI_API_KEY
keyblind set DATABASE_URL - # prompts securely
# 4. Sandbox your .env (AI agents see fakes)
keyblind sandbox
# 5. Resolve a secret
keyblind get OPENAI_API_KEY
# 6. Run commands with secrets injected as env vars
keyblind run -- npm start
# 7. List all secrets (names only, values hidden)
keyblind list
就这么简单。 执行
keyblind quickstart后,重启 Claude Code。然后只需说 “列出我的 keyblind 密钥” 或 “使用我的 OPENAI_API_KEY”——AI Agent 就会在运行时解析密钥,而密钥绝不会出现在对话记录中。
MCP 服务
Keyblind 以 MCP 为先——它适用于所有支持模型上下文协议的 AI 工具(Claude Code、Cursor、Copilot、Windsurf、Cline、Zed)。
设置(自动)
keyblind setup-mcp
此命令会自动配置 Claude Code、Cline 和 Zed,以使用 Keyblind。可在任意目录中运行。
对于项目本地编辑器(Cursor、Windsurf、Copilot、Cline 项目模式),请在项目根目录中运行:
keyblind setup-mcp --local
详情和手动设置方法请参阅针对各编辑器的配置。
设置(手动)
在项目根目录中添加 .mcp.json,或使用 claude mcp add:
claude mcp add --scope user keyblind -- keyblind start
启用生物识别验证(解析密钥前需要验证 Touch ID):
keyblind unlock # Authenticate first
claude mcp add keyblind -- keyblind start --biometric
会话在 15 分钟后过期。需要 Pro 或 Team 许可证。
MCP 工具
| 工具 | 描述 |
|---|---|
resolve_secret | 在运行时解析密钥(值不会显示在对话记录中) |
store_secret | 加密并存储密钥 |
list_secrets | 列出密钥名称(绝不显示密钥值) |
delete_secret | 删除密钥 |
sandbox_env | 将 .env 值替换为确定性模拟值 |
unsandbox_env | 从密钥库恢复 .env 中的真实值 |
audit_log | 查看密钥解析审计记录 |
totp_code | 为已存储的配置生成 TOTP 双重身份验证代码 |
totp_store | 从 otpauth:// URI 存储 TOTP 配置 |
totp_list | 列出所有已存储的 TOTP 配置 |
totp_delete | 删除 TOTP 配置 |
create_share_link | 为密钥创建加密且会过期的分享链接 |
receive_share | 接收并解密分享的密钥 |
deadman_status | 检查死手开关状态 |
deadman_checkin | 重置死手开关计时器 |
team_init | 创建共享团队密钥库(加密的 SQLite) |
team_push | 将本地密钥推送到团队密钥库 |
team_pull | 从团队密钥库导入所有密钥 |
team_list | 列出团队密钥库中的密钥名称 |
team_resolve | 解析(解密)团队密钥库中的密钥 |
team_delete | 删除密钥库中的密钥 |
sso_status | 检查 SSO/OIDC 身份验证状态 |
register_agent | 注册绑定到人类担保人的 AI Agent |
record_action | 向防篡改账本追加已签名操作 |
verify_ledger | 验证账本完整性(哈希链 + 签名) |
list_agents | 列出已注册的 AI Agent |
export_compliance | 将 Agent 账本导出为合规报告 |
Web 控制面板
通过浏览器管理你的密钥——无需登录或配对。打开本地控制面板:
keyblind dashboard
这会启动本地服务器,并在浏览器中打开 http://localhost:4318/。控制面板与 REST API 由同源地址提供服务,因此可在所有浏览器中使用,无需 CORS、配对令牌或登录。功能包括:
- 查看、添加、复制和删除密钥
- 审计日志,包含完整的访问历史
- 许可证管理(层级、电子邮件、到期时间)
- Pro/Team 层级状态
- 按密钥设置访问策略和轮换提醒
- Agent 操作审批(批准/拒绝排队等待的 Agent 写入操作)
- 中央控制平面(全组织可见性 + 签名撤销)
托管控制平面(hosted/)增加了组织、角色、群组、签名撤销 + 群组范围清单、多提供商 SSO 登录(支持组织自动配置、多组织切换和 IdP 会话结束撤销),以及短期有效的 Agent 凭据。参见 docs/enterprise.md(阶段 2)。
浏览器扩展
Keyblind Chrome 扩展可检测并阻止将密钥粘贴到 AI 聊天界面(Claude.ai、ChatGPT、Copilot)中。
功能:
- 检测 12 种以上的 API 密钥格式(OpenAI、GitHub、Stripe、AWS 等)
- 拦截 AI 聊天网站上的粘贴事件
- 检测到密钥时显示警告横幅
- 弹出窗口显示保险库连接状态
位于 browser-extension/。从 chrome://extensions 加载未打包的扩展程序。
定价
| 免费版 | Pro | Team | |
|---|---|---|---|
| 价格 | $0 | $79/年 | $29/用户/月 |
| 密钥 | 5 | 无限 | 无限 |
| 本地保险库 | ✓ | ✓ | ✓ |
| 沙盒 / 取消沙盒 | ✓ | ✓ | ✓ |
| MCP 服务 | ✓ | ✓ | ✓ |
| 控制面板 | ✓ | ✓ | ✓ |
| 浏览器扩展 | ✓ | ✓ | ✓ |
| 7 种后端 | ✓ | ✓ | ✓ |
| 团队保险库 | — | ✓ | ✓ |
| 审计日志 | — | ✓ | ✓ |
| 密钥共享 | — | ✓ | ✓ |
| 身后开关 | — | ✓ | ✓ |
| TOTP 双重身份验证 | — | ✓ | ✓ |
| 生物识别门禁 | — | ✓ | ✓ |
| SSO/OIDC | — | — | ✓ |
| CI/CD 集成 | — | ✓ | ✓ |
# Buy a license at keyblind.dev, then activate:
keyblind activate <your-license-key>
# Check your status
keyblind status
后端
Keyblind 支持多种密钥后端:
keyblind backends # List available backends
keyblind backend 1password # Switch to 1Password
keyblind backend bitwarden # Switch to Bitwarden
| 后端 | 读取 | 写入 | 依赖项 |
|---|---|---|---|
| local(默认) | ✓ | ✓ | 无 |
| 1password | ✓ | ✓ | op CLI |
| bitwarden | ✓ | — | bw CLI |
| env | ✓ | — | 无 |
| aws | ✓ | ✓ | aws CLI |
| gcp | ✓ | ✓ | gcloud CLI |
| azure | ✓ | ✓ | az CLI |
Keyblind 与 Cloak 对比
| Keyblind | Cloak | |
|---|---|---|
| 协议 | MCP(所有编辑器) | 仅 VS Code 扩展 |
| 编辑器 | Claude Code、Cursor、Copilot、Windsurf、Cline、Zed | VS Code、Cursor |
| 存储 | AES-256-GCM SQLite | AES-256-GCM 文件 |
| 后端 | Local、1Password、Bitwarden、Env、AWS、GCP、Azure | 仅 Local |
| 沙盒 | 确定性 HMAC 假数据 | AES-256-GCM 加密 |
| Web 控制面板 | ✓(localhost:4318) | — |
| 浏览器扩展 | ✓(Chrome) | — |
| TOTP 双重身份验证 | ✓ | — |
| 密钥共享 | ✓(加密 URL 片段) | — |
| 身后开关 | ✓ | — |
| Touch ID | ✓(macOS 生物识别门禁) | ✓ |
| CI/CD | 用于注入环境变量的 keyblind run | — |
| 网络 | 零(完全本地) | 零 |
| 许可证 | MIT | 专有 |
| 免费层级 | ✓(5 个密钥) | ✓ |
| Pro | $79/年(无限) | — |
安全性
- AES-256-GCM 加密,使用 PBKDF2 派生密钥(600K 次迭代)
- 绑定机器身份的密钥——加密密钥通过机器指纹进行 XOR 封装
- 零网络、零遥测——无云服务、无账户、无分析
- 保险库存储在
~/.keyblind/,权限为0700 - 确定性沙盒假数据,按项目 + 密钥名称使用 HMAC-SHA256 生成
验证安装
发布版本通过 GitHub Actions 构建并发布,附带 npm 来源证明,可证明 tarball 是由此代码库的 CI 而非开发者的机器生成的。
npm audit signatures # Verify npm registry signatures
如需验证某个发布版本的构建来源,请打开 https://github.com/aarifmms/keyblind/releases 发布页面,并查看“Provenance”和 “Attestations”部分,其中的链接会将 tarball 与构建它的确切提交和工作流运行关联起来。
- 依赖关系图较小 — CLI 仅依赖三个软件包(MCP SDK、
better-sqlite3、zod)。仅服务端使用的依赖(Stripe、Resend、Vercel CLI)位于
hosted/和dashboard/软件包中,执行npm i -g keyblind时不会安装这些依赖。 - 没有源映射 — 发布的 tarball 包含编译后的 JavaScript,不含嵌入的原始源代码。
CLI 参考
keyblind quickstart One-command setup (init + configure Claude Code)
keyblind init Initialize the encrypted vault
keyblind set <name> Store a secret (value from stdin)
keyblind set <name> - Store a secret (prompts securely)
keyblind get <name> Resolve and print a secret
keyblind list List all stored secrets
keyblind delete <name> Delete a secret
keyblind setup-mcp Auto-configure MCP for Claude Code, Cline, Zed
keyblind setup-mcp --local Write project MCP configs (Cursor, Windsurf, Copilot, Cline)
keyblind sandbox [.env] Replace .env with deterministic fakes
keyblind unsandbox [.env] Restore real .env values
keyblind run <command...> Run command with secrets as env vars
keyblind start Start MCP server (stdio — for AI agents)
keyblind start --http Start HTTP server (dashboard + MCP + REST API)
keyblind dashboard Open the web dashboard in your browser
keyblind start --biometric Start MCP server with biometric requirement
keyblind backends List available backends
keyblind backend <name> Switch backend
keyblind activate <key> Activate a Pro/Team license
keyblind deactivate Remove current license
keyblind status Show license and vault status
keyblind audit Show secret resolution audit log
keyblind check --expired List secrets past expiry
keyblind rotate <name> Update a secret value
keyblind rotate <name> --generate Rotate with an auto-generated value
keyblind rotate <name> --exec "<cmd>" Rotate via an external command's stdout
keyblind rotate --overdue [days] Rotate all secrets past the threshold
keyblind rotate-needed [days] List secrets not rotated in N days (default 90)
keyblind agents list List registered AI agents
keyblind agents register <name> <sponsor> [scope] Register an agent (prints signing key)
keyblind agents verify Verify agent ledger integrity
keyblind agents export [json|csv] Export compliance report
keyblind agents enforce on|off Require signed agent identity for secret access
keyblind policy set <secret> <policy> Restrict which agents may access a secret
keyblind policy list List per-secret policies
keyblind approvals list List pending approval requests
keyblind approvals approve <id> Approve and execute a pending request
keyblind approvals deny <id> Deny a pending request
keyblind approvals require on|off Require approval for all agent writes
keyblind approvals require <secret> Require approval for a specific secret
keyblind approvals unrequire <secret> Stop requiring approval for a secret
keyblind control-plane init Generate the org signing keypair
keyblind control-plane export Export a signed, value-free control-plane bundle
keyblind control-plane trust <pubkey> Trust an org public key (honor its deny list)
keyblind control-plane untrust <pubkey> Remove a trusted org public key
keyblind control-plane trusted List trusted org public keys
keyblind control-plane apply <file> Import a signed deny list (revoked agents)
keyblind control-plane revoke <agentId> [reason] Revoke an agent locally
keyblind control-plane unrevoke <agentId> Un-revoke an agent locally
keyblind control-plane connect <url> Connect to a hosted control plane (org API base)
keyblind control-plane sync Pull + apply the signed manifest (deny list + group grants)
keyblind control-plane disconnect Forget the hosted control-plane connection
keyblind control-plane status Show the current connection (if any)
keyblind scan-repo [--all] Scan tracked files (or full history) for secrets
keyblind setup-ci Write a GitHub Actions secret-scan workflow
keyblind ci export Export an encrypted bundle for CI injection (Pro)
keyblind ci inject Decrypt a bundle and write secrets to $GITHUB_ENV
keyblind ci setup Write a GitHub Actions workflow for CI injection
keyblind team init [path] Create a shared team vault
keyblind team push <name> Push a secret to team vault
keyblind team pull Pull secrets from team vault
keyblind team list List secrets in team vault
keyblind totp set <name> Store TOTP 2FA config
keyblind totp code <name> Generate current TOTP code
keyblind totp list List all TOTP configs
keyblind totp delete <name> Delete a TOTP config
keyblind share <name> Create encrypted share link
keyblind receive <url> Receive a shared secret
keyblind deadman setup Configure dead man's switch
keyblind deadman checkin Reset dead man's switch timer
keyblind deadman status Show dead man's switch status
keyblind deadman disable Disable dead man's switch
keyblind sso configure Set up SSO/OIDC for team access
keyblind sso login Authenticate via browser SSO
keyblind sso logout Clear SSO session
keyblind sso status Show SSO auth status
keyblind doctor Run vault health check
keyblind generate <name> Generate a strong random secret
keyblind import [.env] Bulk import from .env file
keyblind export Export all secrets
keyblind completions [shell] Generate shell completion script
开发
git clone https://github.com/aarifmms/keyblind.git
cd keyblind
npm install
npm run build # Compile TypeScript
npm test # Run tests
npm run dev # Watch mode
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。