前言¶
DeepSeek Harness(DSH)的組合包可以不斷疊加,但社區插件散在 dsh-plugin.org 和各類 GitHub 倉庫裏。若每次都要自己查文檔、拼 github:owner/repo、再對照設置裏的插件列表,成本偏高。社區裏也曾有依賴 dsh CLI、與 profile 行爲糾纏的第三方市場方案,和桌面端 / Web 端的官方插件管理並不完全一致。
wojiao42/dsh-plugin-market(npm 包名 dsh-market-panel)是在 DSH 客戶端側欄提供「插件市場」面板的組合包:瀏覽社區目錄,安裝、啓停、卸載一律調用 Harness 官方 pluginManager,不依賴 dsh CLI,也不代替官方管理器的校驗與寫鎖邏輯。下文按定位、功能、安裝與日常用法說明,事實以倉庫 README 與 package.json 爲準。
這是什麼¶
- 倉庫: github.com/wojiao42/dsh-plugin-market
- 維護者:wojiao42
- 分類:客戶端(
dsh.client,platform: web) - 當前版本:0.3.1(MIT)
- 一句話:左側欄「插件市場」+ 設置裏同名的分區,對接 dsh-plugin.org 的精選目錄與 sitemap 全量索引,通過
inspect→installBundle等官方 API 管理當前 profile 下的組合包。
與 DeepSeek / 幻方無官方商店從屬關係;dsh-plugin.org 是社區目錄站點,本插件只做瀏覽與調用官方安裝通道。
核心功能¶
兩個入口,同一套界面¶
- 左側欄 「插件市場」 面板。
- 設置(Ctrl+,)→「插件市場」 分區(
settings.section,order 60)。
兩處渲染同一組件,界面狀態各自獨立。主區另有 main 頁面。
五個頁籤¶
| 頁籤 | 作用 |
|---|---|
| 市場 | 推薦條(數據來自官網 stats.json,失敗時回退目錄統計)、搜索、長名分類 chip、按 Star / Fork / 最近更新 / 最新收錄排序;卡片展示名稱、版本、分類、「已驗證」/「僅索引」、安裝源類型等;動作含詳情(跳轉 dsh-plugin.org)、安裝 / 可更新 / 已安裝、複製命令 |
| 已安裝 | 當前 profile 組合包列表;setBundleEnabled 啓停、removeBundle 卸載(二次確認) |
| 自定義安裝 | 輸入 npm 包名、github:owner/repo 或本機絕對路徑,走與官方一致的 inspect → installBundle |
| 設置 | npm registry:默認、pnpm 解析值、host fallback、自定義地址;校驗與安裝按所選源 |
| 日誌 | 本會話安裝記錄與 pnpm 日誌;構建腳本被攔截時可「允許構建腳本並重試」 |
數據從哪來¶
Host 半邊代理並緩存兩類上游(避免渲染進程跨域):
api.dsh-plugin.org/plugins.<lang>.json(精選目錄,緩存 6 小時 TTL)dsh-plugin.org/sitemaps/plugins.xml(全量索引,緩存 12 小時 TTL)
市場頁默認 scope=all:合併精選與 sitemap;只在索引裏、不在精選裏的條目標「僅索引」,安裝源按 github:{owner}/{slug} 推導。索引不可用時會降級爲精選目錄(響應頭 x-plugin-market-scope: curated)。精選目錄本身是官網導出的子集,行數會變化;合併索引是爲了補全可發現性。
安裝通道與邊界設計¶
客戶端直接調用 ctx.remote.pluginManager(inspect、installBundle、setBundleEnabled、removeBundle),與 設置 → 插件 同一路徑;不做 PATH shim,不自行改寫 profile。與社區 bundle dsh-plugin 市場完全獨立(README 說明該方案存在 profile 誤判、依賴 CLI 等問題,本插件刻意分開)。
目標環境需支持組合包(dsh.bundle.patch)且提供上述 pluginManager 方法;Host 路由爲純 ESM,依賴 Node 18+ 的全局 fetch。
安裝與啓用¶
首次安裝時,設置裏還沒有「插件市場」分區(分區由本插件註冊),需用命令行或後續在「自定義安裝」裏填源地址裝一次。
瀏覽器版(DSH Web)(README「快速上手」示例):
dsh plugin --profile web add github:wojiao42/dsh-plugin-market
桌面端(DSH Desktop):
dsh plugin --profile desktop add github:wojiao42/dsh-plugin-market
桌面 profile 由應用託管時,命令行可能被拒絕,可改用:設置 → 插件 的官方安裝能力先裝其他途徑裝上的副本,或在已安裝本插件後使用 插件市場 → 自定義安裝 → github:wojiao42/dsh-plugin-market。
裝完後 刷新窗口(Host 半邊新路由需重啓 Harness 才加載;客戶端 client.js 改動手動刷新頁面即可)。
本地開發可從 自定義安裝 填源碼目錄絕對路徑;長期指向源碼建議 pnpm link: 依賴包名 dsh-market-panel(不要把包名起成 dsh-plugin-market,會與官方 @deepseek-ai/dsh-plugin-market 撞名導致 web 啓動失敗)。
典型用法¶
經過安裝並刷新後,可以按下面順序操作:
- 打開左側欄「插件市場」,或 Ctrl+, →「插件市場」。
- 在 「市場」 頁籤輸入關鍵詞,用分類 chip 收窄範圍;需要時用「刷新」帶
refresh=1繞過本地緩存。 - 對目標插件點 「安裝」;若顯示「可更新」,含義與已裝版本和目錄版本不一致有關。
- 切到 「已安裝」,對不需要的組合包 停用 或 卸載。
- 渠道不在目錄裏的包,在 「自定義安裝」 填
github:owner/repo、npm 包名或絕對路徑。 - 安裝慢或失敗時看 「日誌」;pnpm 阻止構建腳本時按面板提示允許後重試。
卸載:從 profile 的 dsh.profile.bundles 與 dependencies 去掉 dsh-market-panel,再執行 pnpm remove dsh-market-panel。
適用場景與注意¶
適合誰:經常在 DSH Web / Desktop 上試社區組合包、希望在一個面板裏搜 dsh-plugin.org 並統一啓停的人;不想爲安裝單獨配置 dsh CLI 的用戶。
權限與安全:插件以當前 Harness 進程權限運行;installBundle 會拉取並執行第三方代碼。安裝前應查看目標倉庫源碼與許可證(本市場 MIT,不代表所裝插件的許可)。
已知邊界(README 原文口徑):
- 索引抓取失敗時,「僅索引」條目暫時搜不到。
- 緩存 TTL:精選 6 小時、索引 12 小時、stats 1 小時;上游改名/下架最長需等 TTL,或用手動刷新。
- 僅索引行往往缺少描述、星標、topics;詳情仍以官網頁爲準。
- 無緩存且上游失敗時,目錄接口可能返回 502;單次上游抓取超時 45 秒。
截至 README 記載:awesome-dsh-plugin 已投稿 PR 待合併;dsh-plugin.org 站內尚未有條目,發現本插件主要依賴 GitHub 與本文所述安裝方式。
結尾¶
dsh-plugin-market 把社區目錄收進側欄,安裝鏈路仍交給官方插件管理器,適合在 Harness 裏系統化瀏覽、試裝組合包。目錄介紹見 SkillHub 插件頁,源碼與版本說明見 GitHub 倉庫。