前言¶
DSH(DeepSeek Harness)的插件體系中,動態插件(Dynamic Cordis Plugins)通常有兩條加載通道:runner 通道按會話加載,loader 通道通過持久掛載生效。對於需要人工安裝、掛載、停用和移除插件的使用者來說,相關操作分散在命令、目錄和配置項中,不夠直接。
dsh-dynplugin-manager 是一個面向 DSH dynamic plugins 的管理插件,提供設置頁、安裝對話框、內置發現、slash commands 和生命週期操作。
這是什麼¶
dsh-dynplugin-manager 是倉庫 Thomas-key/dsh-dynplugin-manager 中的插件,包名爲 dsh-dynplugin-manager,許可證爲 MIT。
它管理的是 DSH dynamic plugins,包括 runner 會話級加載和 loader 持久掛載兩類對象。倉庫材料中的維護信息存在不一致:README 提到 authored by deepseek-v4-flash,並說明若相關維護說明未移除則作者不積極維護;package.json 的 author 字段爲 illusion。使用前應自行審查源碼、依賴和維護狀態。
核心功能¶
內置插件發現¶
插件從兩個位置發現候選:
- runner managed dir:
~/.dsh/dynplugin-manager/plugins/ - profile node_modules:
~/.dsh/profiles/<profile>/node_modules/
不需要額外配置目錄,設置頁會基於這些位置展示可管理對象。
Settings 頁面¶
啓用後,進入 Settings → Dynamic Plugins 可以看到動態插件狀態。
頁面提供:
- 內置發現結果
- live state badges
- loader 插件的 disable / uninstall 操作
- install dialog 入口
安裝對話框¶
安裝對話框支持以下來源:
- local dir
- GitHub repo
- npm package
流程爲:選擇來源、掃描、按候選插件選擇 link / copy 安裝模式、查看即時結果、one-click mount。
其中 GitHub repo 來源會將 zip 解壓到:
~/.dsh/dynplugin-manager/cache/
並支持 monorepo。
自動路由¶
/dynload <name> 會根據插件形態自動路由:
- self-contained 插件走 runner session-scoped load
- import-using 插件走 loader persistent insert-row mount
質量檢查¶
插件使用 verify-before-persist 機制:在寫入持久配置前執行驗證;驗證失敗不寫入內容。
安裝與啓用¶
先確認來源¶
README 中給出了 name collision warning:可能存在同名 npm 包。安裝時建議明確從該倉庫安裝:
dsh plugin --profile web add -w Thomas-key/dsh-dynplugin-manager
如果從本地 checkout 安裝:
dsh plugin --profile web add -w ./dsh-dynplugin-manager
安裝運行時依賴¶
插件以 link 方式安裝,Node 會從目錄本身解析 import。@deepseek-ai/dsh-tools 不提交到倉庫,需要先在 checkout 中安裝,否則 dsh web 可能啓動失敗:
cd dsh-dynplugin-manager
npm install
cd ..
peerDependencies 中的 @deepseek-ai/cordis 和 react 由 DSH host 提供,不應本地安裝。
啓用¶
經過上面的步驟後,重啓 dsh web,然後進入:
Settings → Dynamic Plugins
即可看到動態插件列表和安裝對話框。
典型用法¶
加載插件¶
/dynload <name>
該命令會自動路由:
- self-contained 插件進入 runner session-scoped 模式
- import-using 插件進入 loader persistent mount 模式
停用插件¶
/dynunmount <name>
行爲按通道區分:
- loader:移除 insert row,相當於 disable,包本身保留
- runner:刪除 managed copy
完全移除插件¶
/dynuninstall <name>
完全移除包括:
- insert row
dsh plugin remove- managed copy
- 相關 records
手動清理 .pnpm 殘留¶
完全移除後,如需手動回收 .pnpm 物理殘留,可以執行:
dsh plugin --profile web prune
注意:dsh plugin --profile web prune 可能刪除用戶安裝的包,因此插件不會自動執行 prune。
適用場景與注意¶
適合需要人工管理 DSH 動態插件的使用者和開發者,尤其是需要統一查看插件狀態、從本地目錄 / GitHub / npm 安裝、掛載、停用和移除動態插件的場景。
使用前建議注意:
- 插件會以當前 DSH 進程權限運行,安裝前應檢查源碼、依賴和許可證。
- 該插件許可證爲 MIT。
- 同名 npm 包可能衝突,應從
Thomas-key/dsh-dynplugin-manager倉庫明確安裝。 - 維護狀態在倉庫材料中不一致,使用前應自行判斷維護活躍度。
- npm 上已有
dsh-plugin-manager(author hrhgit),它管理 bundle plugins,與本插件管理的 dynamic plugins 不是同一對象。
鏈接¶
- 社區目錄頁:https://www.skillhub.cn/plugins/Thomas-key/dsh-dynplugin-manager
- GitHub 倉庫:https://github.com/Thomas-key/dsh-dynplugin-manager
社區目錄頁是插件目錄頁面,不等同於官方應用商店。