ego (lite) 只是一款浏览器;ego 才是你跨设备的个人 Agent。
加入候补名单
面向编程 Agent 的 AI 浏览器测试

用你的 AI Agent 自动并行运行大量浏览器测试

Playwright MCP 每次只能通过一次工具调用来驱动浏览器,速度慢且消耗大量 Token。现在,Claude Code 或 Codex 只需几行代码,就能在 ego (lite) 中运行完整测试:速度提升 2.4 倍,还能并行执行多个测试,每个测试都在独立的 Space 中运行。

下载 Mac 版(是的,免费)
开发者用户来自
GoogleTikTokHarvardStanfordUSCUCLA

开口说一句,就能跑浏览器测试

比如我让 codex 检查这个电商网站有没有 bug。Codex 会跑完整个测试,把 bug 都修好,再告诉我结果。我唯一要做的就是刷 Tiktok,看它干活。

视觉 QA、修复、验证

同一个页面在屏幕上从错乱变回正常

产品页面显示异常。 Agent 会在 ego (lite) 中检查页面、修复源代码中的 CSS,打开的页面随即会在屏幕上正确地重新渲染。

用 ego (lite) 极速运行浏览器测试

传统的浏览器测试通常使用 Playwright MCP 或 Chrome DevTools MCP,一次只执行一个工具调用;每一步都要等待模型读取上一步结果,因此既慢又昂贵。现在,Agent 可以借助 ego (lite),用一段 JavaScript 一次执行多个步骤,完成得更快,也消耗更少的 Token。

快 2.4 倍
同一个任务、同一个 Agent(运行 Opus 4.8 的 Claude Code):ego (lite) 约 18 秒完成,只需 2 轮模型交互;Playwright MCP 约需 43 秒和 9 轮交互。任务越复杂,差距越明显。
ego (lite)Playwright MCPChrome DevTools MCP
Agent 如何驱动它通过 /ego-browser Skill外部 MCP 服务器,每个操作都要一次工具调用。外部 MCP 服务器,每个操作都要一次工具调用。
设置零配置,任何 Agent 都能用。要 npx 安装、配置启动模式,还常碰到启动失败和找不到 Chrome 的错误。Remote debugging, user-data-dir, cross-host setup.
Token 使用量低。没有 MCP 工具 schema 的开销,只有 Agent 主动记录的内容会进入上下文:每一轮只取一次快照,而不是每个操作后都取。高。用户报告 Token 消耗增长至 6 倍,并出现 20 万 Token 的上下文溢出。高。截图非常消耗 Token。
登录状态你自己的已登录浏览器,登录状态和你的 Chrome 一致默认是隔离浏览器;要带上登录状态,得用扩展模式或配置 storage-state。可以附加,但会占用你正在使用的标签页。
iframe / Shadow DOM / SDK 小部件它的页面快照直接在渲染引擎里生成,所以这些结构内部它都读得到。辅助功能快照存在 iframe 盲点。原始 DOM,你自己处理。
控制台 / 网络 / 跟踪控制台、网络和跟踪数据,直接读取自 Chrome DevTools。控制台、网络、屏幕截图。最深入:Lighthouse、性能、内存。
定位器稳定性锚定在语义标签上,类名改了也不受影响。基于 ref / 无障碍信息定位,比较稳定。原始 DOM 选择器。
验证码 / 机器人检测真实的真人会话,最不容易触发检测。独立 / 无头浏览器,经常被网站标记。附加到现有浏览器时表现更好,但会占用你的标签页。
并行任务天生支持通过 Spaces 同时运行多个任务。每个服务器只有一个会话;要并行就得自己管理多个隔离实例。单实例,标签页一多就崩溃。

麻烦从来不在浏览器,而在中间那一层。

在开发者论坛和问题追踪平台上,大家最常抱怨的是 MCP——它位于 Agent 与浏览器之间,容易出现连接中断、审批堆积、会话失效和 Token 消耗激增等问题。ego (lite) 已经把一切配置好,不再需要处理这些莫名其妙的错误。

用 Playwright MCP 会遇到什么

浏览器本身没问题,出问题的是到它的连接。

  • 连接: 工具明明列出来了,Agent 却不去调用;任务卡在“等待批准”上不动;同一个服务器在不同客户端里的表现还不一样
  • 审批: 每次工具调用都要弹窗一次,一个任务往往要弹 10 到 30 次,就算开了“全部运行”也一样
  • 可靠性: 任务跑到一半就停,或者页面明明已经跳转成功,却仍然报超时
还没开始测试,先跟中间层较劲
ego (lite)

没有中间层:ego (lite) 本身就是浏览器

  • 从设计上就稳定: Agent 直接和自己掌控的本地浏览器通信,中间没有会掉线或卡住的 MCP 传输层
  • 审批更少: 一趟跑完多个步骤,而不是每个操作一次工具调用
  • 可预测: 任何 AI Agent 即插即用,每次用法都一样
下载后让你的 Agent 运行测试

不写测试脚本,不维护选择器,说一句要检查什么就行。

使用 Playwright、Cypress 或 Selenium 测试时,你需要编写测试并维护选择器;类名一改或布局一调整,测试就可能失效。ego (lite) 接收自然语言检查要求,并根据元素的实际含义来定位,因此 UI 变化不会轻易破坏测试。

手写 Playwright / Cypress / Selenium

测试脚本你来写,选择器你来维护

  • 手写并用版本管理维护 .spec ,你想覆盖的每个流程都得来一份
  • 写死类似 page.click(".btn-x7f3") 这样的选择器,下次 UI 一改就失效
  • 得自己加等待和重试,来对付时好时坏的测试
  • 要测登录后的页面,得先搭登录自动化或准备 storage-state 文件
  • 每次改版后都要重跑并修补测试套件
要写一大堆代码,还得时刻伺候选择器
ego (lite)

说一句要检查什么就行

  • 不用写测试脚本:一句话告诉 Agent 要检查什么
  • 按元素的语义而非 CSS 类名定位,改名或调整布局都不会让它失效
  • 智能等待自动处理异步内容,不用手写 sleep
  • 无需登录自动化,直接测登录后的页面
  • 需要视觉回归测试吗?Agent 对比截图
免费。只要告诉你的 Agent 检查什么

如果需要在 CI 中无人值守运行的版本化无头测试套件,或要跨 Firefox 和 WebKit 测试, 就继续用 Playwright。ego (lite) 则是在开发过程中快速、无需脚本的内部迭代工具。

AI Agent 如何操控 ego (lite)

Agent 通过编写一段完整的 JavaScript 程序来驱动浏览器。一次调用打包全部步骤:打开商店、添加商品、等待结账页面,然后在浏览器里按顺序执行。Agent 不必等一个操作返回,再发下一个。

Claude Code
>/ego-browser Open localhost:3000, add the first product to the cart, and check that checkout loads
Bash(
ego-browser nodejs <<'EOF' await openOrReuseTab('http://localhost:3000', { wait: true }) cliLog('opened localhost:3000 — storefront rendered') await click('a[href^="/product/"]') await waitForElement('button[data-testid="add-to-cart"]') await click('button[data-testid="add-to-cart"]') cliLog('added first product to cart') await openOrReuseTab('http://localhost:3000/checkout', { wait: true }) await waitForElement('form#payment') cliLog(`checkout loaded — ${(await pageInfo()).url}`) EOF
)
⎿ 运行 ego-browser 走一遍结账流程
输出:
[t=1240ms] opened localhost:3000 — storefront rendered
[t=2870ms] added first product to cart
[t=4480ms] checkout loaded — http://localhost:3000/checkout
完成。结账流程一路正常:店面、加入购物车和支付表单全部正常渲染。
─── 6s · ↑ 1.9k Token · ego-browser 运行时 ───

那些常让浏览器测试时好时坏的因素,它都能应对

我们测试了开发者公认最难自动化的场景,Agent 借助 ego (lite) 全部顺利完成。它的语义 Snapshot 直接在 Chromium 渲染引擎内部生成,因此可以看见注入脚本无法访问的 Shadow Root 和跨文档 iframe。

Shadow DOM

Acts inside web-component shadow roots, where injected scripts go blind.

Payment iframes

Fills card fields inside cross-document iframes, like a Stripe checkout.

Custom date pickers

Picks a date range in a custom calendar with no test ids.

Drag and drop

Real HTML5 drag: moves a kanban card, the board follows.

Infinite scroll

Scrolls a lazy feed until every item is loaded, no hand-tuned waits.

Paginated tables

Walks every page of an admin table and pulls each row.

Conditional modals

Cookie banners and dialogs that pop up mid-flow get handled, not tripped over.

Autocomplete

Types an address, waits for the suggestions, picks the right one.

点击落在被遮挡或被禁用的按钮上时,会被记为失败而不是误判通过,和正规测试框架的处理方式一致。

已登录的浏览器,依然由你掌控

把 Agent 放进你已登录的浏览器里,确实值得先停下来想想。下面是它的边界。

它在自己的 Space 里工作

Agent 在浏览器内独立的工作区中运行,共享你的登录状态,但不会碰你的标签页和窗口。

每一步都看得见

Mac 上真实可见的浏览器,而不是藏在后台的无头进程。你可以实时旁观运行过程,随时从 Agent 的 CLI 里中断。

任何数据都不会离开你的 Mac

历史记录、Cookie 和会话都保留在你的电脑上,ego (lite) 不会上传这些数据。

如果流程有真实副作用,比如会真扣款的结账、会真删除的操作,就把 Agent 指向 localhost 或预发布环境, 就像你手动测试那样.

使用步骤

三步完成 Web 应用测试:把 Agent 指向 localhost 或任意 URL,说清要检查什么,再读回失败结果。

1下载 ego (lite)

一款你日常使用的 Chromium 浏览器。一键导入 Chrome 登录状态,Agent 就能以你的身份测试。

2告诉你的 AI Agent 要检查什么

该让它测什么?

/ego-browser 打开 localhost:3000,走一遍结账流程,告诉我哪里坏了

输入 /ego-browser 然后用你的 Agent 听得懂的任何语言,说一句要检查什么就行。

3读回失败结果
页面结果
/checkout好的
/product/gift-card控制台错误
/product/camera图片 404

每个出问题的页面都会附上能解释原因的控制台错误或失败请求,而不只是一个通过或失败。

ego (lite) 适用与不适用的场景

为快速的开发内循环而生:边开发边重现、调试、验证。

ego (lite) 擅长什么

开发内循环,跑在真实浏览器里。

  • 在真实、已登录的浏览器里重现并调试 bug
  • 无需登录自动化,直接测试登录后的流程
  • 读取控制台错误、失败的请求和页面状态
  • 在多个页面上并行做探索性检查
  • 在发现 bug 的同一会话里验证修复

什么时候该用 Playwright

边界说得清楚明白。

  • 在 CI 中无人值守运行的无头回归测试套件(ego (lite) 是一款有界面的 Mac 浏览器)
  • 跨 Firefox 和 WebKit 测试(ego (lite) 基于 Chromium)
  • 一套由你提交、由你维护的版本化确定性测试套件

给你的 Agent 一个真正的浏览器来跑测试

下载 Mac 版 ego (lite)

FAQ

不需要。你带上已经在用的 AI Agent,比如 Claude Code、OpenAI Codex 或 Cursor,用大白话告诉它要检查什么。浏览器操作步骤由 Agent 来写、来跑。没有要维护的 .spec 文件,也不用手写 CSS 选择器,因为 ego (lite) 会从页面的语义快照中定位元素。

Playwright MCP 是一个 MCP 服务器,Agent 的每个操作都需要一次工具调用;15 个步骤就意味着模型往返 15 次,速度慢且 Token 消耗高。ego (lite) 本身就是浏览器:Agent 在真实登录的浏览器中编写一小段 JavaScript,一次执行多个步骤。我们使用 Opus 4.8 在 Claude Code 中测试同一项任务时,ego (lite) 约 18 秒完成,只需 2 次模型往返;Playwright MCP 则约需 43 秒和 9 次往返。ego (lite) 还可以并行运行多个测试任务,每个任务都位于自己的 Space 中,这是单个 MCP 浏览器无法实现的。

可以,而且这正是它的强项。ego (lite) 就是你日常用的浏览器,本来就处于登录状态,Agent 可以直接测试仪表盘、内部管理后台和账户流程,你不用先搭一套登录自动化。它表现得就像真实的真人会话,比无头或新启动的浏览器更不容易触发验证码或机器人检测。

每个任务都在自己的 Space 里运行。Space 是同一浏览器内的独立工作区,就像同一份浏览器配置文件多开的几个窗口。Spaces 共享你的登录状态,但各自有自己的页面,所以并行任务既不会互相干扰,也不会碰你正在用的标签页。在网站看来,这只是一个已登录用户开了几个标签页。如果你的应用限制每个账户只能有一个活跃会话,就把这些流程逐个运行,或者改用测试账户。

可以,具体方式是:Agent 先截一张基准截图,再截一张新的,逐像素对比,然后告诉你哪里变了、变成了什么样。做对比的是你浏览器里的 Agent,不用再单独搭一套视觉测试产品,也就不需要接 Percy 或 Chromatic。如果你要的是带审核流程和 CI 门禁的托管基线服务,专门的视觉测试工具仍然更合适。

目前不行。ego (lite) 是 Mac 上一个真实可见的浏览器,为开发过程中的测试而生:重现 bug、调试、验证修复、批量检查页面。至于在 CI 中无人值守运行的无头测试套件,或跨 Firefox 和 WebKit 的测试,请继续用你的 Playwright 测试套件。ego (lite) 是快速的开发内循环,不是 CI 运行器。

真实用户会撞上的功能和运行时问题:走不通的流程、点了没反应的按钮、未捕获的 JavaScript 错误、失败的网络请求、控制台报错、算错的数值。Agent 会读取页面状态,加上控制台和网络信息,所以它能报告哪里失败、因何失败,而不只是给个红绿结果。

Agent 在自己的 Space 里工作,不会动你的标签页和窗口;一切都发生在一个真实可见的浏览器窗口里,你可以随时旁观,也随时能从 Agent 的 CLI 里中断它。你的浏览数据留在自己的电脑上:ego (lite) 不会上传你的历史记录、Cookie 或会话。对于有真实副作用的流程(比如会真扣款的结账),就像你手动测试那样,把 Agent 指向 localhost 或预发布环境。如果你接入了外部 Agent 或模型服务商,其数据政策以对方为准。