browserwing
将浏览器操作转化为 MCP/Skills 命令,让 AI Agent 直接调命令获取网页数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将浏览器操作转化为 MCP/Skills 命令,让 AI Agent 直接调命令获取网页数据
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你正在用 Cursor 编写一份关于抖音热榜的竞品分析报告,需要实时数据。传统做法是什么?打开浏览器 → 登录 → 搜索 → 复制粘贴 → 格式化。每换一次关键词,就要重复一次。更别提那些需要登录才能访问的页面(淘宝、知乎、GitHub Trending)——Selenium/Playwright 脚本写起来复杂,调试起来更复杂,而且 token 消耗极高——每次截图/渲染都要付给 LLM 费用。
BrowserWing 的出现,正是为了解决这个问题:把浏览器操作变成 AI Agent 可以直接调用的结构化命令。
BrowserWing 由开发者 browserwing 于 2024 年创建,是一个用 Go 语言编写的浏览器自动化平台,核心目标是将复杂的浏览器操作封装成简单的 HTTP API 和 CLI 命令,让 AI Agent 可以通过 MCP(Model Context Protocol)或 Skills 协议直接驱动浏览器。整个项目采用 MIT 许可证,GitHub 获得了 1297 颗星(数据截至分析时),在浏览器自动化类开源项目中属于增长较快的新锐。
项目官网为 browserwing.com,提供完整的多语言文档(英文、中文、日文、西班牙文、葡萄牙文),显示出明确的国际化定位和全球化野心。
图1:BrowserWing Web 界面概览
BrowserWing 的技术栈非常清晰:Go 语言作为后端核心,配合 React + TypeScript + Vite 构建前端界面。Go 的选择并非偶然——浏览器自动化对并发要求极高(需要同时管理多个浏览器实例、标签页、会话),Go 的 goroutine 天然适合这种 IO 密集型任务。
后端目录结构模块化程度很高:
| 模块 | 路径 | 职责 |
|---|---|---|
api/ | handlers.go (211KB) | HTTP API 处理器,提供 26+ 端点 |
agent/ | agent.go (56KB) | AI Agent 核心逻辑,支持对话式自动化 |
mcp/ | server.go (29KB) | MCP 服务器实现 |
builtin/ | scripts.go (80KB) | 78 个内置脚本定义 |
cli/ | CLI 子系统 | 命令行交互入口 |
llm/ | extractor.go | LLM 语义数据提取 |
scheduler/ | 调度器 | 脚本执行调度 |
值得注意的是 handlers.go 单文件超过 211KB,agent.go 超过 56KB,说明核心业务逻辑集中在这两个文件中。这种「大一统」的文件组织方式在 Go 生态中很常见,优点是方便单文件调试,缺点是长期维护需要借助 IDE 的代码折叠功能。
前端使用 Vite 作为构建工具,pnpm 作为包管理器(README 中同时提供了 npm 和 pnpm 两种安装方式)。npm 包在安装时会自动检测 GitHub 和 Gitee 镜像速度并选择最快的源,这一细节体现了对中国开发者的友好支持。
BrowserWing 提供了三种互为补充的使用方式,覆盖了从新手到高级用户的全场景:
1. MCP 服务器模式(最适合 AI 工作流)
通过简单的 JSON 配置,即可将 BrowserWing 接入任何支持 MCP 协议的 AI 工具(Cursor、Claude Desktop、Claude Code 等):
{
"mcpServers": {
"browserwing": {
"type": "http",
"url": "http://localhost:8080/api/v1/mcp/message"
}
}
}
配置完成后,AI 可以通过 MCP 协议直接调用 BrowserWing 的浏览器自动化能力,而不是自己模拟浏览器操作。这意味着 token 消耗大幅降低(省去了截图识别的成本),且稳定性大幅提升(调用 HTTP API vs. 让 LLM「猜」页面内容)。
2. CLI 模式(最适合 AI Agent 管道)
这是 BrowserWing 最具生产力的使用方式。内置 78 个脚本,涵盖十大分类:
通过 browserwing run <脚本名> 即可获取结构化 JSON 数据,配合 jq/grep 等命令行工具完成数据处理:
browserwing run github-trending
browserwing run bilibili-hot | jq '.[0:5]'
browserwing run jd-search --keyword="机械键盘"
Agent 的典型工作流是:browserwing ls --format=json 发现脚本 → browserwing run <脚本> 获取数据 → 解析 JSON 进行后续处理。整个过程无需浏览器窗口(默认无头模式),非常适合服务器环境。
3. Web UI 模式(可视化操作)
启动 browserwing --port 8080 后,通过浏览器访问本地地址即可使用图形界面。界面支持脚本录制(记录用户在浏览器中的操作并可编辑重放),以及内置 AI Agent 对话功能(配置 OpenAI/Claude/DeepSeek 等 LLM,通过对话完成自动化任务)。
图2:将脚本导出为 Claude Skills 文件
BrowserWing 的智能化体现在两个层面:
LLM 驱动的语义数据提取(llm/extractor.go):通过集成 OpenAI、Claude、DeepSeek 等主流 LLM,实现「语义理解」级别数据提取。例如,从一篇新闻页面中提取「事件时间线」「关键人物」「数据统计」等非结构化信息,而不仅仅是抓取 HTML 文本。这解决了传统爬虫「只能提取固定字段」的根本痛点。
Skills 协议支持:BrowserWing 支持将录制的脚本导出为 SKILL.md 文件(格式兼容 Claude Code/Cline 等工具的 Skill 规范),导入后可以直接用自然语言驱动浏览器操作,例如:"访问 GitHub,搜索最近的 AI 项目,提取前 10 个项目的 stars 数和描述"。
BrowserWing 提供了四种安装方式,覆盖了所有主流场景:
| 安装方式 | 命令 | 适用场景 |
|---|---|---|
| npm/pnpm 全局安装 | npm install -g browserwing | 推荐方式,30秒完成 |
| 一键安装脚本 | curl -fsSL .../install.sh | bash | Linux/macOS |
| PowerShell 脚本 | iwr .../install.ps1 | iex | Windows |
| 手动下载 | Releases 页面下载二进制 | 网络受限时 |
安装脚本会自动检测系统和 CPU 架构,测试 GitHub/Gitee 镜像速度并选择最优源。安装完成后只需 browserwing --port 8080 即可启动。
前置依赖仅有一项:Google Chrome 或 Chromium。这一要求非常合理,因为 BrowserWing 本质上是通过 Chrome DevTools Protocol(CDP)控制浏览器,而非使用无头浏览器模拟方案,因此具有最高级别的浏览器兼容性。
没有工具是完美的,BrowserWing 也存在一些需要注意的点:
单浏览器依赖:目前仅支持 Chrome/Chromium,如果目标网站对 Chrome 有特殊检测策略(如某些金融网站),自动化效果可能受影响。
登录会话管理复杂:虽然支持 Cookie/存储会话管理,但复杂的登录流程(如双因素认证、滑块验证)仍需要额外处理。
无 Docker 支持:项目未提供 Dockerfile 或 docker-compose,对于已经在容器化环境中运行 AI Agent 的团队来说,需要自行封装。
MCP 协议限制:MCP 是相对较新的协议,生态系统仍在发展中,部分 AI 工具的 MCP 支持可能不完整或存在版本兼容问题。
数据提取质量依赖 LLM:语义提取能力受限于所配置的 LLM 质量,DeepSeek/Claude/OpenAI 的提取效果可能存在差异。
BrowserWing 代表了一个重要趋势:AI 原生的浏览器自动化。传统 Selenium/Playwright 的目标用户是开发者,而 BrowserWing 的目标用户是 AI Agent。它不是替代 Selenium,而是填补了「AI Agent 如何控制浏览器」这个新问题的空白。
随着 Claude、GPT-4 等大模型能力的提升,AI Agent 的应用场景越来越广,但 Agent 访问受限网页(需要登录、需要 JavaScript 渲染、需要交互操作)的问题一直没有很好的解决方案。BrowserWing 通过 MCP 协议提供了一种标准化的 Agent-浏览器交互接口,这个方向值得关注。
npm install -g browserwing && browserwing --port 8080,打开浏览器体验 Web UI。browserwing run github-trending 测试效果。builtin/scripts.go 的结构,自定义脚本并贡献回社区。分析时间:2026-06-14 | 项目:browserwing/browserwing | Stars:1297 | 语言:Go