dsh-bridge-browser:让 DSH 操作你已登录的 Chrome 标签页

前言

在 DSH(DeepSeek Harness)里做联网或自动化任务时,常见做法是起无头浏览器或远程抓取:页面能打开,但登录态、Cookie 和你在日常用的 Chrome 里已经配好的环境往往对不上。要模型「像人一样」点按钮、填表、切标签,又希望会话留在本机浏览器里,就需要一条从 DSH 到真实标签页的桥。

@shallbay/dsh-bridge-browser 是 DSH 的浏览器桥插件:通过随包分发的 Chrome MV3 扩展,把当前标签页以纯文本快照和编号元素的形式交给模型,并支持点击、输入、导航与标签管理,同时保留你的登录态与会话。本仓库由 ShallBay 维护,是 Yuxiang Lin 上游项目 @yuxianglin/dsh-bridge-browser 的再打包版,侧重从 npm 安装并在 DSH Desktop 0.2.x 上可运行;运行时逻辑来自上游,改动见仓库 NOTICE.md。插件在 SkillHub 目录 归类为联网工具;源码与说明见 GitHub。

这是什么

npm 包名:@shallbay/dsh-bridge-browser(当前资料中版本 1.0.4,许可证 MIT)。

插件在 DSH 侧注册一组 browser_* 工具,经 token 认证的 WebSocket 与浏览器扩展通信;页面不向模型提供截图,而是以结构化文本呈现标题、URL、正文、带编号的可交互元素和表单字段。密码与支付卡字段在快照中始终显示为 ••••,其真实值不会离开页面。

核心能力

README 中列出的工具如下(模型通过编号定位元素):

工具 作用
browser_snapshot 结构化文本快照
browser_click 按编号点击链接、按钮、复选框等
browser_type 输入文本(兼容 React/Vue 受控组件),replace 可清空重填
browser_press 按键(Enter / Tab / Escape、方向键等)
browser_scroll 视口滚动(up / down / top / bottom)
browser_navigate / browser_open_tab / browser_back / browser_forward / browser_reload 导航
browser_list_tabs / browser_follow_tab / browser_close_tab 标签页枚举与绑定
browser_get_text 读取局部文本 / 懒加载内容
browser_wait 等待页面加载与渲染稳定

写操作(点击、输入、导航等)默认需在浏览器侧边栏确认;读取可按需进行。桥接同一时间只接受一个活动扩展连接,桌面端与 dsh web 不能同时占用桥。

安装与启用

前提:已安装 dsh;若用桌面端,需先启动过一次,以便 profiles/desktop 被初始化。

在 PowerShell 中安装:

# 桌面端
dsh plugin --profile desktop add @shallbay/dsh-bridge-browser

# 或 web / CLI 端
dsh plugin --profile web add @shallbay/dsh-bridge-browser

安装完成后重启桌面端(菜单 Restart App and Host)。

卸载示例:

dsh plugin --profile desktop remove @shallbay/dsh-bridge-browser

卸载后建议清理 ~/.dsh/profiles/<profile>/node_modules/@shallbay/dsh-bridge-browser、在 chrome://extensions 中移除已加载的扩展,并按需从 cordis.patch.yml / compatibility.json 删掉此前手动的端口或兼容配置。

加载 Chrome 扩展(必做一次)

扩展位于 npm 包的 extension/ 目录。包内提供脚本,将扩展复制到固定目录并尝试打开扩展管理页:

$pkg = Join-Path $HOME '.dsh\profiles\desktop\node_modules\@shallbay\dsh-bridge-browser'
powershell -ExecutionPolicy Bypass -File "$pkg\scripts\setup-extension.ps1"

脚本会把扩展复制到 %USERPROFILE%\.dsh\browser-extension(旧版会自动备份)。随后在 Chrome 中:开发者模式 → 加载已解压的扩展程序 → 选择该目录。不要直接从 node_modules 路径加载,否则 profile 切换或依赖重装后扩展可能显示为已损坏。

固定 DSH Desktop 端口(0.2.1 起建议配置)

DSH Desktop 0.2.1 起可用 --port 0 启动,端口每次随机,扩展无法自动发现。在对应 profile 的 cordis.patch.yml 中追加:

- id: webserver
  name: "@deepseek-ai/dsh-host-webserver"
  config:
    host: '127.0.0.1'
    port: 19387

本包扩展已将 19387 纳入自动探测,扩展内「桥接地址」可留空。若触发「禁用第三方插件」恢复流程并重写了 patch,需重新加上这段配置。

典型用法

README 未给出单独的对话示例;实际流程是:在 DSH 中安装插件并加载扩展后,由智能体调用上述 browser_* 工具。常见顺序是:

  1. browser_list_tabs 或 browser_follow_tab 绑定要操作的标签。
  2. browser_snapshot 获取带编号的页面结构。
  3. 根据任务调用 browser_click、browser_type、browser_navigate 等;需要稳定渲染时用 browser_wait。
  4. 局部内容或懒加载区域可用 browser_get_text 补充读取。

受保护页面(扩展商店、chrome:// 等)只能读取标签元数据,不能操作 DOM。Chrome 需 116+;Firefox 需 140+ 且须手动配置 ~/.dsh/ext-bridge-token(Firefox 扩展 UUID 每次安装不同,无法零配置)。

适用场景与注意

适合需要在本机已登录环境里做页面读取、表单填写、多标签协作的 DSH 用户,例如内网后台、已登录的 SaaS 或需要人工确认敏感操作的自动化辅助。

插件以当前 dsh 进程权限运行,安装前应阅读 GitHub 源码 与 MIT 许可证,并知悉上游归属(Lum1104/dsh-browser,作者 Yuxiang Lin)。DSH 生态强调「一切皆插件」;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。

结尾

@shallbay/dsh-bridge-browser 把 DSH 的工具面接到你正在用的 Chrome 标签页上,用文本快照和编号元素驱动操作,并尽量保留现有登录与会话。安装、扩展加载与(在 0.2.1+ 桌面端)端口固定是上手的三步;细节以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/ShallBay/dsh-bridge-browser
  • GitHub:https://github.com/ShallBay/dsh-bridge-browser
羽毛球分组比赛记分
小程序二维码

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

Xiaoye