前言¶
在 DeepSeek Harness(DSH)里,插件和配置往往随使用慢慢变多:换电脑、重装客户端,或想在两台机器上保持同一套环境时,很难靠记忆还原「装了哪些包、什么版本、开关和配置怎么设」。手工导出清单再逐条安装,既慢也容易漏。
下面介绍社区插件 插件备份(包名 dsh-plugins-git-sync,维护者 songni370)。它把用户自行安装的第三方插件及其版本、启用状态和配置,以普通 JSON 写入你指定的 Git 仓库,支持备份、恢复、双向同步与按提交回滚;Token 等敏感信息不上传,只同步经过滤的配置字段。插件在 SkillHub 分类为联网工具,仓库地址:GitHub、SkillHub 目录页。
这是什么¶
dsh-plugins-git-sync 是 DSH 的 Git 同步插件:用你自己的 Git 仓库备份、恢复,并在多台设备之间同步 DSH 插件与配置。备份内容可用 Git 工具直接查看、对比和回滚。
同步范围仅限用户后装的第三方插件。DSH 内置插件、加载器内部条目(cordis:*)以及本插件自身都不会进入备份。
核心功能¶
备份与恢复¶
把本机用户安装的插件(版本、启用状态、配置)推到仓库;换设备时按仓库清单装回来。
双向同步与冲突¶
本机改动可上传、仓库改动可下载;两边都改且结果不同时会停下来让你选择,不自动裁决。冲突时可选择:用本机覆盖仓库、用仓库覆盖本机,或先不处理;每个选项下方会说明会发生什么。本机已卸载而仓库仍有备份时,需明确选择「从仓库删除」或「保留仓库」。
同步逻辑基于本机保存的基线(base),比较 base / 本机 / 仓库 三方:仅本机变则推送;仅仓库变则应用到本机;两边都变且不同则为冲突;本机有、仓库没有时会补齐仓库,不会因此删除本机插件;删除仓库条目属于破坏性操作,确认后才会执行。改本机前会创建快照;推送被其他设备抢先时会重新拉取并重试,不会 force push;没有需要更改的内容时不会产生空提交。
历史回滚¶
可按时间查看提交列表,选择任意一次提交,将本机恢复到当时状态。
自动同步¶
默认关闭。开启后由事件触发,没有定时器:
- 打开客户端:可配置延迟(默认 15 秒;低于 5 秒会提示可能与 DSH 启动时的插件安装冲突)。
- 插件安装 / 更新 / 卸载后:防抖约 10 秒触发一次。
自动同步遇到冲突或破坏性计划会暂停并写日志,等待手动处理,不会弹窗、也不会静默删除。
Agent 工具¶
提供 6 个工具(名称沿用 dsh_git_plugin_*),供 Agent 查看状态、备份、恢复、同步、检查差异、查历史。破坏性操作需两阶段确认:先预览,再带 confirm: true 执行。
| 工具 | 作用 |
|---|---|
dsh_git_plugin_status |
查看状态、差异数量、最近错误 |
dsh_git_plugin_backup |
备份到仓库 |
dsh_git_plugin_restore |
从仓库/历史提交恢复 |
dsh_git_plugin_sync |
双向同步 |
dsh_git_plugin_diff |
只读差异预览 |
dsh_git_plugin_history |
查看历史提交与快照 |
安全与限制¶
- 不读取、不上传 Token、密码、私钥、Cookie;HTTPS 认证只保存环境变量名,令牌值放在环境变量中。
- 不写机器绝对路径;配置按敏感字段/值过滤后再写入仓库(尽力过滤,非严格白名单)。
- 每个 DSH Profile 需分别安装、分别同步;仓库内按
profiles/<profile>/分目录存放。 - 本地开发插件(无 npm 安装来源)可以记录,其他设备无法自动安装。
- 只同步版本/启停/配置,不负责查最新版本或代替插件市场升级。
界面入口¶
在 设置 →「插件备份」(英文界面为 Plugin Backup)配置;插件页侧边栏「插件」也可显示「备份」标签,内容相同。页面上提供仓库配置、测试连接、同步 / 检查差异 / 备份到 Git / 从 Git 恢复 等操作,以及同步状态磁贴与自动同步开关。未配置仓库时不会后台同步。
安装与启用¶
推荐从 npm 安装(需 Node.js >= 22.19.0,以 package.json 中 engines 为准):
dsh plugin --profile web add dsh-plugins-git-sync@latest
也可在 DSH 插件管理器或 Agent 的 plugin_manager.install_bundle 中使用包名 dsh-plugins-git-sync。
更新:
dsh plugin --profile web update dsh-plugins-git-sync@latest
从 GitHub 源码安装时,spec 可为 git+ssh://git@github.com:songni370/dsh-plugins-git-sync.git 或 HTTPS 形式 https://github.com/songni370/dsh-plugins-git-sync.git;仓库已包含构建产物 lib/,一般无需本地构建。安装后重启 DSH 或刷新页面。
插件以当前 DSH 进程权限运行;安装前建议阅读 源码与 MIT 许可证,自行评估是否满足环境要求。
典型用法¶
- 在 GitHub、GitLab 等创建私有空仓库(建议不要勾选自动生成 README)。
- 打开 设置 →「插件备份」,填写仓库地址:
- HTTPS:选择 Git 凭据助手,或选「HTTPS 令牌」并填写保存令牌的环境变量名。
- SSH:使用系统 SSH Agent 或~/.ssh密钥,无需在插件里额外填写私钥。 - 点「测试连接」→ 保存。
- 点「同步」,第一次会生成初始备份并推送。
- 第二台设备:安装本插件 → 填同一仓库与认证方式 → 保存 → 点「同步」或「从 Git 恢复」。
数据与状态默认位于 $DSH_HOME/dsh-plugins-git-sync/(配置、状态、日志、工作副本、快照)。从旧目录 $DSH_HOME/dsh-git-plugin-sync/ 升级时会自动沿用旧目录;卸载插件不会自动删除该目录。
适用场景与注意¶
适合:需要在多台机器或重装后快速对齐 DSH 插件清单与配置、并希望通过 Git 历史做审计与回滚的开发者。
注意:
- SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系,插件来自社区维护者,使用前请核对仓库与许可证。
- 联网与 Git 操作依赖你配置的仓库与凭据;自动同步无定时器,不能替代定期人工检查冲突日志。
- 多 Profile 环境要为每个 Profile 单独安装并同步,避免误以为一个仓库会覆盖所有 Profile。
结尾¶
dsh-plugins-git-sync 把 DSH 第三方插件环境当成可版本化的 JSON 清单,交给熟悉的 Git 工作流管理,减少换机与多设备协作时的重复劳动。进一步了解实现细节可见仓库内的 docs/ARCHITECTURE.md、docs/SECURITY.md。
- 目录页:https://www.skillhub.cn/plugins/songni370/dsh-plugins-git-sync
- GitHub:https://github.com/songni370/dsh-plugins-git-sync