用 dsh-plugin-marketplace 把 GitHub 插件話題裝進 DeepSeek Harness 設置頁

前言

DeepSeek Harness(DSH)的設計口號是「一切皆插件」:界面、工具、記憶、工作流,大多都能以插件形式裝進當前 profile。社區倉庫只要打上 GitHub 的 dsh-plugin topic,就會出現在公開話題列表裏。問題是,發現和安裝這兩步通常還要離開 Harness:打開 topic 頁、對照 README,再回到終端執行 dsh plugin add

dsh-plugin-marketplace 做的是把這件事收回 Web 界面。裝上之後,設置 → 插件 裏會多出「插件市場」和「已安裝」兩個標籤頁,可以按頁瀏覽、按關鍵詞搜索、點按鈕安裝;Host 側同時註冊 market_searchmarket_install 等模型工具,讓 agent 自己去搜、去裝。

需要先說清楚邊界:這是 AwesomeHou 維護的社區插件,採用 MIT 許可證,不是 DeepSeek / 幻方官方應用商店。社區目錄站點 deepseek-harness-plugin.com 也是獨立收錄,與官方倉庫無從屬關係。生態裏還有 dsh-marketDSH-Plugins-Marketplace 等同類市場插件,數據源和安裝策略並不相同。本文只覈對 AwesomeHou/dsh-plugin-marketplace

這是什麼

dsh-plugin-marketplace 是一款界面增強插件,由 AwesomeHou 維護,倉庫在 AwesomeHou/dsh-plugin-marketplace。目錄頁分類爲「界面增強」,本稿覈對 GitHub 時星標爲 27package.json 版本爲 0.3.0,主要語言是 JavaScript。

它解決的是「社區插件已經很多,但要在終端和 GitHub 之間來回切」這件事。數據源不是某個手工精選清單,而是 GitHub Search API 對 dsh-plugin topic 的即時查詢。目錄頁和 README 仍寫「1800+ 倉庫」;本稿用 Search API 覈對 topic:dsh-plugin 時,total_count 已經超過 6000。市場按頁拉取,頁面上的 total 對應當次查詢的真實 total_count,數字會隨 topic 變化。

插件分兩半:Host 半(lib/index.js)負責同步 GitHub、註冊 /api/market/* 接口和模型工具;Client 半(lib/client.js)把兩個標籤頁掛進 settings.plugins.tabpackage.jsondsh.client.platform 聲明爲 web,所以它面向的是 Web 界面,不是純 CLI 會話。

核心功能

全量分頁,而不是隻看前 50 個

Host 按頁拉取整個 topic,默認每頁 50、最大 100。界面帶「加載更多」,不再把列表截成「只看 50 個」。total 反映 GitHub 返回的真實 total_count

搜索走 GitHub 的 q,不是已加載頁的本地過濾

搜索框和 market_search 工具都把關鍵詞交給 GitHub Search 的 q。這意味着能搜到尚未加載到當前頁的倉庫,而不是在已經刷出來的卡片裏做前端過濾。

「插件市場」標籤頁頂部會標明來源:GitHub dsh-plugin 話題(github.com/topics/dsh-plugin),通過 Search API 即時同步。這和「某個站點自己維護的精選目錄」不是同一件事。

一鍵安裝:先探測倉庫形態,優先走 npm

每個卡片都有「安裝」按鈕。點擊後 POST /api/market/install,Host 側 planInstall 先看倉庫長什麼樣,再選安裝路徑:

  • 根目錄 package.json 聲明瞭 dsh.bundle / dsh.client根級插件:走標準 dsh plugin add -w
  • 已經發到 npm 的插件:優先用 name@ 裝 npm 版(README 的理由是快、穩、不必再拉 GitHub;pnpm 會把插件和運行時依賴一起裝進 profile)
  • 未發佈到 npm:用 github spec
  • monorepo / workspace 根:克隆到 $DSH_HOME/marketplace-src,用 corepack pnpm 構建後再 link: 註冊

裝完會做結果校驗:是否進入 dsh.profile.bundles、入口文件是否存在、運行時依賴是否可解析。README 明確寫了:不能用 link: 裝根級插件。卡片內會畫出類似應用商店的進度條(階段、百分比、已下載、速度、ETA、即時日誌),可以取消。

直裝失敗時,卡片上會出現「讓 agent 安裝」。Host 會準備專屬工作區 $DSH_HOME/marketplace-install,在新對話裏把固定提示詞發給 agent,讓它讀目標倉庫 README 再決定怎麼裝,避免污染當前會話。runtime 服務不可用時,會退回當前會話。

安裝子進程會注入 CI=true,避免 pnpm 10 及以上在無 TTY 時卡在交互提示。遇到 pnpm 大版本漂移(ERR_PNPM_VIRTUAL_STORE_DIR_MAX_LENGTH_DIFF / PUBLIC_HOIST_PATTERN_DIFF),會自動 pnpm install 重建 modules 再試一次。下載長時間零輸出時,停滯看門狗默認 120 秒殺掉進程樹並直連重試一次(可用環境變量 DSH_MARKET_STALL_MS 覆蓋),避免一直轉到超時長達十分鐘。

給 agent 的四件工具

Host 通過 ctx.tools.register 註冊:

工具 作用
market_search(q?, page?, perPage?) 返回 topic 倉庫的 JSON 列表:full name、star、語言、簡介、URL
market_install(spec) 執行 dsh plugin --profile web add -w,裝進 web profile;執行前校驗 spec 是否含 shell 元字符;完成後提示需要重啓 harness
market_installed() 列出 web profile 裏已裝的第三方插件:啓用狀態、當前版本、最新版本、是否可更新(含市場自己);內置插件不在此列
market_update(name) 把某個已裝插件更新到最新版本,需重啓才生效

已安裝、更新、停用、卸載

dsh.profile.bundles 裏來自 profile 模板的包視爲內置插件:隨 Harness 提供,不能關閉或卸載。「已安裝」標籤頁只列後安裝的第三方插件,頁面頂部有聲明。

後安裝插件可以:

  • 停用 / 啓用/api/market/set-enabled):從 dsh.profile.bundles 移出或移回,依賴仍保留
  • 卸載/api/market/uninstall):dsh plugin --profile web remove,並自動從 bundle 層摘除
  • 更新:對照 npm 的 latest,或 GitHub 默認分支 package.jsonversion(GitHub 插件優先);有新版本時卡片標「可更新」

市場還會檢查自己的版本(讀自家 GitHub 倉庫的 package.json)。有新版本時,兩個標籤頁頂部會出現 vX → vY · 立即更新 橫幅。停用、卸載、更新、自更新都需要重啓 harness。

插件簡介翻譯(0.3.0)

2026-08-17 合併的 PR #1 給卡片加了「翻譯」按鈕:Host 提供 POST /api/market/translate,用 Google gtx 與 MyMemory 並行競速,先返回的結果用於彈窗顯示中文。倉庫 README 尚未單獨成節,以該提交和效果截圖爲準。

安裝與啓用

目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:

dsh plugin add github:AwesomeHou/dsh-plugin-marketplace

倉庫 README 寫的是裝進 web profile(本插件的 client 聲明也是 web):

dsh plugin --profile web add https://github.com/AwesomeHou/dsh-plugin-marketplace

也可以把倉庫地址直接交給當前 agent:

幫我安裝這個插件 https://github.com/AwesomeHou/dsh-plugin-marketplace

裝完需要重啓 harness 纔會出現兩個新標籤頁。

如需可復現安裝,按目錄頁說明固定 commit 哈希:

dsh plugin add github:AwesomeHou/dsh-plugin-marketplace#<commit>

本稿覈對倉庫時,默認分支 master 的最新提交是 1df4eb2121e869f48fdeb5de626c3610868a369e(2026-08-17)。哈希會隨後續推送變化,安裝前請再對一下 GitHub。

不要用裸 npm 包名 dsh-plugin-marketplace 從 registry 安裝。倉庫 issue #3 記錄過:npm 上同名包屬於另一作者,自更新若按裸名解析會裝錯包,重啓後市場標籤頁消失。2026-08-17 的修復提交改爲按已裝包聲明的 GitHub 倉庫解析版本與更新來源。

典型用法

  1. 安裝並重啓 harness(Web 界面一般是 dsh web 這一路)。
  2. 打開 設置 → 插件,應能看到與自帶「插件配置」「插件列表」並列的 插件市場已安裝
  3. 在「插件市場」裏瀏覽卡片,點「加載更多」翻頁;用搜索框按名稱或關鍵詞檢索整個 topic。
  4. 對目標插件點 安裝,看進度條和日誌。失敗時再看卡片是否出現「讓 agent 安裝」。
  5. 到「已安裝」覈對第三方插件的啓用狀態和版本;需要時點更新、停用或卸載,然後再次重啓。

如果希望模型代勞,可以直接說「幫我搜一下 topic 裏和視覺相關的插件」或「把某某倉庫裝進 web profile」。模型應走 market_search / market_install,而不是自己拼一條未校驗的 shell。market_install 會拒絕帶 shell 元字符的 spec。

適用場景與注意事項

適合已經在用 DSH Web 界面、希望少切終端的人:瀏覽社區插件、給當前 agent 臨時補能力、查看已裝第三方插件是否有更新。也適合讓 agent 在對話裏自己發現並安裝插件。

不適合當成「官方審覈過的應用商店」。清單來自 GitHub topic 的公開搜索結果,倉庫質量、維護狀態、是否真的聲明瞭 DSH 插件契約,都要自己看源碼。內置插件不會出現在「已安裝」裏,也不能從這裏關閉。純 CLI、不用 Web profile 的用法對不上這個插件的 client 聲明。

安裝任何通過市場找到的插件時,請記住目錄頁上的那句警告:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。 安裝前檢查源代碼倉庫和許可證。本插件自身是 MIT;它幫你裝上的其他插件,許可證和權限各不相同。直裝會在本機執行 dsh plugin add、pnpm、必要時 git clone,失敗分類和看門狗只能減少卡死,不能代替你對目標倉庫的審查。

社區裏存在多個「插件市場」插件,安裝命令、數據源(即時 topic / 精選 JSON)、是否允許任意 GitHub spec,並不通用。按目錄頁或目標倉庫 README 的原文執行,不要把另一家市場的命令套過來。

小結

dsh-plugin-marketplace 把 GitHub dsh-plugin topic 同步進 DSH 的設置頁,並給模型補上搜索與安裝工具。它降低的是發現和安裝的往返成本,並不改變「插件等於在你這臺機器上跑別人的代碼」這一事實。

  • 目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-marketplace/
  • GitHub:https://github.com/AwesomeHou/dsh-plugin-marketplace
  • DeepSeek Harness 官方倉庫:https://github.com/deepseek-ai/deepseek-harness
  • GitHub topic:https://github.com/topics/dsh-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜