- Início
- Plugins
- Ferramentas e funções
- dsh-plugin-porter
dsh-plugin-porter
chenzhihan1751-cyber/dsh-plugin-porter
Moves DSH plugins between machines and profiles: export a migration bundle where local plugins keep their source and remote ones reinstall by version, restore it elsewhere with the bundle's own restore.mjs, copy plugins to another profile, or pack the whole environment (config, memory, sessions, attachments, plugin sources) into checksummed volumes with a restore script.
Instalar
dsh plugin --profile web add github:chenzhihan1751-cyber/dsh-plugin-porterREADME
Plugin Porter · DSH 插件搬家工具
把 DSH 的插件、配置、记忆、会话,打包带走。 换电脑、换 profile、给别人分享工作环境——一个包搞定。
Plugin Porter is a plugin migrator / backup tool for DeepSeek Harness (DSH): export a migration bundle, import it on another machine, copy plugins to a different profile, or move the whole environment — config, memory, sessions, attachments, plugin sources — in one checksummed, multi-volume archive. Cross-machine, cross-profile, one command.
这东西解决什么问题
装了几十个插件、调了半天配置、攒了几百条记忆——换台电脑全没了。这个插件就是干这个的。
| 你的处境 | 它怎么帮你 |
|---|---|
| 买了新电脑,不想重装一遍插件 | 整机迁移:一个包,配置/记忆/会话/插件全带走 |
| 只想把某几个插件搬到另一台机器 | 迁移包:勾选 → 导出 → 那边导入 |
| 想让同事体验你的插件组合 | 全量整合包:连"怎么装、有什么坑"一起打包,附一段提示词 |
| 想试试 headless 模式又不想重装 | 搬到别的 profile:一键复制过去 |
三分钟装好
方式 A:从设置里装(推荐)
-
打开 DSH → 设置 → 插件 → 添加插件
-
填这一行:
github:chenzhihan1751-cyber/dsh-plugin-porter -
装完重启 DSH(关窗口,再双击图标)
-
设置里多出一个 「插件迁移」 页
方式 B:下载 zip 手动装
- 点右上角 Code → Download ZIP
- 解压到任意目录(比如
D:\plugin-porter) - 双击目录里的
install.bat - 重启 DSH
装不上?见 FAQ。
五个功能,一眼看懂
打开 设置 → 插件迁移,面板上一排五个区块:
| # | 功能 | 一句话 |
|---|---|---|
| ① | 导出迁移包 | 勾选插件 → 打包成一个 zip |
| ② | 导入迁移包 | 选包 → 恢复到本机 |
| ③ | 搬到别的 profile | web → headless,插件复制过去 |
| ④ | 全量整合包 | 连"怎么装、有哪些坑"一起打包 |
| ⑤ | 整机迁移 | 配置+记忆+会话+插件,换电脑用一个包 |
① 导出迁移包
什么时候用:只想搬插件,不想搬别的。
- 左侧列表勾选要带走的插件
- 右侧选输出目录(点 选择目录… 有可视化浏览,不用手打路径)
- 点 导出迁移包
产出一个文件夹 + 一个 zip:
plugin-migration-20261018-1430/
├── manifest.json ← 清单:有哪些插件、版本、来源
├── restore.mjs ← 恢复脚本(包自带,换电脑不用先装本插件)
├── restore.bat ← Windows 双击也能跑
└── plugins/
└── dsh-xxx/ ← 本地插件连源码一起打包
远程插件(从 npm / GitHub 装的)只记版本号,恢复时自动重新拉取,包体很小。
② 导入迁移包
最省事的做法:把整个包拷到新电脑,双击包里的 restore.bat。
想先看看会发生什么(推荐):
node restore.mjs --list
包里 6 个插件:
dsh-ai-memory 0.9.2 本地源码
dsh-cost-meter 0.4.1 本地源码
dshmarket 1.66.9 npm
...
预览(不写任何文件):
node restore.mjs --profile web --dry-run
确认没问题再真正恢复:
node restore.mjs --profile web --root D:\我的插件
也可以回到 DSH 界面里做:插件迁移 → ② 导入迁移包 → 选择包…(zip 或文件夹都行)→ 导入。
恢复完必须重启 DSH,插件才会真正加载。
③ 搬到本机另一个 profile
什么时候用:你平时用 web,想再开一个 headless 跑后台任务,插件想复用。
- 勾选插件
- 在 ③ 区块填目标 profile(比如
headless) - 点 复制到目标 profile
它会做三件事:写依赖声明、建目录链接、迁移 patch 条目(自动按 id 去重,不会造成启动崩溃)。
④ 全量整合包:把"使用经验"也打包
什么时候用:把环境交给一台全新的 DSH,或者分享给别人。
跟 ① 的区别:① 只给"插件本体",对方还得自己摸索怎么装;④ 把踩过的坑、搭建步骤、提示词一起抽出来。
点 ④ 全量整合包 → 生成整合包(后台),跑完得到:
| 文件 | 内容 |
|---|---|
PROMPT.md | 一段提示词,整段粘给新 DSH 的对话框,它自己照着搭 |
TRICKS.md | 通用踩坑总集 |
catalog/插件名.md | 每个插件一页:功能、依赖、装配要点、版本变迁 |
plugins/ + restore.mjs | 插件本体与恢复脚本 |
用法:新机器上装好 DSH → 开个对话 → 粘贴 PROMPT.md 全文 → 它自己开工。
⑤ 整机迁移:换电脑的终极方案
什么时候用:真的换机器了,想把这一整套环境原样搬过去。
勾选范围(三档):
| 档位 | 包含 | 体积 |
|---|---|---|
essential | 配置 + 记忆 + 技能 | 最小,够用 |
standard | 上面 + 会话 + 附件 + 插件源码 | 日常推荐 |
everything | 上面 + 整个工作区 | 可能几个 GB |
点 生成整机迁移包,它会:
- 打成分卷(默认每卷 1.8GB,方便网盘/U 盘传)
- 每卷附 sha256 校验清单(传坏了能发现)
- 包内自带
恢复-DSH.bat/restore-dsh.mjs
新电脑上:解压 → 双击 恢复-DSH.bat → 按提示选目标目录 → 完事。
⚠️ 包里含 API 密钥。要传给别人的话,先只选
essential,或者手动删掉密钥段。
迁移包里到底装了什么
manifest.json 清单(版本、来源、校验和)
restore.mjs 恢复脚本 —— 纯 Node,不依赖本插件
restore.bat Windows 双击入口
plugins/ 本地插件的源码快照
关键点:恢复脚本跟着包走。所以新电脑上不需要先装 Plugin Porter,直接 node restore.mjs 就行。
安全吗
| 它可能碰到 | 保护措施 |
|---|---|
profiles/<名字>/package.json | 改之前先存 package.json.bak-时间戳 |
profiles/<名字>/cordis.patch.yml | 先备份;按 id 去重,防 duplicate loader entry id 启动崩溃 |
| 你的插件源码目录 | 目标已存在就原样保留,要覆盖必须显式加 --force |
| 导出的包 | 只新建目录,不覆盖已有同名目录 |
它不碰 DSH 主程序代码,也不改你的插件源码(导出时只给快照副本补字段)。
启动体检:装完先自检
DSH 新版本对插件有个硬要求:每个插件必须在 package.json 里声明 dsh.bundle.patch,缺了启动直接失败。
面板上的 「启动体检」 按钮 = 用 DSH 自己的加载逻辑先跑一遍,不用重启就知道下次启动会不会挂。
也可以用命令行:
node tools/check-profile-boot.mjs --profile web
退出码 0 = 没问题,非 0 = 启动会失败(会告诉你是哪个插件)。
真出问题了,面板上有 「修复选中:dsh.bundle」,一键补齐并备份原文件。
恢复后怎么生效
重启 DSH。桌面版:关掉窗口,再双击图标。
重启前设置页里只是列表刷新了而已,插件代码还没加载。
FAQ
Q:装完设置里没看到「插件迁移」? 重启 DSH。插件的 UI 是启动时挂载的,热更新不覆盖这一层。
Q:导入后插件列表有了,但功能没生效? 同上,重启。列表刷新 ≠ 插件加载。
Q:恢复脚本报 Cannot find module?
Node 版本太低。要求 Node ≥ 22:node -v 看一下。
Q:包传过去 sha256 对不上? 传输过程损坏(网盘/U 盘常见)。重新传那一卷,别硬解压。
Q:会覆盖我现有的插件吗?
不会。目标目录已存在时保留原样;要覆盖得自己加 --force。
Q:能只导出某一个插件吗? 可以,列表里只勾那一个就行。
Q:和「插件市场」有什么区别? 市场负责装新插件,这个负责搬已有的。两者不冲突,可以同时装。
开发者
- 零构建:
lib/里的 JS 就是源码,改完重启即生效 - 不 spawn 子进程:zip 用自带的
lib/zip.mjs压缩/解压 - 实现细节、边界、设计取舍 → docs/INTERNALS.md
- Agent 工具:
plugin_migrator_list/_export/_import/_copy
git clone https://github.com/chenzhihan1751-cyber/dsh-plugin-porter.git
cd plugin-porter
node install.mjs # 装进本机 DSH
License
BSD-3-Clause
Plugins relacionados
archify (deepseek-harness)
tt-a1i/archify
WeKnora (dsh-weknora)
tencent/weknora
weknora
tencent/weknora
BrowserSkill (dsh-plugin-browserskill)
tencent/browserskill