dsh-native-launcher:为 DeepSeek Harness Web UI 增加 Windows 桌面启动体验

前言

DSH 的插件生态里,很多能力都可以围绕 Web UI 做扩展,但窗口启动、托盘、通知和关窗退出这类桌面行为,通常不在 Web 服务本身的处理范围内。dsh-native-launcher 针对这部分做一层适配:在 Windows 上把 DeepSeek Harness Web UI 的启动入口、窗口行为、托盘通知和卸载清理整理成一组可开关的功能。

它由 ingleav626-art 维护,使用 MIT 许可证。它不替换官方 Web UI,也不引入 Electron / Python / WebView2 等重型桌面端或运行时,而是在 DSH 官方插件生态及其官方基础依赖上,用 Windows 原生机制补上桌面 App 式的一键启动体验。

这是什么

一句话:dsh-native-launcher 是一个面向 Windows 的 DSH 插件,用来把 WebUI 启动成桌面应用式入口,并提供托盘、通知、设置页和一键卸载。

它主要解决这几类操作:

  • 不想每次手动跑命令启动 WebUI。
  • 希望双击桌面图标即可启动或回到已有窗口。
  • 希望任务完成、出错、等待审批时有系统通知。
  • 希望关闭窗口时的服务退出行为可配置。
  • 希望卸载时能清理插件生成的文件、快捷方式、注册表项和 profile 条目。

核心功能

桌面快捷方式

安装后会生成桌面快捷方式。双击可启动或返回 WebUI。设置页里可以自定义快捷方式名称,也可以强制重建。

独立应用窗口

可以把 WebUI 安装为桌面应用。应用窗口拥有独立任务栏图标,也没有浏览器地址栏。如果没有安装应用,插件会按设置页里的打开方式回退。

窗口自动聚焦

如果 WebUI 已经在运行,再次点击快捷方式或托盘时,插件会把已有窗口切换到前台,而不是再开一个实例。

系统托盘与任务通知

插件提供常驻托盘图标,入口包括“打开 WebUI”和“退出”。任务状态变化会通过 Windows 原生通知提醒,覆盖任务完成、出错、中止、被阻塞、达到上限,以及等待审批、等待回答、计划审阅等状态。

通知以托盘通知为主通道,浏览器通知仅作兜底。Windows 可能会静默屏蔽短时间内的连续通知,测试通知时建议间隔几秒再点。

关闭语义

当所有窗口都关闭,并且没有运行中任务时,服务会自动停止;如果仍有任务在运行,服务会等待任务完成后再停止。设置页里可以关闭“关窗自动退出”,让服务在关窗后继续常驻。

设置页与模块化

设置页提供可视化配置,并持久化保存。可配置项包括:

  • 启动命令
  • 端口
  • 快捷方式名称
  • 打开方式
  • 托盘开关
  • 通知开关
  • 关闭语义参数
  • 各功能模块开关

附加功能以独立模块形式提供,可以单独启用或停用。如果已经使用其他同类插件,可以在设置页关闭对应模块,减少功能冲突。

一键卸载与日志

设置页提供一键卸载:停止服务、移除桌面快捷方式、清理生成文件与注册表项、从 profile 移除插件条目,并可选择清除个性化配置。

启动、运行、卸载过程都有结构化日志。卸载日志位于:

%USERPROFILE%\.dsh-webui-launcher\uninstall.log

该日志不会被卸载清理。通知问题可查看:

~/.dsh-webui-launcher/tray-notify.log

安装与启用

平台与版本要求

仅支持 Windows 10/11,x64。macOS / Linux 请勿安装。

需要:

dsh >= 0.1.0-rc.8

如果 dsh 版本过低,可执行:

npm install -g @deepseek-ai/dsh@0.1.0-rc.8

从 rc.8 开始,dsh web 默认会打开浏览器;dsh-native-launcher 通过 --no-open 避免插件和官方行为同时打开页面导致双开。

dsh plugin 命令依赖 pnpm。如果提示:

pnpm is not recognized

可执行:

npm install -g pnpm

或:

corepack enable pnpm

@deepseek-ai/schemastery 是 DSH 官方基础依赖,会随插件安装声明;它用于设置页 schema,不属于额外社区功能框架。

方式一:npm 安装

npm install -g dsh-native-launcher
dsh plugin --profile web add dsh-native-launcher

方式二:源码安装

git clone https://github.com/ingleav626-art/dsh-native-launcher
dsh plugin --profile web add <path-to-repo>

源码安装后,重启 dsh web 后生效。

安装后检查

安装并重启后,桌面应出现快捷方式,右下角托盘应出现图标。双击快捷方式即可启动或返回 WebUI。

典型用法

启动 WebUI

安装后,直接双击桌面快捷方式。如果 WebUI 未运行,会启动服务;如果已经运行,会切换到现有窗口。

安装为桌面应用

用普通标签页打开:

http://127.0.0.1:3080

在页面提示框中点击安装。如果浏览器没有弹出安装提示,可在 Edge 菜单中进入:

⋯ → 更多工具 → 应用 → 将此站点安装为应用

安装完成后,快捷方式会优先打开独立应用窗口。

修改设置

设置页可配置启动命令、端口、快捷方式名称、打开方式、托盘开关、通知开关、关闭语义参数,以及各功能模块开关。修改保存后会持久化。

处理通知未收到

如果托盘通知没有收到,可先确认托盘图标存在,再查看:

~/.dsh-webui-launcher/tray-notify.log

在设置页发送测试通知时,建议间隔几秒再点,避免 Windows 短时间内屏蔽连续通知。

修改端口后旧应用打不开

修改 port 后,旧 PWA 仍可能指向旧端口。启动时可能回退到 --app 模式,功能仍可用。旧应用需要到:

edge://apps

手动卸载后再安装。

不想关窗退出服务

如果希望关闭窗口后服务继续运行,在设置页关闭“关窗自动退出”。之后需要手动使用托盘里的退出入口停止服务。

快捷方式依赖全局 dsh 命令

快捷方式通过 dsh 命令启动服务,依赖 PATH 中的全局 dsh 命令。v0.2.1 起可自动回退 npx 启动并显示提示;如果平时未全局安装 dsh,仍建议确认 PATH 中的 dsh 命令可用。

卸载

推荐在设置页执行一键卸载。它只会移除本插件提供的桌面化增强组件;dsh 服务本身与其数据不受影响。可选择是否清除个性化配置。

手动备用方式:

dsh plugin --profile web remove dsh-native-launcher

并清理:

~/.dsh-webui-launcher

以及桌面上的 DSH WebUI 快捷方式。卸载日志仍保留在:

%USERPROFILE%\.dsh-webui-launcher\uninstall.log

适用场景与注意

适合:

  • Windows 10/11,x64 上的 DSH WebUI 用户。
  • 希望桌面快捷方式、托盘、通知和关窗退出统一管理。
  • 希望保持轻量,不引入 Electron / Python / WebView2。
  • 希望功能可单独开关,减少与其他插件冲突。

注意:

  • 仅限 Windows;macOS / Linux 不要安装。
  • dsh 版本需要 dsh >= 0.1.0-rc.8
  • dsh plugin 依赖 pnpm。
  • 托盘通知是主通道,浏览器通知是兜底;短时间连续通知可能被 Windows 静默屏蔽。
  • 修改端口后,旧 PWA 可能仍指向旧端口。
  • 一键卸载只移除桌面化增强组件,不影响 dsh 服务本身与数据。
  • 插件会在当前 dsh 进程权限下运行。安装前建议检查源码、依赖声明和 MIT 许可证。

链接

目录页:

https://www.skillhub.cn/plugins/ingleav626-art/dsh-native-launcher

GitHub:

https://github.com/ingleav626-art/dsh-native-launcher
羽毛球分组比赛记分
小程序二维码

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

Xiaoye