dsh-open-browser:在 dsh web 就绪后自动打开 Web UI

前言

dsh web 启动后,通常还需要在浏览器中访问本地 Web UI。dsh-open-browser 把这一步放在插件里完成:在 dsh web 启动完成、可以对外服务时,自动用系统默认浏览器打开 Web UI。

这是什么

dsh-open-browserpeach0x33a 维护的 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 覆盖配置 opendelayMs

安装与启用

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 覆盖配置 opendelayMs

- 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

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

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

Xiaoye