前言¶
在 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_* 工具。常见顺序是:
browser_list_tabs或browser_follow_tab绑定要操作的标签。browser_snapshot获取带编号的页面结构。- 根据任务调用
browser_click、browser_type、browser_navigate等;需要稳定渲染时用browser_wait。 - 局部内容或懒加载区域可用
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