DSH(DeepSeek Harness)的設計理念是“一切皆插件”,這使得開發者可以靈活擴展功能。在實際開發中,頻繁啓動 Harness 實例是常見操作。如果目標端口已被佔用,直接啓動通常會失敗,需要手動排查進程或關閉舊實例。手動管理這些環境不僅繁瑣,還容易出錯。
下面介紹 dsh-launch-in-one-click,它是一個爲 Windows 環境設計的 DSH 插件。它通過在桌面上生成一個自包含的 .bat 啓動器,解決啓動流程中的環境檢查和端口衝突問題。
插件介紹¶
dsh-launch-in-one-click 是由 233fxr-collab 維護的客戶端插件。它的核心價值在於提供一鍵啓動能力,並內置端口檢測機制,防止在端口已被佔用時啓動多個 Harness 實例。
- 許可協議:MIT
- 插件類型:客戶端
- 核心能力:生成獨立啓動器、檢查運行環境、探測端口占用、拒絕衝突啓動。
核心功能¶
- 生成自包含啓動器:插件會在桌面上寫入一個獨立的
.bat文件。該文件包含了啓動 Harness 所需的所有邏輯,不依賴插件本身。 - 環境預檢:啓動器運行前會自動檢查
node和npx是否可用。 - 工作區驗證:啓動前會檢查配置的工作區是否存在。
- 端口探測與防衝突:
- 啓動器通過綁定目標端口並識別 401 指紋來探測端口狀態。
- 如果端口空閒,啓動 Harness。
- 如果端口已被 Harness 佔用,拒絕啓動並提示使用該實例的 URL。
- 如果端口被其他程序佔用,拒絕啓動並報告佔用者的 PID。
- 語言切換:支持在啓動器中切換語言(
--lang en/zh/auto)。 - 獨立運行:生成的啓動器不導入此插件。即使卸載插件,桌面的
.bat文件依然可以獨立工作。
安裝與啓用¶
安裝插件後,插件會在加載時根據配置生成啓動器(默認配置下)。
dsh plugin --profile web add dsh-launch-in-one-click
安裝完成後,桌面會出現一個由該插件生成的 .bat 文件。
典型用法¶
該插件提供命令行工具和斜槓命令。
斜槓命令¶
/launch # 使用默認部署設置安裝並生成啓動器
/launch doctor # 運行診斷,檢查環境、端口和啓動器狀態
/launch list # 列出桌面上所有由該插件生成的啓動器及其設置
/launch --port 3111 # 在指定端口啓動 Harness
/launch --lang zh # 將生成的啓動器語言設爲中文(--lang en | auto)
/launch --name "Work.bat" # 指定啓動器的文件名
/launch --overwrite # 強制覆蓋一個非插件生成的啓動器
/launch --dry-run # 僅顯示將要寫入的內容,不實際執行
工具命令¶
launcher_doctor # 診斷環境(Node, npx, 端口, 工作區等)
launcher_install # 寫入啓動器(原子操作,包含自檢)
launcher_uninstall # 卸載啓動器(僅限該插件生成的文件)
啓動器參數¶
啓動器自身也支持以下參數:
--port N # 指定端口
--workdir DIR # 指定工作目錄
--no-open # 不自動打開瀏覽器
--silent # 無控制台窗口,輸出到日誌
--dry-run # 檢查並顯示計劃,不啓動
--help # 顯示幫助信息
注意事項與限制¶
- 獨立性:啓動器是自包含的。卸載插件不會刪除桌面的
.bat文件,文件依然可以正常運行。 - 自動更新:啓動器會記錄生成它的插件版本。如果加載了新版本插件,且配置了
autoUpdate: true,它會自動更新桌面上的文件。 - 安全重寫:如果顯式執行
/launch或launcher_install,啓動器會重寫文件。如果寫入失敗(自檢不通過),它會回滾而不是留下損壞的文件。 - 日誌位置:啓動器的運行日誌保存在
%LOCALAPPDATA%\dsh-launch\launcher.log。使用--silent模式時,所有輸出也寫入此日誌。 - 退出碼規範:啓動器的退出碼遵循約定,方便腳本處理:
0: 正常運行或 dry-run 成功1: 缺少 node 或 npx2: 端口被 Harness 佔用3: 端口被其他程序佔用4: 參數無效5: 工作區不存在9: 端口探測失敗20: Harness 運行失敗
- 配置成本:在 bundle 的 patch 中添加
config行會增加成本,配置僅在重啓後激活。 - 靜默加載:設置
provisionOnLoad: false可讓插件靜默加載,不自動生成啓動器。
結語¶
dsh-launch-in-one-click 通過將啓動邏輯封裝爲桌面腳本,簡化了 Harness 的啓動流程。它確保了端口使用的唯一性,並通過自包含的 .bat 文件保證了工具的獨立性和持久性。
- 插件目錄:[catalog_url]
- 源碼地址:[github_url]