jindom/dsh-bitwarden

前言

在 DSH(DeepSeek Harness)会话中,模型经常需要访问密码、用户名或 TOTP 动态码。与其在每次对话中都让用户手动输入,不如让模型先在本地凭据库中检索。jindom/dsh-bitwarden 插件通过在 DSH 会话中内置 Bitwarden 凭据库及管理工具,实现了这一需求。

功能

该插件为 DSH 提供了以下能力:

  • 设置卡片:在 DSH 插件配置中提供图形化表单,用于配置连接参数。
  • 管理工具:
    • bitwarden_find:检索条目列表(不含密码)。
    • bitwarden_get:获取特定条目的密码、用户名、TOTP 或自定义字段。
    • bitwarden_status:检查配置状态、连通性及解锁状态。
  • 系统提示词注入:在全局注入一段引导,要求模型在需要任何账号、密码、API key 时,优先自查凭据库。
  • 配置表单:在 DSH 设置界面中渲染配置项,支持主密码与 API 密钥的加密存储。

配置

配置支持三种方式,优先级从高到低:用户设置(GUI) > 插件组合配置 > 环境变量 > 默认值。

1. DSH 设置界面(推荐)

进入 设置 → 插件 → 插件配置 → Bitwarden / Vaultwarden 凭据库,使用插件提供的卡片进行配置。主密码与 API 密钥为只写字段,保存后不会回传明文。

字段 说明
serverUrl 服务器地址,默认 https://bitwarden.jindom.cc。
email 登录邮箱。必须与账号一致,它是 KDF 的盐值。
masterPassword 主密码(secret)。用于派生主密钥,仅存在内存。
apiKeyClientId 可选。Bitwarden 网页端 → 账户设置 → 安全 → 密钥 的 client_id。填入后可绕过两步验证。
apiKeyClientSecret 可选。对应的 client_secret(secret)。
cacheMinutes 解锁后的内存缓存时长,默认 30 分钟。

2. 环境变量

支持以下环境变量名(也支持去掉 DSH_ 前缀的写法):

  • DSH_BITWARDEN_SERVER
  • DSH_BITWARDEN_EMAIL
  • DSH_BITWARDEN_MASTER_PASSWORD
  • DSH_BITWARDEN_CLIENT_ID
  • DSH_BITWARDEN_CLIENT_SECRET

3. 组合配置

在 profile 的 cordis 配置中,给插件传入同名字段,作为 settings 的 base 层。

用法

模型侧调用工具时使用 JSON 格式。bitwarden_get 的 field 参数支持 all(默认)、password、username、totp、notes、fields。

检索条目

bitwarden_find { "query": "github jindom" }

返回条目列表(id/名称/用户名/网址),不含密码。

获取凭据

bitwarden_get { "id": "...", "field": "password" }

获取 TOTP

bitwarden_get { "name": "GitHub 工作账号", "field": "totp" }

返回当前 6/8 位动态码。

检查状态

bitwarden_status { "refresh": true }

丢缓存重新登录同步并报告状态。

安全说明

  • 数据存储:主密码、用户密钥及解密后的条目仅存在内存,不写盘、不打日志。插件只持久化用户填写的配置。
  • 凭证流转:工具返回的明文凭据会进入会话上下文。提示词要求模型不要回显或写入文件。如需更严格,可只用 field: "password" 进行窄查询。
  • 证书信任:服务器证书必须受信任(本机 Node 的 CA 策略)。自签证书需替换为受信任证书。

装配方式

本插件以 profile bundle 的方式装配。在 package.json 中配置 dsh.bundle.patch 和 cordis.patch.yml 的 insert 条目,并在 profile 的 bundles 中列出包名。

注意:同一插件只能有一条装配路径。如果已经通过 bundle 装配,不要再使用注入器的 dev_inject_plugin 运行,否则 client-modules 会在启动期因组合错误拒绝启动。热更代码请使用 dev_reload_package。

依赖说明

  • Argon2id KDF:插件默认支持 Argon2id。如果服务器使用该算法且未安装可选依赖,插件会报错。可在服务器端将 KDF 改为 PBKDF2-SHA256,或安装 hash-wasm (npm install hash-wasm)。

项目地址:
* 生态目录:https://www.skillhub.cn/plugins/Jindom/dsh-bitwarden
* GitHub:https://github.com/Jindom/dsh-bitwarden

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜