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

前言

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_searchmarket_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

它做兩件事:

  1. 設置 → 插件 裏註冊兩個標籤頁:「插件市場」和「已安裝」。前者按 GitHub Search API 分頁拉取 dsh-plugin topic;後者只列出後來裝上的第三方插件。
  2. 在 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.jsonversion
  • 「停用 / 啓用」把插件移出或移回 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,不要留這個佔位符。

典型用法

  1. 確認本機已經能跑 DeepSeek Harness 的 Web UI(官方文檔是 npx @deepseek-ai/dsh web,默認 http://127.0.0.1:3080)。dsh 目前仍是 developer preview,接口可能不兼容。
  2. 按上一節把插件裝進 web profile,然後重啓 dsh web
  3. 打開網頁,進入 設置 → 插件。除了自帶的「插件配置」「插件列表」,應多出「插件市場」和「已安裝」。
  4. 在「插件市場」用搜索框按名稱或關鍵詞查找;需要更多結果時點「加載更多」。
  5. 打開目標卡片,先看倉庫地址和簡介,再點「安裝」。進度條會顯示階段和日誌。根級插件不要指望走 link:
  6. 安裝成功後重啓 harness,再回「已安裝」看啓用狀態和版本。需要停用、更新或卸載,都在這個標籤頁操作。
  7. 若希望模型代勞,可以直接在會話裏讓它搜「視覺插件」「側邊欄」之類,走 market_search;確認 spec 後再讓它 market_install。工具在安裝前會拒絕帶 shell 元字符的 spec。

開發自檢可以用倉庫提供的:

npm run check

它只對 lib/index.jslib/client.js 做語法檢查。

適用場景與注意事項

比較適合:

  • 已經在用 DSH Web UI,不想每次去 GitHub topic 頁複製安裝命令。
  • 希望 agent 根據當前任務自己找插件、給出倉庫列表,再由你點頭安裝。
  • 需要在同一套設置頁裏看第三方插件的版本、停用和卸載,而不是隻會 dsh plugin add

需要注意:

  1. 權限與來源。 插件以當前 dsh 進程權限運行。市場同步的是 GitHub topic,不是官方審覈過的商店。點「安裝」等於把第三方代碼拉進自己的 profile。裝之前打開對應倉庫看 README、package.json 和許可證。
  2. 只覆蓋 web。 dsh.client 聲明瞭 platform: web。headless 或其它 profile 不會因此出現這套標籤頁。
  3. 必須重啓。 安裝、更新、停用、卸載,README 都寫了要重啓 harness 才生效。
  4. 內置插件動不了。 「已安裝」不列出 profile 模板帶來的包,也不能在這裏卸載它們。
  5. 環境依賴。 一鍵安裝會調 dsh plugin 和 pnpm。web profile 缺少 package.jsonpnpm-workspace.yaml 時,接口會返回如何補 workspace 的說明,而不是 pnpm 那句難讀的 --workspace-root 報錯。網絡差、GitHub 不可達時,看門狗會中止長時間無輸出的安裝。
  6. 同名產品很多。 GitHub 上還有 dsh-marketdsh-marketplace、其它作者的 dsh-plugin-marketplace。安裝命令以目錄頁的 github:AwesomeHou/dsh-plugin-marketplace 和本倉庫 README 爲準,不要按插件名自行拼接。
  7. 目錄星標可能滯後。 社區目錄頁抓取時寫的是 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

羽毛球分组比赛记分
小程序二维码

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

小夜