DSH 插件管理器:在設置面板內管理 MCP、Skills 與內置插件包

前言

在 DeepSeek Harness(DSH)裏跑智能體,MCP 服務、Skills 和內置插件包會隨使用不斷增減。常見做法是直接編輯 ~/.dsh/profiles/web/cordis.patch.yml,或在文件系統裏手動挪動 ~/.dsh/skills/ 下的目錄。配置項一多,開關某個 MCP、確認傳輸方式、刪掉不再用的 Skill,都要對着 YAML 和路徑操作,改完通常還要重啓 dsh web 才能看到效果。

dsh-plugin-manager(維護者 liqichen)把上述操作收進 DSH 設置面板裏的圖形界面:三個標籤頁分別對應 MCP 服務、Skills 和內置插件包,改動寫入真實配置文件後熱生效,無需重啓 dsh web。項目在 GitHub 上開源(MIT,當前版本 0.1.0),支持 macOS 與 Linux,歸類爲客戶端插件。

這是什麼

dsh-plugin-manager 是標準 DSH 雙端插件:瀏覽器端 client.js 在設置面板注入「插件管理」頁,Node 端 index.js 內嵌在 dsh web 宿主裏,註冊 /plugin-manager/api/* 路由,讀寫 cordis.patch.yml 與 Skills 目錄。不額外起進程,不佔端口,API 與頁面同源。

社區目錄頁:https://www.skillhub.cn/plugins/liqichen/dsh-plugin-manager
源碼倉庫:https://github.com/liqichen/dsh-plugin-manager

核心功能

能力 說明 生效方式
MCP 開關 一鍵禁用/啓用任意 MCP 服務(寫入 disabled: true 或移除) 即時熱生效
MCP 刪除 cordis.patch.yml 刪除整個 MCP 條目(上方註釋保留) 即時熱生效
Skills 管理 瀏覽全部 skill 及描述;刪除時移入 .trash-* 目錄,可恢復 立即生效
內置插件包瀏覽 只讀查看 DSH 本體 160+ 內置插件包的名稱、版本、說明 只讀
自動備份 每次寫操作前自動備份爲 cordis.patch.yml.bak-<時間戳>

寫操作涉及的主要路徑:

  • ~/.dsh/profiles/web/cordis.patch.yml — MCP 服務配置(補丁層)
  • ~/.dsh/skills/ — Skill 目錄
  • ~/.dsh/profiles/node_modules/@deepseek-ai/ — DSH 本體插件包(只讀)

安裝與啓用

前提:已安裝 DeepSeek Harness(dsh web),並瞭解 ~/.dsh 目錄結構。

下面是從倉庫安裝並註冊的完整步驟(README 推薦方式):

# 1. 克隆並放入用戶插件目錄
git clone https://github.com/liqichen/dsh-plugin-manager.git
mkdir -p ~/.dsh/plugins/dsh-plugin-manager
cp -r dsh-plugin-manager/{index.js,client.js,package.json} ~/.dsh/plugins/dsh-plugin-manager/

# 2. 通過 dsh CLI 註冊插件
dsh plugin --profile web add ~/.dsh/plugins/dsh-plugin-manager

接着手動完成依賴與插件聲明:

# 3. 編輯 ~/.dsh/profiles/web/package.json,在 dependencies 加入:
#    "dsh-plugin-manager": "file:../../plugins/dsh-plugin-manager"

# 4. 編輯 ~/.dsh/profiles/web/cordis.patch.yml,在 plugins 列表加入:
#    - id: plugin-manager-ui
#      name: dsh-plugin-manager

完成上述步驟後,重啓 dsh web,打開「設置」→「插件管理」即可使用。

若插件機制不適用,倉庫還提供早期獨立版 Python 服務作爲備用:

python3 legacy/server.py --port 17891
# 瀏覽器打開 http://127.0.0.1:17891/

典型用法

安裝並重啓後,進入 DSH 設置 → 插件管理

MCP 服務標籤頁:每個 MCP 以卡片展示名稱、傳輸方式(stdio / http)、運行狀態與配置 id。右側開關可禁用或啓用;刪除按鈕會二次確認後移除條目。頂部顯示配置文件路徑與總數量。

Skills標籤頁:列出所有 skill、SKILL.md 中的描述及目錄路徑。刪除操作將目錄移入 ~/.dsh/skills/.trash-*,可手動恢復。

內置插件包標籤頁:表格只讀展示 DSH 本體全部插件包。升級 DSH 本體請使用:

npm update -g @deepseek-ai/dsh

操作完成後,頁面會提示改動已即時熱生效。配置雖即時寫入,當前已打開的會話仍持有舊工具列表,建議新開一個會話以刷新。

後端提供兩個同源 API,供界面或腳本調用:

# 讀取當前狀態
GET /plugin-manager/api/state

# 執行操作(kind 區分:mcp-toggle / mcp-delete / skill-delete)
POST /plugin-manager/api/action

寫操作示例:

{ "kind": "mcp-toggle",  "id": "mcp-scrapling", "disable": true }
{ "kind": "mcp-delete",  "id": "mcp-scrapling" }
{ "kind": "skill-delete", "name": "obsidian-cli" }

適用場景與注意

適合誰: 經常在 DSH 裏增減 MCP 或 Skills、希望少碰 YAML 和路徑、又需要確認傳輸方式與運行狀態的用戶。內置插件包頁適合快速覈對 DSH 自帶模塊名稱與版本,不負責升級本體。

使用邊界:

  1. 操作的是真實配置,改動直接寫入 cordis.patch.yml~/.dsh/skills/;雖有自動備份,重要環境改前仍建議自行留檔。
  2. MCP 刪除只移除配置條目,不會卸載 npm 包;可從 cordis.patch.yml.bak-* 恢復,或手動加回條目。
  3. Skill 刪除是移入 .trash-*,徹底刪除需手動 rm -rf 對應目錄。
  4. 默認作用於 ~/.dsh/profiles/web/ 這一 profile;其他 profile 需調整路徑。
  5. 插件後端跑在當前 dsh web 進程權限下,安裝前請閱讀源碼與 MIT 許可證,確認可接受其讀寫本地配置的行爲。

若頁面提示「插件後端未響應」,檢查安裝步驟 3、4 是否完成,以及 ~/.dsh/profiles/node_modules/dsh-plugin-manager 是否正確指向插件目錄,然後重啓 dsh web。

結尾

dsh-plugin-manager 把 MCP、Skills 與內置插件包的日常維護收進 DSH 設置面板,配置改動熱生效,減少手改 YAML 和反覆重啓。DSH 社區奉行「一切皆插件」;SkillHub 目錄是獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜