前言¶
DeepSeek Harness(DSH)把插件、MCP、技能、模型与界面偏好都落在本机 profile 和 $DSH_HOME 里。换电脑、重装系统或做多机开发时,手工拷贝目录容易漏文件,把 API Key 和 MCP 令牌明文丢进网盘也不合适。社区插件 dsh-sync(维护者 shangshuo)把整台机器上的 DSH「个人状态」打成单一加密归档,支持定时同步到 S3 兼容存储、WebDAV 或本地同步目录,换机后可在设置页或对话里预览并恢复。设置界面随 DSH 语言在中英文间切换。
这是什么¶
dsh-sync(npm 包名 @shangshuo/dsh-sync,当前资料中版本 0.6.3,MIT 许可证)是 DSH 的配置同步插件:备份范围覆盖插件清单与插件设置、MCP 服务器、自建与跨工具 skill、界面与技能管理器偏好等;MCP 连接器与凭证模块默认关闭,需勾选并确认隐私声明后才入包。云端与同步盘里只会看到密文快照和 latest.json 元数据,解密依赖你设置的备份口令(scrypt 派生密钥,AES-256-CTR + HMAC)。插件目录页:skillhub.cn/plugins/shangshuo/dsh-sync;源码:github.com/shangshuo/dsh-sync。
核心功能¶
模块化备份内容¶
在 设置 → 同步 → 备份 → 备份内容 中逐项开关,页面会显示各模块文件数与体积。资料中 0.4 起共 11 类模块,例如:
| 模块 | 默认 | 要点 |
|---|---|---|
DSH 配置档案(profile/) |
必选 | package.json、cordis.patch.yml(含插件配置、MCP、模型/界面偏好)等白名单文件 |
本地目录插件(local-plugins/) |
开 | link:/file: 依赖的源码;恢复时自动释放并重链 |
| MCP 连接器 / 凭证与 API Key | 关 | 可能含令牌;开启前展示隐私声明 |
插件代码(node_modules/) |
关 | 体积大;默认靠恢复时 pnpm install |
不同步会话历史、工作区缓存、设备标识、模型目录缓存等(详见仓库 README)。
三种存储目标¶
同一套逻辑适配:
- S3 兼容:Cloudflare R2、Backblaze B2、AWS S3、MinIO、阿里云 OSS、腾讯云 COS 等(填 endpoint、region、bucket、AK/SK)。
- WebDAV:坚果云、Nextcloud、群晖等(应用密码)。
- 本地同步目录:指向 iCloud Drive、OneDrive、坚果云同步盘或 NAS 挂载路径,无需云端密钥。
快照命名形如 快照前缀/snapshots/<机器名>_<UTC时间>_<随机>.dshsync。定时备份默认约 30 分钟检查一次,内容哈希未变则不上传。
安全与恢复语义¶
- 归档:gzip → AES-256-CTR → HMAC-SHA256;口令规则为 ≥8 位,含大小写、数字,且至少一个
@ # $ * - _。 - 本机
$DSH_HOME/dsh-sync/config.json整份密文存储(默认 Windows DPAPI / macOS 钥匙串);bucket 与 AK 不以明文落盘。 - 恢复前默认 dryRun 预览;确认写盘前会把将被覆盖的文件备份到
$DSH_HOME/dsh-sync/backups/<时间戳>/,不删除本机独有文件;.credentials.yaml中的设备绑定记录永不上传、恢复时不覆盖本机对应项。
安装后 Agent 还可使用 sync_status、sync_configure、sync_push、sync_pull 等 7 个工具(见 README「对话与工具」)。
安装与启用¶
官方 README 未提供 dsh plugin add github:… 一类命令;安装方式如下。
方式 A:图形界面
- 取得插件目录(即包含
package.json与cordis.patch.yml的本仓库)。 - 打开 DSH 设置 → 插件 → 安装本地插件,选择该目录。
方式 B:由 Agent 安装
对 Agent 说明要把本地 dsh-sync 目录作为插件安装,由其调用 plugin_manager 的 install_bundle。
Host 侧工具安装后立即可用;设置页前端模块需完全退出 DSH 再启动一次 后,左侧才会出现 同步 页。
插件以当前 DSH Host 进程权限读写本机配置与网络;安装前应自行审阅 源码与 MIT 许可证,勿从未验证来源安装 bundle。
典型用法¶
设置页(推荐日常操作)¶
经过上面的安装与重启,打开 设置 → 同步:
- 在 备份 页选择目标类型并填写地址与密钥(已保存密钥显示为
••••••••,点「修改」才替换)。 - 设置加密口令(页面实时校验规则)。
- 勾选备份模块;若开启 MCP 或凭证模块,确认隐私声明。
- 可选开启定时自动备份。
- 点 测试连接 → 立即备份。
恢复:切到 恢复 / 导入 → 从列表选快照(或从 .dshsync 文件/目录导入)→ 预览选中的快照 → 确认恢复到本机(二次确认)→ 按提示重启 DSH。
本地目录模式下,将另一台机器的 latest.json 与 snapshots 拷入同一前缀目录后,列表会自动读出。
对话示例(资料原文)¶
配置 R2 并定时同步:
「把 DSH 配置备份到我的 Cloudflare R2,bucket 是
dsh-config,AK/SK 是 …,口令用 …,每 30 分钟自动同步一次。」
Agent 通常会依次调用 sync_configure → sync_test → sync_push。
新机器上先预览再恢复:
「从 R2 恢复我的 DSH 配置,先给我看会改哪些文件。」
确认后再说「确认恢复」,Agent 使用 sync_pull(confirm: true),并提示重启 DSH。
include 模块键(0.4):profile、homePatch、skillsDsh、skillsAgents、uiPrefs、skillManager、mcpConnector、workspaceRoot、credentials、nodeModules、extraPaths;profile 为必选。
适用场景与注意¶
适合:需要在多台电脑间对齐 DSH 插件与偏好、希望加密后再上云或同步盘、接受「后写覆盖、靠本地回滚备份」而非合并两台机器并发改动的用户。国内常见组合为坚果云 WebDAV 或阿里云 OSS;海外资料推荐 Cloudflare R2;不想注册云服务可用本地同步目录。
务必知晓:
- 不备份会话历史;归档默认上限 256 MB(
limits.maxArchiveMB),开启nodeModules前需评估内存与上限。 - profile 根目录按白名单打包;DSH 未来新增 profile 配置文件时,需插件侧维护
lib/collect.js的PROFILE_FILES。 - 同一系统用户下的恶意程序仍可能调用系统解密接口读取本机
config.json,属操作系统安全边界。 - DSH 生态为「一切皆插件」;SkillHub 目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-sync 把 DSH 个人配置收敛为一个加密归档,按模块选择备份范围,并支持 S3、WebDAV 与本地同步目录三种目标;恢复前可预览、写盘前自动留本机回滚副本。若要查看模块清单、存储选型对比(cloud-backup-comparison.md)与双机测试说明,请以仓库 README 为准。
- 目录页:https://www.skillhub.cn/plugins/shangshuo/dsh-sync
- GitHub:https://github.com/shangshuo/dsh-sync