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

AI 浏览器 745403lkh/dsh-ai-browser

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

在会话侧栏内浏览网页,按窗口分级授权 AI 操作

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 3 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 9 处,展示前 9 条)
  • 读取本地文件
    index.js:29
    const parsed = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8'))
  • 发起网络请求
    preset.js:292
    const outcome = await approval.request({
  • 发起网络请求
    preset.js:317
    const outcome = await approval.request({
  • 发起网络请求
    client.js:400
    return fetch(ROUTE + path, init).then(function (response) {
  • 写入剪贴板
    client.js:592
    if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') navigator.clipboard.writeText(path)
  • 发起网络请求
    lib/runtime.js:602
    const response = await fetch(url.href, {
  • 发起网络请求
    lib/downloads.js:300
    response = await fetch(url, { redirect: 'follow', signal: controller.signal, headers })
  • 执行外部命令来自配置/变量
    lib/downloads.js:541
    const child = spawn(command, [target.path], { detached: true, stdio: 'ignore', windowsHide: true })
  • 执行外部命令来自配置/变量
    lib/downloads.js:551
    const child = spawn(command, [dir], { detached: true, stdio: 'ignore', windowsHide: true })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

基于 DeepSeek Harness 的 AI 浏览器,主打比其它 AI 浏览器更精细的权限管理:四档窗口权限 × 按工作区隔离的站点名单,支持域名、子域、路径精确匹配与逐站点「无需授权访问」;同时支持内嵌浏览、多标签和下载管理。

README

由 DeepSeek 最新模型翻译生成
dsh-ai-browser:AI 浏览器 / AI Browser Harness 里的应用内浏览器模式:在会话右侧打开浏览器面板,AI 可以读取页面、点击、输入、滚动、截图和下载文件;同时提供按窗口细分的四级浏览器权限、风险警告与限制性授权越权。 底层是 DSH 桌面版的应用内 <webview>(不启动外部浏览器、不碰系统鼠标),Host 只负责命令队列、权限与文件保存。 功能 1. AI 浏览器模式(Agent Preset) - 新建对话时在「标准模式 / 创造模式」之外多一个「AI 浏览器模式」(preset id:ai-browser)。 - 不影响模型与思考强度设置:模型选择、reasoning effort 均沿用原有配置。 - 选中模式后,会话右侧自动打开浏览器面板,对话区收窄到左侧;面板按会话隔离。手动关闭面板后,可从输入框「+」命令菜单里的「打开 AI 浏览器」重新打开。 2. 浏览器操作(browser 工具) - state / windows / downloads / bookmarks / history:查看窗口、页面状态与已下载文件,读取当前工作区的收藏与历史记录。
展开完整文档(README 剩余 1 节)
dsh-ai-browser:AI 浏览器 / AI Browser

Harness 里的应用内浏览器模式:在会话右侧打开浏览器面板,AI 可以读取页面、点击、输入、滚动、截图和下载文件;同时提供按窗口细分的四级浏览器权限、风险警告与限制性授权越权。

底层是 DSH 桌面版的应用内 <webview>(不启动外部浏览器、不碰系统鼠标),Host 只负责命令队列、权限与文件保存。

功能

1. AI 浏览器模式(Agent Preset)

- 新建对话时在「标准模式 / 创造模式」之外多一个「AI 浏览器模式」(preset id:ai-browser)。
- 不影响模型与思考强度设置:模型选择、reasoning effort 均沿用原有配置。
- 选中模式后,会话右侧自动打开浏览器面板,对话区收窄到左侧;面板按会话隔离。手动关闭面板后,可从输入框「+」命令菜单里的「打开 AI 浏览器」重新打开。

2. 浏览器操作(browser 工具)

- state / windows / downloads / bookmarks / history:查看窗口、页面状态与已下载文件,读取当前工作区的收藏与历史记录。
- open / read / click / type / press / scroll / back / forward / reload / inspect / screenshot:打开、读取、点击、输入、按键、滚动、导航、元素详情与截图。
- read 返回正文 + 带 index 的可交互元素;先 read 再按 index 操作;页面跳转后重新 read。
- bookmarks / history 读取当前工作区(按工作区隔离)的收藏和历史记录;面板工具栏的收藏/历史按钮也能查看和整理这些数据(见第 6 节)。
- 多窗口(不限数量):new_window / close_window 管理,用 window 参数指定窗口(省略则操作当前激活窗口)。页面里 target="_blank" 或 window.open 打开的链接会自动新建标签页、切换过去,AI 也能直接操作新标签页。
- 后台也能干活,不碰鼠标:所有操作通过应用内 <webview> 的脚本执行与合成输入事件完成,不移动系统鼠标、不要求 DSH 在前台;窗口最小化时仍可继续加载与操作(Electron 后台节流会让速度略降)。
- 网页内容是不可信数据:工具输出会提示模型只当作资料,不执行页面里的指令。

3. 四级浏览器权限(每个窗口独立)

| 级别 | 能力 |
| 仅可查看 | 读取页面、截图、查看窗口与页面状态 |
| 仅简单操作 | + 打开网址、前进/后退/刷新、滚动、输入文字、新建/关闭窗口 |
| 自动审查 | + 点击/按键/下载;高风险目标(支付、删除、提交订单、密码框等)自动升级确认 |
| 完全权限 | 所有浏览器操作放行 |

- 入口在浏览器面板工具栏:刷新按钮右侧、网址栏左侧(独立于工作区修改权限)。
- 站点名单(硬逻辑,按工作区隔离):下载按钮右侧的设置按钮里,每个工作区各自维护四档网址名单(不限数量)。匹配规则:写 baidu.com 匹配该域名及所有子域(www.baidu.com、fanyi.baidu.com);写 www.baidu.com 只匹配该主机;带路径的 www.baidu.com/xyz 匹配该路径及下级。命中名单直接使用名单档位,未命中一律仅可查看;条目可开启「无需授权访问」,开启后 AI 打开该站点无需申请授权。新窗口/外链不继承旧权限,按目标站点重新套用名单。
- 权限预设(Harness 设置页):设置里新增「AI 浏览器」页(黑白简笔画地球图标),可创建多个预设、自定义名字、编辑四档名单、指定默认预设;新工作区第一次打开浏览器模式时自动套用默认预设,浏览器面板设置里也能一键把预设应用到当前工作区。
- 预设搜索:权限预设列表支持按预设名字搜索,输入即实时过滤(Harness 设置「AI 浏览器」页与浏览器面板的权限设置里都能搜)。
- 预设导入 / 导出(人类可读 txt):预设可导出为 txt 分享给他人,也可直接导入他人分享的 txt。格式为 # name: 头 + [view] / [simple] / [review] / [full] 四个分节,每个分节下逐行写站点条目,条目可带 !noauth 表示「无需授权访问」,例如:

name: 我的常用预设 [view] example.com [simple] baidu.com !noauth [review] docs.example.org [full] intranet.example.com

- 浏览器面板设置:权限设置里新增「存为预设」(把当前工作区四档名单保存成一个预设)、「导出当前工作区」(把当前工作区名单导出为 txt)、「导入到当前工作区」(从 txt 导入名单到当前工作区)。
- 设置页导入 / 导出:Harness 设置 →「AI 浏览器」页同样提供预设导入 / 导出与搜索,可直接导入他人分享的预设 txt,不用手抄名单。
- 名单折叠:某一档站点名单超过 3 条时自动折叠,每一档独立展开/收起。
- 每个窗口有自己的级别;新窗口继承当前窗口级别。
- 切换到「自动审查」或「完全权限」时弹出风险确认(需勾选「我已了解风险」)。
- 权限不足时 AI 不会直接结束:工具会主动发起一次性授权申请,弹窗写明目标窗口/页面、要执行的具体操作和原因(reason);被拒后 AI 向用户解释而不是静默停止。request_access 可先申请再执行(需带上目标动作的 URL/index 等参数)。
- 应用内 <webview> 是原生视图、会盖住页面 DOM 覆盖层:打开权限菜单、警告弹窗或下载弹窗时会临时隐藏 webview 区域,关闭后恢复。

4. 下载

- 页面里的文件链接会被自动拦截,或由 AI 调用 download(url 或 index)。
- 先尝试页面内 fetch 取回(可带页面登录态);跨域失败时自动回退到 Host 直连下载(绕过页面 CORS,流式写盘,上限 512MB,拒绝本机/内网地址防 SSRF)。
- 大文件用 HTTP Range 断点续传 + Content-Length 总大小校验:只有字节数达到服务端声明的总大小才改名为最终文件;中断时保留 .part 供下次续传,不会把半成品当成下载成功。
- 文件保存到当前工作区 browser download/(同名自动加序号);工作区不可用时回退到 $DSH_HOME/storages/dsh-ai-browser/downloads/。
- 地址栏右侧的下载按钮打开浏览器式下载弹窗:像浏览器一样挂在按钮下方,不遮挡页面操作;下载任务创建时自动弹出,点击其它地方或按 Esc 自动收回。权限菜单和下载面板都在工具栏下方内嵌展开,不覆盖、不隐藏浏览器画面,展开时网页仍然可见可点;再次点按钮、点其它地方或按 Esc 即可收回。进行中的任务显示进度条、百分比、已下载/总大小、实时速度(约 1 秒刷新),可暂停/继续/取消;任务超过 3 个时默认只显示 3 个,点「查看更多」展开。完成的文件可直接「打开」(系统默认程序),也可复制路径或打开下载文件夹。AI 也能通过 downloads 查看任务状态,用 pause_download / resume_download / cancel_download 控制。
- 下载弹窗不残留空白标签页:部分网站用 window.open 打开下载链接、下载一开始就立刻关闭弹窗,以前浏览器会留下一个空白页面;现在会自动识别并关闭这类下载型弹窗,加载后仍是空白/无标题的弹窗也会被自动关闭。
- 下载属于「自动审查」级别;.exe / .msi / .apk 等高风险类型会升级确认。

5. 截图

- screenshot 截图保存到 $DSH_HOME/storages/dsh-ai-browser/screenshots/,最多保留 40 张。
- 模型支持图片输入时会同时作为图片附件返回。

6. 收藏与历史

- 工具栏新增收藏(星形)和历史按钮,点击后以内联面板展开在工具栏下方,不遮挡网页;再次点按钮、点其它地方或按 Esc 收回。
- 收藏:查看、打开、删除当前工作区的收藏;同一网址只收藏一次(重复收藏会更新标题)。
- 历史:查看、打开历史记录、清空历史;页面地址变化时记录,自动去重并保留最近 500 条。
- 两者都按工作区独立存储,切换工作区不会看到别的工作区的数据。
- AI 可以通过 browser 工具的 bookmarks / history 动作读取当前工作区的收藏和历史记录。

界面

- 右侧栏页签「AI 浏览器」,顶部是窗口页签条(切换/新建/关闭)。
- 工具栏:后退、前进、刷新、浏览器权限控件、地址栏、下载按钮、设置按钮,以及收藏(星形)和历史按钮。
- 收藏与历史都以内联面板展开在工具栏下方,不覆盖浏览器画面;再次点按钮、点其它地方或按 Esc 即可收回。
- 黑白简笔画地球是浏览器模式的核心视觉:会话列表运行状态、输入框「+」菜单的「打开 AI 浏览器」、Harness 设置「AI 浏览器」页入口都使用地球图标;浏览器模式会话在侧边栏左侧显示地球标识,运行中显示旋转地球,不再显示通用转圈状态。
- 地球只在浏览器模式会话真正执行任务时旋转;空闲时保持静止,不会一直转。
- 地球状态不只在对话页生效:新增侧栏会话行状态桥接,离开对话界面后,侧栏会话行仍按真实的运行状态显示静态或旋转地球,不会退回通用转圈。
- 左侧对话区保留完整的 AI 对话与授权弹窗(DSH 自带)。

本机数据

$DSH_HOME/storages/dsh-ai-browser/:

| 路径 | 内容 |
| permissions.json | 四级权限状态(按会话 + 窗口持久化) |
| sites.json | 四档站点名单(按工作区隔离) |
| library.json | 收藏与历史记录(按工作区隔离,历史最多 500 条) |
| presets.json | 权限预设、默认预设与已初始化工作区列表 |
| screenshots/ | 截图,最多 40 张 |
| downloads/ | 工作区不可用时的下载回退目录 |

接口

所有接口(含 GET)都必须携带本地客户端请求头 x-dsh-ai-browser: 1,且只接受本机回环来源(Host 必须是 localhost / 127.0.0.1 / [::1];带 Origin 时必须是同源或桌面壳协议)。接口从不返回 CORS 头,跨站页面无法触发。

| 方法 | 路径 | 说明 |
| GET | /.dsh-ai-browser/health | 插件版本与运行时能力清单(用于 Host/Client 版本自检) |
| POST | /.dsh-ai-browser/session | 会话窗口列表与各窗口权限级别 |
| POST | /.dsh-ai-browser/level | 设置指定窗口的权限级别 { sessionId, windowId, level } |
| POST | /.dsh-ai-browser/report | 面板上报窗口状态(URL/标题/激活窗口) |
| POST | /.dsh-ai-browser/poll | 长轮询拉取待执行命令 |
| POST | /.dsh-ai-browser/result | 回传命令结果 |
| POST | /.dsh-ai-browser/download | 保存页面内取回的字节(≤128MB,base64) |
| POST | /.dsh-ai-browser/download-url | Host 直连下载(断点续传,≤512MB) |
| POST | /.dsh-ai-browser/downloads | 列出已下载文件与进行中的下载任务(含进度/速度) |
| POST | /.dsh-ai-browser/open-download | 用系统默认程序打开下载目录内的文件 |
| GET | /.dsh-ai-browser/library?sessionId= | 当前工作区的收藏与历史记录 |
| POST | /.dsh-ai-browser/library | 收藏/历史操作 { sessionId, action: bookmark-add / bookmark-remove / history-clear } |
| GET | /.dsh-ai-browser/presets | 权限预设列表与默认预设 |
| POST | /.dsh-ai-browser/presets | 权限预设操作 { action: create / update / delete / set-default / apply } |

浏览器工具的 bookmarks / history 动作读取当前工作区的收藏与历史记录(见第 2 节)。
错误响应统一为 { ok: false, error: { code, message } }。

前提与限制

- 需要 DSH 桌面版(应用内 webview)。用浏览器打开的 Web GUI 没有浏览器载体,面板会提示不支持。
- 内嵌 <webview> 的安全策略由 DSH 主进程强制:无 Node 权限、禁用插件与 devTools(打包版)、禁用系统下载、拒绝系统权限、禁止打开 DSH 应用自身地址(含 localhost 回环服务)。因此下载由 Host 负责写盘,而不是交给 Chromium 原生下载。
- 浏览器存储按会话隔离(session:<id> 分区),重启应用后登录状态不保留;同一会话刷新面板会重建隔离分区。
- Host 直连下载不携带页面 Cookie:需要登录态的文件优先走页面内取回路径。
- 不依赖任何第三方 npm 包;不调用其它插件的接口(侧边栏页签、输入框工具行、shell 覆盖层都用 DSH 自带槽位)。
- 安全边界:浏览器权限是产品层的操作边界,用于约束 AI 在面板里的动作;它不是一个能对抗本机任意代码执行的沙箱。AI 浏览器模式的 preset 仍带 shell/文件系统工具,拥有 shell 的模型理论上可通过本机 HTTP 接口绕过权限控件。需要更强隔离时,可在 profile patch 里覆盖 preset-ai-browser 的 plugins 列表,移除 shell/文件系统工具。

结构

| 文件 | 作用 |
| index.js | Host 入口:注入服务、注册 HTTP 路由、版本/能力自检 |
| preset.js | Agent Preset:browser 工具、权限校验与主动授权、系统提示词 |
| lib/runtime.js | 会话运行时:窗口状态、命令队列、截图保存、会话权限 |
| lib/downloads.js | 下载:断点续传、大小校验、进度任务、打开下载文件 |
| lib/routes.js | 同源 HTTP 接口与安全守卫(请求头 + 回环来源) |
| lib/permissions.js | 四级权限定义、动作能力映射与高风险启发式 |
| lib/browser-permissions.js | 按「会话 + 窗口」持久化权限状态 |
| lib/library.js | 收藏与历史记录:按工作区存储、自动去重与数量上限 |
| lib/presets.js | 权限预设:创建/编辑/删除、默认预设、应用与工作区自动初始化 |
| lib/home.js | DSH home 路径解析 |
| client.js | 浏览器半侧:面板、<webview> 租约、下载面板、权限 UI、收藏/历史面板、设置页 |
| cordis.patch.yml | Loader 补丁:Host 行 + Agent Preset 行 |
| locale/zh.json / locale/en.json | 界面文案 |
| icon.svg | 插件图标 |

依赖

不依赖任何第三方 npm 包:Host 只用 Node 内置能力与 Harness 服务(agents / agentPresets / workingDirectory / webServer / approval);Client 通过 window.__ModuleLoader__.load 请求平台自带的 React,应用内浏览器通过 window.dshDesktop.browser 租约创建 <webview>。

备注

- 下载与截图都在后台完成,不需要 DSH 位于前台,也不需要用户操作鼠标。
- 命令默认超时 60 秒;下载由独立模块计时(单次连接 120 秒后自动断点续传,整体最长 30 分钟)。
- /health 会返回版本与运行时实际能力;Host 代码版本与 Client 不一致时,面板会提示「请重启 DSH」,避免功能静默失败。
- npm 包名:dsh-ai-browser;许可证:MIT(见 LICENSE)。

许可证 / License

MIT © 2026 Akivelli

An in-app browser mode for Harness: open a browser panel on the right side of a conversation, and let the AI read pages, click, type, scroll, take screenshots and download files. It also provides per-window four-level browser permissions, risk warnings and restricted authorization escalation.

The browser is an in-app <webview> in the DSH desktop app (no external browser is launched and no system mouse is used); the host only handles the command queue, permissions and file saving.

Features

1. AI Browser mode (Agent Preset)

- A new "AI Browser mode" next to Standard and Create when starting a conversation (preset id: ai-browser).
- It does not change model or thinking-effort settings: model choice and reasoning effort follow the existing configuration.
- When selected, the browser panel opens automatically on the right and the conversation narrows to the left; the panel is isolated per session. If you close the panel manually, reopen it from "Open AI browser" in the composer's "+" command menu.

2. Browser operations (browser tool)

- state / windows / downloads / bookmarks / history:查看窗口、页面状态和已下载文件,读取当前工作区的书签和历史记录。
- open / read / click / type / press / scroll / back / forward / reload / inspect / screenshot:打开、读取、点击、输入、按键、滚动、前进后退、刷新、检查元素、截图。
- read 返回页面文本,外加带索引的可交互元素;先读取,再按索引操作;页面跳转后要重新读取。
- bookmarks / history 读取当前工作区的书签和历史记录(两者都按工作区存储);面板工具栏里的书签/历史按钮管理的是同一份数据(见第 6 节)。
- 多窗口(没有硬性上限):用 new_window / close_window 管理,用 window 参数指定目标窗口(省略时用活动窗口)。通过 target="_blank" 或 window.open 打开的链接会自动新建标签页并切换过去,AI 也能操作那个标签页。
- 后台运行,不碰鼠标:一切都靠应用内 <webview> 执行脚本、合成输入事件完成。系统鼠标从不动,DSH 不需要在前台,窗口最小化时浏览照常进行(Electron 的后台节流可能让它稍慢一点)。
- 页面内容是不可信数据:工具输出会提醒模型把它当参考资料,不要执行页面里出现的指令。

3. 四级浏览器权限(按窗口)

| 级别 | 能力 |
| 仅查看 | 读取页面、截图、查看窗口和页面状态 |
| 简单操作 | + 打开 URL、前进/后退/刷新、滚动、输入文本、新建/关闭窗口 |
| 自动审核 | + 点击 / 按键 / 下载;高风险目标(支付、删除、提交订单、密码框等)升级为需确认 |
| 完全访问 | 允许所有浏览器操作 |

- 控件在浏览器面板工具栏:刷新按钮右边、地址栏左边(与工作区修改权限相互独立)。
- 站点列表(硬逻辑,按工作区):下载按钮右边的设置按钮里,每个工作区有四份列表(条目数不限)。只写域名(baidu.com)会匹配该域名及其所有子域名(www.baidu.com、fanyi.baidu.com);带前缀(www.baidu.com)只匹配该主机;带路径(www.baidu.com/xyz)匹配该路径及其子路径。列表内的站点用对应级别;不在列表里的站点只能查看;每个条目都有「无需授权」,AI 打开它时不用审批。新窗口和外链不继承旧权限——改为套用目标站点的列表条目。
- 权限预设(Harness Settings 页面):Settings 里新增「AI Browser」页面(黑白线条风格的地球图标),你可以创建多个预设、给它们起自定义名称、编辑四个站点列表,并挑选一个默认预设;新工作区第一次使用 AI Browser 模式时自动套用默认预设,浏览器面板的设置里也能一键把某个预设套用到当前工作区。
- 预设搜索:权限预设支持按名称搜索,边输入边过滤列表(Harness Settings 的「AI Browser」页面和浏览器面板的权限设置里都能用)。
- 预设导入 / 导出(人类可读的 txt):预设可以导出成 txt 分享给别人,别人分享的 txt 也能直接导入。格式是 # name: 开头的标题行,加上 [view] / [simple] / [review] / [full] 四个小节;每个小节一行一个站点条目,条目末尾可以加 !noauth,表示「无需授权」,例如:

name: My usual preset
[view]
example.com
[simple]
baidu.com !noauth
[review]
docs.example.org
[full]
intranet.example.com

- 浏览器面板设置:权限设置里现在提供「Save as preset」(把当前工作区的四个列表存成预设)、「Export current workspace」(把当前工作区的列表导出成 txt)和「Import into current workspace」(从 txt 导入列表到当前工作区)。
- 设置页导入 / 导出:Harness Settings →「AI Browser」同样支持预设导入 / 导出和搜索,别人分享的预设 txt 可以直接导入,不用再手动抄列表。
- 列表折叠:站点列表超过 3 条时自动折叠,每一级都能独立展开 / 收起。
- 每个窗口有自己的级别;新窗口继承当前窗口的级别。
- 切换到 Auto review 或 Full access 会弹出风险确认(需要勾选「I understand the risks」)。
- 权限不足时 AI 不会停下:工具会发起一次性审批请求,写明目标窗口 / 页面、具体操作和原因(reason);被拒绝后 AI 会作出解释,而不是默默停下。request_access 可以先询问再执行(带上目标操作的 URL / index 参数)。
- 应用内的 <webview> 是原生视图,会盖住 DOM 浮层:权限菜单、警告对话框或下载对话框打开期间,webview 区域临时隐藏,关闭后恢复。

4. 下载

- 页面上的文件链接会自动拦截,也可以由 AI 调用 download(url 或 index)。
- 页面先尝试页内 fetch(保留页面登录状态);遇到 CORS 失败则回退到直连主机下载(绕过页面 CORS,流式写入磁盘,上限 512MB,拒绝回环 / 私有地址以防 SSRF)。
- 大文件使用 HTTP Range 断点续传,并校验 Content-Length 大小:只有字节数达到服务端声明的总量,文件才会重命名为最终名称;中断的下载保留 .part 文件,供下次续传,因此部分文件绝不会被报告为成功。
- 文件保存到当前工作区的 browser download/(同名文件加编号后缀);工作区不可用时,回退到 $DSH_HOME/storages/dsh-ai-browser/downloads/。
- 地址栏右侧的下载按钮打开浏览器风格的下载弹窗:像真实浏览器一样锚定在按钮下方,不阻塞页面,下载任务开始时自动打开,点击外部或按 Esc 关闭。权限菜单和下载面板在工具栏下方内联展开,因此浏览器页面永远不会被遮挡或隐藏,打开期间仍可点击;再次点击按钮、点击别处或按 Esc 即可关闭。活动任务显示进度条、百分比、已下载/总大小和实时速度(约每秒刷新一次),可暂停 / 继续 / 取消;任务超过 3 个时只显示 3 个,直到你点击「显示更多」。完成的文件可直接打开(用系统默认应用)、复制路径,或在下载文件夹中显示。AI 也能通过 downloads 查看任务状态,并用 pause_download / resume_download / cancel_download 控制任务。
- 下载弹窗不再留下空白标签页:有些网站用 window.open 打开下载链接,下载一开始就关闭弹窗,过去会留下空白页面。现在这类下载弹窗会被检测并自动关闭,加载后仍空白 / 无标题的弹窗也一样。
- 下载按「自动审查」级别审查;.exe / .msi / .apk 等风险类型会升级为需要确认。

5. 截图

- screenshot 把图片保存到 $DSH_HOME/storages/dsh-ai-browser/screenshots/,保留最新 40 张。
- 模型支持图片输入时,截图还会作为图片附件返回。

6. 书签与历史

- 工具栏新增书签(星标)和历史按钮,在下方打开内联面板,不遮挡页面;再次点击按钮、点击别处或按 Esc 即可关闭。
- 书签:查看、打开和删除当前工作区的书签;同一 URL 只收藏一次(再次收藏会更新其标题)
- 历史:查看、打开条目并清空历史;页面地址变化时记录条目,自动去重,最多保留最新 500 条。
- 两者都按工作区存储,切换工作区绝不会显示其他工作区的数据。
- AI 可通过浏览器工具的 bookmarks / history 操作读取当前工作区的书签和历史。

UI

- 右侧边栏标签页「AI Browser」,顶部带窗口标签条(切换/新建/关闭)。
- 工具栏:后退、前进、刷新、浏览器权限控制、地址栏、下载按钮、设置按钮,以及书签(星标)和历史按钮。
- 书签面板和历史面板在工具栏下方就地展开,不遮挡浏览器页面;再次点击按钮、点击别处或按 Esc 即可关闭。
- 黑白线稿风格的地球是 AI Browser 的核心视觉:会话列表运行状态、输入框「+」菜单里的「Open AI browser」项、Harness Settings 的「AI Browser」页面入口,都用地球图标;AI Browser 会话在侧边栏左侧显示地球标记,运行时地球旋转,不再显示通用加载动画。
- 地球只在 AI Browser 会话真正运行时旋转,空闲时静止。
- 地球状态不再局限于对话视图:新增侧边栏会话行状态桥接,把真实运行状态带到对话之外,会话行因此显示静止或旋转的地球,不再回退到通用加载动画。
- 左侧对话保留完整的 AI 聊天和审批对话框(由 DSH 提供)。

本地数据

$DSH_HOME/storages/dsh-ai-browser/:

| 路径 | 内容 |
| permissions.json | 四级权限状态(按会话 + 窗口持久化) |
| sites.json | 四级站点列表(按工作区) |
| library.json | 书签和历史(按工作区;历史保留最新 500 条) |
| presets.json | 权限预设、默认预设和已初始化工作区列表 |
| screenshots/ | 截图,保留最新 40 张 |
| downloads/ | 工作区不可用时的下载兜底目录 |

API

每个端点(包括 GET)都必须携带本地客户端请求头 x-dsh-ai-browser: 1,且只接受回环来源(Host 必须是 localhost / 127.0.0.1 / [::1];带 Origin 时必须是同源或桌面外壳协议)。端点从不返回 CORS 头,因此跨站页面无法触发它们。

| 方法 | 路径 | 说明 |
| GET | /.dsh-ai-browser/health | 插件版本和运行时能力列表(用于宿主/客户端自检) |
| POST | /.dsh-ai-browser/session | 会话窗口列表及每个窗口的权限级别 |
| POST | /.dsh-ai-browser/level | 设置窗口的权限级别 { sessionId, windowId, level } |
| POST | /.dsh-ai-browser/report | 面板上报窗口状态(URL/标题/活动窗口) |
| POST | /.dsh-ai-browser/poll | 长轮询待执行命令 |
| POST | /.dsh-ai-browser/result | 回传命令结果 |
| POST | /.dsh-ai-browser/download | 保存页面内抓取的字节(≤128MB,base64) |
| POST | /.dsh-ai-browser/download-url | 宿主直接下载(支持断点续传,≤512MB) |
| POST | /.dsh-ai-browser/downloads | 列出已下载文件和进行中的下载任务(含进度/速度) |
| POST | /.dsh-ai-browser/open-download | 用系统默认应用打开下载目录里的文件 |
| GET | /.dsh-ai-browser/library?sessionId= | 当前工作区的书签和历史记录 |
| POST | /.dsh-ai-browser/library | 书签/历史操作 { sessionId, action: bookmark-add / bookmark-remove / history-clear } |
| GET | /.dsh-ai-browser/presets | 权限预设和默认预设 |
| POST | /.dsh-ai-browser/presets | 权限预设操作 { action: create / update / delete / set-default / apply } |

浏览器工具的 bookmarks / history 操作会读取当前工作区的书签和历史记录(见第 2 节)。

错误响应统一为 { ok: false, error: { code, message } }。

要求与限制

- 需要 DSH 桌面应用(应用内 webview)。在浏览器里打开的 Web GUI 没有浏览器载体,面板会提示不支持。
- 内嵌的 <webview> 由 DSH 主进程锁定:没有 Node 权限,插件和 devTools 禁用(打包构建),系统下载禁用,系统权限拒绝,DSH 自己的地址(包括 localhost 回环服务)被拦截。因此下载由宿主写入,不走 Chromium 原生下载流程。
- 浏览器存储按会话隔离(session:<id> 分区);重启应用后不保留登录状态,同一会话内刷新面板会重建隔离分区。
- 宿主直接下载不携带页面 cookie:需要登录状态的文件,优先走页面内 fetch 路径。
- 没有第三方 npm 依赖;不使用其他插件的 API(侧边栏标签页、composer 控件和 shell 浮层都用 DSH 内置插槽)。
- 安全边界:浏览器权限是产品层面的操作边界,约束 AI 在面板内的动作;它不是针对任意本地代码执行的沙箱。AI Browser 预设仍然附带 shell/文件系统工具,有 shell 访问权限的模型理论上可以绕过权限控制,走本地 HTTP API。需要更强隔离时,在配置档补丁里覆盖 preset-ai-browser 的插件列表,移除 shell/文件系统工具。

结构

| 文件 | 用途 |
| index.js | 宿主入口:注入服务、注册 HTTP 路由、版本/能力自检 |
| preset.js | 智能体预设:browser 工具、权限检查和主动授权、系统提示词 |
| lib/runtime.js | 会话运行时:窗口状态、命令队列、截图保存、会话权限 |
| lib/downloads.js | 下载:断点续传、大小校验、进度任务、打开已下载文件 |
| lib/routes.js | 同源 HTTP 端点和守卫(请求头 + 回环来源) |
| lib/permissions.js | 四级权限定义、动作能力映射和风险启发式 |
| lib/browser-permissions.js | 按「会话 + 窗口」持久化权限状态 |
| lib/library.js | 书签与历史:按工作区存储、去重与上限 |
| lib/presets.js | 权限预设:创建/编辑/删除、默认预设、应用与工作区自动初始化 |
| lib/home.js | DSH home 路径解析 |
| client.js | 浏览器侧:面板、<webview> 租约、下载面板、权限 UI、书签/历史面板、设置页 |
| cordis.patch.yml | 加载器补丁:host 行 + Agent Preset 行 |
| locale/zh.json / locale/en.json | UI 文案 |
| icon.svg | 插件图标 |

依赖

不依赖第三方 npm 包:host 只用 Node 内置模块和 Harness 服务(agents / agentPresets / workingDirectory / webServer / approval);客户端通过 window.__ModuleLoader__.load 请求平台提供的 React,应用内浏览器通过 window.dshDesktop.browser 租约创建 <webview>。

说明

- 下载和截图都在后台进行;DSH 不必在前台,你也不用操作鼠标。
- 命令默认 60s 超时;下载由单独模块计时(每次连接尝试最长 120s,之后自动续传,总上限 30 分钟)。
- /health 报告版本和真实运行时能力;host 代码版本与客户端不一致时,面板会提示重启 DSH,避免功能静默失效。
- npm 包名:dsh-ai-browser;协议:MIT(见 LICENSE)。

协议

MIT © 2026 Akivelli
预览分享卡片长什么样 ↓745403lkh/dsh-ai-browser
分享 · DeepSeek Harness Hub
745403lkh/dsh-ai-browser

在会话侧栏内浏览网页,按窗口分级授权 AI 操作

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部