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

The Best Selenium Alternative

Selenium coordinates browsers through WebDriver. ego (lite) gives your agent a real browser to use alongside you.

ego (lite) skips the driver and Grid while keeping the browser state you explicitly provision. Compact Snapshots and batched actions reduce model turns and token use.

Trusted by developers from
GoogleAmazonShopifyTikTokHarvardStanfordUSCUCLA

Why ego lite is better than Selenium

Selenium is the right abstraction for a maintained cross-browser test system. ego (lite) is the right abstraction when the browser itself is the work surface: let an agent search, investigate, extract, fill, test, or operate an authorized site in a visible local Space while you keep browsing.

Fewer retries, clearer recovery

Selenium users know the loop: tune an explicit wait, hit a stale element, add a retry, then chase another "element is not clickable" failure after the next UI release.

Run /ego-browser and your coding agent reads a current Snapshot, acts on stable @N references, and checks the page again after a meaningful change. The recovery loop is visible instead of hidden in brittle waits, so interactive work is easier to diagnose. For an app you own, pair accessible names or purposeful test IDs with the live snapshot; for a third-party site, fail closed when more than one target matches rather than guessing a CSS or XPath selector.

Parallel multitasking, execute faster

Running two browser chores at once in Selenium means either juggling parallel driver sessions yourself or standing up Grid. That is the right machinery for a nightly cross-browser matrix, and far too much for three things you want done before lunch.

In ego lite, Spaces can separate task work inside the browser, and several can run concurrently when the machine and account limits allow it. A coding agent controls each through /ego-browser; the window and session boundaries depend on the profile configuration. For social platforms, keep research read-only, narrow, cached, and attributable; use an export or approved API when available, and require a person for likes, follows, messages, outreach, or any account change.

No more back and forth Cost fewer tokens

Raw Selenium scripts spend no tokens because there is no model in the loop. Wrap WebDriver for an agent and the bill shows up fast: Selenium still has no official MCP server, and community servers often dump a heavy DOM tree into the model's context.

Run /ego-browser and your coding agent can batch several actions in a few lines of JavaScript per turn to control ego lite. In our recorded examples, focused Snapshots were roughly 200 to 400 tokens, but output size varies with the page and extraction. This gives a manual tester a supervised, low-code path for bounded work, but it does not replace assertions, review, or an approved RPA integration for a non-browser legacy system.

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 · mcp-selenium
>Add the first product to the cart, then check checkout loads
selenium - start_browser (MCP)(browser: "chrome")
Result
Browser started with session_id 4f1c…
1.6k tokens sent so far
Fresh Chrome, no cookies and no logins. Loading the storefront.
selenium - navigate (MCP)(url: "localhost:3000")
Result
Navigated to localhost:3000
3.1k tokens sent so far
Nothing came back about the page itself. Reading the accessibility resource to find the first product.
selenium - accessibility://current
Accessibility tree
… +214 lines (ctrl+o to expand)
4.9k tokens sent so far
First product card is .product-card. Clicking it.
selenium - interact (MCP)(action: "click", by: "css", value: ".product-card")
Result
Clicked element
6.8k tokens sent so far
Product page is up, so everything I just read is out of date. Reading the tree again.
selenium - accessibility://current
Accessibility tree
… +206 lines (ctrl+o to expand)
9.2k tokens sent so far
Add to cart is .add-to-cart.
selenium - interact (MCP)(action: "click", by: "css", value: ".add-to-cart")
Result
Clicked element
11.2k tokens sent so far
Added. Opening checkout, then I still have to confirm it loaded.
selenium - interact (MCP)(action: "click", by: "css", value: "a[href='/checkout']")
Result
Clicked element
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: Selenium through a community MCP server, 7 round trips, tokens climb to 13.6k.

Logged-in state, agent-native

Selenium cannot attach to the Chrome profile you are already using. Point ChromeDriver at it while Chrome is open and you get "user data directory is already in use."

Built on Chromium, ego lite can import selected Chrome state during onboarding. When your coding agent runs /ego-browser, it can use the browser state you explicitly provision, but SSO, 2FA, session expiry, and CAPTCHA challenges can still interrupt a task. Never put passwords, OTPs, or recovery codes in a script, and pause for the account owner when MFA or a CAPTCHA appears. A Selenium or ego lite browser may still receive a 403 or a provider challenge, so use permitted data, reasonable rates, and an approved API or export instead of stealth patches, proxy rotation, or circumvention.

ego lite Chrome profile import: onboarding for selected browser state

ego lite vs Selenium

Feature comparison between ego lite and Selenium.
Featureego liteSelenium
How work gets doneDescribe the task; coding agent controls ego lite via /ego-browserWrite WebDriver scripts in Java, Python, C#, Ruby, or JavaScript
Waiting and flakinessCoding agent reads Snapshots and acts via /ego-browserExplicit waits, stale-element handling, retry counts
Reuses your real Chrome loginsEligible browser state can be imported during onboardingNo by default; persistent profiles require explicit lifecycle management
SetupInstall ego lite, run /ego-browser in your agentLanguage project plus a driver per browser
Works with AI agentsBuilt for them via /ego-browserNo official MCP; community servers like mcp-selenium
Parallel tasksSpaces isolate tasks inside one visible browserGrid nodes or parallel driver sessions you operate
Cross-browser reachChromium onlyChrome, Edge, Firefox, and Safari via WebDriver
Anti-bot and CAPTCHA handlingNo bypass; use permitted data, reasonable rates, and human review for challengesWebDriver fingerprints and site controls remain; bypass scripts are not a reliable or compliant fix
Session and MFA safetyProvision a separate browser state; pause for OTP, MFA, and sensitive actionsPersistent profiles require lifecycle management; never automate around account verification
Locator maintenanceLive snapshots and semantic targets; review ambiguous changesCSS/XPath and explicit waits maintained in code
Legacy browser surfacesBrowser-based legacy flows in isolated Spaces, with confirmation for risky stepsWebDriver works when the legacy app exposes a supported browser surface
Low-code workflowDescribe bounded tasks in plain language, then supervise the runCode-first bindings and test framework setup
Daily-use browserYes. You browse in your Space, agents work in theirsNo, an automation library for tests
Reusable skills (coming soon)Distills successful runs into reusable skills for repeated tasks (limited beta)No built-in equivalent
PriceFree browser download; verify current termsFree software, Apache-2.0 (Grid capacity is your cost)
Last updated Aug 30, 2026

Make it a seamless transition

Don't port your WebDriver suite. Move browser work you want an agent to handle directly, including search, research, extraction, forms, testing, and logged-in workflows outside a regression suite.

  1. Download ego (lite)

    Download ego lite and review the onboarding option for importing selected Chrome state. Verify which sessions and extensions are eligible before granting agent access.

  2. Run your first task with /ego-browser

    Paste into your agent

    /ego-browser Open ego.app and list the text of every button on the page

    Paste one sentence into Claude Code, Codex, or Cursor and hit enter. No driver binary, no Grid, no MCP config.

  3. Watch it work
    ego lite Spaces overview with four browser tasks running side by side: Claude Code tracking Apple stock on Yahoo Finance, Codex filtering cars by year on cars.com, Hermes finishing a SaaS back-office task, a user scraping X, and a hand tapping + to open another Space

    The task runs in its own Space when configured that way. Watch live or take over when supported, and verify the result in the agent's CLI; session expiry and site prompts still need review.

Keep Selenium for cross-browser regression in CI.

When to use each tool

Choose ego (lite) when

  • Your tasks touch logged-in sites: dashboards, admin panels, anything behind SSO or 2FA.
  • Browser work you want an agent to handle directly instead of encoding in a regression suite.
  • You want several tasks running in parallel Spaces without standing up Grid.
  • You care about per-task token cost. Snapshot input plus batched JavaScript beats one MCP call per action.

Choose Selenium when

  • You need Firefox and Safari coverage. ego lite is Chromium only.
  • Your team writes tests in Java, Python, C#, Ruby, or JavaScript with official WebDriver bindings.
  • You run enterprise regression on Selenium Grid.
  • You want the WebDriver standard, Apache-2.0 governance, and decades of QA answers on Stack Overflow.

Give your agent a real browser

Free, runs on your Mac, imports your Chrome profile in one click. Works with Claude Code, Codex, Cursor, and any CLI agent that writes code.

Still weighing your options? See how Selenium compares with the other tools in the same space.

FAQ

Selenium is the industry's longest-running browser automation project and the reference WebDriver implementation, with bindings for Java, Python, C#, Ruby, and JavaScript plus Grid for distributed cross-browser runs. It is excellent for QA regression. Searches like Selenium vs Playwright or Selenium vs Puppeteer usually compare test frameworks; this page is about what changes when an AI agent, not a script, browses inside a browser you are already signed into.

Yes for agent-driven browser work: describe search, research, extraction, forms, testing, or logged-in workflows without a WebDriver script or Grid. No for cross-browser regression suites and Selenium Grid pipelines in CI. Keep Selenium for committed tests and use ego (lite) for the browser work around them.

Selenium was built for deterministic test scripts, not LLM-driven loops. Wrapping WebDriver for an agent means heavy DOM dumps or community MCP servers like mcp-selenium, with no official Selenium MCP from the project. ego lite is built for agents from the start: run /ego-browser and your coding agent controls ego lite with Snapshot input and batched JavaScript.

There is no official Selenium MCP server. Maintainers have noted that interactive LLM sessions saturate context quickly. Community servers like mcp-selenium exist but often re-read a heavy accessibility tree on every page change. ego lite skips MCP entirely: run /ego-browser in Claude Code, Codex, or Cursor.

Not the profile Chrome is already using. Selenium's issue tracker documents that ChromeDriver cannot attach to a live default profile while Chrome is open. ego lite can import eligible browser state during onboarding, but each task still depends on session expiry, MFA, site policy, and the permissions granted to that profile.

Playwright vs Selenium usually comes down to test engineering. Playwright is a modern framework with auto-waiting and strong debugging. Selenium is the W3C WebDriver standard with five official languages and Grid for cross-browser matrices. Both start from a blank browser. If an agent is doing the browsing, the bigger question is whether it can reuse your logins. See ego lite vs Playwright and ego lite vs Puppeteer.

For test automation, Selenium vs Puppeteer depends on language and browser reach. Puppeteer is a lean Node.js library focused on Chrome. Selenium is cross-browser and multi-language with Grid. For selenium puppeteer searches comparing AI agent paths, both still mean writing and maintaining scripts. ego lite removes that layer for logged-in agent work.

Neither is designed as an agent browser out of the box. Teams usually add Playwright MCP or a community Selenium MCP wrapper, which still means one tool call per action and a fresh or manually configured profile. ego lite is the agent-native path: run /ego-browser and your coding agent controls ego lite with fewer tokens per whole task.

navigator.webdriver and other automation signals are part of the WebDriver ecosystem, so a site may challenge a Selenium session. ego lite is not a stealth tool and does not bypass Cloudflare, Akamai, CAPTCHA, or other access controls. Use an approved API or public data, keep rates reasonable, and stop for human review when a challenge appears.

Do not automate a CAPTCHA or attempt to evade it. Pause the run and have an authorized person complete the challenge, or use the site's documented API, export, or automation allowance. The same rule applies to ego lite. A browser profile can preserve a legitimate session, but it cannot grant permission that the site has not given you.

There is no guaranteed workaround. Prefer public pages, platform APIs, or exports; collect the minimum data at a reasonable rate; cache results; and follow each platform's terms. Do not automate likes, follows, messages, outreach, or account changes without explicit human approval. ego lite can isolate permitted, read-only research in a Space, but it is not an anti-ban service.

Use a dedicated, access-controlled persistent profile only where your organization and the site permit it. Do not point Selenium at the Chrome profile someone is actively using, and never put passwords, OTPs, or recovery codes in source code. For supervised agent work, ego lite imports a copy of browser state during onboarding and pauses when MFA or a new verification step needs a person.

The right choice depends on the job. Keep Selenium or another test framework for assertions and cross-browser regression, and use semantic locators or test IDs that your team owns. For interactive, agent-driven work across hydrated pages, shadow DOM, and changing layouts, ego lite lets the agent inspect the current rendered surface and recover visibly instead of relying on a frozen XPath script.

ego lite supports supervised, plain-language browser tasks in an isolated Space, so a manual tester can describe a bounded flow and take over for judgment calls. It does not replace a coded regression suite, assertions, approvals, or accessibility testing. Selenium remains the better fit when the team needs repeatable code in CI.

If the system exposes a browser UI, use browser automation with explicit checkpoints and keep destructive, financial, or identity actions human-approved. If it is a desktop or terminal application with no browser surface, DOM tools such as Selenium and ego lite are the wrong abstraction. Use an approved RPA or accessibility integration and log each step.

A generator can suggest a locator, but no CSS or XPath is permanently stable across redesigns. Prefer accessible names and intentional test IDs in applications you own, keep selectors short and meaningful, and fail closed when multiple elements match. ego lite uses the live page snapshot to choose a semantic target at run time, while still benefiting from the same good markup contracts.

ego lite is available as a free local browser download, with its own system and supported-agent requirements. It does not require ChromeDriver, GeckoDriver, or Grid for the documented /ego-browser flow. Check the current macOS and agent support before deployment, and account for model, host, and maintenance costs.