dsh-config-transfer:在 DSH Desktop 间迁移插件、MCP 与用户技能

前言

在 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)。

核心功能

在 设置 → 配置同步 中提供两项主操作:

  1. 保存配置:将当前 profile 相关状态写入一个 JSON 文件并下载(文件名形如 dsh-config-transfer-YYYYMMDD-HHmm.json)。
  2. 导入配置:选择导出文件,先在「确认导入」页查看安装计划、配置变更与需手动处理的步骤,再点击 开始导入。

导入过程会(据 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

典型用法

旧电脑

  1. 安装并启用 dsh-config-transfer。
  2. 打开 设置 → 配置同步。
  3. 点击 保存到文件,得到 JSON 备份。

新电脑

  1. 安装 DSH Desktop 并登录账号。
  2. 同样安装并启用 dsh-config-transfer。
  3. 打开 设置 → 配置同步 → 选择文件…,选中旧机导出的 JSON。
  4. 在确认页检查第三方插件安装、版本差异、link: / 本地路径等手动步骤提示。
  5. 点击 开始导入;若提示重启,关闭并重新打开 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye