
peach0x33a/dsh-open-browser
30最近提交 2026年8月14日
dsh-open-browser DSH 插件
这是一个 DSH 插件,在 dsh web 服务器就绪后自动打开浏览器。支持 macOS、Linux(X11 和 Wayland)、Windows 和 WSL。能检测无头环境并跳过打开,避免在 CI/容器中弹出窗口。
如何安装 dsh-open-browser DSH 插件
dsh plugin --profile web add dsh-open-browser复制不会执行命令。安装 dsh-open-browser DSH 插件前请核对仓库和版本。
dsh-open-browser DSH 插件数据来源
dsh-open-browser DSH 插件快照日期:2026年8月16日
discovered
dsh-open-browser DSH 插件能做什么
- 零运行时依赖,仅 peer 依赖 @deepseek-ai/schemastery 做配置校验。
- 跨平台:macOS、Linux(X11 与 Wayland)、Windows、WSL。
- 无头安全:Linux 无 DISPLAY/WAYLAND_DISPLAY 且非 WSL 时静默跳过并打印提示。
- 时机精确:在 Loader 树 settle 后打开,即使使用 --port 0(OS 分配端口)也能拿到正确端口。
- 不阻塞关停:opener 子进程 detached + unref,Ctrl-C/SIGTERM 关停不受影响。
dsh-open-browser DSH 插件适合哪些场景
- 启动 dsh web 后自动打开浏览器,省去手动点击 URL 的步骤。
- 在开发工作流中即时访问 Web 界面。
- 在 CI/CD 或无头容器中运行,不会弹出不必要的浏览器窗口。
- 在 WSL 中自动使用 Windows 主机的默认浏览器打开。
dsh-open-browser DSH 插件适合谁
- 本地运行 dsh web 并希望获得无缝启动体验的用户。
- 在多个平台(macOS、Linux、Windows、WSL)上工作的开发者。
- 希望每次启动后避免手动打开浏览器 URL 的用户。
dsh-open-browser DSH 插件的限制
- 在 Linux 上,如果设置了带参数的 $BROWSER(如 'firefox %s'),打开会失败;建议不设置 $BROWSER 或使用 xdg-open。
- 在 Windows 无桌面会话(服务/SSH 非交互)时,Start-Process 可能失败,但 dsh 启动不受影响。
- 在极简 Linux 系统(无 xdg-utils)上,打开会报错;安装 xdg-utils 或设置 $BROWSER 即可。
- 在 WSL 上如果禁用了 interop,powershell.exe 不可达,打开会报错,但启动不受影响。
dsh-open-browser DSH 插件的仓库 README 摘录
以下文字摘自 dsh-open-browser DSH 插件的上游仓库 peach0x33a/dsh-open-browser 的 README,版权归原作者,仅作引用。
DSH 插件:在 `dsh web` 启动完成、可以对外服务时,自动用系统默认浏览器打开 Web UI。 - **零运行时依赖**(仅 peer 使用 dsh 自带的 `@deepseek-ai/schemastery` 做配置校验) - **跨平台**:macOS / Linux(X11 与 Wayland)/ Windows / WSL,见下方平台矩阵 - **无头安全**:Linux 无 `DISPLAY`/`WAYLAND_DISPLAY` 且非 WSL 时静默跳过并打一行提示(CI/容器里不会乱弹) - **时机精确**:与 web-app 打印 URL 行同一就绪点(Loader 树 settle 之后),`--port 0` 的 OS 分配端口也能拿到 - **不阻塞关停**:opener 子进程 detached + `unref`,Ctrl-C/SIGTERM 关停不受影响 ## 安装 已发布到 npm(`dsh-open-browser`,GitHub: [peach0x33a/dsh-open-browser](https://github.com/peach0x33a/dsh-open-browser)),三平台安装命令一致(Windows 上 `dsh` 为 `.cmd` shim,CLI 已内部处理): ```sh # 从 npm 安装(首选) dsh plugin --profile web add dsh-open-browser # 或从 git 直装(纯 JS 无 prepare,无需 allowBuilds 授权) dsh plugin --profile web add github:peach0x33a/dsh-open-browser # 或本地目录(开发/验证) dsh plugin --profile web add /path/to/dsh-open-browser ``` `dsh plugin` 会把包加入 profile 的 `dsh.profile.bundles` 层列表。之后正常启动: ```sh 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 ``` ## 平台矩阵 | 平台 | 命令 | 说明 | |---|---|---| | macOS | `open <url>` | LaunchServices 默认浏览器;`/usr/bin/open` 始终存在 | | Linux (X11) | `xdg-open <url>` | 走桌面环境默认浏
阅读完整 README仓库许可: MIT
dsh-open-browser DSH 插件常见问题
如何安装 dsh-open-browser?
在终端中运行 `dsh plugin --profile web add dsh-open-browser` 即可从 npm 安装。也可以从 GitHub 直接安装:`dsh plugin --profile web add github:peach0x33a/dsh-open-browser`。无需额外权限或构建步骤。
能否关闭自动打开浏览器功能?
可以。在 profile 的 `cordis.patch.yml` 中配置该插件的 `open: false`。例如添加 `- id: dsh-open-browser` 和 `config: { open: false }`。默认值为 true。
在无桌面环境的 Linux 上会怎样?
插件会检测到无头环境(没有 DISPLAY 或 WAYLAND_DISPLAY 且不是 WSL),然后跳过打开浏览器,打印一条跳过提示。这适用于 CI 或服务器环境,避免不必要的弹出。
支持哪些平台?
macOS(使用 `open`)、Linux(X11 或 Wayland,使用 `xdg-open`)、Windows(使用 `powershell.exe Start-Process`)以及 WSL 1/2(使用 Windows 的 PowerShell)。在无头 Linux 上会优雅跳过。
如果浏览器没有打开,我看到错误信息怎么办?
检查终端输出。可能的错误原因:Linux 缺少 `xdg-open`,`$BROWSER` 设置了带参数的值(Linux),或 Windows 非交互式会话。插件会打印清晰的错误信息,但不会影响 dsh 启动。请参照 README 中的平台矩阵进行故障排除。