前言¶
DeepSeek Harness (DSH) 是一个基于插件的架构,其核心理念是「一切皆插件」。DSH 提供了 --profile web 来运行 Web UI,但通过命令行手动启动和停止这个界面通常需要额外的脚本或操作。dsh-webui-launcher 作为一个插件,直接解决了这个问题。它由用户 YV3507 维护,采用 MIT 许可证。安装后,你可以在 DSH 内部直接控制 Web UI 的生命周期,无需离开当前环境。
功能概览¶
该插件提供了一套完整的控制手段:
- Model 工具:包含
webui_start、webui_stop、webui_status、webui_open四个核心工具。它们可以在后台启动dsh --profile web,等待 HTTP 200 响应后报告状态或打开浏览器。 - Slash 命令:提供
/webui start、/webui stop、/webui status、/webui open等快捷指令,方便在交互界面中快速操作。 - 设置页:在 DSH 的 Web 设置页面中增加了一个 “Web UI Launcher” 卡片,驱动与上述工具相同的 JSON 接口。
- 桌面快捷方式:首次启动插件时,会在桌面创建启动器(Windows 为
.lnk,Linux 为.desktop,macOS 为.command)。该快捷方式会自动使用官方 DSH 图标,并支持自定义图标。
安装¶
在终端中执行以下命令即可完成安装:
dsh plugin --profile web add github:YV3507/dsh-webui-launcher
使用方法¶
安装完成后,你可以通过以下方式使用:
- Slash 命令:在 DSH 聊天窗口中输入
/webui start即可启动 Web UI 服务,等待 HTTP 200 响应。 - Model 工具:在代码或脚本中调用
webui_start。该工具会在后台生成dsh --profile web进程,并持续监控直到服务就绪。 - 桌面快捷方式:在桌面找到插件创建的快捷方式,点击即可启动 Web UI 并自动打开浏览器。
配置项¶
插件支持通过配置来调整行为,主要配置项如下:
| 配置项 | 默认值 | 含义 |
|---|---|---|
port |
3080 |
Web UI 服务的端口。 |
host |
127.0.0.1 |
绑定的主机地址,默认为本地回环。 |
startupTimeoutMs |
120000 |
启动时等待 HTTP 200 的超时时间(毫秒)。 |
openBrowserOnStart |
true |
服务启动成功后是否自动打开默认浏览器。 |
desktopShortcut |
true |
是否在桌面创建快捷方式(无桌面环境的主机会静默跳过)。 |
shortcutName |
"DeepSeek Harness Web UI" |
桌面快捷方式的显示名称。 |
shortcutIconPath |
"" |
自定义图标路径,留空则使用官方 DSH 图标。 |
行为与注意事项¶
- Loopback 限制:默认情况下,插件仅绑定到 127.0.0.1,不提升权限,也不允许外部网络访问,安全性较高。
- 接管现有服务:如果端口已被占用且存在相应的 PID 记录,插件会接管该现有服务,而不会重启它。
- 进程管理:
webui_stop仅会杀死插件自己生成的进程树,或者是它记录了 PID 的服务器。在杀死前,它会验证进程是否仍然存活、是否属于当前插件实例,防止误杀其他进程。 - Headless 环境:在无桌面环境(如服务器)下运行时,插件不会报错,而是静默跳过桌面快捷方式的创建。
- 安全性:插件在销毁或热重载时会清理其创建的服务器进程。
结语¶
dsh-webui-launcher 通过标准化的 Model 工具和设置卡片,将 Web UI 的管理无缝集成到 DSH 生态中。对于需要在脚本或自动化流程中控制 Web UI 的开发者来说,这是一个实用的工具。更多信息和源码,请访问 GitHub 仓库。