前言¶
DeepSeek Harness(DSH)通過 profile 裏的 package.json 管理插件:官方 bundle、npm 包、以及用 link: 掛在本地目錄的自研插件往往混在一起。換電腦或重裝環境時,你需要自己翻 ~/.dsh/profiles/desktop/package.json,分清哪些是 local link、目錄在哪,再手動拷貝。本文介紹社區插件 fenshal/dsh-migrator(維護者 fenshal,SkillHub 目錄、GitHub):在「設置 → 插件遷移」裏勾選要帶的插件,生成可粘貼的遷移說明,或下載帶源碼與恢復腳本的 zip,本地完成清單與打包,不發起網絡請求。
這是什麼¶
DSH Migrator 是掛在 DSH 設置頁的客戶端插件(@local/dsh-migrator,當前資料版本 0.1.0,MIT)。它讀取當前 active profile 的插件清單,區分 official、npm、local 三類,並支持選擇性導出。官方插件隨 DSH 自帶,無需遷移;npm 只需記住版本;local 必須把源碼一併帶走——該插件把這三類情況整理成你可直接執行的動作。
核心功能¶
完整清單¶
對當前 profile 列出:名稱、版本、種類(kind)、從各包 repository/homepage 讀出的 GitHub 倉庫、啓用狀態。官方 bundle 會顯示但不可勾選導出。
選擇性導出¶
默認選中「所有已啓用且非 official」的插件,並提供全選/全不選。導出兩條路徑:
- 遷移安裝單(Migration note):Markdown,內含 fenced
json dsh-plugin-migration塊和七步執行說明;在新機器的 DSH 會話裏粘貼,由智能體按說明恢復。 - Zip kit:自包含壓縮包,結構包括:
-安裝單.md(同上,給人看)
-manifest.json(機器可讀:name/version/kind/repo/leaf/order/enabled)
-restore-plugins.ps1(恢復腳本,支持-DryRun)
-dsh-plugins/<leaf>/(所選 local 插件源碼)
-dsh-skills/(~/.dsh/skills中的內容與技能)
恢復腳本會把 local 源碼拷到插件根目錄、合併 dependencies、調整 dsh.profile.bundles 順序,備份原 package.json,並把 skills 拷入且不覆蓋已有文件。
HTTP 路由(供集成參考)¶
| method | path | 作用 |
|---|---|---|
| GET | /migrator/list |
返回 profile 插件及 kind/version/repo/leaf |
| POST | /migrator/build |
body {names} → 安裝單文本 |
| POST | /migrator/zip |
body {names} → application/zip |
插件在內存中用內置 ZIP 寫出壓縮包,無第三方 zip 依賴;不訪問網絡、不讀取憑據與會話密鑰。
安裝與啓用¶
資料給出的安裝方式如下(路徑請按你本機替換)。
從本地 checkout 鏈入 profile:
# link the directory into the profile
cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add "link:D:/path/to/dsh-migrator"
# then add "@local/dsh-migrator" to dsh.profile.bundles in package.json and restart DSH
或使用:
plugin_manager install_bundle D:\path\to\dsh-migrator
啓用後重啓 DSH,在 Settings → 插件遷移 出現新頁面。發佈前維護者建議執行 node --check index.js && node --check client.js;客戶端 bundle 在插件關開一次後纔會重新掛載。
典型用法¶
- 打開 Settings → 插件遷移。
- 勾選要遷移的插件(official 僅展示,不可選)。
- 二選一:
- 生成安裝單 → 複製或下載.md,在新機器 DSH 會話中粘貼。
- 下載壓縮包 (.zip) → 在新機器解壓後執行恢復腳本。
在新機器上恢復 zip:
# see the plan first
pwsh -File .\restore-plugins.ps1 -DryRun
# apply
pwsh -File .\restore-plugins.ps1
腳本參數(摘自 README):
| parameter | default | meaning |
|---|---|---|
-Kit |
腳本所在目錄 | 解壓後的 kit 路徑 |
-PluginRoot |
manifest.json 的 pluginRoot,否則常見 DSH 插件目錄,否則 %USERPROFILE%\dsh-plugins |
local 源碼落地位置 |
-ProfileDir |
~/.dsh/profiles/desktop |
要更新的 DSH profile |
-DryRun |
關閉 | 只打印計劃,不寫盤 |
執行後重啓 DSH;若插件頁提示 pending installs,在 profile 目錄內運行 pnpm install。
適用場景與注意¶
適合誰:經常在多機之間同步 DSH 環境、local 自研插件較多、或希望把 skills 目錄一併帶走的開發者。
邊界與限制(以 README 爲準):
- 只讀
~/.dsh/profiles/desktop/package.json、鏈入的插件目錄、~/.dsh/skills;credentials、settings 密鑰等不包含在導出物中。 npm插件僅記錄名稱與版本,新機器仍需能訪問 registry 安裝。- GitHub 上雖有倉庫信息的 local 插件,kit 仍打包當前機器上的本地源碼,不會從遠端拉取。
- Skills 原樣複製;與會話綁定的插件狀態文件有意不導出。
- DSH 插件以當前 DSH 進程權限運行,安裝前請自行查看 GitHub 源碼 與 MIT 許可證。
DSH 生態強調「一切皆插件」;SkillHub 等社區目錄獨立於 DeepSeek / 幻方,本插件爲社區維護作品(GitHub 星標數在抓取時爲 1)。
結尾¶
經過上面的步驟,你可以在舊環境一次性列出、勾選並導出插件與 skills,在新環境用安裝單或 restore-plugins.ps1 恢復,避免手抄 package.json 和漏拷 link: 目錄。更多說明見 SkillHub 插件頁 與 fenshal/dsh-migrator。