DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Sidebrowser — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
S

dsh-sidebrowser

Sidebrowser

DSH Official Sidebar Browser: structured observation, native input, page development diagnostics, and post-action verification.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:AsakuraAOI/dsh-sidebrowser#420629ea046b60402de91f7394760f5a39b523a4
READMECompatibilityVersions

Compatibility and provenance

Sidebrowser is published as dsh-sidebrowser and currently resolves to version 0.4.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/18/2026

Versions

0.4.2stable
10/18/2026
0.4.1stable
10/18/2026
0.2.1stable
10/17/2026

Related plugins

Loading related plugins…

Latest
0.4.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
10/18/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in developer-tools.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Sdk Minimal@deepseek-ai/dsh-sdk-minimalThe standalone minimal SDK profile bundle: JSON-RPC, one DeepSeek adapter, persistent shell, and JSONL sessionsSdk App@deepseek-ai/dsh-sdk-appThe dsh SDK profile bundle: stdio JSON-RPC serving and process lifecycle over dsh-baseExperimental Terminal Bundle@deepseek-ai/dsh-experimental-terminal-bundleKeep shell processes alive across tool calls.

README

DSH Sidebrowser

让 Agent 直接读取和操作 DSH Desktop 官方侧边栏的同一个网页。以 web-access 的观察、操作、验证流程为指导,基于 dsh-agent-browser 的侧边栏接入代码开发。无需外部 Chrome、扩展、后台代理或桌面安装包补丁。

包名:dsh-sidebrowser,版本:0.4.2。普通工具使用 browser_*,开发诊断工具统一使用 browser_dev_*。旧的三个调试工具名已移除。

安装

dsh plugin --profile desktop add 'github:AsakuraAOI/dsh-sidebrowser'

安装后重启 DSH,让 Host 与 Client 同时加载插件。侧边栏浏览器使用桌面端的原生 guest;Web profile 的跨域 iframe 只能列出,不能操作。

请先停用其他注册相同 browser_* 工具的插件,避免同名工具冲突。本插件默认允许在目标网页内执行 JavaScript,可通过 enableEval: false 关闭。

开始使用

在当前对话右侧打开「浏览器」,手动登录后,在聊天中输入:

/dsh-sidebrowser 读取当前侧边栏网页,先观察页面,再根据我的任务操作,每一步核对结果。

亦可直接要求 Agent 调用 browser_tabs 和 browser_snapshot。新建网页使用 browser_navigate。多个标签时明确 tabId。

看见 Agent 的操作

  • Agent 第一次使用浏览器时,目标网页四周出现蓝色呼吸辉光;没有 Agent 标签、文字横条或提示气泡。
  • 辉光属于整轮 Agent 运行状态:工具结束、思考或工具之间的间隔都不会关闭。通过 DSH 的 api-session/status 和会话状态同步确认运行结束、取消或停止后,再淡出并清理。
  • 模拟光标跟随点击、输入等操作位置,点击有圆环反馈。光标按网页 CSS 坐标与实际显示比例换算,支持缩放后的侧边栏视口。
  • 提示绘制在 DSH 界面层,始终允许鼠标事件穿透,不更改网页 DOM,也不会混入正文提取或网页截图。隐藏会话不会在另一页显示辉光。
  • 尊重系统的减少动态效果设置;单次工具失败不会提前结束 Agent 的整轮提示。插件停用和会话移除会清理提示及监听器。

工具列表

工具功能
browser_tabs列出当前 DSH 会话所属标签、载体、加载和失败状态
browser_snapshot组合正文、标题层级、链接、新元素引用、iframe 边界及能力状态
browser_read定向读取文字、元素或 HTML
browser_actclick、type、press、scroll、select、reload、wait、click_xy
browser_extract按选择器提取 links、headings、tables、list 的有界 JSON
browser_navigate在所属会话创建页面,或导航已有标签
browser_screenshot可视页截图,结果带真实视口尺寸;图片通过 DSH 附件服务交付。preset 只作用于本次截图,截完即还原,不改变标签的显示尺寸
browser_viewport自适应、手机、平板、桌面和自定义视口
browser_close关闭所属会话标签并核对已关闭
browser_eval执行网页内 JS;支持 await Promise、明确返回截断信息
browser_dev_debug启动、查询、清空或停止当前标签的调试采集,无需 DevTools 界面
browser_dev_console原生日志文本、结构化参数、对象句柄展开、主文档异常和 Promise 拒绝
browser_dev_networkFetch/XHR、新建 WebSocket/SSE、Beacon 尝试、原生导航事件与资源计时;按 requestId 读详情
browser_dev_inspect元素、父链、盒模型、计算/伪元素样式、遮挡及网页内外两层视口
browser_dev_styles可读 CSSOM 匹配规则;临时样式补丁与保留冲突的恢复
browser_dev_performance支持项检测、导航/资源计时、长任务、LCP/CLS/事件计时、帧间隔与可用堆汇总
browser_dev_storage只读 LocalStorage、SessionStorage、IndexedDB 和 Cache Storage
browser_dev_watch指定元素的事件、DOM/尺寸变化;可选记录后续监听器登记调用
browser_dev_sourcesDOM 声明的脚本/样式源码;有权限时读取外部内容与 source map 声明

让 Agent 排查网页问题

让 Agent 在复现前调用 browser_dev_debug,随后照常操作同一个侧边栏网页,再读取 browser_dev_console 和 browser_dev_network。例如先启动正文采集:

{"action":"start","captureBodies":true,"maxEntries":100}

browser_dev_network 不带 requestId 时列出请求;从结果复制完整 id,再传入 requestId 查看详情和最多 20 条连接消息预览。Console 可用 level、source 筛选,并用 sinceId / nextSinceId 分页。source:structured 返回包装后的参数,source:native 返回 Electron 文本;同一调用可能在两个来源中各出现一次。复制参数的 objectId 再调用同一工具即可按需展开对象;不会执行 getter,但 Proxy 反射陷阱可能运行。对象是有限保留的实时引用,不是日志时刻的深拷贝;导航、停止和淘汰后句柄失效。

调试完调用 browser_dev_debug 的 stop,恢复 Console/网络包装并丢弃历史;clear 清空并继续采集。性能、变化监听和样式补丁分别通过各自工具 stop/restore。它们独立于单次工具和 Agent 运行状态,直到明确停止、标签关闭、会话移除或插件卸载;记录只保留在内存中。调试记录每类默认 100 条、最多 200 条,Console 对象最多 200 个;样式补丁最多 20 个,watch 最多 10 个,其中监听器登记跟踪只能启用一个。溢出和输出截断会明确标记。

默认不采集网络正文/消息;开启后仅采集文本预览,每段最多 16 KiB,Fetch 响应读取最多等待 3 秒,不消费应用收到的原始 Response。WS/SSE 只覆盖探针启动后创建的连接,SSE 默认事件及随后登记/显式配置的命名事件可见,已存在的连接不可追回。Beacon 的 queued 只表示浏览器接受排队,不证明服务器收到了数据。网络中的常见敏感查询参数和 Authorization/Cookie 等头会遮蔽;正文、源码和日志仍可能包含业务数据。

排查布局时先 browser_dev_inspect {selector:"目标选择器"}:guest 内的 viewport 与宿主 hostViewport 分开报告,可区分网页响应式问题和外层缩放问题。browser_dev_styles 的 set 需要 CSS 属性/字符串值对象,返回 patchId;restore 按 patchId 恢复,仅还原未被后续独立修改的属性,其他属性列入 conflicts。可读 CSSOM 不等于完整层叠计算,跨域样式表可能不可读;以 inspect 的最终计算样式为准。

browser_dev_performance 返回实际支持项、可见性、采样区间和有界记录。观察到的最大交互耗时不是 INP,页面指标也不是 CPU profile/堆快照/完整 Trace。browser_dev_storage 不写入数据、不创建缺失数据库/缓存;缓存正文和源码默认预览最多 16 KiB,外部源码 get 会产生普通 GET,受页面权限和 CORS 约束。browser_dev_watch 不收集输入值;trackListeners 记录启动后的 add/remove 调用,不保证已有处理器或 once/AbortSignal 状态的完整清单。

这些能力不开放 CDP、断点、DevTools 窗口或调试端口,不修改桌面安装包。不能追回启动采集之前的日志和正文;刷新在 dom-ready 重新接入,早期脚本流量可能遗漏。Worker、跨域子框架、closed Shadow Root、低层协议帧、浏览器自动添加的头、完整重定向链不在覆盖范围。跨域正文、样式表、opaque 缓存仍受页面可见性限制。网页保留的旧引用可能绕过探针;工具报告 hooks 和失败原因。关闭 enableEval 仍可使用固定诊断工具,但它们也可能按明确参数改变临时样式或安装观察器。

browser_act 示例参数:

{"action":"type","ref":"从刚才快照取得的完整ref","text":"Hello","inputMode":"auto"}
{"action":"wait","selector":".result-list","state":"visible","timeoutMs":4000}
{"action":"click_xy","x":200,"y":150,"inputMode":"native"}

原生输入与操作后观察

  • auto 为默认:点击和按键优先使用 sendInputEvent,文本输入使用 insertText 和原生编辑命令;缺少能力或页面尚未绘制时明确返回 DOM 后端及回退原因。
  • native 为严格模式,不会偷偷换成脚本点击;dom 为明确选择脚本后端。坐标点击仅支持 native。
  • 原生鼠标/按键前进行有界的本地绘制检查;画面未就绪时不盲发事件。检查用的图片不发送给模型。
  • 每次动作默认附加一次新的 observation,优先观察操作目标所在表单、对话框或主体区域;必要时优先列出目标和输入/按钮,避免菜单链接占满控件预算。region 说明观察范围。读取失败保留动作结果并附 observationError,不会重放写操作。
  • actionDispatched 代表已派发;verificationRequired 提醒仍需核对页面/业务结果。不会把页面加载完毕当作任务完成。
  • 同一文档、URL 和未变目标的 ref 在重复读取、局部读取、截断及自动观察后保持有效,不再每次重建全部引用。节点断开/替换、关键身份或动作属性改变、导航、文档变化及缓存淘汰仍会拒绝旧 ref,绝不按同名选择器自动改指向新节点。引用表最多保留 1000 项,refContext 说明容量和有效性边界。输入值变化本身不使 ref 失效,密码等值继续遮蔽。

局部读取与脚本预算

browser_read 的 text/html/elements 和 browser_snapshot 均可用唯一 selector 或当前 ref 限定区域,区域根元素本身也包含在元素读取中。例如:

{"mode":"elements","selector":"form#mission","maxElements":20}

maxChars 只限制文字/HTML;元素模式使用 maxElements(1–300,默认 300),快照的控件上限为 1–200。只读观察不会因为输出预算较小而删除其他仍有效的 ref。默认整页读取仍可用;长页面建议先明确 form/main 等范围。

browser_eval 默认总等待预算仍为 6 秒,可通过 timeoutMs 显式调整至 1–30 秒。网络脚本应使用单步异步请求及请求级 AbortController/deadline,避免同步 XHR 与长串写请求。外层工具超时不会取消底层脚本或请求;写操作结果未知时先核对状态,不重发整批。布局、日志和请求诊断优先使用 browser_dev_*,业务成功应由具体页面或响应条件验证。页面异常会保留具体原因返回,而不是仅出现 Electron 的泛化脚本错误。

提取范围

提取当前已渲染的主文档 DOM。表格返回行和单元格文本;列表、链接和标题也可限制数量与字符数。所有截断有标记。分页、未加载数据和虚拟列表之外的记录需要继续操作页面获取。

配置

安装后的 bundle 条目可以使用:

- id: dsh-sidebrowser
  name: 'dsh-sidebrowser'
  config:
    enableEval: true
    observeAfterAction: true
    maxReadChars: 20000
    snapshotMaxChars: 8000
    screenshotMaxWidth: 1568

兼容性与边界

  • 初始适配 DSH Desktop 0.2.0-rc.2 / Cordis 4.0.4;当前本机安装版为 0.2.1-rc.2,真实 Electron 验证使用 44.7.0。
  • 使用官方侧边栏现有 guest;继承其权限、下载、登录态分区及重启行为,不额外持久化 Cookie。
  • Web profile 的跨域 iframe 只会被列出,不能读取和操作。
  • 不提供跨域 iframe DOM、完整浏览器无障碍树、完整浏览器级网络抓取或自动文件上传;页面权限可读的响应预览由 browser_dev_network 提供。坐标输入能交给浏览器命中,但不宣称已验证所有跨进程 frame。
  • 仍通过参考项目采用的 Client Inspect 通道承载交互;其官方定位为只读,未来若强制限制需要迁移传输。
  • 多窗口 Inspect 仍有广播和首个有效回答的上游限制;建议先在单窗口使用。用户与插件共享页面,用户接手后需重新观察。
  • 超时只能结束等待,不能取消已经交给 Electron 的底层操作;超时后先查看状态,不自动重复提交。
  • HTML 与 eval 属于显式原始读取,可能返回站点中的敏感字段。快照遮蔽常见凭据字段值,不是通用隐私过滤器。

开发及验证

两组工具直接复用 src/page-core.js 的无状态函数:元素解析、可见性/禁用状态、敏感字段识别、矩形和尺寸、视口、目标点及命中检测、URL 脱敏与有界 Response 克隆读取。browser_read/snapshot/extract/act/viewport 与 browser_dev_inspect/网络/源码/缓存等在底层共享实现,没有嵌套调用公开工具。普通浏览不会因此开启诊断采集或创建诊断 store。

共享基础计算不改变各路径的策略:原生输入采用可见交集中心且拒绝遮挡,检查和光标反馈保留夹到视口内的元素中心;等待保留首个匹配的判断方式,动作和诊断要求唯一目标;诊断可以默认检查根元素,动作仍要求明确目标。正文读取共用克隆、字节上限、超时及取消清理;网络保留 3 秒预算,源码/缓存保留 1.5 秒预算,不消费应用原始响应。

npm ci --legacy-peer-deps --ignore-scripts
npm run build
npm test
node scripts/check-installed-contracts.mjs
node scripts/electron-smoke.mjs

前两项为构建及 DOM/传输测试。contract 检查使用已安装 DSH 的真实 schema 和 lossless-JSON 校验器;Electron smoke 使用独立测试目录和隐藏窗口、临时回环网页,验证真实输入事件、提取及会话边界,不操作用户现有浏览器。

测试通过并不代表真实站点的登录、复杂控件或模型视觉路径均已验收。目标站点应继续做一次用户实测。

许可与来源见 LICENSE 和 THIRD_PARTY_NOTICES.md。