前言¶
DeepSeek Harness(dsh)官方倉庫的定位很明確:Everything is a Plugin(一切皆插件)。模型適配、工具、會話、沙箱,連智能體循環本身都可以換成插件。官方也建議插件倉庫打上 GitHub topic dsh-plugin,方便別人發現。
問題隨之而來。topic 只是一個標籤頁,倉庫數量增長很快。README 和社區目錄都按「1800+」來寫;2026-08-18 用 GitHub Search API 查詢 topic:dsh-plugin 時,返回的 total_count 已經是 6580。要裝一個插件,常見做法仍是打開 GitHub、複製 dsh plugin add ...、回到終端執行。社區裏也出現了不少「插件市場」實現,能力並不相同。
本文只介紹 AwesomeHou 維護的 dsh-plugin-marketplace。它把 dsh-plugin topic 即時同步進 Web 界面的「設置 → 插件」,可以搜索、分頁瀏覽、一鍵安裝;同時註冊 market_search、market_install 等模型工具,讓 agent 自己去搜、去裝。它是社區開源插件,不是 DeepSeek / 幻方的官方應用商店。社區目錄站點 deepseek-harness-plugin.com 也是獨立收錄站,與官方倉庫無從屬關係。
當前倉庫版本爲 0.3.0,許可證 MIT,主要語言 JavaScript。2026-08-18 從 GitHub API 讀取的星標爲 27。
這是什麼¶
dsh-plugin-marketplace 是一款界面增強類的永久插件(bundle),由 AwesomeHou 維護,倉庫在:
https://github.com/AwesomeHou/dsh-plugin-marketplace
它做兩件事:
- 在 設置 → 插件 裏註冊兩個標籤頁:「插件市場」和「已安裝」。前者按 GitHub Search API 分頁拉取
dsh-plugintopic;後者只列出後來裝上的第三方插件。 - 在 Host 側用
ctx.tools.register註冊一組工具,會話裏的模型可以直接搜插件、裝插件、看已裝列表、更新插件。
package.json 裏把瀏覽器半聲明爲 dsh.client.platform: web,所以它掛在 web profile 上,不是 headless 那條線。安裝後需要重啓 harness 纔會出現標籤頁。
數據源寫在「插件市場」頁頂部:GitHub 話題 dsh-plugin,通過 Search API 即時同步。這不是精選清單,topic 下什麼倉庫都會進來。裝之前仍然要自己看源碼和許可證。
核心功能¶
下面這些能力來自倉庫 README 和 package.json,能對上的才寫。
1、全量分頁,而不是隻看前 50 個¶
Host 按頁向 GitHub Search API 拉 topic 倉庫,默認每頁 50、最大 100。界面有「加載更多」。total 用的是 API 返回的真實 total_count,沒有「只展示 50 個」的硬上限。
2、搜索走 GitHub 的 q,不是本地過濾¶
設置頁的搜索框和工具 market_search 都把關鍵詞交給 GitHub 自己的查詢。搜索範圍是整個 topic,不是已經加載到當前頁的那幾十條。
3、給模型用的四件套¶
Host 側註冊的工具是:
| 工具 | 作用 |
|---|---|
market_search(q?, page?, perPage?) |
返回 topic 倉庫的 JSON:全名、star、語言、簡介、URL |
market_install(spec) |
執行 dsh plugin --profile web add -w <spec>,裝進 web profile。執行前校驗 spec 是否含 shell 元字符;完成後提示需要重啓 harness |
market_installed() |
列出 web profile 裏已裝的第三方插件:啓用狀態、當前版本、最新版本、是否可更新(含市場自己)。內置插件不在此列 |
market_update(name) |
把某個已裝插件更新到最新版本,重啓後生效 |
4、卡片上一鍵安裝,優先走 npm¶
每個市場卡片都有「安裝」。點擊後 POST /api/market/install,Host 先 planInstall 判斷倉庫形態:
- 根目錄
package.json聲明瞭dsh.bundle/dsh.client的根級插件,走標準dsh plugin add -w。 - 已經發到 npm 的優先裝
name@version,不拉 GitHub,pnpm 會把運行時依賴一併裝進 profile。 - 沒發 npm 的用 github spec。
- monorepo / workspace 根會克隆到
$DSH_HOME/marketplace-src,用 corepack pnpm 構建後再link:註冊。README 寫明:不能用link:裝根級插件。
裝完會做結果校驗:是否進入 dsh.profile.bundles、入口文件是否存在、運行時依賴是否可解析。卡片上是帶階段、百分比、速度、ETA 和即時日誌的進度條,可以取消。
直裝失敗時(例如預發佈 peer 依賴對不上),卡片會出現「讓 agent 安裝」。Host 會準備專屬工作區 $DSH_HOME/marketplace-install,在新會話裏把固定提示詞發給 agent,讓它讀 README 自己決定怎麼裝,儘量不污染當前對話。runtime 不可用時則退回當前會話。
5、已安裝、更新、停用、卸載¶
「已安裝」標籤頁只展示後安裝的第三方插件。profile 模板帶來的內置包不能在這裏關閉或卸載,頁頂有說明。
- 有新版本時卡片標「可更新」,走
/api/market/update。版本對比:npm 用 registry 的latest;GitHub 插件看默認分支package.json的version。 - 「停用 / 啓用」把插件移出或移回
dsh.profile.bundles,依賴還留着。 - 「卸載」執行
dsh plugin --profile web remove,並從 bundle 列表摘掉。
停用和卸載都要重啓 harness。市場自己也會讀 GitHub 上的 package.json 做自更新檢查,兩個標籤頁頂部都可能出現 vX → vY · 立即更新 橫幅。
6、安裝失敗時儘量給可操作的原因¶
README 還寫了幾條安裝期的處理,不是界面功能,但實際裝插件時會碰到:
- 子進程注入
CI=true,避免 pnpm 10 及以上在無 TTY 時卡住等交互。 - 遇到 pnpm 大版本把 modules 目錄建亂(
ERR_PNPM_VIRTUAL_STORE_DIR_MAX_LENGTH_DIFF一類)會自動pnpm install重建再試一次。 - 預發佈 peer、構建腳本攔截、幽靈依賴 404、workspace 缺失、pnpm 不在 PATH 等,會分類成可讀文案,而不是隻回
exit 1。 - 下載長時間零輸出時有停滯看門狗(默認 120 秒,可用環境變量
DSH_MARKET_STALL_MS覆蓋),先直連重試一次,再快速失敗。
安裝與啓用¶
社區目錄頁給出的安裝命令是(以頁面原文爲準):
dsh plugin add github:AwesomeHou/dsh-plugin-marketplace
作者 README 寫的是明確裝到 web profile 的寫法,和這個插件「只提供 web 客戶端」一致,實際使用時更建議這條:
dsh plugin --profile web add https://github.com/AwesomeHou/dsh-plugin-marketplace
裝完需要重啓 harness。也可以直接對 agent 說:
幫我安裝這個插件 https://github.com/AwesomeHou/dsh-plugin-marketplace
目錄頁還提示:插件會以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。若要可復現安裝,把 commit 哈希固定上去,例如:
dsh plugin add github:AwesomeHou/dsh-plugin-marketplace#<commit>
把 <commit> 換成倉庫裏真實的 commit SHA,不要留這個佔位符。
典型用法¶
- 確認本機已經能跑 DeepSeek Harness 的 Web UI(官方文檔是
npx @deepseek-ai/dsh web,默認http://127.0.0.1:3080)。dsh 目前仍是 developer preview,接口可能不兼容。 - 按上一節把插件裝進 web profile,然後重啓
dsh web。 - 打開網頁,進入 設置 → 插件。除了自帶的「插件配置」「插件列表」,應多出「插件市場」和「已安裝」。
- 在「插件市場」用搜索框按名稱或關鍵詞查找;需要更多結果時點「加載更多」。
- 打開目標卡片,先看倉庫地址和簡介,再點「安裝」。進度條會顯示階段和日誌。根級插件不要指望走
link:。 - 安裝成功後重啓 harness,再回「已安裝」看啓用狀態和版本。需要停用、更新或卸載,都在這個標籤頁操作。
- 若希望模型代勞,可以直接在會話裏讓它搜「視覺插件」「側邊欄」之類,走
market_search;確認 spec 後再讓它market_install。工具在安裝前會拒絕帶 shell 元字符的 spec。
開發自檢可以用倉庫提供的:
npm run check
它只對 lib/index.js 和 lib/client.js 做語法檢查。
適用場景與注意事項¶
比較適合:
- 已經在用 DSH Web UI,不想每次去 GitHub topic 頁複製安裝命令。
- 希望 agent 根據當前任務自己找插件、給出倉庫列表,再由你點頭安裝。
- 需要在同一套設置頁裏看第三方插件的版本、停用和卸載,而不是隻會
dsh plugin add。
需要注意:
- 權限與來源。 插件以當前 dsh 進程權限運行。市場同步的是 GitHub topic,不是官方審覈過的商店。點「安裝」等於把第三方代碼拉進自己的 profile。裝之前打開對應倉庫看 README、
package.json和許可證。 - 只覆蓋 web。
dsh.client聲明瞭platform: web。headless 或其它 profile 不會因此出現這套標籤頁。 - 必須重啓。 安裝、更新、停用、卸載,README 都寫了要重啓 harness 才生效。
- 內置插件動不了。 「已安裝」不列出 profile 模板帶來的包,也不能在這裏卸載它們。
- 環境依賴。 一鍵安裝會調
dsh plugin和 pnpm。web profile 缺少package.json或pnpm-workspace.yaml時,接口會返回如何補 workspace 的說明,而不是 pnpm 那句難讀的--workspace-root報錯。網絡差、GitHub 不可達時,看門狗會中止長時間無輸出的安裝。 - 同名產品很多。 GitHub 上還有
dsh-market、dsh-marketplace、其它作者的dsh-plugin-marketplace。安裝命令以目錄頁的github:AwesomeHou/dsh-plugin-marketplace和本倉庫 README 爲準,不要按插件名自行拼接。 - 目錄星標可能滯後。 社區目錄頁抓取時寫的是 8 星;以 GitHub 倉庫即時數據爲準。
小結¶
dsh-plugin-marketplace 把 GitHub dsh-plugin topic 接進 DeepSeek Harness 的設置頁:人可以在「插件市場」裏搜、翻頁、一鍵裝;模型可以用 market_search / market_install 做同一件事。它解決的是發現和安裝路徑太散的問題,並不保證 topic 裏每一份插件都能用、都安全。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-marketplace-awesomehou/
GitHub:https://github.com/AwesomeHou/dsh-plugin-marketplace