在 DeepSeek Harness (DSH) 的插件化架構中,插件是擴展能力的核心。開發者經常面臨的一個痛點是:在 Session 中打開項目後,需要切換到終端或手動輸入啓動命令才能運行項目,這會打斷當前的上下文。dsh-run-environment 旨在解決這一問題,它是一個客戶端插件,允許你直接在 Session 頭部運行當前打開項目的命令,無需離開當前對話。
插件定位¶
dsh-run-environment 是一個 DeepSeek Harness 插件,由 albertgranados 維護。它的核心定位是基於檢測而非配置。插件通過適配器模型識別項目環境(目前支持 Node.js 的 package.json),並在 Session 頭部提供運行控制。它不需要手動編寫 manifest 或配置路徑,支持通過自定義命令運行任何環境。
核心功能¶
自動檢測與適配器¶
插件採用適配器模型進行環境檢測。只要項目存在 package.json 且包含 scripts,插件即可識別,無需額外配置。未來可通過適配器擴展支持其他環境(如 Makefile 等)。檢測到的命令會按來源分組顯示在菜單中。
命令管理與展示¶
- 重命名與定製:你可以重命名命令、添加描述,並自定義圖標。對於檢測到的命令,這些操作僅修改展示,不改變原始腳本。
- 智能排序與默認值:默認情況下,播放按鈕會優先運行
dev腳本,其次是start,最後是 manifest 中定義的第一個腳本。你也可以通過菜單將任意命令設爲默認。 - 交互管理:支持隱藏/顯示命令(隱藏的命令會沉底,可恢復)以及拖拽排序。順序會按項目記憶。
運行與停止控制¶
- 進程組終止:運行命令會啓動一個進程組。停止時,插件會終止整個進程組(例如從
npm到sh再到具體的 dev server),而不僅僅是父進程。 - 狀態反饋:運行中的命令行會顯示綠色的狀態點。如果命令失敗,該行會變爲紅色,並在工具提示中顯示最後的輸出行。
- 集成控制台:運行命令會自動在 Harness 的 Sidebar 打開一個對應的 Tab,用於流式輸出日誌。每個命令擁有獨立的 Tab,再次運行會聚焦到已有 Tab。
技術特性¶
插件具有零運行時依賴。Host 端僅使用 Node.js 內置模塊和 Harness 自身的包,Browser 端由 Harness 直接提供。這使得安裝過程非常簡單,無需構建步驟。
安裝與啓用¶
在終端中執行以下命令進行安裝:
dsh plugin --profile web add github:albertgranados/dsh-run-environment
安裝完成後,需要重啓 Harness 並刷新瀏覽器頁面以使插件生效。
典型用法¶
- 運行檢測到的腳本:在 Session 頭部點擊播放按鈕,默認會運行
dev腳本。 - 執行自定義命令:在菜單中添加自定義命令(如
docker compose up -d或python manage.py runserver),點擊即可在項目目錄下執行。 - 管理命令列表:通過菜單設置默認命令、編輯名稱和圖標,或隱藏不需要的命令。
注意事項¶
- 環境要求:需要 Node.js 版本大於等於 20。
- 依賴項:插件依賴 Peer Dependencies,包括
@deepseek-ai/cordis、@deepseek-ai/dsh-home-paths和@deepseek-ai/schemastery。 - 權限與安全:插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼。
dsh-run-environment 通過適配器模型和零依賴設計,簡化了在 Harness 中運行項目流程。它將開發環境的啓動過程直接集成到對話界面中,適合需要頻繁切換項目和查看日誌的開發者。