ego (lite) is just a browser, ego is your personal agent across devices.
Join waitlist
Русский

Быстрый старт

Установите ego lite за пять минут и запустите первую браузерную задачу из своего Agent CLI.

llms.txt

Установите ego lite за пять минут и запустите первую браузерную задачу из своего Agent CLI.

Системные требования

  • macOS 12.0 или новее
  • Любой из Agent CLI: Claude Code, OpenAI Codex, Cursor, Continue, Gemini CLI, Hermes Agent, OpenClaw, Opencode

Установка

Выберите удобный способ.

Скачать установщик для macOS

Двойной клик — и устанавливаем. При первом запуске ego lite сканирует машину на наличие установленных Agent CLI и записывает скилл ego-browser в каталог скиллов каждой из них.

Установка из командной строки

Запустите в терминале любой Agent CLI:

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

Команда устанавливает браузер ego lite и helper ego-browser, а заодно регистрирует скилл во всех Agent CLI на вашей машине.

При первом запуске ego lite задаст один вопрос: импортировать данные браузера? Затем выберите соответствующий браузер для подтверждения, и логины, cookies, расширения и Profile поедут с вами — агент сможет их использовать сразу.

Первая задача

В Agent CLI нажмите /, чтобы открыть выбор скилла, выберите /ego-browser и опишите задачу на естественном языке:

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

После того как контекст скилла подгружен, агент генерирует и выполняет следующий код:

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

await snapshotText()
// Возвращается страница профиля @ego_agent — SPA с сотнями ref.
// У кнопки Follow accessible name "Follow @ego_agent". В этом запуске ей соответствует ref @92.

await click('@92')
await wait(3)  // Три секунды на то, чтобы X закоммитил подписку и перерисовал страницу

await snapshotText()
// После клика label той же кнопки меняется с "Follow @ego_agent" на "Following @ego_agent". Ref остаётся прежним.

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

В этом коде два момента стоит подсветить:

  • Агент действует по ref из snapshotText() (@92), а не по CSS-селектору. Ref отражает то, как элемент воспринимает человек (accessible name кнопки действительно "Follow @ego_agent"), поэтому любые ротации class name на X ему не страшны. Ref присваиваются на каждый snapshot, поэтому реальный номер у вас будет другим.
  • Агент использует логин X, перенесённый из вашего Chrome. Не нужны повторный логин, копипаста cookies или OAuth-флоу. Уже на первом снимке кнопка Follow в кликабельном состоянии — потому что вы уже залогинены.

Наблюдать за работой агента

Когда задача стартует, откройте ego lite и кликните по панели Space в боковом меню. Активный Space подсвечивается; зайдите внутрь, чтобы видеть работу агента в реальном времени: переходы, скролл, snapshot, извлечение данных.

Внизу окна Space две кнопки:

  • Перехватить (Take over) — забрать текущую вкладку у агента и работать с ней самому.
  • Остановить (Stop) — немедленно завершить задачу.

Управление страницей

click — лишь одна из ref-операций. fill, type, pressKey, hover, select работают по той же схеме: сделать snapshot, выбрать нужный ref, выполнить действие. Вот пример логина:

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

await snapshotText()
// Snapshot выглядит примерно так:
//   @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

Если во время онбординга вы импортировали данные из Chrome и Chrome уже был залогинен на этом сайте, openOrReuseTab сразу отведёт агента на залогиненную страницу. В snapshot вернётся дашборд вместо формы входа, и агент пропустит этап заполнения.

Несколько задач параллельно

Каждый 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

Что дальше