DSH 插件化架構允許用戶通過 Web UI 擴展功能,技能通常存儲在 ~/.dsh/skills 目錄中。手動從 GitHub 查找並下載技能 tarball 到安裝目錄較爲繁瑣。dsh-skill-market 插件在 DSH 的 Web 設置頁中集成了一個“技能市場”,提供搜索和一鍵安裝能力。
插件介紹¶
該插件由用戶 QQ-M 維護,旨在簡化技能的獲取流程。它將技能市場集成到 Web UI 的設置頁面中,允許用戶在瀏覽器中直接搜索 GitHub 倉庫,並根據倉庫結構一鍵安裝技能到模型可讀取的根目錄。
核心功能¶
- GitHub 搜索:優先搜索帶有
dsh-skill主題的倉庫,同時支持通過關鍵詞進行搜索。 - 倉庫佈局檢查:自動識別倉庫結構。如果根目錄存在
SKILL.md,則視爲單個技能;如果存在skills/<name>/SKILL.md或skills/<name>.md,則識別爲多個技能。 - 一鍵安裝:通過調用 GitHub 的 codeload 接口下載 tarball,解壓後將技能文件複製到配置的安裝目錄(默認爲
~/.dsh/skills)。 - 技能管理:提供已安裝技能列表,支持卸載操作。卸載時,技能文件會被移動到
.trash-*目錄,便於恢復。 - 安全防護:對寫操作(安裝/卸載)實施同源 POST 保護。
安裝與啓用¶
使用官方插件命令安裝:
dsh plugin --profile web add "github:QQ-M/dsh-skill-market"
安裝完成後,需要重啓 Web 配置文件(dsh web),插件纔會加載瀏覽器端的設置入口。
配置說明¶
插件支持通過 cordis.patch.yml 進行配置。默認配置如下:
| 配置項 | 默認值 | 說明 |
|---|---|---|
installDir |
~/.dsh/skills |
技能的安裝目錄 |
githubToken |
'' |
GitHub Token 字符串 |
githubTokenFile |
'' |
包含 GitHub Token 的文件路徑 |
searchLimit |
20 |
搜索結果最大數量 |
如果未設置 Token,插件會讀取環境變量 GITHUB_TOKEN。匿名搜索受限於約 10 請求/分鐘,建議爲高頻搜索配置 Token。
API 接口¶
所有接口均掛載在 /skill-market/api/ 路徑下,返回 JSON 格式數據:
GET /api/search?q=<query>:搜索技能GET /api/repo?owner=&repo=:檢查倉庫詳情POST /api/install { owner, repo, ref? }:安裝技能GET /api/installed:查看已安裝技能列表POST /api/uninstall { name }:卸載技能
技術架構¶
該插件由兩部分組成:
- Host Half (
index.js):運行在服務端,提供/skill-market/api/*路由,負責 GitHub 交互、文件下載、解壓與安裝邏輯。 - Client Half (
client.js):運行在瀏覽器端,是一個無構建步驟的__ModuleLoader__bundle,負責向 DSH 的設置頁面注入“技能市場”標籤頁。
依賴方面,Host 僅依賴 Node.js 內置模塊及 @deepseek-ai/schemastery;Client 依賴 react。
注意事項¶
- 權限與安全:插件以當前 DSH 進程的權限運行,安裝前請檢查源代碼與許可證。
- 社區生態:該插件屬於社區目錄項目,與 DeepSeek 或幻方無官方從屬關係。