前言¶
在 DSH Desktop 上装齐第三方插件、调好 MCP 条目、写好用户技能之后,换电脑或重装系统往往要手工重做一遍。DSH 的账号登录只同步账号信息,不会把本机 profile 里的插件清单、cordis.patch.yml 配置层和 ~/.dsh/skills 一并带走。下面介绍社区插件 dsh-config-transfer(维护者 limbo1996,npm 包名 dsh-config-transfer):在旧机导出 JSON,在新机预览变更后导入,用于恢复插件生态与个人技能,且明确不导出凭据。
这是什么¶
dsh-config-transfer 是面向 DeepSeek Harness Desktop(DSH Desktop)与 Web profile 的配置迁移插件,在应用内 设置 → 配置同步 中操作。它解决的是「同账号、不同机器」之间的配置对齐问题,而不是云端实时同步。
仓库:limbo1996/dsh-config-transfer
社区目录:SkillHub 插件页
许可证:MIT(见仓库 README)。
核心功能¶
在 设置 → 配置同步 中提供两项主操作:
- 保存配置:将当前 profile 相关状态写入一个 JSON 文件并下载(文件名形如
dsh-config-transfer-YYYYMMDD-HHmm.json)。 - 导入配置:选择导出文件,先在「确认导入」页查看安装计划、配置变更与需手动处理的步骤,再点击 开始导入。
导入过程会(据 README 说明):
- 按文件中记录的来源与版本安装缺失的第三方 / 额外安装 bundle;
- 恢复插件与 bundle 的启用/停用状态;
- 恢复各插件配置(含第三方插件)及配置层中的
insert条目(例如 MCP 服务器定义); - 恢复用户技能(
~/.dsh/skills与~/.agents/skills); - 对暂时无法应用的项写入排队文件,重启 DSH Desktop 后继续应用;
- 不会安装、停用或改写 dsh-config-transfer 自身。
同步策略上,导入是恢复/合并,不会删除新电脑上多出来的插件或配置;工作区列表 deliberately 不写入导出文件,避免本机路径泄漏。
会同步与不会同步的内容¶
会写入导出文件并尝试恢复的内容包括:
- 第三方 bundle 的安装 spec、版本、来源与启用状态;
- DSH 自带 bundle(
availability: "installation")的启用状态(不重复安装包体); - 插件行启用状态、
cordis.patch.yml中的插件配置与insert条目; - 设置命名空间与用户技能目录中的技能文件。
不会同步的内容(README 明确列出)包括:
- 凭据与 API 密钥:不读取
.credentials.yaml;配置里形似密钥的字段会脱敏; - 会话、轮次、目标、定时任务、附件、缓存、日志及部分插件运行时数据;
- 插件本体及
link:/ 本地路径安装的插件; - 机器级
.env、home 级cordis.patch.yml、应用更新与窗口状态等。
脱敏覆盖常见字段名与密钥形态,但文档强调这是启发式规则,分享 JSON 前仍应人工检查。
安装与版本要求¶
要求 DSH Desktop / Web >=0.2.1-rc.1 且 <0.3.0,Node.js >=20.18。当前 npm 版本为 1.0.6(见 package.json)。
从 npm 安装(推荐)¶
Desktop profile:
dsh plugin --profile desktop add dsh-config-transfer
Web profile:
dsh plugin --profile web add dsh-config-transfer
安装后在 DSH 中重启或刷新页面,在 设置 → 配置同步 可见入口。
在 Desktop 图形界面安装¶
打开 Plugins → Add plugin,输入包名 dsh-config-transfer,或选择本地目录 / tarball。
本地开发与 tarball¶
dsh plugin --profile desktop add /path/to/dsh-config-transfer
dsh plugin --profile desktop add ./dsh-config-transfer-1.0.6.tgz
典型用法¶
旧电脑¶
- 安装并启用
dsh-config-transfer。 - 打开 设置 → 配置同步。
- 点击 保存到文件,得到 JSON 备份。
新电脑¶
- 安装 DSH Desktop 并登录账号。
- 同样安装并启用
dsh-config-transfer。 - 打开 设置 → 配置同步 → 选择文件…,选中旧机导出的 JSON。
- 在确认页检查第三方插件安装、版本差异、
link:/ 本地路径等手动步骤提示。 - 点击 开始导入;若提示重启,关闭并重新打开 DSH Desktop,排队项会在启动后自动重试。
link:、绝对路径、file: 类插件无法跨机器自动安装,需在新机重新安装插件后再导入配置。跨操作系统迁移时,配置中的绝对路径(命令、工作目录等)通常需要按导入计划提示手动调整。
导出文件格式¶
导出 JSON 顶层 format 为 "dsh-config-transfer",version 为数字 schema 版本;profile 段记录 bundles、plugins、inserts、configs、settings 等;skills 段记录技能;redacted 数组标记被脱敏的字段路径,导入时用于保留新机上已有敏感值。完整字段示例见仓库 README「文件格式」一节。
安全与权限¶
插件会读取 $DSH_HOME 下的 profile、patch、settings 与用户技能,写入 $DSH_HOME/dsh-config-transfer/pending.json(权限 600)及用户技能目录,并通过 Host 已认证的 /api 与当前页面通信;导入时可按文件记录从 npm / Git 来源安装插件。它不会读取 .credentials.yaml,也不会在导入时清空新机上已有同名凭据;导入保持为需用户在 UI 明确确认的操作,不通过 agent 工具静默执行。
插件以当前 DSH 进程权限运行,安装前请查看源码与 MIT 许可证,并只在可信环境使用导出文件。
适用场景与注意¶
适合在 0.2.x 世代 DSH 上更换开发机、重装系统,或需要在 Desktop 与 Web profile 间对齐同一套插件与 MCP 接线时做一次「快照式」迁移。不适合当作凭据备份、会话恢复或工作区路径同步工具。
常见排障:页面无「配置同步」时确认插件已启用并重启;安装失败时检查网络与 registry;导入后设置页消失可能是旧配置停用了 Settings 相关插件,需在 Plugins 页重新启用。
结尾¶
dsh-config-transfer 把 DSH「一切皆插件」下的安装清单、配置层与用户技能打成可审查的 JSON,在新环境按计划合并恢复,并默认不把密钥带出本机。需要进一步了解 bundle 与自带插件的区别、市场索引或发布流程,可直接阅读仓库 README 与 PUBLISHING.md。
- 目录页:https://www.skillhub.cn/plugins/limbo1996/dsh-config-transfer
- GitHub:https://github.com/limbo1996/dsh-config-transfer