前言¶
DeepSeek Harness(DSH)走「一切皆插件」的路線:profile 裏堆多了第三方包之後,很難一眼看清每個插件在做什麼、版本是多少、有沒有新版本。手工翻 package.json、進 npm 查版本,再對照各倉庫 README,既慢又容易漏。
下面介紹社區維護的客戶端插件 dsh-installed-plugins(倉庫 Maxkun2333/dsh-plugin-catalog)。它在 DSH 設置頁增加「插件目錄」標籤頁,用一份列表彙總當前 profile 裏的第三方插件,並在你安裝或卸載插件時自動重建目錄。
這是什麼¶
| 項 | 內容 |
|---|---|
| npm 包名 | dsh-installed-plugins |
| 維護者 | Maxkun2333 |
| 分類 | 客戶端(注入 Web 設置頁) |
| 許可證 | MIT |
| 當前版本 | 0.2.4(以倉庫 package.json 爲準) |
| 運行環境 | Node >=20 |
該包未發佈到 npm(名稱 dsh-plugin-catalog 已被無關項目佔用)。安裝需從 GitHub Release 提供的 tarball 添加,不能直接 npm install。
核心功能¶
下列能力均來自項目 README 與 package.json 描述,可按需在面板中使用。
目錄與自動同步¶
- 在 Settings → 插件目錄 展示 profile 中每個第三方插件:通俗說明、已裝版本、是否已組裝(assembled)、npm 上是否有更新。
- 宿主監聽 profile 的
package.json;安裝或移除插件後目錄自行更新,無需額外命令或刷新頁面。 - 相對上次快照新增的插件會帶標記,避免新裝被忽略。
更新與兼容性¶
- 一鍵查詢 npm registry,顯示例如
1.7.25 → 1.7.29及「有更新」標識。 - 安裝前做兼容性判斷:peer 要求升高、其他已裝插件的反向約束、Node engines 不匹配等,結論爲 safe / has risk / incompatible;不兼容項不會默認可選批量更新,但仍可顯式強制更新。
- 支持勾選「更新所選」或「更新全部」;更新前備份
package.json與 lockfile 到backup-update-<timestamp>/,失敗時自動回滾。 - 待更新項可查看 changelog(GitHub Releases 或包內 changelog 文件)。
- 更新完成後需重啓 DSH,新模塊纔會被加載。
備份、卸載與導出¶
- WebDAV:可將整套插件配置(依賴聲明、加載順序、本地
.mjs、patch 層、內嵌 tarball 等)推送到 WebDAV,並在另一臺機器從面板恢復;憑證在面板與settings.json中配置,不寫死在cordis.patch.yml。 - 從面板卸載:可移除依賴、
dsh.profile.bundles條目及相關的cordis.patch.yml行,執行前展示計劃。 - PLUGINS.md:與目錄相同的數據可導出爲便於檢索、適合 git 管理的 Markdown 文件。
檢索與其它¶
- 客戶端即時搜索名稱、描述與標籤,無額外往返。
- 實現爲純 JavaScript,零 npm 依賴,無構建步驟。
更新過程中面板會顯示固定進度卡片(階段:rewrite → backup → install → finish)、耗時與 pnpm 日誌尾部;若下載超時,pnpm 會重試,整體可能約兩分鐘。Node/pnpm 默認不繼承系統代理,面板提供 代理設置 / Proxy(off / auto 默認 / manual)。
安裝與啓用¶
官方推薦從最新 Release 安裝(不要用憑倉庫名拼接的 dsh plugin add github:...):
dsh plugin --profile web add https://github.com/Maxkun2333/dsh-plugin-catalog/releases/latest/download/dsh-installed-plugins.tgz
完成後重啓 DSH,在設置頁即可看到「插件目錄」。
插件通過 cordis.patch.yml 注入,典型配置如下:
- insert:
- id: plugin-catalog
name: 'dsh-installed-plugins'
config:
profile: web # 要掃描的 profile,默認 web
# dataDir: ... # plugins.json / catalog.json / PLUGINS.md 所在目錄
# autoWrite: false # 僅監聽 profile,變更時不寫文件
dataDir 默認行爲:link: 或源碼目錄安裝時數據在包內;經包管理器安裝時用戶數據落在 <DSH_HOME>/plugin-catalog,避免 node_modules 被清理時丟失。
典型用法¶
插件說明從哪來¶
優先級從高到低三層,通常只需維護第一層:
| 層級 | 文件 | 說明 |
|---|---|---|
| 你的備註 | data/plugins.json |
自行編寫,不會被覆蓋,且 gitignore |
| 內置說明 | data/known-plugins.json |
包自帶,覆蓋約 20 個常見社區插件 |
| npm 描述 | 已裝包的 description |
自動讀取 |
將 data/plugins.example.json 複製爲 data/plugins.json 後可增加條目,例如:
{
"entries": {
"dsh-pilot": {
"title": "Browser cockpit",
"what": "Drives a real Edge/Chrome over CDP so the agent can click and type on real pages.",
"use": "Use the pilot_* tools; a draggable cockpit panel shows live state.",
"repo": "https://github.com/guo6x/dsh-pilot",
"tags": ["browser", "automation"]
}
}
}
在面板裏做什麼¶
- 打開 Settings → 插件目錄,瀏覽、搜索已裝插件。
- 需要時點擊檢查更新,閱讀兼容性結論與 changelog,再選擇更新或強制更新。
- 跨機器遷移或災備時,使用 WebDAV 備份與恢復;本地也可按需生成
PLUGINS.md。 - 確定不再需要某插件時,從面板發起卸載並確認計劃。
更新邏輯只改 profile 的 package.json 依賴 spec 及包管理器對 node_modules 的操作,不修改 dsh.profile.bundles。
適用場景與注意¶
適合誰:經常在 DSH Web profile 裏試裝、升級多個社區插件的開發者或運維,希望在一個界面看清清單、版本與更新風險,並偶爾做整包備份的用戶。
應注意:
- 插件以當前 DSH 進程權限運行;安裝前請自行審閱 GitHub 源碼 與 MIT 許可證。
- 社區插件目錄 SkillHub 條目 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係,本文所述亦非官方應用商店。
- 兼容性結論爲建議性質;強制更新前仍應結合自己的 profile 與業務環境判斷。
- 使用 WebDAV 時妥善保管面板中的憑證。
結尾¶
dsh-installed-plugins 把「裝了哪些插件、各自幹什麼、要不要更、能不能更」收到 DSH 設置頁的一站式目錄裏,並支持備份、恢復與卸載編排。若你正在維護一個不斷增長的 DSH 插件集,可以按上文 Release 命令安裝,再從自定義 data/plugins.json 補全你最在意的幾個包的說明。