前言¶
DeepSeek Harness(下文稱 dsh)把「一切皆插件」寫進架構:界面、工具、技能都可以從外部裝進來。官方倉庫 deepseek-ai/deepseek-harness 也建議插件作者給倉庫打上 GitHub topic dsh-plugin,方便被發現。問題是 topic 下面的倉庫會越來越多,個人賬號和組織之間還會轉移,靠人工翻搜索結果、或者只盯某一個組織,很容易漏掉能用的插件,也分不清該按 bundle、Cordis 插件還是 skill 來裝。
更麻煩的是安裝本身。插件跑在當前 dsh 進程裏,裝進去等於把會話、工具和本機命令權限交給它。社區目錄站點 deepseek-harness-plugin.com 是獨立收錄站,和 DeepSeek / 幻方沒有官方從屬關係,頁面上的安裝命令也不能替代自己看源碼。
Nagi-ovo 維護的 dsh-find-plugins 就是衝着這件事來的:在智能體對話裏用自然語言描述需求,它去全 GitHub 的 dsh-plugin topic 裏找候選、解釋差別,等你選好以後先做一輪權限彙報,再安裝並驗證是否掛載成功。本文按目錄詳情頁、GitHub 倉庫 README、skills/find-plugins/SKILL.md 以及官方 deepseek-harness 倉庫交叉覈對後整理。
這是什麼¶
dsh-find-plugins 是一款技能插件,倉庫託管在 Nagi-ovo/dsh-find-plugins,維護者是 Nagi-ovo,許可證爲 BSD-3-Clause。社區目錄把它歸在「技能」分類。截至 2026-08-17,GitHub 與目錄頁上的星標均爲 130。倉庫主要語言是 JavaScript,創建於 2026-08-13,目錄收錄日期爲 2026-08-15。
它解決的不是「寫一個新插件」,而是這幾件事:
- 按自然語言需求,從全 GitHub 的
dsh-plugintopic 找出公開候選 - 對照 README、
package.json和倉庫文件,判斷該按 bundle、Cordis 插件還是 skill 安裝 - 用戶選定之後、動手之前,先彙報這個插件要什麼權限
- 安裝完成後驗證是否掛載成功
Skill 入口文件是 skills/find-plugins/SKILL.md,技能名是 find-plugins。SKILL.md 寫得很明確:只負責找和裝;要開發新插件,應轉去 make-dsh-plugin。
核心功能¶
把 topic 當目錄,不把某個組織當目錄¶
Skill 把 GitHub 的 dsh-plugin topic 當作插件身份,不把某個 owner 或組織當作目錄。倉庫屬於個人還是組織並不重要:只要是公開倉庫並帶有這個 topic,轉移之後仍然能被發現。搜索結果以當前的 fullName 和 url 爲準,不根據舊 owner 猜地址。
檢索腳本是倉庫自帶的 skills/find-plugins/scripts/search-topic.mjs。它調用 GitHub Search API,查詢條件是 topic:dsh-plugin is:public archived:false,再過濾掉 fork、已歸檔和已禁用的倉庫。腳本會處理分頁(每頁 100 條,最多 10 頁),並按 fullName 去重。認證方面依次複用 GITHUB_TOKEN / GH_TOKEN、本機 gh 登錄令牌以提高限額;都沒有時使用公開 API。限流時需要先 gh auth login 再重試,而不是退回某個組織的倉庫列表。
README 還提到:如果當前賬號能讀取 dsh-external/hub 的 catalog.json,可以把其中的分類、安裝說明當作補充信息。Hub 不是主目錄,GitHub topic 纔是。Hub 缺失、私有、或仍指向轉移前地址,都不能覆蓋倉庫當前聲明。
先篩少量候選,再判斷裝法¶
Skill 不會把 topic 下的倉庫全部打開。它先用用戶需求對照倉庫的 name、description、topics,優先看最近有推送的命中項,只對語義最匹配的少量倉庫讀取 README、package.json 和文件樹,然後按倉庫當前聲明判斷安裝類型:
package.json聲明瞭dsh.bundle.patch:按 bundle 安裝- 含一個或多個
SKILL.md,且沒有 bundle 聲明:按 skill 安裝 - README 明確要求寫入
cordis.patch.yml,但沒有 bundle 聲明:按 cordis 安裝 - 只有
.dsh-plugin/repository舊格式:標成「需遷移」,不能直接安裝 - 仍無法判斷:標成「需覈對」,不要編造安裝命令
references/install-methods.md 還補充了優先級:多種方式並存時,bundle 優先於 cordis,再其次纔是社區管理器 marisa / mygo。最新 DSH 已經移除 repository 這種舊格式;只有舊標記、沒有 bundle 的插件,Skill 會停下來說明需要遷移,而不是寫過期配置。marisa / mygo 由對應管理器接管,本 Skill 不代勞。
產出最多 3 行候選表:名字、一句話用途、最近更新、裝法。表後用一句話說明首選理由。一條都不匹配時,會直說 topic 目錄裏沒有,並問是否轉去寫一個新插件。
倉庫 README 給了兩個對照例子(並寫明「檢索命中純屬巧合」):「想把數據和流程畫出來」可以找到 dsh-visualize;「想給 Web UI 加點 2005 年互聯網味道」可能會找到 dsh-ads。
裝之前先彙報權限,有沒有問題都要說¶
用戶點頭之後、動手之前,Skill 會先看一遍這個插件裝進來會拿到什麼。SKILL.md 把這一步寫成不能跳過:插件運行在用戶的 DSH 進程裏,能讀會話、調工具、跑命令,裝它等於授權。
至少看這四處:
package.json的 lifecycle scripts:preinstall、install、postinstall、prepare在 Git / npm 安裝時會執行- 對外動作:網絡請求、子進程、寫
$DSH_HOME之外的路徑、改 shell 配置或系統設置 - 讀取的會話數據和憑據:會話日誌、settings、
.env或 credentials - 倉庫本身的可信度:最近推送時間、star 數、作者是否還有其他 dsh 插件、README 與代碼是否對得上
不管有沒有發現問題,都要彙報,三到五行講清:查了哪幾處、這個插件實際要什麼權限、有沒有和它宣稱的用途對不上的動作。有可疑項就把原文貼出來,不要轉述。彙報完再問一次是否繼續;用戶說停就停在這裏,不要順手裝完。
安裝過程中如果冒出檢查時沒看到的動作(新的下載源、額外的寫入路徑、要求提權),同樣停下來把原文交給用戶。
裝完還要驗證掛載¶
安裝完成後進入驗證。web 等長駐界面會監聽 patch 文件改動後熱載;一次性運行則要下次啓動才生效。Skill 會請用戶確認相應 UI、工具或技能條目出現。沒出現時依次排查:服務日誌中的 hmr/config-update-failed、Git spec 是否仍用了轉移前 owner、ref / path 拼寫、profile 目錄的 pnpm install 是否成功。
完成態只有一個:用戶選中的插件在他的 DSH 裏可用。
安裝與啓用¶
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:
dsh plugin add github:Nagi-ovo/dsh-find-plugins
如需可復現安裝,目錄頁建議固定 commit 哈希:
dsh plugin add github:Nagi-ovo/dsh-find-plugins#<commit>
把 <commit> 換成倉庫裏實際的提交哈希,不要留佔位符。
倉庫 README 還提供了技能目錄的安裝方式。可以把下面這句話發給 DSH:
請從 https://github.com/Nagi-ovo/dsh-find-plugins 安裝 dsh-find-plugins skill
手動安裝時,把 skills/find-plugins/ 整個目錄複製到技能發現根。常用位置是:
- 全局:
$DSH_HOME/skills/(默認~/.dsh/skills/) - 只給當前項目:
<項目根>/.dsh/skills/,或<項目根>/.agents/skills/ - 和其他 Agent 共用:
${DSH_AGENTS_HOME:-~/.agents}/skills/
目錄有 watcher,放進去即可生效,不必重啓。複製的是含 SKILL.md 的 find-plugins 目錄,而不是倉庫根目錄裏的 README 和圖片。
目錄頁提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。
典型用法¶
SKILL.md 把觸發條件寫得很直白。用戶想給 DeepSeek Harness 找插件時,可以直接說:
有沒有插件能把數據和流程畫出來?
幫我裝個能給 Web UI 加點復古味道的插件
生態裏有什麼好玩的
也可以直接點名:
幫我裝 dsh-visualize
用戶已經點名某個插件時,Skill 會先覈對當前倉庫和裝法,再進入權限彙報,而不是再搜一遍。
完整流程可以按這六步理解:
- 取候選池:運行
search-topic.mjs,得到公開、未歸檔、非 fork 的dsh-plugin倉庫列表 - 篩選並確認裝法:只打開最匹配的少量倉庫,產出最多 3 行候選表
- 用戶拍板:停下來等選擇
- 安全檢查並彙報:無論有沒有問題都彙報一次,再問要不要繼續
- 安裝:按確認出的類型打開
references/install-methods.md,照對應小節操作 - 驗證掛載:確認 UI、工具或技能條目已經出現
官方 deepseek-harness 倉庫目前處於 developer preview,文檔寫明會有破壞性變更。Skill 裏的安裝命令也按「最新 DSH」來寫,例如從源碼 checkout 根目錄用 pnpm dsh plugin --profile <profile> add ... 安裝 bundle。具體命令以目標插件倉庫當前聲明爲準,不要把舊的 .dsh-plugin 配置抄回去。
適用場景與注意事項¶
適合這幾類情況:
- 已經在用 DeepSeek Harness,想按需求從社區 topic 裏找現成插件,而不是隻翻某一個組織
- 分不清目標倉庫該按 bundle、Cordis 插件還是 skill 安裝
- 安裝前希望先看到權限彙報,而不是直接執行
plugin add - 倉庫剛從個人賬號轉到組織(或反過來),需要按當前
fullName安裝,避免用轉移前的 Git spec
使用時注意下面幾點。
第一,插件以當前 dsh 進程的權限運行。dsh-find-plugins 自己會幫你檢查別人的插件,但它本身同樣是裝進 dsh 的技能,安裝前應閱讀倉庫源碼和 BSD-3-Clause 許可證。目錄頁也寫了同一條:安裝時可能執行代碼。
第二,它只覆蓋打了 dsh-plugin topic 的公開倉庫。沒打 topic、已歸檔、fork、私有倉庫,都不會出現在候選池裏。檢索命中不等於推薦,README 裏的例子也聲明「純屬巧合」。
第三,GitHub API 有限額。沒有 GITHUB_TOKEN / GH_TOKEN、也沒有 gh 登錄時,公開搜索仍能工作,但更容易被限流。限流後應先認證再重試。
第四,社區目錄和 dsh-external/hub 都是補充信息源,不能覆蓋倉庫當前的安裝聲明。目錄站點與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。
第五,本 Skill 不負責開發新插件,也不代勞 marisa / mygo 這類外部管理器。舊的 repository 格式已經從最新 DSH 移除,遇到只有舊標記的倉庫,應視爲需要遷移,而不是強行安裝。
小結¶
dsh-find-plugins 把「在對話裏找插件」落成一套可覈對的流程:用 GitHub 的 dsh-plugin topic 當目錄,篩少量候選、判斷裝法、先彙報權限再安裝,最後驗證掛載。對已經在用 DeepSeek Harness、又不想靠人工翻倉庫的人來說,它把發現和安裝收進同一次對話裏,同時把「裝插件等於授權」這件事寫進了默認步驟。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-find-plugins/
GitHub:https://github.com/Nagi-ovo/dsh-find-plugins