在 DSH 生態中,插件是擴展能力的主要方式。然而,社區插件分散在 GitHub 的各個倉庫中,檢索和驗證較爲耗時。dsh-plugin-finder 是一個聯網工具,旨在自動在 GitHub 與 npm 上檢索社區插件,並提供統一的發現入口。
插件定位¶
- 名稱:dsh-plugin-finder
- 維護者:HarrisXiu
- 核心功能:發現所有帶
dsh-plugin話題的公開倉庫,支持斷點續掃與國內鏡像加速。
核心功能¶
- 側邊欄發現頁:提供「插件發現」頁面,展示檢索到的插件列表。
- Agent 工具:提供
dsh_plugin_finder工具,支持命令行交互。 - 智能檢索:自動在 GitHub(按 topic:dsh-plugin fork:true)與 npm 上檢索。
- 國內鏡像加速:支持國內鏡像加速與回退機制,直連失敗時自動切換。
- 斷點續掃:支持掃描進度保存,中斷後可繼續掃描。
- 分類推斷:根據倉庫名稱、描述和 topics 推斷分類。
- 內置清單:提供內置推薦清單。
安裝與啓用¶
通過官方命令安裝插件到 Web profile:
dsh plugin --profile web add "https://github.com/HarrisXiu/dsh-plugin-finder"
安裝後需要重啓 DSH 才能加載新的插件配置和側邊欄頁面。
配置說明¶
插件通過 cordis.patch.yml 進行配置。配置項包括:
- id: plugin-finder
name: dsh-plugin-finder
config:
enabled: true
cacheTtlMinutes: 720
githubMirrors:
- https://gh-proxy.com/
- https://gh-proxy.org/
repoLimit: 25
manifestLimit: 25
githubMirrors:僅配置加速鏡像,不配置則直連 GitHub。GITHUB_TOKEN:Token 僅從環境變量讀取,不寫入配置文件。
典型用法¶
1. 掃描與刷新¶
通過 Agent 工具觸發掃描或刷新列表:
{ "action": "refresh" }
2. 插件建議¶
根據關鍵詞獲取插件建議:
{ "action": "suggest", "query": "memory", "limit": 15 }
3. 搜索與診斷¶
{ "action": "search", "query": "task board" }
{ "action": "stats" }
{ "action": "diagnose" }
4. 離線模式¶
在無網絡環境下查詢緩存:
{ "action": "suggest", "offline": true }
注意事項¶
- 數據來源:唯一倉庫來源爲 GitHub REST 搜索
topic:dsh-plugin fork:true,不使用 awesome-dsh-plugin。 - 分類說明:分類僅按倉庫名稱、描述和 topics 推斷,不等於經過安裝驗證。
- 安裝標識:顯示爲
installable: true需根目錄 manifest 聲明dsh.bundle.patch,但不承諾運行成功。 - npm 驗證:只有已發佈包的 repository 與當前倉庫匹配,才顯示爲已驗證 npm 包。
- 離線模式:首次離線列表爲空,只顯示新引擎保存的緩存。
- 緩存位置:默認緩存路徑爲
$DSH_HOME/plugin-finder/cache.json。 - 掃描限制:GitHub 搜索單次最多 1,000 條,超過需分片;全量掃描可能耗時數分鐘至數十分鐘。
適用場景¶
適合需要快速發現和集成 DSH 社區插件的開發者。插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證。