前言¶
DeepSeek Harness(DSH)的設計口號是「一切皆插件」:界面、工具、記憶、工作流,大多都能以插件形式裝進當前 profile。社區倉庫只要打上 GitHub 的 dsh-plugin topic,就會出現在公開話題列表裏。問題是,發現和安裝這兩步通常還要離開 Harness:打開 topic 頁、對照 README,再回到終端執行 dsh plugin add。
dsh-plugin-marketplace 做的是把這件事收回 Web 界面。裝上之後,設置 → 插件 裏會多出「插件市場」和「已安裝」兩個標籤頁,可以按頁瀏覽、按關鍵詞搜索、點按鈕安裝;Host 側同時註冊 market_search、market_install 等模型工具,讓 agent 自己去搜、去裝。
需要先說清楚邊界:這是 AwesomeHou 維護的社區插件,採用 MIT 許可證,不是 DeepSeek / 幻方官方應用商店。社區目錄站點 deepseek-harness-plugin.com 也是獨立收錄,與官方倉庫無從屬關係。生態裏還有 dsh-market、DSH-Plugins-Marketplace 等同類市場插件,數據源和安裝策略並不相同。本文只覈對 AwesomeHou/dsh-plugin-marketplace。
這是什麼¶
dsh-plugin-marketplace 是一款界面增強插件,由 AwesomeHou 維護,倉庫在 AwesomeHou/dsh-plugin-marketplace。目錄頁分類爲「界面增強」,本稿覈對 GitHub 時星標爲 27,package.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.tab。package.json 裏 dsh.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.json的version(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 倉庫解析版本與更新來源。
典型用法¶
- 安裝並重啓 harness(Web 界面一般是
dsh web這一路)。 - 打開 設置 → 插件,應能看到與自帶「插件配置」「插件列表」並列的 插件市場、已安裝。
- 在「插件市場」裏瀏覽卡片,點「加載更多」翻頁;用搜索框按名稱或關鍵詞檢索整個 topic。
- 對目標插件點 安裝,看進度條和日誌。失敗時再看卡片是否出現「讓 agent 安裝」。
- 到「已安裝」覈對第三方插件的啓用狀態和版本;需要時點更新、停用或卸載,然後再次重啓。
如果希望模型代勞,可以直接說「幫我搜一下 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