让智能体碰生产环境。密钥留在手里。
Sallyport 把你的凭证存放在本地密钥库里,替智能体执行 API 调用和 SSH 命令。你点按一下或用 Touch ID 就能批准运行。没有任何命令能显示已存储的密钥,也没有导出按钮。
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon · Apache-2.0 · 免费 · 无需账户 · 无需云服务
为放手让 Claude Code、Cursor 或 Codex 碰真实基础设施的工程师打造
就在当前工作位置完成批准
此密钥每次使用都需要批准。调用会等待你的决定。
⏺ sallyport · http.request
PATCH api.cloudflare.com/client/v4/zones/…/dns_records
⎿ 密钥 cloudflare · 已标记 每次调用均需批准
⎿ 正在等待批准…
需要批准
http.request → api.cloudflare.com
claude ← node ← zsh
你的智能体现在就能读取你的密钥
.env 里的 API 令牌、磁盘上的 SSH 密钥、配置文件里的 OAuth 授权,智能体和它拉取的每一个软件包都能读取,而一个被投毒的 README 就能把它们统统卷走。
机密信息一览无余
.env 和 shell 变量里的令牌、磁盘上的 SSH 密钥、配置文件里的 OAuth 令牌,智能体、它的子进程,以及今天 npm 装进来的一切,都能读取。
提示词注入变成盗窃
一个恶意网页或 README 让智能体把令牌发往新的地址,智能体照办不误。它天生就是用来服从指令的。
从账单上才发现
没有网关,就没有记录能告诉你智能体发起了哪些调用、发往了哪里、携带了什么。被盗的密钥几周后才浮出水面,而且时间由别人说了算。
这些都真实发生过
2026年5月
TanStack npm 攻击
跨 42 个软件包的 84 个恶意版本在安装时收集云凭证、GitHub 令牌和 SSH 密钥,再借受害者自己的软件包继续扩散。
2025年末
Shai-Hulud 蠕虫
被攻陷的 npm 软件包在安装时窃取机密信息,再用窃得的凭证感染下一批软件包。
2025年8月
Nx S1ngularity
一款被投毒的构建工具扫描开发者机器搜寻机密信息,试用本地 AI 工具,并借 GitHub CLI 把窃得的数据传送出去。
这三起事件都从环境变量和磁盘上的文件中窃取密钥。Sallyport 让这两处都不存在可用的密钥。
你的智能体根本不需要密钥
智能体发来一个请求:调用这个 API,在那台主机上运行这条命令。Sallyport 在 App 内部附上凭证、执行调用并返回结果。密钥从不出现在智能体的环境中,而一份密封的审计日志会记录运行了什么、由谁批准。
固定决策阶梯
每个操作都沿着同一套编译固化的阶梯向上。没有可以配错的策略语言,也没有会腐坏的规则引擎;可选的允许列表能让你信任的代码身份跳过会话提示。
信任模型
密钥库门控
密钥库是绝对门槛
密钥库初始处于锁定状态。Secure Enclave 和 Touch ID 对其数据访问实施门控。解锁之前,Sallyport 会拒绝所有操作。
每次调用均需批准的密钥
标记的密钥每次都会请求批准
标记为“每次调用均需批准”的密钥,每次使用都需要点按或 Touch ID 确认,即使在已批准的会话中也是如此。
会话门控
每次智能体运行只需批准一次
新的智能体进程会显示一张卡片,其中包含其代码签名方。批准有效期至进程退出、你撤销批准或密钥库锁定。
观察
运行并记录
关闭会话批准后,操作无需会话卡片即可运行,但仍会记录到审计日志中。
密钥库门控、每次调用均需批准的密钥、会话门控、观察。
一切都装进一款已签名的 App
一款已签名的 Mac App 就装下了密钥库、批准机制和审计日志。无需创建账户,背后也没有任何云服务。
绝对密钥库门控
密钥库锁定时,除查询状态外,Sallyport 会拒绝智能体的所有操作和全部管理操作。
存储时加密
密钥库会加密密钥名称、提供方、主机绑定、SSH 主机清单、设置和机密值。
进程来源信息
每张卡片都会显示调用方的代码签名方和父进程链,包括任何未签名进程。
使用 Touch ID 确认更改
配置更改可以要求使用 Touch ID。模拟点击无法通过生物识别提示。
盲写审计日志
Sallyport 在写入智能体运行记录和每次调用活动时对其加密,再通过哈希链连接密文。
可查看完整命令的 SSH
Sallyport 能看到完整的 SSH 命令、检查主机密钥并对会话录制进行密封。私钥始终留在 App 内。
观察模式
观察模式会移除会话卡片,但仍保留密钥库门控、每次调用批准机制和审计日志。
无法恢复
密钥库无法导出或显示凭证,也没有恢复密钥。如果你失去对密钥库的访问权限,请让相应提供方重新签发其中存储的凭证。
HTTP、SSH 和 MCP
你的智能体会像连接普通 MCP 服务器一样连接 Sallyport。它执行的所有操作都会经过同一套决策阶梯,并写入同一份审计日志。
HTTP API
http.request → api.github.comApp 会发起 HTTPS 调用,并且只在执行期间注入凭证。跨主机重定向不会携带该凭证。
SSH
ssh.exec → deploy@prod-03无状态辅助进程负责打开连接。App 处理 SSH 签名、固定主机密钥并对会话录制进行密封;私钥不会进入辅助进程。
MCP 服务器
github.create_issue本地 stdio 和远程 MCP 服务器均由 Sallyport 通过同一道门控代理。Sallyport 会密封并刷新 OAuth 2.1 令牌。
利害所在
84
同一次搜刮凭证的 npm 攻击中出现的恶意软件包版本
0
账户、云服务或遥测:Sallyport 完全在你的 Mac 上运行
一次点按
Touch ID 批准被标记的调用;模拟点击无法冒充
约 2 分钟
从 brew install 到第一次经过门控的调用
Sallyport 不承诺什么
安全工具总爱把话说满,所以我们把自己的边界白纸黑字写在这里。
限制
已批准的会话仍可能行为不当
会话批准所授权的是进程,而不是每个请求的含义。对于需要逐项审查的密钥,请启用“每次调用均需批准”。
它无法阻止以你的身份运行的原生代码
Sallyport 不是防病毒软件。以你的用户权限运行的代码仍可能攻击 App 或操作系统。
它无法替你审阅
卡片会显示调用方的代码签名方和进程链。你仍须自行审查请求。
常见问题解答
Sallyport 采用什么许可?
我的机密信息存储在哪里?
它会回传数据吗?
系统要求是什么?
密钥库锁定时会发生什么?
它能与 Claude Code 和其他智能体配合使用吗?
智能体能看到我的密钥吗?
如果我无法再访问自己的 Mac,该怎么办?
你的智能体,距离你的密钥只差一次提示词注入。
免费下载。需要 Apple Silicon、macOS 14 或更高版本。永远无需账户。
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon