前言¶
DSH 的理念是「一切皆插件」,插件裝多了之後,管理工作就變得具體起來:哪些插件被 Cordis Loader 識別了、哪些處於啓用狀態、哪幾個來自第三方,這些信息平時散落在配置文件裏。想停用一個插件,要手動改 cordis.patch.yml;想保留幾套插件組合來回切換,只能靠手工編輯和備份。
dsh-plugin-toggle-manager 把這些操作搬進了 DSH Web 的界面。下面介紹它的功能、安裝方式和安全邊界。
這是什麼¶
dsh-plugin-toggle-manager 是 DSH Web 的可視化插件管理器,由 Loopiplusplus 維護,當前版本 1.0.0,許可證爲 MIT。它解決的問題很集中:不需要手動修改 DSH 的配置文件,就能在 Web 界面查看、啓用、停用插件,管理多套插件搭配,並在確認後清理符合條件的第三方插件。
核心功能¶
查看插件狀態¶
- 顯示 Cordis Loader 當前識別到的插件,支持按插件名稱或 Loader ID 搜索;
- 分開顯示插件總數、當前已啓用數量與非官方插件總數;
- 對可安全管理的非官方插件提供啓用/停用操作。
管理插件搭配¶
- 可從當前狀態創建搭配,也可從原始配置創建:後者不預先選擇可選的非官方插件,但始終保留 DSH 必需組件和管理器;
- 可編輯、保存並應用多套插件組合;
- 刪除搭配只會刪除搭配記錄,不會刪除插件,也不會直接改變當前狀態。
刪除第三方插件¶
對當前 Web profile 直接安裝、且被明確識別爲非官方的插件,提供帶二次確認的刪除入口。刪除會清理相關的 profile 依賴、已知啓動配置、搭配引用、鎖文件記錄與該 profile 的安裝鏈接。
DSH Harness / DSH Web 核心組件、插件管理器自身和插件分組均受保護,不能從這個界面停用或刪除。
安裝與啓用¶
推薦通過 npm + npx 安裝,在 PowerShell 中執行:
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager
這條命令的含義:
npx --yes --package @deepseek-ai/dsh臨時獲取 DSH 命令;dsh plugin --profile web add在正確的 Web profile 中執行安裝;- 包名不帶版本號,npm 會安裝
latest標籤指向的最新穩定版; - DSH 自動把聲明瞭
dsh.bundle.patch的插件加入 profile bundle 列表。
如果電腦上已經安裝了 dsh 命令,可以用等價的簡短寫法:
dsh plugin --profile web add dsh-plugin-toggle-manager
安裝成功後,打開或刷新 DSH Web,進入 設置 → 插件 → 插件管理 查看頁面。
更新¶
安裝命令不寫版本號,不代表已安裝的插件會自動更新。需要更新時,重新執行一次相同的安裝命令即可,它等價於顯式寫 @latest:
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager@latest
只有需要固定到某個歷史版本、復現問題時才寫版本號,例如 dsh-plugin-toggle-manager@1.0.0。
鏡像源未同步時¶
如果你的 npm / pnpm 被配置爲第三方鏡像,且剛發佈的版本尚未同步到鏡像,可在包名後追加 npm 官方 registry 參數:
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager --registry=https://registry.npmjs.org/
從舊本地包遷移¶
早期本地包使用的名稱是 @deepseek-ai/dsh-plugin-toggle(內部/本地名稱),公開 npm 版的包名爲 dsh-plugin-toggle-manager,功能和版本號仍是 1.0.0。同一個 Web profile 不應同時保留兩個包,否則會註冊相同的 plugin-toggle 服務條目。首次遷移按順序執行:
# 1. 移除舊的本地/內部包
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web remove @deepseek-ai/dsh-plugin-toggle
# 2. 安裝 npm 上的公開包
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager
執行第一步後管理頁會暫時消失,第二步安裝成功後刷新或重新打開 DSH Web 即可恢復。
配置寫入位置與安全邊界¶
- 插件啓用/停用寫入當前 Web profile 的用戶
cordis.patch.yml; - 插件搭配寫入當前 Web profile 的
dsh-plugin-toggle.presets.json; - 關鍵配置寫入前會創建
.bak恢復點;被用戶確認刪除的第三方插件代碼目錄不會自動歸檔; - 插件只操作當前 DSH Web profile,不掃描或刪除任意磁盤目錄;
- 第三方插件的熱插拔支持程度不同,個別前端資源在停用或刪除後可能需要手動刷新或重新打開 DSH Web。
兼容性方面,本版本在 DSH 0.1.0-rc.6 的 Web profile 中構建和驗證,依賴以下 peer dependencies,並要求 Node >= 20:
@deepseek-ai/cordis:^4.0.1@deepseek-ai/cordis-plugin-loader:^1.0.2@deepseek-ai/dsh-host-webserver:^0.1.0-rc.5
適用場景與注意¶
這個插件適合經常在 DSH Web 上調整插件組合、或需要保留多套插件搭配來回切換的用戶。如果你只是偶爾增刪插件,直接編輯配置文件也能做到,管理器省去的是反覆覈對配置和手動備份的成本。
需要注意:插件以當前 dsh 進程權限運行,刪除操作會直接清理插件文件且不自動歸檔,安裝前建議先閱讀項目源碼並確認許可證(MIT)。升級 DSH 或批量調整插件之前,先保留 profile 配置備份。
小結¶
dsh-plugin-toggle-manager 把 DSH Web 的插件查看、啓用/停用、搭配管理和第三方插件清理整合到一個界面裏,並用受保護列表、二次確認和恢復點劃清了安全邊界。對維護多插件環境的 DSH 用戶來說,是一個實用的日常工具。
- GitHub 倉庫:https://github.com/Loopiplusplus/dsh-plugin-toggle-manager
- 社區插件目錄頁:https://www.skillhub.cn/plugins/Loopiplusplus/dsh-plugin-toggle-manager
其中社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。