🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

密码库同步 BuvkB/dsh-vaultwarden

DeepSeek Harnessv0.13.1
BuvkB1 天前有提交已提供中文文档扫描:含敏感能力

把 Vaultwarden / Bitwarden 接入 DeepSeek Harness。密码库可在「设置 →…

36.5/100
综合分
2
GitHub 星标
2,627
npm 周下载
—/5
用户评分

数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-vaultwarden
npm 源 · dsh-vaultwarden 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · browser
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-vaultwarden @ 0.13.1
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 20:48:10

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 55 处,展示前 46 条)
  • 读取本地文件
    lib/index.js:862
    const stat = statSync(path)
  • 读取本地文件
    lib/index.js:864
    raw = readFileSync(path, 'utf8')
  • 写入剪贴板
    lib/client.js:4701
    await navigator.clipboard.writeText(String(text ?? ''))
  • 读取剪贴板
    lib/client.js:4708
    const current = await navigator.clipboard.readText()
  • 写入剪贴板
    lib/client.js:4712
    await navigator.clipboard.writeText('')
  • 读取本地文件
    lib/gateway.js:47
    const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'))
  • 删除本地文件
    lib/session-store.js:69
    rmSync(this.path, { force: true })
  • 读取本地文件
    lib/session-store.js:86
    if (!existsSync(this.path)) return null
  • 读取本地文件
    lib/session-store.js:87
    raw = readFileSync(this.path, 'utf8')
  • 读取本地文件
    lib/session-store.js:171
    present = existsSync(this.path) && statSync(this.path).size > 0
  • 读取本地文件
    lib/session-store.js:171
    present = existsSync(this.path) && statSync(this.path).size > 0
  • 删除本地文件
    lib/cache-store.js:90
    rmSync(this.path, { force: true })
  • 读取本地文件
    lib/cache-store.js:109
    if (!existsSync(this.path)) return null
  • 读取本地文件
    lib/cache-store.js:110
    raw = readFileSync(this.path)
  • 读取本地文件
    lib/cache-store.js:187
    present = existsSync(this.path) && statSync(this.path).size > 0
  • 读取本地文件
    lib/cache-store.js:187
    present = existsSync(this.path) && statSync(this.path).size > 0
  • 读取本地文件
    lib/cache-store.js:220
    const key = readFileSync(this.keyPath)
  • 读取本地文件
    lib/mask.js:79
    if (existsSync(keyPath)) {
  • 读取本地文件
    lib/mask.js:80
    const key = readFileSync(keyPath)
  • 读取本地文件
    lib/mask.js:93
    const landed = readFileSync(keyPath)
  • 读取本地文件
    lib/passkey.js:247
    for (const name of readdirSync(dir)) {
  • 读取本地文件
    lib/passkey.js:251
    const stat = statSync(file)
  • 删除本地文件
    lib/passkey.js:252
    if (stat.isFile() && now - stat.mtimeMs > maxAgeMs) rmSync(file, { force: true })
  • 读取本地文件
    lib/passkey.js:284
    const stat = statSync(full)
  • 删除本地文件
    lib/passkey.js:286
    rmSync(full, { force: true })
  • 读取本地文件
    lib/passkey.js:297
    for (const name of readdirSync(root)) {
  • 写入本地文件
    lib/passkey.js:319
    appendFileSync(file, JSON.stringify(record) + '\n', { mode: 0o600 })
  • 写入本地文件
    lib/passkey.js:321
    chmodSync(file, 0o600)
  • 读取本地文件
    lib/passkey.js:335
    const lines = readFileSync(join(dir, 'audit.jsonl'), 'utf8').split('\n').filter(Boolean)
  • 读取本地文件
    lib/sweeper.js:537
    if (!existsSync(sessionsRoot)) return []
  • 读取本地文件
    lib/sweeper.js:542
    return readdirSync(dir, { withFileTypes: true })
  • 读取本地文件
    lib/sweeper.js:562
    files = readdirSync(dir)
  • 读取本地文件
    lib/sweeper.js:576
    return { path, mtimeMs: statSync(path).mtimeMs }
  • 读取本地文件
    lib/sweeper.js:598
    const lockStat = statSync(lockPath)
  • 读取本地文件
    lib/sweeper.js:599
    const logStat = statSync(logPath)
  • 写入本地文件
    lib/sweeper.js:887
    utimesSync(logPath, before.atime, before.mtime)
  • 写入本地文件
    lib/atomic-file.js:57
    mkdirSync(directory, { recursive: true, mode: dirMode })
  • 写入本地文件
    lib/atomic-file.js:59
    chmodSync(directory, dirMode)
  • 写入本地文件
    lib/atomic-file.js:100
    renameSync(temporary, path)
  • 删除本地文件
    lib/atomic-file.js:110
    rmSync(temporary, { force: true })
  • 发起网络请求
    lib/notifications.js:149
    const response = await this.fetch(`${this.server}/notifications/hub/negotiate`, {
  • 读取本地文件
    lib/trail.js:264
    const parsed = JSON.parse(readFileSync(path, 'utf8'))
  • 读取本地文件
    lib/trail.js:620
    stat = statSync(session.path)
  • 读取本地文件
    lib/trail.js:1333
    size = statSync(logPath).size
  • 执行外部命令固定命令
    lib/zstd-log.js:128
    const proc = spawnSync('zstd', ['-d', '-c'], { input: frame, maxBuffer: 1 << 30 })
  • 执行外部命令固定命令
    lib/zstd-log.js:154
    const proc = spawnSync('zstd', ['-q', '-c'], { input, maxBuffer: 1 << 30 })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocol@deepseek-ai/schemastery@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 实时同步密码库
  • WebSocket推送
  • 增量同步
v0.13.42026-10-30
· 修复 · 脱敏流水改为正面清单:只统计宿主声明为 bitwarden_* 工具的交换事件,系统提示词、读入源码、对话与 bash 输出里的标记字样不再计数(近 7 天 3433 → 52)。 · 索引版本升至 v9,修复口径变更后重启不重扫的问题。 · 优化 · sweeper 落盘标记带类别([REDACTED:BW_PASSWORD] 等),旧日志的裸标记保持原样。 · 详情页补「原值已被日志擦除」说明;「脱敏占位符」改为「脱敏标记」;PTC 结果事件改称「工具结果」。 · 回声种子文件按 30 天过期清理,4096 条上限,旧格式自动迁移。
v0.13.12026-10-29
· [0.13.1] — 2026-10-29 · 修复 · 修复 bitwarden_update 未传字段时误清空条目、密码修改日期被加密、maskMode 密钥不可用时回退明文的问题。 · 修复 sweeper 漏擦 card、fields、identity、sshKey 嵌套字段,以及与活跃日志 append 竞态丢事件的问题。 · 修复脱敏轨迹半扫描漏计、请求数重复、详情串模型/丢指纹、索引缓存不失效的问题。 · 修复详情切行加载态、轨迹页滚动误触密码列表分页、bitwarden_status 刷新绕过登录冷却的问题。 · 优化 · 优化 bitwarden_get 脱敏提示与系统提示词的失败恢复说明。
v0.13.02026-10-29
· [0.13.0] — 2026-10-29 · 新增 · 新增脱敏看板:数据总量、按天柱状图、门禁视图、脱敏量前三的会话与模型,以及「另外 N 个」汇总。 · 新增 flows 聚合:top3 会话、top3 模型、真实 session→model 配对计数与其余汇总。 · 优化 · 优化脱敏看板:三条完整会话到模型连线,左半段灰色表示脱敏前、右半段蓝色表示脱敏后;每根线一颗灰色粒子同速穿过;门禁竖线带上下扫描条;桌面三列、窄屏自适应。 · 优化看板与详情页文案:主标题改为「敏感信息防泄漏」;五步改为「接收请求 → 识别 N 个敏感值 → 完成 N 处脱敏 → 转发至模型 → 模型响应」;值卡改为「敏感类型 / 匹配次数 / 脱敏占位符 / 命中位置」,并合并重复占位符卡片。 · 优化标签栏与详情页返回按钮:标签栏按官方设置页对齐;返回按钮黑色加粗,悬停有底色、键盘聚焦有焦点环。 · 优化样式热更新:样式表内容变化时同步更新已有 style 元素。 · 测试 · test/client-card.test.mjs 514 项、test/trail.test.mjs 135 项。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-vaultwarden 把 Vaultwarden / Bitwarden 接入 DeepSeek Harness。密码库可在「设置 → 密码库」里浏览和编辑,模型可按需检索、读取和写入;密码、TOTP、卡号等默认以占位符脱敏,会话日志中的明文也可擦除。支持自建 Vaultwarden 与官方 Bitwarden 云。 界面预览 | 密码库面板 | 脱敏轨迹 | | 密码库面板 | 脱敏轨迹页面 | 主要能力 - 实时同步与缓存:SignalR WebSocket 推送变更;不可用时自动降级轮询并定期重试升级;本地加密缓存与 revision 探测让冷启动更快。 - 密码库面板:分区导航、搜索、分页、条目详情、TOTP 倒计时、复制、创建/编辑、归档/回收站/恢复与文件夹移动;写操作按权限档控制。 - 脱敏与日志擦除:工具读取密码、TOTP、卡号等返回稳定占位符,按条目 + 字段单次取回;定期把会话日志中的明文替换为 [REDACTED:BW],支持增量与立即擦除。 - 脱敏看板:按天统计脱敏量与前三会话/模型,保留可下钻的脱敏流水和详情。 - 通行密钥:读取条目中的 passkey 元数据;按插件权限导出为 0600 的 WebAuthn 凭据文件,支持导入、移除和临时文件清理;登录配方见 docs/passkey-login.md。
展开完整文档(README 剩余 1 节)
dsh-vaultwarden

把 Vaultwarden / Bitwarden 接入 DeepSeek Harness。密码库可在「设置 → 密码库」里浏览和编辑,模型可按需检索、读取和写入;密码、TOTP、卡号等默认以占位符脱敏,会话日志中的明文也可擦除。支持自建 Vaultwarden 与官方 Bitwarden 云。

界面预览

| 密码库面板 | 脱敏轨迹 |
| 密码库面板 | 脱敏轨迹页面 |

主要能力

- 实时同步与缓存:SignalR WebSocket 推送变更;不可用时自动降级轮询并定期重试升级;本地加密缓存与 revision 探测让冷启动更快。
- 密码库面板:分区导航、搜索、分页、条目详情、TOTP 倒计时、复制、创建/编辑、归档/回收站/恢复与文件夹移动;写操作按权限档控制。
- 脱敏与日志擦除:工具读取密码、TOTP、卡号等返回稳定占位符,按条目 + 字段单次取回;定期把会话日志中的明文替换为 [REDACTED:BW],支持增量与立即擦除。
- 脱敏看板:按天统计脱敏量与前三会话/模型,保留可下钻的脱敏流水和详情。
- 通行密钥:读取条目中的 passkey 元数据;按插件权限导出为 0600 的 WebAuthn 凭据文件,支持导入、移除和临时文件清理;登录配方见 docs/passkey-login.md。
- 权限与安全边界:插件权限分只读 / 每次确认 / 完全权限;DSH 会话处于 workspace-write / read-only 时,写操作与通行密钥导出仍走宿主审批。面板使用宿主已认证的 /api RPC,插件不注册自己的 HTTP 路由;主密码和 API 密钥是只写字段。
- 设置页:连接、登录、两步验证与插件权限集中管理,支持自建服务器与官方 Bitwarden 云。

安装

最新稳定版(市场条目使用的地址)
dsh plugin --profile web add https://github.com/BuvkB/dsh-vaultwarden/releases/latest/download/dsh-vaultwarden.tgz

或从 npm 安装
dsh plugin --profile web add dsh-vaultwarden@latest

要求 Node.js >= 22。

配置

在 设置 → 插件 → dsh-vaultwarden 填写:

| 字段 | 说明 |
| serverUrl / email | Vaultwarden 地址与登录邮箱 |
| masterPassword | 主密码;只写,不落浏览器 |
| apiKeyClientId / apiKeyClientSecret | 可选,API 密钥登录(可绕过两步验证) |
| accessMode | readonly / ask / auto,控制模型工具的写回权限 |
| maskMode / sweepMode | 占位符脱敏与日志擦除开关 |

DSH 会话权限为 workspace-write / read-only(approval: ask)时,即使插件 accessMode 为 auto,写操作与通行密钥导出也会走审批;密码/TOTP 读取、日志擦除与通行密钥临时文件清理不需要审批,后两者属于强制执行的安全清理。

也支持 DSH_BITWARDEN_* 环境变量和 profile 组合配置。完整字段见 docs/ui-design.md。

工具

bitwarden_find · bitwarden_get · bitwarden_reveal · bitwarden_status · bitwarden_sync · bitwarden_folders · bitwarden_create · bitwarden_update · bitwarden_delete · bitwarden_restore

通行密钥:bitwarden_passkey_list · bitwarden_passkey_export · bitwarden_passkey_cleanup · bitwarden_passkey_import · bitwarden_passkey_remove;登录配方见 docs/passkey-login.md。

另有 bitwarden_sweep 立即擦除本地会话日志中的明文。

脱敏说明

- 占位符形如 {{BW_PASSWORD_xxxxxxxx}},由 HMAC 生成,不可逆;只能引用、比较或按字段取回。
- 脱敏看板与流水详情见 docs/ui-design.md。
- 擦除标记 [REDACTED:BW] 表示明文曾经落盘、随后被擦除;它没有可反查的盐。

开发

bash scripts/build.sh # 全量门禁
node test/client-card.test.mjs
node test/trail.test.mjs

发布流程见 docs/release.md。

链接

- GitHub Releases
- npm
- 问题反馈

许可

MIT。第三方项目见 THIRD-PARTY-NOTICES.md。
预览分享卡片长什么样 ↓BuvkB/dsh-vaultwarden
分享 · DeepSeek Harness Hub
BuvkB/dsh-vaultwarden

把 Vaultwarden / Bitwarden 接入 DeepSeek Harness。密码库可在「设置 →…

这是你的仓库?认领条目

回到顶部