ego (lite) is just a browser, ego is your personal agent across devices.
Join waitlist
中文

快速开始

5 分钟装好 ego lite,从你的 Agent CLI 跑出第一个浏览器任务。

llms.txt

系统要求

  • macOS 12.0 或更高版本
  • 任意一款 Agent CLI:Claude Code、OpenAI Codex、Cursor、Continue、Gemini CLI、Hermes Agent、OpenClaw、Opencode

安装

两种方式任选其一。

下载 macOS 安装包

双击安装。首次启动时,ego lite 会扫描机器上已安装的 Agent CLI,把 ego-browser skill 写入它们的 skill 目录。

通过命令行安装

在任意 Agent CLI 的终端里运行:

curl -fsSL https://lite.ego.app/install.sh | sh

这条命令会安装 ego lite 浏览器、ego-browser helper,并把 skill 注册到机器上所有 Agent CLI 的 skill 目录。

首次启动时 ego lite 会问你一件事:是否迁移浏览器数据?然后选择对应的浏览器进行确认,登录态、cookie、扩展、Profile 都会跟着过来,Agent 可以直接复用。

你的第一个任务

在 Agent CLI 里输入 / 唤出 skill 选择器,选 /ego-browser,然后用自然语言描述任务:

/ego-browser follow @ego_agent on x.com for me

Agent 加载 skill 上下文后,会生成下面这段代码并执行:

ego-browser nodejs <<'EOF'
await useOrCreateTaskSpace('follow-ego-agent')
await openOrReuseTab('https://x.com/ego_agent', { wait: true })

await snapshotText()
// 返回的是 @ego_agent 的 profile 页,几百个 ref 的 SPA。
// Follow 按钮的 accessible name 是 "Follow @ego_agent",本次执行中 ref 为 @92。

await click('@92')
await wait(3)  // 留 3 秒给 X 提交 follow 并重新渲染

await snapshotText()
// click 之后按钮 label 从 "Follow @ego_agent" 变成 "Following @ego_agent",ref 不变。

cliLog('Done. @ego_agent followed.')
EOF

这段代码里有两点值得注意:

  • Agent 操作的是 snapshotText() 返回的 ref(@92),不是 CSS 选择器。ref 对应元素被人感知的样子(accessible name 就是 "Follow @ego_agent"),X 怎么轮换 class name 都不会失效。ref 编号按快照分配,你实际看到的数字会跟示例不一样。
  • Agent 用的是从你 Chrome 迁移过来的 X 登录态。不用重新登录、粘 cookie 或走 OAuth。第一次拍 snapshot 时,Follow 按钮就已经是可点击状态。

观察 Agent 工作

任务跑起来后,打开 ego lite,点击侧栏的 Space 面板。当前正在运行的 Space 会高亮显示,点进去就能看 Agent 实时操作:跳转、滚动、拍快照、提取数据。

Space 视图底部有两个按钮:

  • 接管 (Take over):从 Agent 手里把当前标签接过来,自己操作。
  • 停止 (Stop):立刻终止任务。

操作页面

click 只是 ref 操作的一种。filltypepressKeyhoverselect 用法都一样:拍一次 snapshotText(),挑出目标 ref,对它执行动作。下面是一个登录流程的例子:

ego-browser nodejs <<'EOF'
await useOrCreateTaskSpace('example-login')
await openOrReuseTab('https://example.com/login', { wait: true })

await snapshotText()
// 返回内容大致如下:
//   @3 [input type="email"]    placeholder="Email"
//   @4 [input type="password"] placeholder="Password"
//   @5 [button type="submit"]  "Continue"

await fill('@3', 'user@example.com')
await fill('@4', 'your-password')
await click('@5')
await waitForLoad()

const tab = await currentTab()
cliLog('Logged in:', tab.url)
EOF

如果你在 onboarding 时迁移了 Chrome 数据,且 Chrome 本身已经登过这个站点,openOrReuseTab 会直接把 Agent 带到登录后的页面。snapshot 返回 dashboard 而不是登录表单,Agent 可以跳过填表直接执行下一步。

并行跑多个任务

每个 Space 由 useOrCreateTaskSpace 里的名字命名,不同名字之间互不冲突,可以同时跑:

# Claude Code 在一个终端里
ego-browser nodejs <<'EOF'
await useOrCreateTaskSpace('leads-enrichment')
await openOrReuseTab('https://www.linkedin.com', { wait: true })
EOF
# 同时,Codex 在另一个终端里
ego-browser nodejs <<'EOF'
await useOrCreateTaskSpace('qa-regression')
await openOrReuseTab('https://staging.example.com', { wait: true })
EOF

下一步