DSH Migrator:列出已裝插件並導出安裝單或自包含 zip 遷移包

前言

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」的插件,並提供全選/全不選。導出兩條路徑:

  1. 遷移安裝單(Migration note):Markdown,內含 fenced json dsh-plugin-migration 塊和七步執行說明;在新機器的 DSH 會話裏粘貼,由智能體按說明恢復。
  2. 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 在插件關開一次後纔會重新掛載。

典型用法

  1. 打開 Settings → 插件遷移。
  2. 勾選要遷移的插件(official 僅展示,不可選)。
  3. 二選一:
    - 生成安裝單 → 複製或下載 .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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜