DSH 插件 plugin-switch:在插件清單裏直接啓停插件

前言

對需要頻繁調整插件組合的 DSH 用戶來說,手工改配置和重啓服務並不方便。plugin-switch 把“啓用 / 停用插件”做成頁面上的滑塊操作。

它給 DeepSeek Harness (DSH) 的插件清單頁加上滑塊開關:點一下即可啓用/停用任何插件,立即生效、不用重啓服務端,重啓後狀態保持。

這是什麼

plugin-switch 由 cynch18 維護,包名爲 dsh-profile-plugin-switch,包版本爲 0.5.1,許可證爲 MIT

它是 DSH 的一個本地 web profile 插件,主要入口是設置裏的“插件清單”頁。

核心功能

  • 即時啓停:通過主動重放通道生效,繞開平臺 watcher 死鎖,確定性生效。
  • 列表管理:支持按系統 / 第三方 / 本地分組,並提供狀態篩選、排序、搜索。
  • 批量操作:支持批量啓用/停用;批量動作按單事務處理,一次備份,撤銷一步全回。
  • 撤銷與備份:提供“↺ 撤銷”按鈕;每次開關前自動備份,保留最近 20 份。
  • 風險提示:關鍵條目強確認、被依賴提示、停用確認警告、停用來源分層、config 預覽、失敗診斷。
  • 其他能力:多標籤頁即時同步、CLI 恢復工具、雙語界面與動畫。

安裝與啓用

前提

需要以 web profile 運行 DSH,並且 Node ≥ 22。以 web profile 運行可用:

npx @deepseek-ai/dsh web

推薦安裝方式

使用 dsh plugin 命令安裝:

dsh plugin --profile web add github:cynch18/plugin-switch

安裝後重啓 dsh web,按 Ctrl+Shift+R 強制刷新瀏覽器,然後打開:

設置 → 插件 → 插件清單

插件右側會出現滑塊開關。

其他安裝方式

如果使用 PowerShell 環境,也可以使用下面的方式。三種安裝方式任選其一,不要重複安裝;同一 profile 裝兩次會產生重複條目,重啓會報錯。

直接下載 plugin-switch.zip 後運行:

powershell -ExecutionPolicy Bypass -File .\install.ps1

或通過 git clone 後運行:

git clone https://github.com/cynch18/plugin-switch.git
cd plugin-switch
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1

方式二和方式三的 PowerShell 腳本支持以下參數:

  • -KeepOriginal:保留原只讀清單,僅啓用 HTTP API。
  • -Dev:建立 junction 指向源碼,改代碼直接生效。

典型用法

臨時啓用或停用插件

進入:

設置 → 插件 → 插件清單

找到目標插件,點擊右側滑塊即可啓用或停用。狀態立即生效,不需要重啓 dsh web

批量調整

可以批量啓用或停用多個插件。批量動作使用單事務:一次備份,撤銷時一步全回。

誤操作後撤銷

如果點錯,可以使用頁面上的“↺ 撤銷”按鈕,恢復到上一次開關前的配置。每次開關前都會自動備份,保留最近 20 份。

開關頁消失後的恢復

如果關閉“插件開關”自身,開關頁會消失。可以打開:

%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml

找到 plugin-switch 條目,把 disabled: true 改回 false,保存後恢復開關頁。

用 CLI 恢復

如果 GUI 無法打開,可以運行 CLI 恢復工具:

node scripts/dsh-plugin-fix.mjs list
node scripts/dsh-plugin-fix.mjs enable <id>
node scripts/dsh-plugin-fix.mjs disable <id>
node scripts/dsh-plugin-fix.mjs undo
node scripts/dsh-plugin-fix.mjs backups

恢復原只讀清單

如果希望回到 DSH 原來的只讀插件清單,把 %USERPROFILE%\.dsh\profiles\web\cordis.patch.ymlui-settings-plugin-inventoryplugin-inventorydisabled: true 改回 false,同時刪除 plugin-switch 條目。

徹底卸載

刪除插件目錄:

%USERPROFILE%\.dsh\profiles\web\node_modules\dsh-profile-plugin-switch

並移除:

%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml

中的相關條目。

適用場景與注意

適合在本機使用 DSH web profile、需要頻繁調整插件組合、希望減少重啓和手工改配置的人。

使用前注意:

  • plugin-switch 會作爲本地 web profile 插件運行。
  • /plugin-switch 是無鑑權的本地 HTTP 路由,與 DSH 自帶 /plugins/... 同級信任,僅限個人本機使用。
  • 插件會以當前 dsh 進程權限運行,安裝前建議檢查源碼與 MIT 許可證。
  • 三種安裝方式不要重複執行。
  • 如果改包內 index.js,需要重啓 dsh;如果只改 client.js,刷新頁面即可。
  • 批量操作和關鍵條目會有確認或風險提示,啓用/停用前可先看 config 預覽。

獲取

GitHub 倉庫:https://github.com/cynch18/plugin-switch

目錄頁:請以你使用的 DSH 社區目錄檢索結果爲準。DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜