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

浏览器助手 dragonTalon/dsh-browser-assistant

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

让模型读取并操作你正在使用的真实浏览器标签页

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

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

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dragonTalon/dsh-browser-assistant
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-bs(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 06:02:09

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
  • 发起网络请求
    packages/bridge-dsh/src/remote-host-api.ts:69
    fetch(request: Request): Promise<Response>
  • 发起网络请求
    packages/bridge-dsh/src/remote-host-api.ts:584
    const response = await this.fetchHandler.fetch(request)
  • 读取本地文件
    packages/bridge-dsh/src/token.ts:61
    return (await readFile(file, 'utf8')).trim()
  • 写入本地文件
    packages/bridge-dsh/src/token.ts:73
    await mkdir(dirname(file), { recursive: true })
  • 写入本地文件
    packages/bridge-dsh/src/token.ts:75
    await writeFile(temp, `${token}\n`, { mode: 0o600 })
  • 写入本地文件
    packages/bridge-dsh/src/token.ts:76
    await chmod(temp, 0o600)
  • 写入本地文件
    packages/bridge-dsh/src/token.ts:77
    await rename(temp, file)
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 读取真实浏览器标签页
  • 操作浏览器标签页

将dsh转成谷歌插件

README

由 DeepSeek 最新模型翻译生成
dsh 浏览器助手 让 DeepSeek Harness(dsh)读取、操作你正在使用的真实浏览器标签页:页面变成纯文本结构化快照,模型按编号寻址元素,登录态、会话、Cookie 全保留。 一个 pnpm workspace,两半由一条 WebSocket 连接: - packages/bridge-dsh —— dsh Cordis 插件,发布为 bridge-dsh 0.2.0,挂载 /ext/bridge,注册 12 个 browser_ 工具。 - packages/extension —— Chrome MV3 扩展,发布为 bridge-browser 0.2.0(service worker + content script + side panel)。 模型工具链路纯文本——页面渲染为结构化文本快照,工具侧不截图。另外,面板提供用户主动框选,可把选区截图(裁剪)发给视觉模型。完整设计见 docs/zh/architecture.md。
展开完整文档(README 剩余 1 节)
dsh 浏览器助手

让 DeepSeek Harness(dsh)读取、操作你正在使用的真实浏览器标签页:页面变成纯文本结构化快照,模型按编号寻址元素,登录态、会话、Cookie 全保留。

一个 pnpm workspace,两半由一条 WebSocket 连接:

- packages/bridge-dsh —— dsh Cordis 插件,发布为 bridge-dsh 0.2.0,挂载 /ext/bridge,注册 12 个 browser_ 工具。
- packages/extension —— Chrome MV3 扩展,发布为 bridge-browser 0.2.0(service worker + content script + side panel)。

模型工具链路纯文本——页面渲染为结构化文本快照,工具侧不截图。另外,面板提供用户主动框选,可把选区截图(裁剪)发给视觉模型。完整设计见 docs/zh/architecture.md。

能力

| 能力 | 实现 |
| 读页面 | browser_snapshot → 标题/URL/正文/编号控件/表单;delta:true 只返回变化 |
| 操作 | browser_click / browser_type / browser_press / browser_scroll 按稳定编号 |
| 导航 | browser_navigate / browser_open_tab / browser_back / browser_forward / browser_reload |
| 读区域/等待 | browser_get_text / browser_wait |
| 问用户 | dsh 的 ask_user_question 显示在面板,作答回传模型 |
| 页面感知 | 扩展追踪活动标签页,把 URL/标题注入每条消息作为上下文 |
| 框选截图 | 用户从面板框选页面区域 → 裁剪截图 + 选区内 DOM 元素清单 → 发给视觉模型 |
| 模型选择 | 面板连接后重拉 model.catalog;下拉框带能力标记(视觉/文本/未知)→ session.selectModel |
| 会话选择 | 下拉列出 session.list,默认「新会话」;会话在首次发送、首次为本会话选模型、或在「新会话」下唤出 / 菜单时创建。选中历史会话即绑定并重放其历史——不再产生孤儿会话,也不走 session.create |
| 斜杠命令与技能 | 输入 / 弹出可过滤、可键盘操作的菜单,列出所绑定会话的宿主命令与用户可调用技能:命令走 commands.execute(整行透传,含参数),技能作为普通消息发送;命令的 command/run/command/done 生命周期呈现在对话里 |
| 会话分组 | 配置 sessionWorkspace 后,扩展创建的会话自动归入该 dsh 工作区——在 dsh 侧边栏按目录分组,而不是堆在「未分组」桶里 |

安全模型:桥自带 bearer token;读默认放行,写操作 fail-closed 需面板审批;密码/卡号掩码、永不离开页面。远端连接必须提供 token,且不会放宽以上任何一条。

前置要求

- Node.js ^22 与 Corepack/pnpm
- dsh ≥ 0.1.2-rc.1 —— 最低支持版本(0.1.x 的 Typert Gateway + Connection 架构);已在 0.1.3-alpha.1 上验证
- Chrome 116+

安装

桥插件发布在 npm;Chrome 扩展以打包好的 zip 放在 GitHub Releases。无需本地编译。

1. 从 npm 安装桥插件

dsh plugin --profile web add -w "bridge-dsh@0.2.0" --config.minimumReleaseAge=0

请固定版本,不要用 @latest。 pnpm 11 起 minimumReleaseAge 默认为 1440 分钟(1 天):发布不满一天的版本会被挡下,而 @latest 这类 dist-tag 会静默装成上一个版本(不报错)。--config.minimumReleaseAge=0 用于本次安装取消这一等待。桥插件与扩展是版本配对的,请始终安装与你的 bridge-browser zip 相匹配的版本。

2. 下载 Chrome 扩展

gh release download bridge-browser@0.2.0 --repo dragonTalon/dsh-browser-assistant
→ bridge-browser-0.2.0.zip

3. 重启 dsh 并验证

cd ~/.dsh && dsh web
curl http://127.0.0.1:3080/ext/bridge-config
→ {"wsUrl":"ws://127.0.0.1:3080/ext/bridge"}

4. 加载扩展

解压 bridge-browser-0.2.0.zip,然后 chrome://extensions → 开启「开发者模式」→「加载已解压的扩展程序」→ 选解压出来的文件夹。打开任意 http(s) 页面,点扩展图标打开侧边栏,等「已连接 dsh」,即可对话。

5. 远端 dsh(可选)

dsh 跑在另一台机器上时,打开面板状态栏的齿轮按钮「系统配置」,填入地址(10.0.0.7:3080 或 wss://dsh.example.com)与那台机器上的 token(cat ~/.dsh/ext-bridge-token),保存前先点「测试连接」——它会做一次独立握手,并明确告诉你地址不可达还是 token 被拒绝。地址留空则维持零配置的本机自动发现。

被钉在回环上的方法(settings.、credentials.、host.openPath、host.pickDirectory)在远端连接下始终不可用——这是桥自身的信任边界,不是配置弹窗的缺陷。

从源码构建(可选)

pnpm install --frozen-lockfile
pnpm build
→ packages/bridge-dsh/lib/index.js 与 packages/extension/dist/

本地开发时注意:dsh plugin add 安装的是打包快照(~/.dsh/profiles//node_modules/bridge-dsh/),重建 workspace 的 lib/index.js 不会影响正在运行的 dsh。每次改了 bridge 的源码后:

bash packages/bridge-dsh/build.sh # 重建工作区产物 bash scripts/sync-profile.sh # 拷贝进已安装的插件目录(自动备份)然后重启 dsh(或重载该插件)让新 bundle 生效

上述拷贝替换的是 profile 里的文件,而正在运行的 dsh 仍持有它已经 import 的模块。热重载补丁只会用新配置重跑插件的 apply(),用的仍是旧模块,所以改了源码必须重启 dsh。

校验脚本

pnpm test # 发布门禁:typecheck + 全部离线校验(scripts/run-tests.mjs)
pnpm test:e2e # 两条实机 e2e 一条命令跑完;需要运行中的 dsh
pnpm check:slash # 28 项离线断言:斜杠词汇 + 目录生命周期
pnpm check:ordered-rpc # 7 项断言:以真实 WebSocket 驱动真实 BridgeServer,
验证保序 RPC 的有界等待释放队列槽位而非挂死会话
pnpm check:grouping-lifecycle # 6 项断言:连接替换后工作区分组仍能注册
pnpm check:selection # 32 项离线断言:会话选择(缓冲、seq、历史重放)
pnpm check:grouping # 24 项离线断言:sessionWorkspace 契约 + 诊断轨迹 + 插件接线
pnpm check:permission # 43 项离线断言:权限档位规则 + spec 场景覆盖分类
pnpm check:grouping:status # 只读排查(不连 dsh):注册表成员 vs 目录下真实会话文件
pnpm check:selection:e2e # 实机端到端:对运行中的 dsh 验证会话选择
pnpm check:grouping:e2e # 实机端到端:经真实桥发起 session.create,并从 Workspace 注册表断言

离线脚本不需要 dsh、不需要 Chrome、不需要网络——它们用 esbuild 打包真实源码后在 Node 里断言 spec 场景;pnpm test 经 scripts/run-tests.mjs 一口气跑完它们(外加 typecheck),是每次发布必须通过的门禁。桥接自身的 typecheck 需要 dsh 宿主框架类型(@deepseek-ai/),它们随 dsh 安装在本机:首次 checkout 后跑一次 bash scripts/link-dsh-types.sh 把类型软链进包内。check:grouping:status 只读磁盘上的注册表与会话目录,用来回答「会话为什么没进分组」;两个 :e2e 脚本需要运行中的 dsh(check:grouping:e2e 还需配置 sessionWorkspace);它们会短暂顶替 Chrome 面板的桥连接(桥同一时刻只服务一个,扩展会自行重连),且每次运行都会创建一个真实会话。

发布版本

两半独立发布:

| 产物 | 包名 | 版本 | Git tag |
| dsh bridge 插件 | bridge-dsh | 0.3.0 | bridge-dsh@0.3.0 |
| Chrome 扩展 | bridge-browser | 0.3.0 | bridge-browser@0.3.0 |

打 tag 必须走发布门禁脚本——离线套件不通过就拒绝打 tag:

bash scripts/tag-release.sh bridge-dsh 0.3.0 # typecheck + pnpm test 通过后才打 tag 并推送 bash scripts/tag-release.sh bridge-browser 0.3.0 --e2e # 另加实机 e2e(需要运行中的 dsh)

脚本先核对版本号与对应包的 package.json(扩展还要核对 manifest.json)一致,再跑门禁,全部通过才创建并推送 tag;任何一步失败都不会产生 tag。推送后的 tag 触发下方流水线,流水线在构建前会再跑一遍同一套离线套件。

桥插件已发布到 npm:bridge-dsh。每个 tag 也都有对应的 GitHub Release,附带构建产物,由打 tag 触发的流水线(.github/workflows/release.yml)自动生成:

- bridge-dsh —— 从 npm 安装:dsh plugin --profile web add -w "bridge-dsh@0.3.0" --config.minimumReleaseAge=0(其 release 也附了 bridge-dsh-0.3.0.tgz)
- bridge-browser-0.3.0.zip —— 扩展包;chrome://extensions → 「加载已解压的扩展程序」加载(或提交 Chrome 应用商店)

每次发布的说明都是中英双语,由对应包的变更日志生成,因此不会与真正发布的内容脱节:packages/bridge-dsh/CHANGELOG.md · packages/extension/CHANGELOG.md。

目录结构

packages/protocol/ 共享零依赖帧协议(唯一真相源) packages/bridge-dsh/ dsh bridge 插件(Cordis) packages/extension/ Chrome MV3 扩展(background / content / panel) docs/en/ docs/zh/ 架构与功能文档(EN / 中文)

文档

文档为中英双语,每页都有 EN | 中文 切换:

- 整体架构 · English
- 线协议 · English
- bridge 插件 · English
- Chrome 扩展 · English
预览分享卡片长什么样 ↓dragonTalon/dsh-browser-assistant
分享 · DeepSeek Harness Hub
dragonTalon/dsh-browser-assistant

让模型读取并操作你正在使用的真实浏览器标签页

这是你的仓库?认领条目

回到顶部