前言¶
DeepSeek Harness(DSH)的生態理念是「一切皆插件」。在本地開發環境中,管理多個開發項目通常意味着打開多個終端窗口或使用複雜的腳本組合。dsh-project-manager 插件通過在 DSH Web 界面右下角提供一個懸浮窗口,將項目啓動、停止、日誌查看和熱重載等操作集中在一個可拖拽的 UI 中,減少對系統原生窗口的依賴。
是什麼¶
這是一個由 br1nosense 維護的客戶端插件,用於在 DSH Web 界面內直接管理本地開發項目。它解決了多項目切換繁瑣的問題,提供了可視化的進程控制、文件變更自動重啓和日誌查看功能。
核心功能¶
該插件包含以下核心能力:
- 懸浮窗口:窗口默認顯示在 DSH Web 界面右下角的
shell.overlay區域。支持通過標題欄拖拽移動位置,通過右上角按鈕摺疊/展開。窗口的位置、摺疊狀態及尺寸變化會被記錄在瀏覽器的localStorage中,刷新頁面後保持一致。 - 項目列表:列出所有已添加的項目。每個項目卡片顯示狀態徽標(如運行中、停止中、失敗)、進程 ID (PID)、工作目錄和啓動命令。
- 進程控制:提供啓動、停止、重啓操作。在 Windows 系統下,停止操作會使用
taskkill /T命令殺整棵進程樹,確保子進程被正確清理。 - 添加項目:支持配置以下參數:項目名稱、工作目錄、啓動命令、附加參數、自動啓動選項、熱重載開關、熱重載文件後綴白名單以及附加環境變量。
- 熱重載:使用
fs.watch遞歸監聽項目目錄。文件變更會根據後綴白名單進行過濾,並在去抖(Debounce)500ms 後自動重啓進程。 - 日誌查看:stdout 和 stderr 按行寫入內存環形緩衝區(默認上限 2000 行),並持久化保存到
logs/<id>.log文件。懸浮窗內提供日誌查看器,支持增量輪詢和自動滾動。
安裝與啓用¶
安裝過程通過 PowerShell 腳本完成。建議從 GitHub 克隆倉庫進行安裝。
git clone https://github.com/br1nosense/dsh-project-manager.git
cd dsh-project-manager
powershell -ExecutionPolicy Bypass -File .\install.ps1
安裝完成後,重啓 DSH Web 或等待 dsh-client-hmr 自動熱更新。驗證插件是否生效,可以在終端執行:
dsh --profile web --dump-config
在輸出中應能找到 id: project-manager 的配置項。
典型用法¶
安裝並啓用插件後,右下角會出現懸浮窗口。
- 添加項目:在懸浮窗中配置項目信息(工作目錄、啓動命令等),或通過 API 發送 POST 請求添加。
- 控制進程:點擊項目卡片上的“啓動”、“停止”或“重啓”按鈕。
- 查看日誌:展開日誌查看器,實時監控輸出,或通過 API 獲取增量日誌。
配置與維護¶
- 配置持久化:項目列表和配置保存在
~/.dsh/settings.yaml的project-manager段中。 - 熱更新:客戶端代碼修改後,
dsh-client-hmr會自動更新,無需重啓 DSH Web。 - PeerDependencies 修復:若直接克隆倉庫安裝,可能會遇到 PeerDependencies 解析問題。Node ESM 會從插件目錄向上查找依賴,可能找不到 DSH 核心包。需要在插件工作區根目錄(插件目錄的父目錄)的
node_modules\@deepseek-ai\下創建 Junction(目錄聯接),指向 DSH 安裝目錄下的同名包(schemastery、cordis、dsh-settings)。
適用場景¶
該插件適合需要在本地同時維護多個開發環境(如前後端分離項目、微服務架構)的開發者。特別是使用 Windows 系統且習慣通過瀏覽器管理任務的開發者,可以通過此插件替代多開終端。
結語¶
dsh-project-manager 提供了一套輕量級的項目管理方案,通過 Web 界面和本地進程控制相結合,優化了本地開發的工作流。對於需要頻繁啓動、停止和監控本地服務的場景,該插件能顯著提升操作效率。