🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

浏览器桥接 ShallBay/dsh-bridge-browser

DeepSeek Harness
ShallBay14 天前有提交已提供中文文档扫描:含敏感能力

让模型直接操作你已登录的 Chrome 标签页

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ShallBay/dsh-bridge-browser
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · browser
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 16 处,展示前 16 条)
  • 发起网络请求
    src/client.js:48
    const response = await fetch(`${location.origin}${BRIDGE_CONFIG_PATH}`, {
  • 写入剪贴板
    src/client.js:112
    await navigator.clipboard.writeText(address)
  • 发起网络请求
    src/remote-host-api.ts:94
    fetch(request: Request): Promise<Response>
  • 发起网络请求
    src/remote-host-api.ts:347
    const response = await this.fetchHandler.fetch(request)
  • 读取本地文件
    src/session-purge.ts:84
    workspaces = await readdir(deps.sessionsRoot, { withFileTypes: true })
  • 读取本地文件
    src/session-purge.ts:96
    if (!(await lstat(candidate)).isDirectory()) continue
  • 读取本地文件
    src/session-purge.ts:97
    const entries = await readdir(candidate)
  • 读取本地文件
    src/session-purge.ts:131
    if (!(await lstat(target)).isDirectory()) throw new Error(`session directory changed: ${target}`)
  • 读取本地文件
    src/session-purge.ts:133
    for (const entry of await readdir(target)) {
  • 删除本地文件递归
    src/session-purge.ts:135
    await rm(path.join(target, entry), { recursive: true, force: true })
  • 写入本地文件
    src/session-workspace.ts:38
    await mkdir(workspacePath, { recursive: true })
  • 读取本地文件
    src/token.ts:61
    return (await readFile(file, 'utf8')).trim()
  • 写入本地文件
    src/token.ts:73
    await mkdir(dirname(file), { recursive: true })
  • 写入本地文件
    src/token.ts:75
    await writeFile(temp, `${token}\n`, { mode: 0o600 })
  • 写入本地文件
    src/token.ts:76
    await chmod(temp, 0o600)
  • 写入本地文件
    src/token.ts:77
    await rename(temp, file)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-gateway@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-invariants
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

dsh 浏览器桥接插件:让模型操作你自己的 Chrome 标签页,同时保留登录状态。这是 @yuxianglin/dsh-bridge-browser 的重新打包版,适配 DSH Desktop 0.2.x。

README

由 DeepSeek 最新模型翻译生成
dsh-bridge-browser 让 dsh(DeepSeek Harness)直接操作你正在用的 Chrome 标签页:读取页面、点击、填表、导航、管理标签页,同时保留你的登录态、会话与 Cookie。 这是什么 本仓库是 dsh 的浏览器桥插件源码,npm 包名为 @shallbay/dsh-bridge-browser。 它是 @yuxianglin/dsh-bridge-browser(作者 Yuxiang Lin)的再打包版:运行时逻辑来自上游,本仓库只维护「让它能从 npm 安装、并能在 dsh Desktop 0.2.x 上跑起来」所需的差异(详见 NOTICE.md)。 浏览器侧是一个随 npm 包分发的 Chrome MV3 扩展(构建产物,不在本仓库内)。 能力 | 工具 | 作用 | | browser_snapshot | 结构化文本快照:标题 / URL / 正文 / 带编号的交互元素 / 表单字段 | | browser_click | 按编号点击链接、按钮、复选框等 | | browser_type | 输入文本(兼容 React/Vue 受控组件),replace 可清空重填 | | browser_press | 按键(Enter / Tab / Escape / 方向键…
展开完整文档(README 剩余 1 节)
dsh-bridge-browser

让 dsh(DeepSeek Harness)直接操作你正在用的 Chrome 标签页:读取页面、点击、填表、导航、管理标签页,同时保留你的登录态、会话与 Cookie。

这是什么

本仓库是 dsh 的浏览器桥插件源码,npm 包名为 @shallbay/dsh-bridge-browser。

它是 @yuxianglin/dsh-bridge-browser(作者 Yuxiang Lin)的再打包版:运行时逻辑来自上游,本仓库只维护「让它能从 npm 安装、并能在 dsh Desktop 0.2.x 上跑起来」所需的差异(详见 NOTICE.md)。

浏览器侧是一个随 npm 包分发的 Chrome MV3 扩展(构建产物,不在本仓库内)。

能力

| 工具 | 作用 |
| browser_snapshot | 结构化文本快照:标题 / URL / 正文 / 带编号的交互元素 / 表单字段 |
| 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。桌面端请先启动过一次(这样 profiles/desktop 才会被初始化)。

桌面端
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

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

卸载后建议顺带清理:

- 残留目录 ~/.dsh/profiles/<profile>/node_modules/@shallbay/dsh-bridge-browser
- 浏览器里已加载的扩展:chrome://extensions → 该扩展 → 移除
- 如果之前手动加过端口固定 / 兼容豁免,按需从 cordis.patch.yml / compatibility.json 里删掉

加载浏览器扩展(必做一次)

扩展随 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://extensions。
然后:开发者模式 → 加载已解压的扩展程序 → 选择该目录。

不要直接从 node_modules 里加载:那个路径会随 profile 切换 / 依赖重装而变化,Chrome 里的扩展会变成「已损坏」。

把桌面端口固定下来

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,恢复后需要重新加回这段。

从源码构建

需要 Node ^22.19 或 >=24(tsdown 依赖现代 Node 内建模块)。

npm install
npm run build # 产物在 lib/

lib/ 与 extension/ 都是构建产物,已被 .gitignore 排除。本仓库不含扩展源码——扩展来自上游仓库的 extensions/dsh-browser,随 npm 包发布。

与上游的差异

1. 包标识:改为 @shallbay/dsh-bridge-browser,去掉 private,让 dsh plugin add 能从 registry 解析。
2. peerDependencies 放宽到 >=0.1.7-rc.2 <0.3.0。dsh 的兼容闸门会校验插件声明的 @deepseek-ai/dsh* peer,上游的 ^0.1.x-rc.n 会被 0.2.x 直接拒绝。
3. 适配 DSH 0.2.1 的 Peer 校验:0.2.1 的 Gateway 对 wireStream.open 和 unary invoke 都要求传入 Peer(peer.signal、peer.interactions === 'answer')。本包用 connection.createPeer({ principal: { kind: 'owner' } }) 铸造一个 in-process Peer 并透传,避免 Cannot read properties of undefined (reading 'signal')。
4. 客户端 bundle 的插件 id 同步为包名,避免 client-modules: duplicate factory registration 导致 web boot 失败。
5. 扩展自动探测 19387(桌面端端口),并随 npm 包一起分发。

版本记录

| 版本 | 说明 |
| 1.0.0 | 首个 npm 版本 |
| 1.0.1 | 修正客户端 bundle 的插件 id(重复注册导致 web boot 失败) |
| 1.0.2 | 基于上游 main 适配 DSH 0.2.x;修复 wire stream 的 peer 校验 |
| 1.0.3 | 回归修复:客户端 id(1.0.2 重新构建时被覆盖) |
| 1.0.4 | 补齐 unary invoke 的 peer —— 修复 session.list / settings.describe 报 Cannot read properties of undefined |

已知限制

- 桥只接受一个活动扩展连接;桌面端与 dsh web 不能同时运行。
- 点击、输入、导航等写操作默认需要在浏览器侧边栏确认;页面读取按需进行。
- Chrome 需 116+;Firefox 需 140+ 且必须手动填写 ~/.dsh/ext-bridge-token(moz-extension:// 的 UUID 每次安装都不同,无法零配置)。
- 受保护页面(扩展商店、chrome:// 等)只能读取标签页元数据,不能操作 DOM。

许可与归属

- 许可证:MIT,见 LICENSE。
- 上游项目:Lum1104/dsh-browser,作者 Yuxiang Lin。
- 本仓库为再打包,运行时逻辑版权归上游作者所有;改动清单见 NOTICE.md。

目录结构

src/ TypeScript 源码(插件、协议、工具、远程 Host 适配) scripts/ setup-extension.ps1(复制扩展并打开 chrome://extensions) cordis.patch.yml 插件 bundle patch(注册 bridge-browser 行) tsconfig.json TS 配置 tsdown.config.ts 打包配置 NOTICE.md 上游归属与改动清单
预览分享卡片长什么样 ↓ShallBay/dsh-bridge-browser
分享 · DeepSeek Harness Hub
ShallBay/dsh-bridge-browser

让模型直接操作你已登录的 Chrome 标签页

这是你的仓库?认领条目

回到顶部