KeyValet 是 macOS 上给 AI agent 用的本地凭证代管。Claude Code、Codex、Cursor 等 MCP agent 可以使用你的 API key 和 OAuth 账号,却看不到它们:秘密留在 Secure Enclave 保护、只有 root 能读的凭证库里,由你用 Touch ID 批准——按凭证或按次——逐次弹窗显示的是真实请求。
代客钥匙能开车,打不开后备箱。
开源(Apache-2.0),免费。完全在你的 Mac 上运行,支持任何 MCP 客户端。
openai/mainGET api.openai.com/v1/models钥匙留在 KeyValet 手里,agent 只拿到结果。
四步完成,秘密始终留在只有 root 能读的凭证库里。
通过 MCP 说明要用哪个凭证、为了什么。
Touch ID 弹窗显示凭证和这次授权放开的能力。逐次模式下显示真实请求——方法、域名、路径,以及已知 API 的关键业务字段——按一次,只授权这一笔。
root 进程注入 key,只发往你允许的域名,并抹掉响应里回显的秘密。
返回响应,记录会话、目的和结果。会话结束,授权随之失效。
把 key 写进 .env 或贴进对话,等于交出了万能钥匙。
| 万能钥匙:.env、贴进对话的 key | 代客钥匙:KeyValet | |
|---|---|---|
| agent 看到什么 | 明文 key,留在上下文和日志里 | 只有响应。长期秘密不出 root 进程。 |
| 谁来决定 | 没人,文件能读就能用 | 你,按 Touch ID 批准——每次、每个凭证或每个会话 |
| 能发往哪里 | agent 发到哪就是哪 | 只能发往你允许的域名,不跟随跳转 |
| 事后能查到什么 | 什么都查不到 | 每次使用的会话、目的和结果,写在只有 root 能读的审计日志里 |
| 存在哪里 | 明文文件,或别人的云上 | 你 Mac 上 Secure Enclave 保护、只有 root 能读的加密凭证库 |
agent 拿到的是短期 token 或代理后的响应。refresh token、私钥和种子都留在凭证库里。
OPENAI_BASE_URL 风格),支持流式输出,程序拿不到真实 key。钥匙不会自己走进凭证库,所以 KeyValet 帮你把它们找出来。
.env*、~/.claude.json、.cursor/mcp.json、~/.codex/config.toml 和 shell 启动文件里找可能的密钥;勾选后按匹配模板导入为「仅代理」,并从原文件移除(留备份)。凭证工具应该讲清楚自己的边界。完整的安全模型见 SECURITY.md,或本站的安全摘要。
credential_get 取出的值会进入 agent 的上下文。一条命令。它会下载由 Simvito Limited Developer ID 签名的发布包并校验 SHA256SUMS,要你输一次密码,并自动配置好已安装的 Claude Code、Codex、Cursor、Grok、Devin CLI。重跑即可升级。
curl -fsSL https://keyvalet.dev/install.sh | sh
需要 Apple Silicon、macOS 14+(Intel 可从源码构建)。卸载:curl -fsSL https://keyvalet.dev/install.sh | sh -s -- --uninstall
然后直接对 agent 说:
“用 KeyValet 的 openai 模板保存我的 OpenAI key。”
“用 KeyValet 列出我的 OpenAI 模型。”
key 由你在原生对话框里输入,使用时由你用 Touch ID 批准。agent 始终看不到它。