前言¶
在 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 本体):
- 校验传输是否损坏:
verify --input D:\dsh-backup.zip - 预览插件增删与将写入的文件:
restore(不加--apply) - 确认后应用:
restore ... --apply - 按第 3 步输出的清单用
dsh.cmd plugin --profile desktop add <插件@版本>逐个安装(归档不含node_modules) - 重启 DSH
更细的「照着做」步骤与回退、常见问题见仓库内 使用说明.md。
安全与适用注意¶
- 明文凭据不会进入归档;成员名命中凭据模式时会报错中止,而非静默写入。
workbuddy-vault/在plugin-state中会被自动排除并提示。- 加密使用 scrypt(N=2¹⁵)派生密钥与 AES-256-GCM;口令错误或归档被篡改会导致解密失败。忘记口令则无法从归档恢复凭据,需在新电脑重新登录。
适合:需要在多台机器间迁移 DSH 插件与配置、或希望定期打出可校验、可回退的配置快照的开发者。不适合把归档当作会话历史的全量备份(sessions 默认排除且体积大)。
结尾¶
dsh-config-sync 把分散的 DSH 插件与设置收成单一 .zip,用预览、校验、还原点和可选加密降低换机与误操作风险。目录与文档: