ego (lite) 只是一款浏览器;ego 才是你跨设备的个人 Agent。
加入候补名单
ego lite 对比 Puppeteer

Puppeteer 最佳替代方案

Puppeteer 是一个用于编写无头 Chrome 脚本的 Node.js 库:你自己写导航代码,调整选择器,目标网站一改版就得去补脚本。

ego (lite) 完全跳过了写脚本这一步。你的 Agent 直接读取你已登录的 Chrome,并自己写 JavaScript,完成整个任务的速度比 Puppeteer 快 3 到 4 倍。

开发者用户来自
GoogleAmazonShopifyTikTokHarvardStanfordUSCUCLA

为什么 ego (lite) 比 Puppeteer 更好

对于一次性的抓取、填表、测试和后台杂活,脚本一直是最费时的部分:先写出来,然后页面一变就得跟着改。ego (lite) 通过开源的 ego-browser shell,把这些工作交给你已经在用的 Agent(Claude Code、Codex 或 Cursor)来完成。

从任务到完成,更快

Puppeteer 自己的 issue tracker 里全是 waitForSelector 超时的报告,哪怕元素明明就在 DOM 里也照样超时,你可能要花一整个下午去证明这是个时序问题,不是你代码写错了。

ego (lite) 跳过了这种等待再轮询的折腾:页面一加载完成,你的 Agent 就把它读成一份压缩的 Snapshot 并立即操作,每一轮把好几个步骤打包进一次 JavaScript 调用。累计下来,整个任务完成的速度比 Puppeteer 快 3 到 4 倍。

Time to finish a task, shorter is better
81.8 sego (lite)
282.9 sAgent 浏览器
Data source - Task: scrape the main posts from the X account from the last 7 days

并行多任务,执行更快

Puppeteer 开发者一旦不满足于单个脚本,就会发现所谓的并行,意味着要自己搭一套池:启动参数、浏览器上下文,还要靠 puppeteer-cluster 这样的队列库来限制并发,免得 Chrome 把内存吃光。

在 ego (lite) 里,你完全不需要计算池的大小。每个任务都拥有自己的 Space,都在同一个浏览器里,你想开多少个就开多少个,每个都用各自导入的 Chrome profile。它们互不干扰你正在用的标签页,你随时可以查看或接管任意一个 Space。

不再反复来回 消耗更少 Token

原生的 Puppeteer 脚本不消耗 Token,因为它根本不调用模型。成本是在你通过 MCP 服务器(比如原始的 Puppeteer MCP 参考实现)把 Puppeteer 包装给 Agent 使用时才出现的:每个被包装的操作都变成一次独立的工具调用,要把上下文重新发给模型,而且因为没有可访问性 Snapshot 工具,它只能靠截图来检查自己做得对不对。

ego (lite) 的 Agent 每一轮都把好几个操作打包进几行 JavaScript,再叠加 Snapshot 输入,同样的任务整体消耗的 Token 要少得多,按任务计算是如此。

Claude Code · ego lite
>/ego-browser Add the first product to the cart, then check checkout loads
Bash(
ego-browser nodejs <<'EOF' await openOrReuseTab('localhost:3000') await click('.product-card') await click('.add-to-cart') await click('a[href="/checkout"]') cliLog('checkout loaded') EOF
)
Output:
[t=4480ms] checkout loaded
Done. Both steps work.
─── 1 tool call · 1.1k tokens ───
Claude Code · Puppeteer MCP
>Add the first product to the cart, then check checkout loads
puppeteer - puppeteer_navigate (MCP)(url: "localhost:3000")
Screenshot
[image: screenshot://home]
1.6k tokens sent so far
Storefront rendered. Opening the first product.
puppeteer - puppeteer_click (MCP)(selector: ".product-card:first-child")
Result
Clicked selector
3.1k tokens sent so far
Product page is up. Now the Add to cart button.
puppeteer - puppeteer_click (MCP)(selector: ".add-to-cart")
Result
Clicked selector
4.9k tokens sent so far
Added, probably. There's no accessibility snapshot to confirm it, so a screenshot is the only way to check.
puppeteer - puppeteer_click (MCP)(selector: "a[href='/checkout']")
Result
Clicked selector
6.8k tokens sent so far
Checking whether the checkout page actually rendered.
puppeteer - puppeteer_screenshot (MCP)(name: "checkout")
Screenshot
[image: screenshot://checkout]
9.2k tokens sent so far
Hard to tell from a screenshot alone. Probing the DOM directly.
puppeteer - puppeteer_evaluate (MCP)(script: "document.querySelector('.checkout-form') !== null")
Result
true
11.2k tokens sent so far
Confirmed. Reading the console for any errors along the way.
puppeteer - console://logs
Console
… +12 lines (ctrl+o to expand)
13.6k tokens sent so far
─── 7 tool calls · 13.6k tokens ───
The same task, the same model. Left: one batched JavaScript call in ego lite, 1.1k tokens total. Right: Puppeteer MCP, 7 round trips, tokens climb to 13.6k.

同一个 Chrome,为 Agent 而生

Puppeteer 启动的是一个干干净净的空白 Chrome,没有 cookie 也没有会话,所以任何需要登录才能访问的内容,都得自己写认证流程的脚本,还要祈祷网站不会对着一个它不认识的浏览器扔出验证码或 2FA 提示。这道空白 profile 的墙,是脚本在开发环境跑得通、到真实网站上就失败的最常见原因。

ego (lite) 基于 Chromium 构建,一键就能导入你完整的 Chrome 环境。你的 Agent 继承你的登录状态、Cookie 和扩展程序,不会卡在任何地方。

ego lite 的 Chrome 浏览器配置文件导入:一键设置,保留所有登录状态

ego lite 对比 Puppeteer

ego (lite) 与 Puppeteer 的功能对比。
功能ego litePuppeteer
任务是怎么完成的描述任务,Agent 来操作浏览器编写并维护 Node.js 脚本
应对页面变化Agent 重新读取 Snapshot 并自动调整选择器失效,你去补脚本
已登录的网站(SSO、2FA)继承你真实的 Chrome 配置文件和会话状态空白 profile,得自己写登录脚本、导出 Cookie
设置安装应用,在你的 Agent 中运行 /ego-browserNode 项目、npm install、启动配置
并行任务Space 在同一浏览器内隔离任务,无需计算池大小自己管理浏览器池、上下文和内存
AI Agent 支持专为它们打造:通过 ego-browser 支持 Claude Code、Codex、Cursor原生不支持,需要 MCP 包装层或自定义胶水代码
日常使用的浏览器支持:人和 Agent 共用一个浏览器,各自有独立的 Space不支持,是无头自动化工具
最适合 CI 测试套件不适合:这是交互式的 Agent 任务,不是提交入库的测试代码适合:结果确定、可编写脚本,对 CI 友好
可复用技能(即将上线)将成功的运行过程提炼为可复用技能;Agent 重复执行复杂任务时最高可快 5 倍(限量测试中)没有内置的同类功能
价格免费,无需订阅免费,开源
最近更新 2026年7月28日

让切换无缝衔接

你不需要把 Puppeteer 脚本迁移到 ego (lite),而是直接不再写它们。把你曾经写脚本处理的任务,或者干脆放弃去写的任务,都交给你的 Agent。

  1. 下载 ego (lite)

    下载 ego (lite),导入你的 Chrome profile。那些脚本一直过不去的登录,也会一起带过来。

  2. 用 /ego-browser 运行你的第一个任务

    粘贴到你的 Agent 里

    /ego-browser 打开 ego.app,检查页面有没有控制台报错

    在 Claude Code、Codex 或 Cursor 中运行 /ego-browser。

  3. 看它开始工作
    ego lite 的 Space 概览,四个浏览器任务并排运行:Claude Code 在 Yahoo Finance 上追踪苹果股价,Codex 在 cars.com 上按年份筛选车型,Hermes 在完成一项 SaaS 后台任务,一位用户在抓取 X 上的数据,还有一只手正在点击 + 打开另一个 Space

    挑一个你平时会写脚本处理的任务,比如抓取列表页或填写后台表单,用一句话把它描述给 Agent。

在脚本真正占优势的场景继续用 Puppeteer:结果确定的 CI 套件、大批量的定时任务。ego (lite) 则负责那些交互式、每周都在变化的浏览器工作。

各工具的适用场景

以下情况选择 ego (lite)

  • 任务每周都在变。Agent 能适应页面的变化,不会因为选择器过时而失效。
  • 你需要真实的登录态:抓取自己账号里的数据、填写后台表单、测试 SSO 后面的功能。
  • 你一直没抽出时间去写脚本。把任务描述给 Claude Code、Codex 或 Cursor,它就能搞定。
  • 你想让多个任务在并行的 Space 里同时运行,而不用去计算浏览器池大小或盯着内存。

适合选择 Puppeteer 的场景

  • 你需要结果确定、可重复的脚本,提交进仓库并在 CI 里运行。
  • 你在跑大批量的定时任务:成千上万次完全相同的运行,这种场景下 Agent 只会增加成本,而不会带来价值。
  • 你需要在没有桌面环境的服务器上做无头运行。
  • 你在用代码批量生成 PDF 或截图,这正是 Puppeteer 最拿手的事。

为你的 Agent 配备真实浏览器

免费使用,运行在你的 Mac 上,一键导入 Chrome 浏览器配置文件。支持 Claude Code、Codex、Cursor,以及任何能写代码的 CLI Agent。

还在权衡选哪个?看看 Puppeteer 和同类其他工具的对比。

常见问题

Puppeteer 是 Chrome 团队推出的 Node.js 自动化库,通过 DevTools Protocol 和 WebDriver BiDi 控制 Chrome 和 Firefox。它成熟、速度快、免费,是开发者编写仅限 Chrome 的抓取脚本、生成 PDF 和无头测试的常见选择,尽管 Playwright 在测试框架整体采用率上已经领先。它自己的 issue tracker 里记录了不少 waitForSelector 在导航和重连时出现的真实抖动问题,规模化运行的团队最终要手动管理浏览器池、上下文和内存,但对于精心调试、提交入库、跑在 CI 里的自动化代码,Puppeteer 依然出色。下面的对比讨论的是:当浏览这件事由 AI Agent 而不是脚本来做时会发生什么。

对于由 AI Agent 驱动的浏览器工作来说,是的:它完全去掉了脚本这一层,直接在你真实的、已登录的 Chrome 里运行任务,是少数几个专为 Agent 而不是为了写更多脚本而设计的 Puppeteer 替代方案。而对于提交入库、结果确定的 CI 自动化代码,Puppeteer 依然是更好的选择。不少开发者两个都在用:Puppeteer 跑流水线,ego (lite) 处理那些他们一直没抽出时间写脚本的事。

这三个都是以脚本为核心的自动化库,playwright vs puppeteer 或者 puppeteer vs selenium 该选哪个,通常取决于你测的是什么、用什么语言。如果你在 Node 里只做 Chrome,想要一个精简的 DevTools 级 API,Puppeteer 更合适。对于新建的测试套件,Playwright 通常更占优势:多浏览器覆盖、自动等待,以及更强的测试运行器。Selenium vs Puppeteer 则更接近,selenium 和 puppeteer 哪个更好,往往取决于语言和 CI 环境,而不是纯粹的能力差异:Selenium 的优势在于 W3C WebDriver 标准,以及最广泛的语言和老旧浏览器支持,代价是更多的样板代码。ego (lite) 完全不参与这场争论,因为它是一款 agent browser:浏览这件事由 AI Agent 来做,而不是靠这三者中的任何一个去写脚本。这两个方向的对比详情,可参见我们的 ego (lite) vs Playwright 和 ego (lite) vs Selenium 页面。

围绕 Puppeteer 搭建的 MCP 包装层能让 Agent 获得浏览器访问能力,但每个操作都是一次独立的工具往返,要经过模型,而且底层浏览器依然是空白 profile。ego (lite) 用 JavaScript 打包操作,并继承你真实的登录态,所以按任务计算的 Token 成本一直很低,Agent 也永远不会撞上那种包装层过不去的 SSO 高墙。

选择器绑定的是页面精确的标记结构:类名、DOM 顺序、ARIA 结构。目标网站的一次改版、一次 A/B 测试,或者一次框架升级,都会改变这些标记,你的 waitForSelector 调用就会开始超时,还往往是断断续续地出现,这正是 Puppeteer 自己的 issue tracker 里反复被报告的那种抖动问题。ego (lite) 的 Agent 根本不依赖固定的选择器。它每次都把当前页面读成一份 Snapshot,再根据实际看到的内容去推理,所以改版对它来说只是下一次运行需要适应的变化,而不是会让脚本崩掉的东西。

不需要。把 Puppeteer 从单个脚本扩展开来,通常意味着要搭一套池(puppeteer-cluster、generic-pool,或者自己写队列)来限制并发,避免 Chrome 的内存占用失控。ego (lite) 的 Space 都运行在你已经打开的同一个浏览器进程里,所以同时跑五个任务,不代表要照看五个浏览器实例。

可以。任何会写代码的 CLI Agent 都能通过 MIT 许可的 ego-browser shell 接入:Claude Code、Codex、Cursor、Gemini CLI、OpenCode,以及你自己搭建的内部 Agent。

是的。免费,无需订阅,而且 ego-browser shell 是开源的。