在独立浏览器 profile 的 Edge/Chrome 应用模式窗口中打开 dsh web 界面,关闭窗口即优雅停止服务。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:big0lives/dsh-web-window-companion
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH Web Window Companion
关掉浏览器窗口 = 停掉 dsh web 服务
English | 中文
这是什么
一个 DeepSeek Harness(DSH)的 Web profile 插件(bundle)。装上之后,dsh web 的行为变为:
- 不再往默认浏览器里扔一个标签页;
- 改为用 Edge / Chrome 的 App 模式(
--app=)打开一个独立窗口,自带认证 token,走专用浏览器 profile,不碰你日常浏览器的任何状态; - 你关掉这个窗口,dsh web 服务就随之优雅退出——端口释放、进程归零,不留后台残留。
适合把 DSH Web 当桌面应用用的人:开窗即用,关窗即走。
如果你不想敲命令、想要双击桌面图标启动,请看姊妹项目 dsh-win-quick-launcher(免终端启动器)。⚠️ 两者二选一,不要同时启用:它们使用同一个浏览器专用 profile,同时运行时两个窗口进程会互踢,导致窗口闪退、服务被误停。
安装
在 web profile 中安装(git 安装即可,本插件为纯 JavaScript,无构建步骤):
dsh plugin --profile web add github:big0lives/dsh-web-window-companion
源码安装的用户在仓库根目录执行:
pnpm dsh plugin --profile web add github:big0lives/dsh-web-window-companion
验证插件层已生效:
dsh --profile web --dump-config # 应看到 "# == dsh-web-window-companion" 层
卸载:
dsh plugin --profile web remove dsh-web-window-companion
使用
装好后什么都不用改,照常启动:
dsh web
- 终端仍会打印带 token 的 URL(
dsh web: http://127.0.0.1:3080/?token=...),App 窗口打不开时可以手动复制使用; - 关闭 App 窗口 → 服务优雅退出(root fiber dispose,exit code 0);
- SSH 远程启动时插件自动保持静默,不抢窗口。
工作原理
dsh web
└─ Loader 树就绪后,插件注入 connection / webServer 服务
├─ connection.authenticatedUrl() 生成带 token 的 URL
├─ spawn 浏览器:--app=<url> --user-data-dir=<专用 profile>
│ └─ 专用 profile ⇒ 浏览器进程生命周期 == 窗口生命周期
└─ 窗口关闭 → 浏览器进程退出 → ctx.root.fiber.dispose() → 服务优雅停止
同时,bundle 的 patch 会把官方 web-runtime 行的 openBrowser 覆盖为 false(其余键原样重述),抑制默认浏览器跳转;printUrl 保持开启作为兜底。
- 零依赖、零配置、纯 JavaScript:git 安装无需
allowBuilds白名单; - 浏览器探测顺序:Edge (x86 → x64) → Chrome (x64 → x86);都找不到时打印警告并保留 URL 兜底。
故障排除
| 症状 | 原因与处理 |
|---|---|
| 没有弹出 App 窗口 | 确认已装 Edge 或 Chrome;看终端是否有 [window-companion] 警告;URL 兜底始终可用 |
| 又弹了默认浏览器标签页 | 插件层未生效,运行 dsh --profile web --dump-config 检查是否有 # == dsh-web-window-companion |
| 关窗后服务没退出 | 窗口必须来自插件打开的专用 profile(标题栏无标签页);手动新开标签页不影响服务生命周期 |
| 想恢复默认行为 | dsh plugin --profile web remove dsh-web-window-companion 即可完全还原 |
License
MIT © 2026 big0lives
链接
同类插件
Tencent/BrowserSkill#dsh-plugin-browserskill★ 1962
BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edge Agent Window,支持可访问性与 VOM 页面观察、截图、隔离的多会话控制和 Web UI 实时观察浮层。
Lum1104/dsh-browser#bridge-browser★ 639
Chrome 侧边栏扩展,让 DSH 直接操控你的浏览器,无需视觉能力。
liustack/modsearch★ 470
纯文本 agent 的联网搜索桥:搜索网页与 X,返回结构化 JSON 证据(search/fetch/引用)。
DDDMUC/dsh-free-search★ 166
DSH 免费搜索插件:7 个引擎(DuckDuckGo/Bing/SearXNG 免费 + Exa/Perplexity/DeepSeek 付费)、自动回退、设置页 UI(API key 输入 + 官网链接)、web_fetch、引擎测试工具。
Tabbit-Browser/dsh-plugin★ 101
让 DeepSeek Harness 能够控制 Tabbit 浏览器:安装即自动加载 tabbit-browser skill,检测国际版 Tabbit 与国内版 Tabbit Browser 正式版(>= 1.9.0),检查 tabbit-cli 常驻运行时,按平台诊断调用 CLI 所需的 DSH sandbox 模式,并在没有合格版本时通过后台任务下载与系统地区匹配的正式版安装包。
Tabbit-Browser/dsh-tabbit★ 101
让 DeepSeek Harness 能够控制 Tabbit 浏览器:安装即自动加载 tabbit-browser skill,检测国际版 Tabbit 与国内版 Tabbit Browser 正式版(>= 1.9.0),检查 tabbit-cli 常驻运行时,按平台诊断调用 CLI 所需的 DSH sandbox 模式,并在没有合格版本时通过后台任务下载与系统地区匹配的正式版安装包。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。