前言¶
DeepSeek Harness(DSH)把能力拆成可組合的插件,但裝插件往往要查社區目錄、複製安裝命令、在終端裏指定 profile,再重啓 web 服務。社區目錄獨立維護在 awesome-dsh-plugin.com,與 DeepSeek / 幻方無官方從屬關係;官網實現可參考 dsh-market。
下面介紹由 Sanqi-normal 維護的 @sanqi-normal/dsh-webui-market-plugin:把目錄瀏覽、安裝、更新、卸載放進 DSH web GUI 的 設置 → 插件 → 插件市場,界面跟隨 harness 深淺色主題,並按系統語言切換中英文。
這是什麼¶
@sanqi-normal/dsh-webui-market-plugin 是 DSH web profile 內的社區插件市場客戶端。它讀取 awesome-dsh-plugin.com 的插件目錄(JSON API plugins.json,含 Star 數與收錄日期),在設置面板裏展示分類、搜索與排序,並通過後臺調用 dsh plugin CLI 把插件寫入指定 profile 的 bundle 層。
插件當前版本爲 0.5.5,許可證 MIT,GitHub 倉庫約 100 stars。分類上屬於聯網工具:目錄數據來自網絡,安裝可走 npm registry 或 GitHub 源。
核心功能¶
目錄瀏覽與排序¶
打開 設置(Settings)→ 插件(Plugins)→ 插件市場(Plugin Market) 後:
- 目錄按分類分組,支持搜索與「已安裝」過濾
- 卡片顯示 GitHub Star(無數據則不顯示)
- 可按 最熱(Star 降序,無 Star 排最後)、最新(收錄日期)排序,或恢復官網默認順序
- 大目錄分批漸進渲染,避免一次性插入數百卡片造成卡頓
- 頂部顯示目錄來源官網鏈接,可直達 awesome-dsh-plugin.com
點 詳情 可查看該插件的官方安裝命令(含目標 profile)。
安裝、更新、卸載與任務隊列¶
安裝、更新、卸載組成 FIFO 任務隊列。多個插件可連續排隊;任務面板固定在右下角,即時顯示「排隊中 / 校驗中 / 執行中 / 完成 / 失敗 / 已終止 / 超時」。可取消排隊項、終止執行項、查看每個任務的 pnpm 日誌。
- 默認任務超時 120 秒,可用環境變量
DSH_MARKET_OP_TIMEOUT_MS調大(例如300000) - 遇到 pnpm 臨時網絡錯誤(
GET ... error、ETIMEDOUT、ECONNRESET等)會自動重試一次 - 一鍵更新全部 會把所有可更新插件依次加入隊列
- 隊列支持一鍵清空已完成/失敗記錄;清除會同步到服務端,刷新後不會再次出現
已安裝插件卡片會顯示真實狀態(與 profile 的 package.json 同步),按「作者 + 倉庫」(owner/repo)識別,避免同名插件誤標。目錄外或市場之外安裝的依賴也會出現在 本機插件 列表,標註目錄內/外、已停用、來源類型,並支持停用、啓用或卸載(內置 bundle 與本地 link/file 源不提供刪除)。
跨 Profile 安裝與同步¶
官網目錄默認發佈 --profile web 命令;桌面端(desktop shell)使用獨立 profile(如 desktop),只裝到 web 的插件不會自動出現在桌面應用。
面板頂部提供 安裝設置 與 跨 Profile 同步:
- 自動同步到其它 profile 默認開啓:安裝時自動裝到本機所有已初始化的 profile;關閉後僅裝到安裝時選擇的 profile
- 安裝確認框可選目標 profile(默認 web)
- 跨 Profile 同步 把 web 裏已裝的插件一鍵補裝到目標 profile(只新增缺失項)
- 同步爲本地複製:源 profile 已裝過才放行(
syncFrom校驗),目錄外插件(如 aegis)也可同步;裝到 desktop 等 profile 後需重啓對應應用
安全機制與試裝驗證¶
- 來源白名單:安裝只接受精選目錄收錄的
github:源(與 dsh-market 策略一致);目錄抓取失敗或 registry/link 源不做此限制。白名單對所有目標 profile 生效,可勾選「跳過安全檢查」繞過 - npm 優先:目錄條目帶
npm映射時優先用 npm 安裝/更新;僅 GitHub-only 插件走 GitHub 源。可在 npm/pnpm 配置中設置國內鏡像(如registry=https://registry.npmmirror.com) - 試裝驗證(trial boot):白名單通過後,若插件未聲明 web client 半端,會在臨時
DSH_HOME裏試裝並實際啓動一次;只有出現dsh web:就緒行才判定可裝。驗證失敗給出真實啓動錯誤並拒絕安裝,真實 profile 不會被寫入。試裝僅對 web profile 執行 - 同源校驗:寫操作只接受同源 POST,跨源請求返回 403
- 安裝前自動快照:寫入前會把
package.json備份爲.mkts-snapshot-<時間戳>.json,可配合dsh plugin --profile <name> remove <包名>手工回退
停用、啓用與熱掛載¶
- 停用 / 啓用:停用保留依賴與磁盤文件,只移出激活的 bundle 層;狀態寫入
dsh.market.disabled,重啓後仍保持 - 熱掛載:安裝成功後,若
cordis.patch.yml僅爲簡單id/name插入,可掛入運行中的組合並自動刷新頁面;複雜 patch 或環境不支持時回退爲「重啓生效」。熱掛載僅作用於運行中的 web profile
失敗排查¶
安裝 / 更新 / 卸載失敗(含超時、已終止、已拒絕)後,失敗彈窗和任務隊列會出現 詢問 DSH 按鈕:前端新建對話,並把操作目標、環境信息與完整錯誤日誌作爲 prompt 發送給 AI,便於排查。
pnpm ≥11 若遇 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION,市場會自動把違規的 name@version 合併進 profile 的 pnpm-workspace.yaml 的 minimumReleaseAgeExclude 並重試一次。
安裝與啓用¶
本插件在 DSH web profile 內運行,peer 依賴由宿主提供,用戶無需手動安裝 @deepseek-ai/cordis、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-slots。當前版本面向 DSH 0.0.1-rc.2+(不含 0.0.1-rc.1)及 0.1.0-rc.2+。Node 要求 ^22.19.0 || >=24.0.0。
方式一:從 npm registry 安裝(推薦):
dsh plugin --profile web add @sanqi-normal/dsh-webui-market-plugin
方式二:從 GitHub 源碼安裝:
dsh plugin --profile web add github:Sanqi-normal/dsh-webui-market-plugin
安裝後重啓 web 服務生效:
pnpm dsh web
GitHub 源安裝會執行包內 prepare 腳本。若被 pnpm 攔截,把提示的包名加入 profile 的 pnpm-workspace.yaml 的 allowBuilds 後重試。pnpm 11 起未在 allowBuilds 中顯式放行的構建腳本會導致 ERR_PNPM_IGNORED_BUILDS;若該包不需要構建腳本,可寫成 false 明確拒絕。
典型用法¶
經過上面的安裝步驟後,在瀏覽器打開 DSH web 界面,進入 設置 → 插件 → 插件市場。
- 在搜索框或分類中定位目標插件,用「最熱 / 最新」排序縮小範圍
- 點 詳情 覈對官方安裝命令與目標 profile
- 在卡片上執行 安裝;若需 desktop 等 profile,在 安裝設置 中確認「自動同步到其它 profile」,或在 跨 Profile 同步 區補裝
- 在右下角任務面板觀察進度;失敗時可查看 pnpm 日誌或點 詢問 DSH
- 安裝成功後,若未熱掛載生效,執行
pnpm dsh web重啓 web 服務
維護者可用以下命令從官網 JSON API 刷新離線目錄快照(官網不可達時會失敗,不會複製舊數據):
pnpm run snapshot
快照寫入 data/catalog-snapshot.json,供官網抓取失敗時回退。
適用場景與注意¶
適合誰:經常在 DSH web GUI 裏試用社區插件的開發者;需要在 web 與 desktop 等多個 profile 間保持插件一致的本機用戶;希望用白名單、試裝驗證和任務隊列降低「裝壞組合」風險的環境。
務必注意:
- 本插件以當前 dsh 進程的權限運行,安裝前應檢查目標插件源碼與許可證
- 安裝 / 卸載後通常需重啓 web 服務;熱掛載成功時可免重啓
- 在命令行手工執行
dsh plugin add/remove/update可能短暫恢復已停用項,重啓或下一次市場操作會再次應用停用狀態 - 跨 profile 同步只增不刪,不會刪除目標 profile 已有內容
- 目錄數據與插件數量以 awesome-dsh-plugin.com 爲準;這是社區生態目錄,不是官方應用商店
結尾¶
@sanqi-normal/dsh-webui-market-plugin 把 awesome-dsh-plugin.com 的目錄搬進 DSH 設置面板,用隊列化安裝、白名單、試裝驗證和跨 profile 同步,把「查目錄 → 敲命令 → 重啓」收成一套可觀測的流程。若你主要在 web GUI 裏擴展 harness 能力,這是聯網工具類裏較完整的市場前端之一。