通过 WebDAV 和兼容 S3 的存储同步 DSH profile 与本地插件源码归档,支持加密快照、冲突感知恢复和显式自更新。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:dickpy/dsh-cloud-sync
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH Cloud Sync
把 DSH 的配置、插件和本地源码,安全地带到每一台设备。
@dickpy/dsh-cloud-sync · WebDAV / Amazon S3 / OSS / COS / MinIO · 快照历史 · 冲突恢复 · GitHub 自更新
English · 变更日志 · GitHub Releases · 问题反馈
它解决了什么问题?
DSH Cloud Sync 的重点不是绑定某一种存储服务,而是让插件环境可以随时随地同步:在办公室、家里或新电脑上,都能用自己顺手的云服务保存配置和插件信息,再快速恢复出一致的 DSH 环境。
它把这件事变成一个清晰的流程:选择任意支持的云服务,上传可重建的配置和源码归档,把依赖安装交给 DSH / pnpm,在目标设备上恢复出一致的插件环境。
- 不复制会话、附件、
node_modules、pnpm 缓存或明文凭据。 - 不绑定某一种云服务:WebDAV、Amazon S3、阿里云 OSS、腾讯云 COS、MinIO 都可以使用。
- 不把更新放在私有 WebDAV:插件本身通过公开 GitHub Releases 检查和安装更新。
实际效果
设置页提供三个清晰的工作区:云服务、配置与历史、同步状态。下面是当前版本的实际界面:
核心能力
| 能力 | 你得到的结果 |
|---|---|
| 多云同步渠道 | WebDAV、Amazon S3、阿里云 OSS、腾讯云 COS、MinIO;同一时间只启用一个渠道,切换服务不需要改代码 |
| 轻量可重建快照 | 同步 package.json、lockfile、workspace、patch 和市场热更新 YAML,而不是打包整个运行环境 |
| 本地源码归档 | 自动发现可达的 file: / link: 插件源码,归档后换盘符、换电脑也能恢复 |
| 三种同步策略 | 智能合并、云端优先、本地优先;两端同时修改同一项时先展示差异再执行 |
| 历史与恢复 | 每次成功同步留下快照,支持预览、恢复远端版本和回滚到指定历史版本 |
| 插件安装状态 | 对比远端快照与本机 Web Profile,直接安装或卸载缺失插件 |
| GitHub 自更新 | 从 GitHub Releases 检查更新,下载 .tgz 后校验 SHA-256,再由用户确认安装 |
| 兼容加密和自动同步 | 保留已有 AES-256-GCM、设备名和定时同步配置;界面只保留更容易理解的核心操作 |
工作方式
下面这张图展示了双向同步的完整链路:两台设备围绕云端快照仓库同步,保留历史、支持回滚,并可按智能合并、云端优先或本地优先执行。
目标设备只需要相同的同步渠道和 DSH profile。恢复会先备份当前 profile,再写入快照;依赖安装等到完全重启 DSH 后执行,避免覆盖正在运行的 bundle。
快速开始
按推荐顺序,任选一种方式安装;无论哪种方式,安装完成后都需要完全退出并重启 DSH Web,然后在 设置 → 云同步 中开始配置。
方式一:让 AI 助手帮你安装(最省事)
把下面这段话发给 DSH 或 Codex,让它执行安装并重启 DSH Web:
请帮我安装 DSH Cloud Sync 插件(npm 包
@dickpy/dsh-cloud-sync),然后重启 DSH Web。
方式二:通过 npm 安装(推荐)
dsh plugin --profile web add @dickpy/dsh-cloud-sync@0.19.1
方式三:通过聚合包(.tgz)安装
从 GitHub Releases 下载最新的 dickpy-dsh-cloud-sync-*.tgz,然后执行:
dsh plugin --profile web add .\dickpy-dsh-cloud-sync-0.19.1.tgz
适合无法直接访问 npm registry 的内网或离线环境。
方式四:自己开发启动
git clone https://github.com/dickpy/dsh-cloud-sync.git
cd dsh-cloud-sync
npm install
npm run check
dsh plugin --profile web add .
适合需要修改插件源码、调试或贡献代码的场景。
第一次同步
- 打开 云服务,选择 WebDAV、S3、OSS、COS 或 MinIO,填写对应的 Endpoint、Bucket 和凭据。
- 进入 配置与历史,选择同步策略并点击 开始同步。
- 需要手动补充本地插件源码时,在同一页填写源码目录并点击 备份源码。
- 换到新设备后,在 同步状态 查看插件安装情况;可先预览远端快照,再应用恢复。
同一时间只有一个同步渠道处于启用状态。连接并启用新的渠道时,旧渠道会自动停用。
支持的同步渠道
| 渠道 | 适合场景 | 配置要点 |
|---|---|---|
| WebDAV | 坚果云、Nextcloud、NAS 等 | 填写 DAV 地址、用户名和应用密码 |
| Amazon S3 | AWS 或兼容 S3 的对象存储 | Endpoint、Region、Bucket、Access Key |
| 阿里云 OSS | 阿里云对象存储 | 使用 OSS 的 S3 兼容 Endpoint |
| 腾讯云 COS | 腾讯云对象存储 | Bucket 通常包含 APPID,填写对应 Region |
| MinIO | 自建对象存储、内网或本地开发 | 填写 MinIO Endpoint、Bucket 和密钥 |
公共网络上的存储服务建议使用 HTTPS。MinIO 在本机或可信内网中可以使用 HTTP。
同步策略
| 策略 | 行为 |
|---|---|
| 智能合并(默认) | 合并两端的插件依赖、Bundle 和源码归档;发现同一项目被两端修改时,先让你确认 |
| 云端优先 | 使用远端快照覆盖当前 profile,适合新设备恢复 |
| 本地优先 | 使用当前 profile 覆盖远端快照,适合把本机状态作为最新版本 |
安全边界
- 快照、历史和源码归档可使用 AES-256-GCM 客户端加密;每个对象使用新的 KDF salt。
- 密码和派生密钥不会写入明文设置文件;Windows 使用当前用户 DPAPI 保护已保存凭据。
- 恢复前自动备份当前 profile,源码归档恢复会做 SHA-256 校验并拒绝路径穿越。
- 加密保护的是远端内容,不替代对象存储本身的权限控制;请为 Bucket、Endpoint 和 MinIO 管理员账号配置最小权限。
GitHub 自更新
打开云同步设置页时,插件会直接检查 GitHub Releases,不依赖任何 WebDAV 或对象存储配置。发现新版本后:
- 用户点击 更新;
- 插件下载对应的
.tgz到本机 release 缓存; - 使用 GitHub 提供的 SHA-256 资产摘要校验;
- 用户确认后安装到
webprofile,重启 DSH 完成切换。
更新始终是显式操作,不会在同步时静默替换正在运行的 Cloud Sync。
开发与测试
环境要求:Node.js 18 或更高版本、pnpm。
npm install
npm run check
npm test
npm pack
项目结构:
lib/index.js bundle 入口和本地 API 路由
lib/core.js 存储渠道、快照、加密和插件生命周期
lib/client.js 设置页 UI
test/core.test.mjs 核心流程集成测试
docs/screenshots/ README 界面截图
发布
- 更新
package.json版本号并添加CHANGELOG.md条目; - 执行
npm run check和npm test; - 执行
npm pack生成.tgz; - 创建同版本的 GitHub Release 并上传
.tgz; - 其他设备会在设置页检测到更新,并由用户显式安装。
常见问题
没有 WebDAV,也能检查插件更新吗?
可以。插件更新来自 GitHub Releases,与同步渠道完全独立;WebDAV、S3、OSS、COS、MinIO 只负责你的配置快照和源码归档。
会不会复制整个 node_modules?
不会。同步的是可重建的 profile 文件和必要的本地插件源码,依赖由目标设备上的 DSH / pnpm 重新安装。
为什么恢复后要重启 DSH?
恢复会修改 profile 配置。重启可以让 pnpm 和 DSH 从新的 profile 重新建立依赖,避免在运行中的 bundle 上热替换。
如何排除不想同步的文件?
在 DSH 同步目录创建 .dshsyncignore,每行填写一个要排除的文件或目录名。
许可证
MIT © 2025 dickpy
链接
同类插件
NanmiCoder/dsh-agent-teams★ 365
AgentTeams 多智能体团队。
icetomoyo/dsh_workflow★ 61
把 UltraCode 式多 Agent 调度带给 DSH:可生成、可保存、可治理、可观察、可恢复的 Workflow 层。
btspoony/mstar-harness★ 45
技能驱动的 harness/loop 工程化工作流插件。
titanwings/dsh-automation★ 44
定时任务:让 Coding 任务按计划在全新 Agent Session 中运行,保留可审计历史。
whyihaveyou/dsh-suite#plugin-team-board★ 34
多 agent 共享任务板:经 Cordis service key 创建/认领/流转/查询任务。
omdsh-dev/dsh-deep-research★ 12
自适应深度研究编排器(基于官方 workflow 引擎)。