dsh-open-browser:在 dsh web 就緒後自動打開 Web UI

前言

dsh web 啓動後,通常還需要在瀏覽器中訪問本地 Web UI。dsh-open-browser 把這一步放在插件裏完成:在 dsh web 啓動完成、可以對外服務時,自動用系統默認瀏覽器打開 Web UI。

這是什麼

dsh-open-browser 是 peach0x33a 維護的 DSH 插件,許可證爲 MIT。

它面向已經使用 dsh web 的本地場景,解決“服務已就緒,但還需要手動打開瀏覽器”的步驟。包聲明如下:

name: dsh-open-browser
license: MIT
engines: node >=22
peerDependencies: @deepseek-ai/schemastery *
devDependencies: @deepseek-ai/schemastery ^3.18.1

這裏的零運行時依賴,是指運行時不額外引入依賴;peer 使用 dsh 自帶的 @deepseek-ai/schemastery 做配置校驗。

核心功能

  • 零運行時依賴,僅 peer 使用 dsh 自帶的 @deepseek-ai/schemastery 做配置校驗。
  • 跨平臺支持 macOS、Linux X11、Linux Wayland、Windows、WSL。
  • 無頭安全:Linux 無 DISPLAY/WAYLAND_DISPLAY 且非 WSL 時靜默跳過並打印一行提示。
  • 時機精確:與 web-app 打印 URL 行同一就緒點(Loader 樹 settle 之後),--port 0 的 OS 分配端口也能拿到。
  • 不阻塞關停:opener 子進程 detached + unref,Ctrl-C/SIGTERM 關停不受影響。
  • 支持通過 profile 的 cordis.patch.yml 按行 id 覆蓋配置 open 與 delayMs。

安裝與啓用

1、安裝到 web profile:

dsh plugin --profile web add dsh-open-browser

2、也可以從 git 直裝:

dsh plugin --profile web add github:peach0x33a/dsh-open-browser

3、啓動 web 服務:

npx @deepseek-ai/dsh web

啓動完成後終端會打印:

dsh web: http://127.0.0.1:3080
dsh-open-browser: opened http://127.0.0.1:3080 via xdg-open

第一行表示 dsh web 已打印可訪問地址,第二行表示插件通過系統默認瀏覽器打開了該地址。

配置

可以在 ~/.dsh/profiles/web/cordis.patch.yml 中按行 id 覆蓋配置 open 與 delayMs:

- id: dsh-open-browser
  config:
    open: false
    delayMs: 0

示例中 open: false 表示關閉自動打開,delayMs: 0 表示 0 毫秒延遲。

平臺與注意事項

  • 支持平臺包括 macOS、Linux X11、Linux Wayland、Windows、WSL。
  • 無頭 Linux 下,若沒有 DISPLAY/WAYLAND_DISPLAY 且非 WSL,不執行打開瀏覽器,只打印跳過提示。
  • Linux $BROWSER 若設置成帶參數形式(如 firefox %s),該分支會失敗並打印 console.error;不設置 $BROWSER、交給 xdg-open 即可。
  • 極簡 Linux 缺少 xdg-open 時打印錯誤行,啓動不受影響;可安裝 xdg-utils 或設置 $BROWSER。
  • Windows 無桌面會話(服務/SSH 非交互)下 Start-Process 失敗時打印錯誤行,啓動不受影響。
  • WSL 關閉 interop 導致 powershell.exe 不可達時報錯行,啓動不受影響。

適用場景與安裝注意

適合本地使用 dsh web、希望在服務就緒後直接打開 Web UI 的開發者;也適合在無頭環境中避免執行打開瀏覽器操作。

由於插件會隨當前 dsh 進程運行,安裝前應檢查源碼、許可證和插件行爲。該插件許可證爲 MIT,倉庫地址爲 peach0x33a/dsh-open-browser。

結尾

dsh-open-browser 的價值是把 dsh web 的就緒動作和系統默認瀏覽器打開動作合併在一個插件裏完成。倉庫地址:https://github.com/peach0x33a/dsh-open-browser

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜