前言¶
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