前言¶
DSH 插件是 Cordis 包:一半是註冊服務、工具或技能的 Host 端,一半可選的瀏覽器端負責加 UI。寫好它的前提是知道當前運行環境裏 Host 的真實 API,而不是博客裏的版本。WilShi 維護的 dsh-plugin-builder 就是解決這個問題的:把插件開發的全流程收進編輯器裏,讓 agent 有一份受約束的引導流程可以照做。
這是什麼¶
dsh-plugin-builder 是一個 DSH 插件,定位是「受護欄約束的插件開發 Skill 包」。它由 WilShi 維護,MIT 許可,當前版本 0.2.3。
它解決的是寫插件時的三個麻煩:不知道該調哪個 API、從零搭包很重複、把未經確認的東西裝進 profile。這個包提供一個編輯器內的 workshop 面板,外加配套的腳手架和校驗腳本,把「設計 → 原型 → 實現 → 校驗 → 打包 → 安裝」這套流程交給 agent 引導執行。
核心功能¶
1、全局註冊 cordis-plugin-development 技能。agent 會沿一條有確認關卡的流程推進,而不是自由發揮。
2、新增 Settings → Plugins → workshop 面板。你在一個輸入框裏描述想要的插件,再選一種引擎:
- Claude Code 模式(默認),在本地 Claude Code agent 上開專用會話;
- Cordis 模式,Cordis 創建預設;
- 標準模式,使用宿主默認 agent。
面板不會替你安裝任何東西,也不會劫持當前對話,它開一個新會話並預填技能提示詞,由你和 agent 決定下一步。
3、附帶技能調用的工具集:
inspect-target.mjs 讀取真實宿主版本
scaffold-package.mjs 生成可構建的包
validate-package.mjs 檢查包契約
外加原型契約和校驗矩陣兩份參考資料。
4、技能優先級可預期。DSH 0.2.1 自帶同名技能時,插件保留宿主那份並跳過自帶副本;宿主沒有時註冊自帶副本。工作臺面板在兩種情況下都可用。
安裝與啓用¶
插件以當前 dsh 進程的權限運行,裝之前建議先覈對源碼與許可證。
dsh plugin --profile web add dsh-plugin-builder
重啓該 profile。插件通過自帶的 cordis.patch.yml 掛載配置,不需要手工改 profile 的 patch 層:
- insert:
- id: dsh-plugin-builder
name: dsh-plugin-builder
典型用法¶
1、打開 Settings → Plugins → workshop(標籤文案跟隨界面語言)。
2、描述你要的插件,選引擎。
3、點開始。面板在當前工作區開新會話,把 /cordis-plugin-development … 和你的需求放進輸入框後自行關閉,它不會替你發消息。
4、跟隨技能的關卡走:先確認設計,再實現,再出校驗證據,最後在把東西裝進 profile 之前做一次明確確認。
如果所選預設缺失或損壞,面板會在建會話之前報錯,不會留下空會話和靜默失敗。
適用場景與注意¶
適合在 DSH 裏開發或改動插件的開發者,尤其是需要反覆對照 Host API 的人。官方給出的運行要求:
- DeepSeek Harness 0.2.1-rc.5(Cordis 4.0.5),插件的類型檢查、客戶端打包和單測都對着這條線驗證;
- Node ^22.19.0 || ^24.0.0;
- 使用組合了
skills服務的 profile(標準 Web/Desktop profile 都滿足)。
需要注意的幾點:
- panel 只負責開會話,agent 仍需保證會話作用域裏有
cordis-plugin-development技能(它被全局註冊,所以滿足); skills/cordis-plugin-development/references/下的參考資料是按 0.1.5-rc.2 接口線寫的,技能會先讓 agent 調inspect-target.mjs,把這些資料當背景而非 API 契約,讀法相同;- 生成的插件是普通 DSH bundle,是否安裝始終由你明確決定;
- 該插件的星標數爲 0,屬於很新的項目,踩坑前先讀源碼。
開發相關命令(從源碼目錄運行):
npm install
npm run build # esbuild host/client bundle + tsc 聲明
npm run typecheck # 對照已發佈的 0.2.1-rc.5 聲明做 tsc
npm test # 單測(腳手架測試需要 DSH_SOURCE_CHECKOUT)
npm run validate:package
腳手架和校驗測試要對着真實的 DSH 源碼 checkout 跑,需要把 DSH_SOURCE_CHECKOUT 指向一份 deepseek-harness checkout;沒有它這組測試會被跳過。
目錄頁與倉庫¶
- 社區目錄頁:https://www.skillhub.cn/plugins/WilShi/dsh-plugin-builder
- GitHub:https://github.com/WilShi/dsh-plugin-builder