加密保管敏感信息,取用前需 Passkey 授权
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Tu-Zhenzhao/privy-vault该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/20) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 37 处,展示前 37 条)
- 写入本地文件personal-vault-broker/design/generate-first-frame.mjs:24
const png=join(directory,'frame.png');await writeFile(png,bytes); - 执行外部命令固定命令personal-vault-broker/design/generate-first-frame.mjs:25
execFileSync('cwebp',['-quiet','-lossless','-exact','-m','6',png,'-o',output]); - 读取本地文件personal-vault-broker/design/generate-first-frame.mjs:26
console.log(`Actual idle frame: ${(await stat(output)).size} bytes, 616×616 lossless WebP`); - 删除本地文件递归personal-vault-broker/design/generate-first-frame.mjs:27
} finally {await rm(directory,{recursive:true,force:true});} - 写入本地文件personal-vault-broker/design/interaction-check.mjs:40
await writeFile('/tmp/privy-verifying-mobile.png',Buffer.from(shot.data,'base64')); - 写入本地文件personal-vault-broker/design/interaction-check.mjs:74
await writeFile('/tmp/privy-first-frame-mobile.png',Buffer.from(posterShot.data,'base64')); - 读取本地文件personal-vault-broker/design/preview-server.mjs:5
const preview = await readFile(new URL('../public/assets/verify-preview.png', import.meta.url)); - 读取本地文件personal-vault-broker/design/preview-server.mjs:6
const orbClient = await readFile(new URL('../public/assets/vault-orb.js', import.meta.url)); - 写入本地文件personal-vault-broker/design/preview-server.mjs:22
await mkdir(screenshotDirectory, { recursive: true }); - 写入本地文件personal-vault-broker/design/preview-server.mjs:23
await writeFile(new URL(screenshotName, screenshotDirectory), Buffer.concat(chunks)); - 执行外部命令固定命令personal-vault-broker/design/studio-check.mjs:4
const browser = (...args) => execFileSync('npx', ['--yes', 'agent-browser', '--session', 'vault-check', ...args], { encoding: 'utf8', timeout: 60000 } - 读取密钥环境变量personal-vault-broker/dsh-plugin/index.js:28
const token = process.env.PERSONAL_VAULT_CLIENT_TOKEN; - 发起网络请求personal-vault-broker/dsh-plugin/index.js:38
const request = http.request({ socketPath, method, path, signal, headers: { - 读取本地文件personal-vault-broker/dsh-plugin/index.js:70
try { return JSON.parse(await readFile(path, 'utf8')); } - 发起网络请求personal-vault-broker/dsh-plugin/index.js:118
const response = await fetch(url, options); - 写入本地文件personal-vault-broker/dsh-plugin/index.js:234
await mkdir(dirname(RECEIPTS_PATH), { recursive: true, mode: 0o700 }); - 写入本地文件personal-vault-broker/dsh-plugin/index.js:236
await writeFile(temporary, `${JSON.stringify({ version: 1, processed: [...receipts].slice(-2000) })}\n`, { mode: 0o600 }); - 写入本地文件personal-vault-broker/dsh-plugin/index.js:237
await rename(temporary, RECEIPTS_PATH); - 写入本地文件personal-vault-broker/dsh-plugin/index.js:254
await mkdir(dirname(CALLBACK_SOCKET), { recursive: true, mode: 0o770 }); - 删除本地文件personal-vault-broker/dsh-plugin/index.js:255
await unlink(CALLBACK_SOCKET).catch(error => { if (error?.code !== 'ENOENT') throw error; }); - 写入本地文件personal-vault-broker/dsh-plugin/index.js:279
await chmod(CALLBACK_SOCKET, 0o660); - 删除本地文件personal-vault-broker/dsh-plugin/index.js:282
await unlink(CALLBACK_SOCKET).catch(error => { if (error?.code !== 'ENOENT') throw error; }); - 读取密钥环境变量personal-vault-broker/dsh-plugin/smoke-test.js:8
process.env.PERSONAL_VAULT_CLIENT_TOKEN = 'smoke-test-token'; - 发起网络请求personal-vault-broker/dsh-plugin/smoke-test.js:48
const request = http.request({ socketPath: process.env.PERSONAL_VAULT_CALLBACK_SOCKET, - 删除本地文件递归personal-vault-broker/dsh-plugin/smoke-test.js:66
await rm(directory, { recursive: true, force: true }); - 读取本地文件personal-vault-broker/src/assets.ts:5
export const orbClient = readFileSync(new URL('../public/assets/vault-orb.js', import.meta.url)); - 读取本地文件personal-vault-broker/src/assets.ts:8
export const orbPoster = `data:image/webp;base64,${readFileSync(new URL('../public/assets/orb-first-frame.webp', import.meta.url)).toString('base64')} - 发起网络请求personal-vault-broker/src/callbacks.ts:27
const request = http.request({ - 读取密钥环境变量personal-vault-broker/src/cli.ts:6
const token = process.env.PERSONAL_VAULT_CLIENT_TOKEN ?? fail('PERSONAL_VAULT_CLIENT_TOKEN is required'); - 写入本地文件personal-vault-broker/src/database.ts:33
if (path !== ':memory:') mkdirSync(dirname(path), { recursive: true, mode: 0o700 }); - 读取本地文件personal-vault-broker/src/generate-preview.ts:35
const existing = await readFile(output).catch(() => Buffer.alloc(0)); - 写入本地文件personal-vault-broker/src/generate-preview.ts:41
await mkdir(dirname(output), { recursive: true }); - 写入本地文件personal-vault-broker/src/generate-preview.ts:42
await writeFile(output, rendered); - 读取本地文件personal-vault-broker/src/public-api.ts:11
const previewImage = readFile(new URL('../public/assets/verify-preview.png', import.meta.url)); - 删除本地文件personal-vault-broker/src/server.ts:18
await unlink(config.socketPath).catch((error: NodeJS.ErrnoException) => { - 写入本地文件personal-vault-broker/src/server.ts:22
await chmod(config.socketPath, 0o660); - 发起网络请求personal-vault-broker/src/unix-client.ts:12
const request = http.request({
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
自托管的个人信息保险库,用于 DeepSeek Harness。支持通行密钥审批、加密存储、可信投递。
README
由 DeepSeek 最新模型翻译生成私匣 · Privy Vault
你的信息,你来授权,AI 才能取用。
当前为 0.3.2 早期公开版本,未经过独立安全审计。敏感信息推荐使用默认 L2 策略。
私匣将敏感字段加密保存。Agent 平时只搜索字段名和标签;需要具体资料时,发送验证链接。你完成 Passkey 验证后,原会话自动继续,支持的消息渠道会在规定时间后删除或撤回资料消息。
当前范围
- 已有 DeepSeek Harness 插件,包含搜索、最近使用、请求、状态与兑换工具。
- 支持 Telegram、Discord 和 Photon iMessage;未提供 OpenClaw 插件。
- L0 不需要 Passkey;L1 可复用近期验证;默认 L2 策略每次请求都需要验证。
- 支持管理员命令行录入、更新、批量导入和 Passkey 管理。
- 网页是验证与安全查看页面,目前没有资料管理后台。
- 适用于单一所有者、可信本机 Agent 的部署;不是多租户安全隔离产品。
本地体验
适配器针对 DSH 0.1.1-rc.2,新版兼容性仍待验证。普通 Agent 可检索和请求资料;写入需要所有者授权的管理员操作。主机管理员、交付插件和消息平台仍可能接触明文,不能承诺“大家都看不到”。DSH Web 交付存在已知限制,详见安全文档。
展开完整文档(README 剩余 1 节)
私匣 · Privy Vault 你的信息,你来授权,AI 才能取用。 当前为 0.3.2 早期公开版本,未经过独立安全审计。敏感信息推荐使用默认 L2 策略。 私匣将敏感字段加密保存。Agent 平时只搜索字段名和标签;需要具体资料时,发送验证链接。你完成 Passkey 验证后,原会话自动继续,支持的消息渠道会在规定时间后删除或撤回资料消息。 当前范围 - 已有 DeepSeek Harness 插件,包含搜索、最近使用、请求、状态与兑换工具。 - 支持 Telegram、Discord 和 Photon iMessage;未提供 OpenClaw 插件。 - L0 不需要 Passkey;L1 可复用近期验证;默认 L2 策略每次请求都需要验证。 - 支持管理员命令行录入、更新、批量导入和 Passkey 管理。 - 网页是验证与安全查看页面,目前没有资料管理后台。 - 适用于单一所有者、可信本机 Agent 的部署;不是多租户安全隔离产品。 本地体验 适配器针对 DSH 0.1.1-rc.2,新版兼容性仍待验证。普通 Agent 可检索和请求资料;写入需要所有者授权的管理员操作。主机管理员、交付插件和消息平台仍可能接触明文,不能承诺“大家都看不到”。DSH Web 交付存在已知限制,详见安全文档。 安装 Node.js 22.13+,然后从仓库根目录执行: cd personal-vault-broker npm ci npm run check npm run preview 打开 http://127.0.0.1:4173。预览中的 Passkey 是模拟交互,不连接真实资料。 文档入口 - 部署及维护:真实 HTTPS、Linux 服务、客户端接入、健康检查与备份。 - Agent 数据更新操作手册:新增、更新、批量导入、验证及错误处理。 - 安全边界:哪些内容被加密、授权复用与消息删除的限制。 - 发布评估:已经验证什么,哪些项目仍未验证。 - 公开发布:如何导出不包含私人运维文件和旧历史的源码。 中文名为“私匣”,英文名为“Privy Vault”。为兼容现有部署,命令、目录和变量仍使用 personal-vault。名称没有经过商标独占性核验。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Tu-Zhenzhao/privy-vault
加密保管敏感信息,取用前需 Passkey 授权
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7