OpenBrowser
让 LLM 直接编写 Python 代码来驱动真实浏览器,以极低的 Token 消耗自主完成网页导航、交互与数据提取。
- Star 数
- ★ 279
- 最近更新
- 1 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 60/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · Claude.ai · OpenAI API · Claude API
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 数据工程师需要从 Walmart 等电商页面批量抓取商品数据并处理分页
- 不适合
- 需要零依赖纯离线采集、且不愿安装任何 Chromium 浏览器的环境
- 只想要纯托管 SaaS、不想自己管理浏览器进程的团队(托管版仍在等候名单阶段)
- 非 Python 生态、无法运行 Python 3.12+ 的项目
- 源码审查
- 60/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
OpenBrowser(GitHub:billy-enrizky/openbrowser-ai,MIT 许可)是一个 AI 浏览器自动化框架。它的核心是 CodeAgent 架构:LLM 在一个类似 Jupyter 的持久命名空间中编写 Python 代码,通过原生 CDP(Chrome DevTools Protocol)直接控制浏览器,实现导航、点击、填表、抓取等操作。它以 PyPI 包(openbrowser-ai)分发,支持 CLI 守护进程、可直接导入的 Python 库、内置 MCP 服务器,以及面向 Claude Code、Codex、OpenCode、OpenClaw 的插件与技能集成。项目支持 15 家 LLM 提供商(OpenAI、Anthropic、Google、Groq、AWS Bedrock、Azure、Ollama、DeepSeek 等),并自动检测本机已安装的 Chromium 系浏览器。官方基准测试显示其 Token 消耗比 browser-use、Playwright MCP、Chrome DevTools MCP 等方案低 2 至 6 倍。此外项目还包含 FastAPI 后端 + Next.js 前端的全栈云端部署方案,以及两项基于强化学习的浏览器 Agent 微调研究。
OpenBrowser 读取用户给出的任务描述或代码,运行流程如下:CLI 通过 uvx openbrowser-ai -p "任务" 启动 LLM Agent,或用 -c 标志连接 Unix socket 上的持久浏览器守护进程直接执行代码;MCP 模式(uvx openbrowser-ai --mcp)向 Claude Desktop、Claude Code 等客户端暴露单一 execute_code 工具,LLM 在持久命名空间中编写 Python,调用预置函数(navigate、click、input_text、click_xy、evaluate、download_file、done 等)操作浏览器。库模式下可用 CodeAgent(task=..., llm=ChatGoogle(...)) 或直接操作 BrowserSession / BrowserProfile(支持 headless、viewport、proxy、录像目录等配置)。输出包括提取的数据、页面截图、Jupyter notebook / API 爬虫代码导出以及 ffmpeg 录制的会话视频。浏览器状态(cookie、登录态)保存在 ~/.config/openbrowser/profiles/ 下,跨会话复用;云端方案则提供 VNC 实时画面、KMS 加密的已存登录、EventBridge + SQS 定时工作流和 SES 邮件通知。
- 数据工程师需要从 Walmart 等电商页面批量抓取商品数据并处理分页
- 运营或个人用户想自动完成航班预订、多步表单填写等重复性网页流程
- Claude Code 用户安装插件后获得 7 项技能:深度研究、网页抓取、表单填写、端到端测试、页面分析、可访问性审计、文件下载
- QA 工程师用
e2e-testing技能模拟用户交互来测试 Web 应用 - 研究人员通过 MCP 模式(无需外部 LLM API 密钥,由 MCP 客户端提供智能)让任意 AI 助手操作浏览器
- 开发者用工作流录制功能把浏览器操作导出为 Jupyter notebook 或 API 爬虫代码
如何安装或部署这个 Agent?
macOS / Linux 一键安装:
curl -fsSL https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.sh | shWindows PowerShell:
irm https://raw.githubusercontent.com/billy-enrizky/openbrowser-ai/main/install.ps1 | iexHomebrew:
brew tap billy-enrizky/openbrowser
brew install openbrowser-aipip 或 uv(推荐):
pip install openbrowser-aiuv pip install openbrowser-ai无需单独安装浏览器:OpenBrowser 会自动检测已安装的 Chrome/Edge/Brave/Chromium;未找到且可用 uvx 时,首次运行会自动安装 Chromium。运行需要 Python 3.12+,并至少配置一个 LLM API 密钥,例如:
export GOOGLE_API_KEY="..."作为 Claude Code 插件安装:
claude plugin marketplace add billy-enrizky/openbrowser-ai
claude plugin install openbrowser@openbrowser-ai如何使用这个 Agent?
以 Python 库方式运行 CodeAgent:
import asyncio
from openbrowser import CodeAgent, ChatGoogle
async def main():
agent = CodeAgent(
task="Go to google.com and search for 'Python tutorials'",
llm=ChatGoogle(model="gemini-3-flash"),
)
result = await agent.run()
print(f"Result: {result}")
asyncio.run(main())通过 CLI 用持久守护进程直接执行代码:
uvx openbrowser-ai -c "await navigate('https://example.com')"
uvx openbrowser-ai -c "print(await evaluate('document.title'))"守护进程变量跨调用持久,10 分钟无活动后自动关闭;管理命令包括 daemon start/stop/status/restart。以 MCP 服务器方式接入 Claude Code,在项目 .mcp.json 中添加:
{
"mcpServers": {
"openbrowser": {
"command": "uvx",
"args": ["openbrowser-ai", "--mcp"]
}
}
}常用环境变量:OPENBROWSER_HEADLESS(默认 true)、OPENBROWSER_ALLOWED_DOMAINS(域名白名单)、OPENBROWSER_USER_DATA_DIR(持久 Chrome 配置目录)、OPENBROWSER_MAX_OUTPUT(单次执行最大输出字符,默认 10000)。
这个 Agent 有哪些优点和局限?
- CodeAgent 让 LLM 编写整段 Python 代码而非逐步决策,官方 4 路 CLI 基准显示 Token 消耗比 browser-use、agent-browser、playwright-cli 低 2.1–2.6 倍(约 $0.12/6 任务 vs $0.24–$0.29)
- MCP 基准中 Token 效率优势更明显:比 Playwright MCP 少 3.2 倍、比 Chrome DevTools MCP 少 6.0 倍,MCP 响应体积小 144 倍
- 支持 15 家 LLM 提供商(含 Ollama 本地模型),并通过 MCP 模式无需任何外部 LLM API 密钥即可被 AI 助手驱动
- 登录态与 cookie 持久化(含 KMS 加密的托管方案),并自动清理一次性 Chromium 缓存以控制磁盘占用
- 内置工作流录制与视频录制,可将会话导出为 Jupyter notebook 或 API 爬虫代码
- 需要 Python 3.12+ 和本机 Chromium 系浏览器,运行环境受限
- 托管云平台(saved cookies、定时任务仪表盘)仍在等候名单阶段,当前完整功能以本地 CLI/库/MCP 为主
- 除 Ollama 本地模型外,Agent 模式需要自备付费 LLM API 密钥,按用量计费
- 全栈云端部署依赖 Docker Compose、PostgreSQL、AWS 服务(EventBridge、SQS、SES、KMS、Cognito),基础设施成本不低
- 基准结果为项目自测(Claude Sonnet 4.6 on Bedrock,6 任务、N=3/5),第三方独立验证数据缺失
这个 Agent 与同类方案有什么区别?
项目自带的基准直接对比了 browser-use、agent-browser、Playwright MCP(Microsoft)、Chrome DevTools MCP(Google)和 playwright-cli:在相同任务(6 任务,全部 100% 通过率)下,openbrowser-ai 的 CLI 耗时 84.8s、Bedrock Token 36,010,均低于其余四者;MCP 对比中其优势主要来自 Python 代码批处理与紧凑 DOM 表示带来的小响应体积(7,853 字符 vs 竞品约 113–115 万字符)。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OpenBrowser 当前 | 60 · 存在缺口 | 命令行工具免费版 + 付费版 | ★ 279 | 1 个月前 | Python | Codex · Claude Code · Claude.ai · OpenAI API · Claude API |
| Uni-CLI | 72 · 存在缺口 | 命令行工具免费 | ★ 228 | 2 天前 | TypeScript | ChatGPT · Codex · Claude Code |
| lcc 本地上下文编译器 | 78 · 表现良好 | 命令行工具免费 | ★ 16 | 今天 | Python | Claude Code |
| Firecrawl 网页研究 MCP | 66 · 存在缺口 | MCP 服务器免费版 + 付费版 | ★ 7.8k | 今天 | JavaScript | Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
最小权限:提供 OPENBROWSER_ALLOWED_DOMAINS 域名白名单和 MCP 每实例隔离 profile,但未见默认启用任何沙箱或权限门槛;LLM 生成的代码在持久命名空间中直接执行,权限面大,扣分。用户确认:无执行前确认机制的任何证据,扣分。数据流透明:posthog 遥测依赖存在但 README 未说明收集什么数据、如何关闭;cookies/storage_state 的流向在 MCP 段落有较详细描述(部分加分),整体仍薄。敏感数据:storage_state 种子机制、KMS 加密(云端版描述)、profile lease 拒绝冲突说明得较清楚,评 2。依赖安全:pyproject 大量依赖未钉版本(playwright、langgraph 无上限),litellm 钉到具体版本但其余松散,未见锁文件或漏洞缓解证据。外部效果:可浏览任意网站、下载文件、执行 JS,文档提到白名单但默认无限制。回滚:仅 daemon stop/10 分钟自动关闭,无会话恢复或回滚机制。来源归属:MIT 许可证含署名(Muhammad Enrizky Brillian),MCP 注册记录 me.openbrowser/openbrowser-ai,评 2。
自洽性:README 与 pyproject 入口(openbrowser.cli:main)、文档快速开始基本一致,但 README 用 CodeAgent 而 quickstart.mdx 用 Agent/ChatGoogle 类,示例代码间存在轻微不一致。依赖可用性:可选 extras 设计合理(agent/anthropic/groq 等),自动检测浏览器并有 install 命令,评 2。失败信息:profile lease 'clear error'、Homebrew formula 有错误处理,但提供的源文件多为测试,核心运行时错误处理的证据不足,评 1。
受众与场景:README 覆盖个人开发者、MCP 客户端用户(Claude Code/Codex/OpenCode)、企业云平台等,受众描述充分,评 3。能力边界:函数表、坐标除以 devicePixelRatio 的说明、DOM 紧凑表示等给出一定边界,但未说明任务失败/不可行时的行为。触发精度:MCP 单一 execute_code 工具 + 7 个技能的分工清晰,评 2。环境适配:支持 macOS/Linux/Windows、多种安装路径、headless 配置、本地 Ollama,评 2。
信息架构:README 目录完整、项目结构图、文档站、插件/技能分层清晰,评 3。安装说明:多平台多路径(curl/pip/uv/brew/pipx/源码)极其详尽,评 3。命名稳定:包名 openbrowser-ai 与导入名 openbrowser 并存,README 内 CodeAgent 与 docs 内 Agent 混用,扣分。示例与 FAQ:丰富示例和基准,但快速开始两份文档示例类名不一致,无 FAQ。已知局限:未发现专门的局限章节,扣分。许可:MIT 全文,评 3。版本与变更日志:hatch-vcs 版本、CI 自动同步版本,但未见 CHANGELOG 文件。维护责任:发布流水线成熟(PyPI/MCP Registry/Homebrew 自动化、测试徽章、codecov),个人维护者,评 2。
输出可用性:MCP 返回仅显式请求内容、最大输出限制 10000 字符、紧凑 DOM 设计,评 2。边际价值:自称相对 browser-use/Playwright token 效率高 2-6 倍,附基准数据与原始 JSON,若属实价值明显,但为自报数据,评 2。成本收益:token/成本表给出具体数字,基准可复跑脚本在库内,评 2。
声明可追溯:基准声明附 JSON 文件路径和方法论链接,可部分追溯,但核心安全/行为声明无源码佐证(本评审未提供 mcp/、code_use/ 源码),扣分。交叉印证:徽章(PyPI、tests、codecov)为外部引用,无法在本证据内核实,测试文件仅覆盖 LLM 序列化层,评 1。事实与推断分离:README 将产品事实(配置默认值)与云端营销(waitlist)基本分开,评 2。
- posthog 遥测为默认硬依赖,README 未说明收集内容与关闭方式,隐私敏感用户应自行审查并禁用。
- LLM 生成的 Python 代码在持久命名空间直接执行,且默认无域名限制、无执行前确认;建议始终配置 OPENBROWSER_ALLOWED_DOMAINS 并在隔离环境中运行。
- 存储的 cookies/storage_state 会被复用于后续自动化会话,误用可能导致已登录账户被代理操作。
- README 与文档的示例类名(CodeAgent vs Agent)不一致,安装前应核对当前版本的 API。
- 性能声明为项目自报基准,未经独立复核,采购决策不应仅依赖该数据。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.1.54 v0.1.54: Fix daemon startup hangs with persistent browser profiles
发布说明摘录
What's New - Fixes daemon startup hangs when a persistent Chrome profile contains a large storage snapshot. - Keeps daemon browser initialization and failed-start cleanup bounded. Details - Managed daemon profiles no longer replay an implicit storage-state snapshot into the same persistent Chrome profile. - Explicit storage-state configuration remains supported. - A stuck cleanup queues the normal forced browser-stop event and cannot hold the startup request indefinitely. - Plugin and MCP metadata are synchronized to version 0.1.54. …在 GitHub 查看 ↗ -
v0.1.53 v0.1.53: MCP browser ownership and profile isolation
发布说明摘录
What's New - Prevent concurrent MCP browser instances from interfering with or terminating one another. - Give managed MCP instances isolated browser profiles by default. - Enforce browser ownership during cleanup so only the owning instance can remove its processes. Details - Adds ownership markers and leases for managed browser profiles. - Rejects conflicting ownership of an explicitly shared profile. - Synchronizes the Claude plugin and MCP Registry metadata to version 0.1.53. Full Changelog: https://github.com/billy-enrizky/openbrowser-ai/compare/v0.1.52...v0.1.53在 GitHub 查看 ↗ -
v0.1.52 v0.1.52: Cap MCP SDK at compatible major
发布说明摘录
What's New - Fix CI and runtime compatibility by keeping OpenBrowser on the supported MCP SDK major version. - Add a regression test so future dependency updates cannot silently select an incompatible MCP SDK major. Details - MCP dependencies are constrained to >=1.0.0,<2.0.0. - The lockfile is regenerated with the compatible SDK range. - No migration steps are required for existing users. Full Changelog: https://github.com/billy-enrizky/openbrowser-ai/compare/v0.1.51...v0.1.52在 GitHub 查看 ↗
常见问题
必须使用哪些 LLM?可以完全本地运行吗?
登录状态和 cookie 会跨会话保留吗?
MCP 模式和 Agent 模式有什么区别?
费用大概是多少?
需要安装 Chrome 吗?
openbrowser-ai install 预装。