dsh-webview-wrapper:DeepSeek Harness 的原生桌面窗口封装

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 仓库

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

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

小夜