DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。默认情况下,DSH 的 Web 表面运行在浏览器中。dsh-webview-wrapper 是一个开源插件,它利用 WebviewJS 引擎(Windows 上为 WebView2,macOS 上为 WebKit,Linux 上为 WebKitGTK)将 DSH 的 Web 表面封装进一个原生操作系统窗口。
该插件由维护者 no1xsyzy 开发,遵循 MIT 许可证,旨在作为 DSH 的原生桌面外壳,无需 fork 或修补 Harness 本身即可提供原生体验。
核心功能¶
该插件通过 WebviewJS 提供以下能力:
- 原生窗口与系统托盘:创建一个 OS 原生的窗口来承载
dsh web的界面。 - 关闭到托盘:关闭窗口不会结束进程,而是将其隐藏到系统托盘,通过一个不可见的 1×1 窗口保持进程存活。
- 托盘交互:支持托盘图标双击打开窗口,以及托盘菜单操作。
- 干净的卸载:卸载插件或关闭配置文件时,应用会通过效果清理器正确退出。
- 服务集成:通过 WebviewJS 集成,接管
webServer和webRuntime服务。
安装与启用¶
安装该插件需要确保目标配置文件已挂载 Web Bundle(即 dsh web)。
前提条件:
* 安装了标准的 deepseek-harness,且配置文件已启用 Web 层。
* 系统满足 WebviewJS 运行时要求(Windows 11/Edge WebView2,macOS 10.15+ WebKit,Linux WebKitGTK 4.1 + libxdo)。
* 安装了 pnpm。
安装命令:
dsh plugin --profile web add dsh-webview-wrapper
安装完成后,重新启动 DSH 即可加载该插件。
典型用法¶
- 首次启动:应用启动后不会立即显示主窗口,而是停留在系统托盘。
- 打开窗口:双击托盘图标,或从托盘菜单中选择 “Show” 选项,将打开一个固定大小为 1024×768 的窗口,显示运行在
http://127.0.0.1:<port>的 Web 界面。 - 退出应用:唯一的标准退出路径是通过托盘菜单中的 “Quit” 选项。
注意事项与限制¶
该插件目前处于早期阶段,存在以下已知限制:
- 无原生通知:不提供操作系统的原生弹窗通知。
- 通用 HTTP 传输:Webview 加载 Web 应用使用的是通用 HTTP 传输,而非 WebviewJS 的 IPC 通信。
- 无菜单栏:界面中不包含顶部的应用菜单栏,仅提供托盘菜单。
- 控制台窗口:通过命令行启动时,会显示控制台窗口,且目前只能通过托盘 “Quit” 退出。
- 固定窗口大小:主窗口大小固定为 1024×768,暂不支持配置自定义尺寸或标题。
- 无配置界面:目前没有提供图形化的配置入口。
总结¶
dsh-webview-wrapper 提供了 DeepSeek Harness 原生桌面化运行的基础能力。作为插件生态的一部分,它通过补丁层接管窗口生命周期,适合希望在原生环境而非浏览器中体验 DSH 的开发者。使用时请留意其当前的功能局限。
项目地址:
* GitHub 仓库