真实浏览器直连
通过单条可编辑的 CDP WebSocket 连接本机正在运行的 Chrome/Chromium,复用用户已登录的会话与 Cookie,而非启动隔离的自动化浏览器实例。

Browser-harness 是 browser-use 团队开源的浏览器控制技能,定位为“最薄、最直接”的 Agent 与真实浏览器之间的连接层。它通过一条可编辑的 CDP WebSocket 把 LLM 接入本机正在运行的 Chrome/Chromium,而不是另起一个隔离的自动化浏览器,因此可以直接复用用户已登录的会话、Cookie 和浏览器配置。
工作方式上,Agent 以 `browser-harness` 命令加 heredoc 的方式执行 Python 片段,辅助函数已预导入;本地守护进程(daemon)在多次 CLI 调用之间保持标签页附着状态,任务开始时用 `new_tab(url)` 打开页面,之后通过 `list_tabs()`、`switch_tab()` 复用标签页。仓库内置 `SKILL.md` 教授浏览器工作流,`interaction-skills/` 覆盖 iframe、Shadow DOM、拖拽、上传下载、对话框、网络请求、截图、打印 PDF 等交互细节,`agent-workspace/domain-skills/` 则按站点(如 Amazon、GitHub、LinkedIn、小红书、BOSS 直聘等)提供领域技能,默认关闭,需设置 `BH_DOMAIN_SKILLS=1` 启用。
它适合需要登录态、JS 渲染或反爬页面的自动化任务,例如抓取个人账号下的内容、批量下载视频、填写后台表单;对于公开静态内容的简单抓取,官方建议直接用 curl 等 HTTP 工具。项目以 Python 3.11+ 实现,MIT 许可,同时提供 `browser-harness-mcp` 以 MCP 工具形式暴露浏览器控制能力。
通过单条可编辑的 CDP WebSocket 连接本机正在运行的 Chrome/Chromium,复用用户已登录的会话与 Cookie,而非启动隔离的自动化浏览器实例。
核心代码位于受保护的 src/browser_harness/,Agent 在 agent-workspace/agent_helpers.py 中按需编写可复用辅助函数,使 harness 随任务积累能力。
本地 daemon 在多次 CLI 调用间保持附着标签页,提供 new_tab、current_tab、list_tabs、switch_tab 等接口,避免重复开标签页并支持后台截图与 CDP 输入。
Interaction-skills/ 目录覆盖 iframe、跨域 iframe、Shadow DOM、拖拽、下拉框、对话框、上传下载、网络请求、截图、滚动、视口、打印 PDF、录制视频等具体浏览器交互场景。
按站点组织浏览器自动化技能文件,存放在 agent-workspace/domain-skills// 目录下,默认关闭,需设置 BH_DOMAIN_SKILLS=1 启用;启用后遇到站点相关任务时,应先读取对应站点目录下的全部技能文件再设计操作方案,例如 shopify-admin 目录提供 admin.shopify.com 及嵌入式 Shopify 应用的浏览器操作模式。
Browser-harness-mcp 通过 stdio 把浏览器控制辅助函数暴露为 MCP 工具供任意 MCP 客户端调用;browser-harness --doctor 用于诊断守护进程连接问题。
使用场景在已登录的 X 账号中批量获取个人视频内容
官方展示任务“打开我的 X 主页,找到最新 20 条视频帖子并下载”,演示了 harness 在登录态下完成多步浏览器操作的能力。
使用场景驱动 admin.shopify.com 及嵌入式应用完成配置或表单填写
Domain-skills/shopify-admin 说明 Shopify 应用运行在 iframe 中,Polaris React 输入框拒绝合成值设置,需改用 CDP type_text;只读商品数据则建议改用 Storefront API。
使用场景在 Claude Code、Cursor 等 MCP 客户端中直接调用浏览器控制工具
Browser-harness-mcp 以 stdio 暴露浏览器控制辅助函数为 MCP 工具,客户端无需再自行实现一层 CDP 逻辑。