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

浏览器标签页控制 SheepofSheep/dsh-doyourweb

MCPv0.1.6
SheepofSheep11 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

本地 HTML:在 Chrome / Edge 扩展详情中开启“允许访问文件网址”,重新加载扩展后,已打开的…

41.3/100
综合分
20
GitHub 星标
1,706
npm 周下载
—/5
用户评分

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/SheepofSheep/dsh-doyourweb.git

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包dsh-doyourweb @ 0.1.6
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 42 处,展示前 22 条)
  • 写入本地文件
    lib/host.js:407
    await mkdir(this.home, { recursive: true });
  • 读取本地文件
    lib/host.js:410
    this.settings = JSON.parse(await readFile(settingsPath, "utf8"));
  • 写入本地文件
    lib/host.js:414
    await writeFile(settingsPath, JSON.stringify(this.settings), { mode: 384, flag: "wx" });
  • 读取本地文件
    lib/host.js:420
    this.manifest = JSON.parse(await readFile(path.join(this.extensionSource, "manifest.json"), "utf8"));
  • 发起网络请求
    lib/host.js:468
    const pairing = this.pairings.request(ws);
  • 发起网络请求
    lib/host.js:745
    const model = new BrowserModel((method, params) => this.request(profile, method, params));
  • 发起网络请求
    lib/host.js:781
    session.send = (method, params) => this.request(profile, "chrome.debugger.sendCommand", [{ tabId }, method, params]);
  • 发起网络请求
    lib/host.js:824
    const detached = relay.profile.ws.readyState === WebSocket.OPEN ? this.request(relay.profile, "chrome.debugger.detach", [{ tabId: relay.tabId }]).catc
  • 发起网络请求
    lib/host.js:842
    await this.request(profile, "dsh.focus", [tabId]);
  • 发起网络请求
    lib/host.js:976
    const row = this.requests.get(response.request());
  • 读取本地文件
    lib/host.js:1242
    const resolved = await realpath(file);
  • 读取本地文件
    lib/host.js:1243
    if (!(await stat(resolved)).isFile()) throw new Error("Upload requires a regular file, not a directory");
  • 读取本地文件
    lib/host.js:1244
    await access(resolved, constants.R_OK);
  • 写入本地文件
    lib/host.js:1413
    await mkdir2(this.artifactDir, { recursive: true });
  • 读取本地文件
    lib/host.js:1701
    stored = JSON.parse(await readFile2(this.file, "utf8"));
  • 写入本地文件
    lib/host.js:1749
    await mkdir3(path3.dirname(this.file), { recursive: true });
  • 写入本地文件
    lib/host.js:1750
    await writeFile2(temporary, content, { mode: 384 });
  • 写入本地文件
    lib/host.js:1751
    await rename(temporary, this.file);
  • 删除本地文件
    lib/host.js:1753
    await rm(temporary, { force: true }).catch(() => {
  • 执行外部命令固定命令
    lib/host.js:2453
    const child = spawn("powershell.exe", ["-NoLogo", "-NoProfile", "-NonInteractive", "-EncodedCommand", Buffer.from(source, "utf16le").toString("base64"
  • 执行外部命令来自配置/变量
    lib/host.js:2530
    const child = spawn2(app.path, [], { detached: true, stdio: "ignore", windowsHide: false, shell: false });
  • 发起网络请求
    extension/background.js:41
    const response = await fetch(url, { signal: AbortSignal.timeout(1000) });
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

从 DeepSeek Harness 引用并控制已有的 Chrome 和 Edge 标签页(DSH 插件 + 配套扩展)

README

由 DeepSeek 最新模型翻译生成
dsh-doyourweb 本地 HTML:在 Chrome / Edge 扩展详情中开启“允许访问文件网址”,重新加载扩展后,已打开的 file:// 页面会出现在 @ 菜单,可读取、操作和批注。该开关由浏览器管理。 让 DeepSeek Harness 引用并操作你已经打开、保持登录的 Chrome 和 Edge 页面,用精简的页面上下文和批量操作减少重复读取。 0.1.6 改善桌面输入、快照句柄与连接界面,新增 app_type 打字和快捷键。支持页面元素批注和 @ Windows 应用。批注先加入聊天草稿,可积累多条后按 Enter 发送;应用控制先查匹配的 MCP,已安装的本地 MCP 直接连接,缺少时询问安装;未发现 MCP 时使用 computer use。新提出的配置、远程端点和桌面驱动首次连接仍需确认,详见批注与应用控制。 在线体验说明 · 快速开始 · 使用文档 浏览器扩展的本地配对页面 本地配对页面:将浏览器扩展连接到 DSH 插件,保留现有标签页和登录状态。 01 · 项目介绍 网页任务常常依赖已经打开的页面和已经登录的账号。dsh-doyourweb 面向希望直接在 DeepSeek Harness 中处理这些页面的用户,不需要另开自动化浏览器,也不需要导出 Cookie。
展开完整文档(README 剩余 1 节)
dsh-doyourweb

本地 HTML:在 Chrome / Edge 扩展详情中开启“允许访问文件网址”,重新加载扩展后,已打开的 file:// 页面会出现在 @ 菜单,可读取、操作和批注。该开关由浏览器管理。

让 DeepSeek Harness 引用并操作你已经打开、保持登录的 Chrome 和 Edge 页面,用精简的页面上下文和批量操作减少重复读取。

0.1.6 改善桌面输入、快照句柄与连接界面,新增 app_type 打字和快捷键。支持页面元素批注和 @ Windows 应用。批注先加入聊天草稿,可积累多条后按 Enter 发送;应用控制先查匹配的 MCP,已安装的本地 MCP 直接连接,缺少时询问安装;未发现 MCP 时使用 computer use。新提出的配置、远程端点和桌面驱动首次连接仍需确认,详见批注与应用控制。

在线体验说明 · 快速开始 · 使用文档

浏览器扩展的本地配对页面

本地配对页面:将浏览器扩展连接到 DSH 插件,保留现有标签页和登录状态。

01 · 项目介绍

网页任务常常依赖已经打开的页面和已经登录的账号。dsh-doyourweb 面向希望直接在 DeepSeek Harness 中处理这些页面的用户,不需要另开自动化浏览器,也不需要导出 Cookie。

项目由 DSH 插件和配套的 Manifest V3 浏览器扩展组成。插件接入原生 @、/ 菜单,扩展提供标签页信息和控制通道。完成一次配对后,扩展会在后台重连,不必一直打开弹窗。

当前版本为 0.1.6,包和浏览器扩展版本一致,变更见更新记录。

02 · 功能预览

1. 在 DSH 输入 /browser,打开连接页面并查看扩展目录。
2. 在 Chrome 或 Edge 加载扩展,核对并批准四位配对码。
3. 用 @ 或 / 选择已经打开的页面,再向 DSH 描述任务。

首屏截图展示的是配对界面,不是自动化任务录像。

在线体验说明

项目没有公共在线演示。启用 DSH 插件后,默认本地连接页面为 http://127.0.0.1:43187/setup。浏览器控制通过这个本地桥接服务和已安装的扩展完成。

03 · 核心功能

| 功能 | 当前实现 |
| 复用已有页面 | 连接 Chrome、Edge 的普通 HTTP/HTTPS 和已授权的本地 file:// 标签页,保留登录状态。 |
| 原生页面引用 | 在 DSH 的 @、/ 菜单中展示页面标题、站点和图标。 |
| 精简读取 | 使用可访问性快照,支持选择器、查询过滤和游标分页;初始引用上下文默认共用 2,400 字符预算。 |
| 批量操作 | 单次最多执行 12 个结构化动作,失败或发生导航时停止。 |
| 结果提取 | 按需返回 text、value、href 字段,每次提取最多 20 行。 |
| 简短回执 | observe: "summary" 跳过下一次页面快照;动作结果有 1,600 字符输出预算。 |
| 页面截图 | 将 PNG 保存到本地,返回文件路径,不把 base64 塞进文本上下文。 |
| 后台连接 | 保存配对配置、自动重连,并在空闲时释放调试连接。 |
| 元素批注 | 页面右上角“批注”选择元素,将说明、CSS 选择器、样式、位置和可选局部截图追加到聊天草稿;浮窗可拖动,多条批注一起发送。 |
| 应用引用 | @ 搜索运行中的 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 操作。浏览器要求、工具用法和本地测试见实验说明。

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 桌面回退"]

模型的浏览器工具只能访问用户在当前会话中引用的标签页。网页内容是不可信数据,不会作为用户指令或操作授权。

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.1.3 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:

| 配置项 | 默认值 | 用途 |
| port | 43187 | 本地桥接端口 |
| snapshotChars | 2400 | 页面读取和初始引用上下文的字符预算 |
| idleTimeoutMs | 120000 | 空闲多久后释放调试连接,单位毫秒 |

数据目录为 <DSH_HOME>/browser-tabs/;未设置 DSH_HOME 时使用 ~/.dsh/browser-tabs/。插件显式配置的 home 优先。环境变量需要设置给 DSH 进程,插件不需要单独配置模型 API Key。

使用文档

引用页面后,可以这样描述任务:

读取这个页面的结果列表,整理标题和链接,不要提交表单。

| 模型工具 | 用法 |
| browser_read | 默认 mode: "auto" 先检测 WebMCP,没有可用工具时返回 DOM 快照。工具不适合任务时用 mode: "dom",可按 selector、query、depth 缩小范围;cursor 对 DOM 内容分页,limit 范围为 400~8,000 字符。 |
| browser_act | 使用最新快照 ID,执行点击、填入、按键、选择、勾选、悬停、滚动、导航、前进后退、等待或提取。 |
| browser_capture | 需要检查画面时,将截图保存到本地。 |
| browser_webmcp_list | 发现页面工具,或通过 query 缩小工具目录;目录有效时可直接复用。 |
| browser_webmcp_call | 用 catalog、name、arguments 调用匹配的页面工具,成功后返回 nextCatalog 供下一次调用。 |

同时授权了多个标签页时,工具调用需要通过 tab 指定已引用的页面。

批注与应用控制

安装或升级插件后,从托盘完全退出、重启 DSH,并重新加载浏览器扩展。本地开发时,先构建项目,再在 DSH 安装项目的绝对路径。不要同时启用 npm 版和本地版,以免占用同一端口。

- 批注:打开扩展弹窗,点“批注当前页面”,或者引用页面后让 DSH 开启批注。点选元素、填写说明,按 Enter 或点“加入聊天草稿”,说明和局部截图会追加到工具条所示会话的输入框。可拖动浮窗、连续添加多条批注,回到聊天后按 Enter 一起发送;Shift+Enter 换行。不再保存独立批注文件或维护批注库。受控页面右上角也会显示批注按钮。
- 应用:输入 @Unity 或其他运行中的程序名,选中窗口后描述任务。AI 先用 app_discover 查连接器,再用 app_connect 请求连接或安装,最后通过 app_call 调用。目录未收录的连接器可凭官方文档或仓库提出配置,同样需要你确认。
- 管理:输入 /apps 打开本地“应用管理”,批准请求、配置连接器和安装策略,不用一直开着。@ 中的文件、文件夹和对话分别显示 3 条预览,可展开或收起;单个文件夹仍可进入目录。
- 回退:结构化接口不适合当前任务时才调用 app_desktop。默认读取有限控件树、不截图;需要画面时才传 screenshot: true,再用 app_mouse 批量点击、滚动或拖拽,最多 8 步,中间不自动截图。MCP/CLI 不要求窗口打开;桌面读取会尝试启动所选程序,重新读取后才能操作。启动失败可交由 computer use 检查,反复读取无变化会返回 stop: true。使用 DSH computer-use 同源的 Cua Driver,不会绕过系统权限。

详见安装策略、Unity 配置和已知限制。

工具示例:读取页面,再提取简短的结果列表

仅有一个已授权标签页时,调用 browser_read:

{
"mode": "dom",
"depth": 8,
"limit": 2400
}

将返回的快照 ID 填入 browser_act,选择器需要替换为实际页面中的选择器:

{
"snapshot": "<latest snapshot ID>",
"observe": "summary",
"steps": [
{
"op": "extract",
"selector": "a.result-title",
"fields": ["text", "href"],
"maxRows": 10
}
]
}

这些是模型工具参数,不是终端命令。summary 不返回新快照,下次操作前需要重新读取。

06 · 项目结构与技术细节

src/
host.js 插件生命周期、工具和会话上下文 client.js 原生 @ 和 / 菜单数据源 client-entry.js React UI 与图标 bridge.js 配对、扩展连接和 CDP 转发 engine.js 快照、操作、提取与截图 annotations.js 隔离元素选取与批注直达会话 apps/ 应用枚举、发现、审批、安装和 MCP/CLI/桌面调用 manage.js 本机应用与连接器管理页面 webmcp.js 网站工具发现、路由、校验与调用 grants.js 按会话管理标签页授权 protocol.js 页面引用与 Remote RPC 描述 output.js 序列化输出预算 vendor/ 适配后的 Playwright 浏览器模型 extension/ Manifest V3 扩展和弹窗 scripts/ 构建、集成测试和兼容性检查 test/ 单元测试与测试页面 docs/setup-page.png 配对页面截图 cordis.patch.yml DSH 插件注册与默认配置 lib/ 生成的构建产物,不提交到 Git

快照与操作。 完整快照文本缓存在本地,供游标分页使用。元素引用需要有效快照;读取、操作和导航都可能让旧引用失效。同一标签页上的调用按顺序执行。取消操作会报告已完成或状态不确定的步骤,不承诺撤销已经发生的操作。

连接生命周期。 空闲时释放调试连接,但不关闭标签页;再次读取时重新连接。浏览器重启会更新页面引用所属的会话,需要重新用 @ 选择页面。

数据处理。 配对凭据和授权记录保存在本地数据目录,截图保存在其中的 captures/。已引用页面的片段会进入 DSH 模型上下文,可能发送给你配置的模型服务。不要公开配对文件和私人截图。购买、删除和敏感提交需要用户明确授权;插件没有独立的交易确认弹窗。

开发检查命令

npm run build
npm test
npx playwright-core install chromium
npm run test:browser
npm run verify:dsh -- --asar "<path to DeepSeek Harness app.asar>"

CI 配置了 Windows、Linux 单元测试,以及 Linux 上隔离的无头 Chromium 集成测试。徽章指向实际工作流状态,不是固定的“构建通过”图片。无头测试不替代日常浏览器配置与 DSH 原生界面的端到端验证。

07 · Roadmap / FAQ / License

Roadmap

0.1.3 包含页面批注、应用引用和 MCP 优先的应用控制。后续重点是更多应用的实机兼容验证与连接器配置体验,暂未公布交付时间。问题反馈和功能讨论见 Issues。

FAQ

每次都要打开扩展吗? 不需要。配对一次后,扩展会在后台重连;更新扩展文件后需要重新加载。

为什么有些页面不显示? 只提供普通 HTTP/HTTPS 和已授权的本地 file:// 标签页,不包含浏览器内部页面和无痕页面。全部页面都不显示时,先检查扩展是否启用、是否完成配对。

43187 端口被占用怎么办? 不要让两份插件同时使用同一端口。停止重复的桥接服务,或修改插件的 port 配置,并让扩展重新连接到对应端口。

目前有哪些限制? 浏览器扩展通过加载解压目录安装,尚未上架扩展商店;不支持 Firefox 和 Safari。主机 API 已对照 DSH 0.2.0-rc.2 检查,其他版本及原生界面流程仍需各自验证。

贡献与协议

欢迎提交 Issue 和 Pull Request。反馈时附上复现步骤、DSH 和浏览器版本;日志中请移除令牌、私人网页内容和账号数据。修改代码后,运行与改动相关的检查。

项目代码使用 MIT 协议。Playwright 衍生代码和 Lucide 图标保留各自协议,详见 NOTICE、Apache-2.0 和 ISC。
预览分享卡片长什么样 ↓SheepofSheep/dsh-doyourweb
分享 · DeepSeek Harness Hub
SheepofSheep/dsh-doyourweb

本地 HTML:在 Chrome / Edge 扩展详情中开启“允许访问文件网址”,重新加载扩展后,已打开的…

这是你的仓库?认领条目

回到顶部