DSH Hub

jinsiyu/dsh-auto-open-web

dsh-auto-open-web

UIWeb UI1 GitHub stars· updated 2026-08-22

dsh-auto-open-web is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add C:\path\to\dsh-auto-open-web

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-auto-open-web DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-auto-open-web.svg)](https://dshhub.dev/plugins/dsh-auto-open-web)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from jinsiyu/dsh-auto-open-web, cleaned of badges and images.

dsh-auto-open-web

English: README.en.md

dsh web profile 启动后自动打开独立应用窗口(或网页标签页)的常驻插件,并在 设置 → 插件配置中提供配置卡片(手动维护浏览器位置等)。

行为

启动时(HTTP 服务绑定完成、取得实际监听端口后),按 windowKind 选择窗口类型:

  1. WebView2 宿主windowKind: webview2,默认,仅 Windows):启动随包分发的 DshAppWindow.exe(WinForms + WebView2,独立进程,无标签栏/地址栏), 直接加载 GUI 根地址(无 iframe、无包装页、无注入脚本)。 任务栏/窗口图标 = DSH 图标(窗口由宿主进程所有,直接设置 Form.Icon, 不受浏览器任务栏身份限制)。随 DSH 退出(宿主监视父进程 PID)。 记忆窗口大小/位置/最大化状态%LOCALAPPDATA%\DeepSeekHarness\window-state.json, 关闭时保存、启动时恢复;显示器布局变化时回退居中)。
  2. 浏览器应用窗口windowKind: browser):--app 专用 Edge/Chrome 实例--user-data-dir=~/.dsh/<browser>-app-profile,独立进程树与存储, 不与正常浏览器页面共用进程/Cookie/缓存--no-first-run 跳过首启欢迎页)。 随 DSH 退出(含强杀):浏览器实例加入 Job ObjectJOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE,koffi 驱动 JOBOBJECT_EXTENDED_LIMIT_INFORMATION 结构,实测 144 字节);DSH 无论 正常退出还是被强杀(taskkill /F、崩溃、关机等),Windows 内核随作业最后 一个句柄关闭自动结束作业内全部进程——专用实例整个进程树随之消亡,无需 依赖任何退出事件。另有两层兜底:DSH 正常退出时 process 'exit' 结束该 专用实例的整个进程树(仅匹配我们自己的 user-data-dir,不影响正常浏览器); DSH 被强杀后的残留实例由下次启动前预清理。
  3. 默认浏览器打开(最后兜底):所选类型不可用时(宿主缺失/浏览器找不到/ 非 Windows 等)→ 降级为官方同款的默认浏览器交接——把 URL 交给操作系统 默认浏览器(普通标签页),保证用户至少能打开 GUI。实现与 DSH 核心 (web-app bundle)启动时打开网页的方式一致:优先用 DSH 部署自带的 open 包(win32 = PowerShell Start,darwin = open,linux = xdg-open), open 包不可用时退回平台原生拉起(win32 = cmd /c start,darwin = open, linux = xdg-open)。 appWindow: false与官方相同:默认浏览器打开(普通标签页,官方 open 方式)。
  4. --no-open / SSH 会话(与官方相同的不打开)dsh web --no-open (webStartup 服务的 openBrowser === false)或 SSH 会话(SSH_CONNECTION/ SSH_TTY 环境变量,与官方 launchedThroughSsh 同源)时不打开任何 窗口/页面——插件读取与官方同一来源(web-startup 提供的 webStartup 服务)做同样的抑制。

端口取自 webServer 服务的真实监听值(--port 自定义、--port 0 均正确)。 无需等待:插件把 webServer 声明为硬依赖(inject),Cordis 会等 webServer 插件 Service.init() 完成(HTTP socket 已绑定、端口已写入)后才 激活本插件,apply 时端口直接可用。 两种模式都随 DSH 退出而关闭:webview2 宿主监视父进程;browser 专用实例由 Job Object(强杀也生效)+ 退出清理结束进程树。

与 DSH 核心浏览器交接的关系:DSH 核心(web-app bundle)默认会在启动后 用系统默认浏览器打开 GUI(openBrowser: true,普通标签页/窗口,非独立窗口)。 安装本插件后,插件的 bundle 补丁会把 web-runtime.openBrowser 置为 false, 打开行为完全由本插件接管:appWindow: true 时打开独立应用窗口,不弹出 普通浏览器页面;appWindow: false 时插件执行与官方核心相同的默认浏览器 交接(open 包 → 平台原生拉起),行为与未安装插件时一致;dsh web --no-open(或 SSH 会话)时与官方一致不打开任何窗口/页面。卸载插件后 恢复官方默认行为。

WebView2 宿主要求(仅 webview2 模式)

  • Windows 10 1803+ / Windows 11 / Windows Server 2016+ (Win7/8.1 已于 2023-01 终止支持,见微软公告)
  • WebView2 Runtime(常青版,通常随 Edge 预装;本机已验证 151.x)
  • 无 .NET 10 运行时要求:宿主自 0.1.15 起目标 .NET Framework 4.7.2, 由 Windows 10 1803+ / Windows 11 操作系统自带(Win11 为 4.8.x), 无需安装任何 .NET Core/10/自包含运行时。构建机需 .NET SDK 与 .NET Framework 4.x 定位包(随 VS/SDK 安装;无定位包时给 csproj 加 Microsoft.NETFramework.ReferenceAssemblies NuGet 包)。

配置

两种途径,等价:

  1. 设置页卡片(推荐):设置 → 插件配置 → 「自动打开网页」卡片。可编辑 appWindow(独立应用窗口)、windowKind(WebView2 宿主 / 浏览器应用窗口)、 browserPath(浏览器可执行文件,支持「浏览」原生对话框选择;位于窗口类型 下方,仅选择「浏览器应用窗口」时使能)、 exitOnWindowClose(窗口关闭时退出 DSH,默认关闭)。 保存后经官方 settings 域(客户端 settingsScope)持久化到 settings 文档(命名空间 auto-open-web),首次保存后设置值优先于行配置; 宿主仅保留「浏览」「测试」辅助路由(官方通道无法覆盖的能力)。
  2. 行配置(cordis.patch.yml):作为启动种子,设置卡片保存前生效。

Related plugins