dsh-config-sync:DSH 插件与设置的一键备份与跨机同步

前言

在 DSH(DeepSeek Harness)里做智能体或工作流开发时,环境往往分散在 profile 的插件清单、各插件版本、cordis.patch.yml 里的配置覆盖、插件自管数据目录,以及全局工作区设置里。换电脑或重装时靠手工拷贝,很容易漏掉某一项;而漏一处,新机器上的 DSH 就可能起不来或行为与旧环境不一致。

社区插件 dsh-config-sync(维护者 huihui0927,分类:工作流)把上述内容收拢成一个可移植的 .zip 归档,并支持先预览再批量还原,应用前还会自动生成还原点。本文介绍其定位、能力与安装用法;事实以 GitHub 仓库 与 SkillHub 目录页 为准。

这是什么

dsh-config-sync 是 DSH 的备份与跨机同步工具:一键把全部插件相关配置与插件数据(默认不含凭据与会话)打包成 .zip,在新电脑上可先校验、预览,再选择是否写入。插件向 agent 注册 5 个工具,同时提供零运行时依赖的独立 CLI,在 DSH 无法启动时仍可操作。当前 package 版本为 1.0.0,许可证 MIT,要求 Node >= 20。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,本插件并非官方内置能力。

核心功能

备份与还原范围

决策 说明
不备份 node_modules 体积大且可由 package.json 与 pnpm-lock.yaml 复现;归档记录版本,还原后按清单重装
不备份运行时 / Electron / 日志 / 缓存 属本机可重建内容,避免把旧机运行时拷坏新环境
凭据默认排除 .credentials.yaml、workbuddy-vault/ 等默认不进归档;需要时用口令做 AES-256-GCM 加密导出
还原默认只预览 须显式 apply: true(或 CLI 的 --apply)才真正写入
应用前自动还原点 写入前将当前 profile 配置快照到带时间戳目录,便于回退
目标机多出的插件 默认拒绝执行,避免误删本机独有插件配置;需 overwritePlugins: true

备份类别

类别 默认 内容
profile-config 包含 package.json、pnpm-lock.yaml、cordis.yml、cordis.patch.yml 等
home-config 包含 storages/workspace.json、telemetry/ 等全局设置
plugin-state 包含 各插件在 DSH_HOME 下的状态目录
credentials 不包含 登录凭据,需 password,AES-256-GCM 加密
sessions 不包含 会话记录,体积大

Agent 工具(共 5 个)

装好后可在 DSH 会话里用自然语言驱动,或直接对应工具名:

工具 作用
dsh_config_status 查看已装插件、设置文件数量、备份将包含什么
backup_dsh_config 生成备份归档(支持 dryRun 预览)
restore_dsh_config 预览或应用还原
verify_dsh_config 校验归档完整性(按成员核对 sha256)
list_dsh_backups 列出已有归档

示例说法(来自 README):「看看我这台电脑现在有哪些插件和设置」「把插件和设置备份出来」「把这个备份还原到新电脑」。

独立 CLI

入口为 bin/dsh-config-sync.mjs,ZIP 与加密均用 Node 内置模块实现,无额外 npm 依赖,适合在「正在修环境」的机器上使用。

安装与启用

README 中的安装示例(路径需按本机 DSH 与插件所在目录调整):

D:\Dsh\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add D:\Dsh\Sync\dsh-config-sync

装完后需要重启 DSH,agent 才会注册上述工具。该命令会写入 profile 目录(例如 C:\Users\<用户>\.dsh\profiles\desktop),在受限沙箱下可能出现 EPERM,需具备相应文件系统权限。

安装前建议自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,归档文件可能被复制到 U 盘或网盘,请按自己的安全策略决定是否包含加密凭据类别。

典型用法

在 DSH 会话中(推荐)

完成安装并重启后,通过对话触发 dsh_config_status、backup_dsh_config、restore_dsh_config 等即可,无需记全参数。

命令行(DSH 起不来时)

$cli = "D:\Dsh\resources\runtime\cli\bin\dsh.cmd"   # 仅用于装插件
node D:\Dsh\Sync\dsh-config-sync\bin\dsh-config-sync.mjs <命令>

查看现状:

node bin\dsh-config-sync.mjs status

默认备份(不含凭据和会话):

node bin\dsh-config-sync.mjs backup --output D:\backup\dsh.zip

备份并加密包含登录凭据(需指定类别与口令):

node bin\dsh-config-sync.mjs backup --output D:\backup\dsh.zip `
     --categories profile-config,home-config,plugin-state,credentials --password 你的口令

校验归档:

node bin\dsh-config-sync.mjs verify --input D:\backup\dsh.zip

还原:默认只预览,确认后再 --apply:

node bin\dsh-config-sync.mjs restore --input D:\backup\dsh.zip --profile desktop
node bin\dsh-config-sync.mjs restore --input D:\backup\dsh.zip --profile desktop --apply

换电脑流程(README 口径)

旧电脑:生成归档。

node bin\dsh-config-sync.mjs backup --output D:\dsh-backup.zip

新电脑(先安装 DSH 本体):

  1. 校验传输是否损坏:verify --input D:\dsh-backup.zip
  2. 预览插件增删与将写入的文件:restore(不加 --apply)
  3. 确认后应用:restore ... --apply
  4. 按第 3 步输出的清单用 dsh.cmd plugin --profile desktop add <插件@版本> 逐个安装(归档不含 node_modules)
  5. 重启 DSH

更细的「照着做」步骤与回退、常见问题见仓库内 使用说明.md。

安全与适用注意

  • 明文凭据不会进入归档;成员名命中凭据模式时会报错中止,而非静默写入。
  • workbuddy-vault/ 在 plugin-state 中会被自动排除并提示。
  • 加密使用 scrypt(N=2¹⁵)派生密钥与 AES-256-GCM;口令错误或归档被篡改会导致解密失败。忘记口令则无法从归档恢复凭据,需在新电脑重新登录。

适合:需要在多台机器间迁移 DSH 插件与配置、或希望定期打出可校验、可回退的配置快照的开发者。不适合把归档当作会话历史的全量备份(sessions 默认排除且体积大)。

结尾

dsh-config-sync 把分散的 DSH 插件与设置收成单一 .zip,用预览、校验、还原点和可选加密降低换机与误操作风险。目录与文档:

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

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

Xiaoye