dsh-doyourweb
通过可搜索的原生侧栏或 @ 引用已登录的 Chrome / Edge 标签页、已授权的本地 HTML 和运行中的 Windows 应用。扩展连接、断开或标签页变化时,已打开的浏览器候选与网页侧栏自动更新,无需修改搜索词。Windows 应用列表跳过身份信息无法读取的受保护进程,保留其他运行中的应用。读取局部快照、批量操作、截图及调用可用的 WebMCP 工具;支持授权上传、拖放和按需网络元数据。浏览器动作失败后保留执行证据,可显式指定后置观察范围,并在末尾检查一次可见性、文本、输入值或 URL 条件,不自动重放副作用。可展开引用保留模型内容;可收纳批注支持绑定会话的暂存队列与编辑、删除、恢复,
安装
dsh plugin --profile web add dsh-doyourweb
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-doyourweb
本地 HTML:在 Chrome / Edge 扩展详情中开启“允许访问文件网址”,重新加载扩展后,已打开的 file:// 页面会出现在 @ 菜单,可读取、操作和批注。该开关由浏览器管理。
让 DeepSeek Harness 引用并操作你已经打开、保持登录的 Chrome 和 Edge 页面,用精简的页面上下文和批量操作减少重复读取。
0.2.2 在配套扩展连接、断开或标签页变化时刷新已打开的 @ / / 浏览器候选与网页侧栏,无需修改搜索词;同时修复 Windows 遇到受保护进程时整份应用列表不显示的问题,侧栏和 @ 菜单继续列出其他正在运行的应用窗口。浏览器动作失败后保留执行证据,可用 observation 显式缩小后置快照,并用 expect 在批次末尾检查一次结果条件。保留桌面安静读取与控件分页。用法见[浏览器工作流与诊断](docs/browser-workflow.md)、[架构优化说明](docs/architecture-optimization.md)和[批注与应用控制](docs/annotations-and-apps.md)。




[English](README.md) | 简体中文
[在线体验说明](#local-demo) · [快速开始](#quick-start) · [使用文档](#usage)
使用已安装 DSH 的 React 和 UI 图元渲染当前浏览器面板,网页为示例数据。这是组件预览,不是完整 DSH 宿主截图。
01 · 项目介绍
网页任务常常依赖已经打开的页面和已经登录的账号。dsh-doyourweb 面向希望直接在 DeepSeek Harness 中处理这些页面的用户,不需要另开自动化浏览器,也不需要导出 Cookie。
项目由 DSH 插件和配套的 Manifest V3 浏览器扩展组成。插件接入原生 @、/ 菜单,扩展提供标签页信息和控制通道。完成一次配对后,扩展会在后台重连,不必一直打开弹窗。
当前版本为 0.2.2,包和浏览器扩展版本一致,变更见[更新记录](CHANGELOG.md)。
02 · 功能预览
1. 在 DSH 输入 /browser,打开连接页面并查看扩展目录。
2. 在 Chrome 或 Edge 加载扩展,核对并批准四位配对码。
3. 点左导航“浏览器”,或使用 @,将已打开页面加入当前会话草稿,写好任务后再发送。
真实批注组件在本地测试页上的画面。收起保留工具栏;收纳变为页面边缘小按钮,并保留草稿和位置。
真实连接页面使用示例配对请求渲染,以上预览不是自动化任务录像。
<a id="local-demo"></a>
在线体验说明
项目没有公共在线演示。启用 DSH 插件后,默认本地连接页面为 http://127.0.0.1:43187/setup。浏览器控制通过这个本地桥接服务和已安装的扩展完成。
03 · 核心功能
功能 · 当前实现
复用已有页面 · 连接 Chrome、Edge 的普通 HTTP/HTTPS 和已授权的本地 file:// 标签页,保留登录状态。
原生页面引用 · 在 DSH 的 @、/ 菜单中展示页面标题、站点和图标。
浏览器侧栏 · 左导航“浏览器”打开当前会话右侧面板,查看网页、运行应用和本地诊断;点击只追加引用到草稿,发送后才可使用。
上下文收纳 · 网页、应用、批注和手动引用的日志显示为可展开引用,保留发送给模型的原始上下文。
精简读取 · 使用可访问性快照,支持选择器、查询过滤和游标分页;初始引用上下文默认共用 2,400 字符预算。
批量操作 · 单次最多 12 步,支持上传;失败或文档导航时停止,query/hash 变化仅让观察或无目标动作继续。
结果提取 · 按需返回 text、value、href 字段,每次提取最多 20 行。
局部回执 · summary 不生成新快照;handle 返回句柄和游标、不返回正文,使用 refs 前先读游标;observation 显式缩小后置快照范围。
末尾确认 · 可选 expect 在批次末尾检查一次可见性、包含文本、准确输入值或完整 URL;确认结果与已完成动作分开,不重放副作用。
文件上传 · 隐藏 input、自定义选择器和 iframe;需已选标签页及用户明确提供的绝对文件路径。
拖拽与投放 · 在同一 frame 内拖拽元素,或向目标元素投放已授权本地文件及 MIME 数据。
网络元数据 · 显式开始与停止,最多保留 200 条;默认每页 10 条、最多 20 条,可筛选。不记录查询参数、凭据、请求头和正文。
本地诊断 · 有界内存记录命令阶段、耗时与错误码,可停用、清空、导出或主动引用到草稿。
浏览器停止 · 输入时显示独立停止按钮与目标光环,取消后报告已完成及可能不确定的效果。
页面截图 · 将 PNG 保存到本地,返回文件路径,不把 base64 塞进文本上下文。
后台连接 · 保存配对配置、自动重连,并在空闲时释放调试连接。
元素批注 · 选择元素后可暂存多条批注、逐条编辑或删除;队列绑定原会话,随浮窗收起、收纳与重附着保留。确认后加入聊天草稿,由你发送。
应用引用 · @ 搜索运行中的 Windows 窗口,显示程序图标,用进程启动时间和窗口句柄防止旧引用误控新进程。
MCP / CLI · 默认查询匹配的 MCP;支持本机 stdio、Streamable HTTP、自定义连接器和有来源的配置提议。
安装确认 · DSH 原生提问或 /apps 本地页面批准安装;固定包版本,npm 禁用安装脚本,关闭重复询问仅限已审阅和信任的来源。
桌面回退 · 使用 Cua Driver MCP,默认只读有限控件树、按需截图;尽量显示所选窗口,也支持后台执行,反复读取无变化时停止。
键盘输入 · app_type 支持文本加 Enter、Tab、Esc 或组合键;可选 expect 一次读取校验结果。
鼠标操作 · app_mouse 支持点击、双击、右键、滚动和拖拽,一次画面读取最多执行 8 个已知目标动作;前台操作单独确认。
浏览器输出预算按 JavaScript 字符计算,包含 JSON 转义和元数据;应用工具的 limit 限制正文,状态、步骤和图片路径等元数据另计。MCP 不重复返回相同 JSON,CLI 的 stdout 与 stderr 共用正文预算。字符数不等于模型 token 数,输出预算也不限制 DOM 遍历耗时。
WebMCP 优先控制(实验性)
0.1.1 会先检测页面提供的 WebMCP 工具。有适合任务的工具就调用,没有再读取普通页面快照。页面和工具注册未变化时,复用目录和参数校验器;成功调用后返回新的单次凭据,连续操作不用反复列工具。WebMCP 需要浏览器 API 和网站工具支持,普通网页仍使用 DOM 操作。浏览器要求、工具用法和本地测试见[实验说明](docs/webmcp-experiment.md)。
04 · 技术架构
层级 · 技术
DSH 主机插件 · Node.js 22+、JavaScript ESM、Cordis 集成
原生客户端 UI · React、DSH UI primitives
浏览器引擎 · Playwright Core 1.64.0、Chrome DevTools Protocol
网站工具 · document.modelContext、Ajv 8.20.0 参数校验
本地桥接 · WebSocket(ws)、Zod 校验
浏览器扩展 · Manifest V3、chrome.tabs、chrome.debugger
应用连接器 · 官方 MCP SDK 1.32.1、stdio / Streamable HTTP、无 shell 字符串的 CLI 参数调用
构建与检查 · esbuild、Node.js 测试运行器、GitHub Actions
flowchart LR
subgraph DSH["DeepSeek Harness"]
UI["原生 @ / 菜单"]
Host["主机插件"]
Grants["会话授权与上下文预算"]
Engine["Playwright 引擎"]
Bridge["本地 WebSocket / CDP 转发"]
end
subgraph Browser["已有 Chrome / Edge"]
Extension["Manifest V3 扩展"]
Tabs["已登录的 HTTP/HTTPS 页面"]
end
UI <-->|"Strict Remote RPC"| Host
Host --> Grants --> Engine
Engine <-->|"CDP"| Bridge
Bridge <-->|"来源校验与配对令牌"| Extension
Extension <-->|"标签页信息与调试接口"| Tabs
Engine -->|"快照、回执、PNG 路径"| Host
Host --> Apps["应用发现与人类审批"]
Apps --> Structured["官方 / 社区 MCP 与 CLI"]
Apps --> Desktop["Cua Driver 桌面回退"]
模型的浏览器工具只能访问用户在当前会话中引用的标签页。网页内容是不可信数据,不会作为用户指令或操作授权。
<a id="quick-start"></a>
05 · 快速开始
安装要求
- Node.js 22+ 和 npm。
- DeepSeek Harness;插件 API 已对照
0.2.0-rc.2检查兼容性。 - 基于 Chromium 的 Chrome 或 Edge 125+,允许开启开发者模式并加载解压后的扩展。
安装 DSH 插件
通过 npm 安装时,在 DSH 打开 插件 > 添加插件,安装源选择 npm 官方源,输入:
dsh-doyourweb
这种方式需要包已经发布。若官方源返回 404,可用下面的本地安装方式。新版本在镜像源中的同步可能有延迟。
构建并安装本地版本
git clone --branch ver0.2.2 https://github.com/SheepofSheep/dsh-doyourweb.git cd dsh-doyourweb npm ci npm run build
在 DSH 中打开 插件 > 添加插件,填入构建完成后的项目目录绝对路径。插件启用时会启动桥接服务,不需要另开开发服务器。
连接浏览器
1. 在 DSH 输入 /browser,打开本地连接页面。
2. 打开 edge://extensions 或 chrome://extensions,开启开发者模式,将项目中的 extension/ 目录作为解压后的扩展加载。
3. 核对扩展徽标上的四位码与连接页面中的待配对请求,然后批准。
4. 回到 DSH,用 @ 选择标签页并发送任务。
配对页面和扩展弹窗都可以关闭。安装 DSH 插件不会自动安装浏览器扩展。
升级 DSH 插件后,需要从托盘完全退出 DSH 再重新打开,确保加载新版本的主机模块。
配置
默认配置位于 [cordis.patch.yml](cordis.patch.yml):
配置项 · 默认值 · 用途
`
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:13,最后更新 2026-11-04