Developer tools#Browser automation

e2e: an agent-driven end-to-end testing framework for web and mobile

TesterArmy’s Apache-2.0 e2e framework mixes plain-English agent steps with Playwright-style assertions, and replays passing steps without the model.

Project facts

GitHub Ecosystem
Repositorygithub.com/tester-army/e2e
License
Apache-2.0
Language
TypeScript
Stars
6,324
Data checked
2026-10-07

Snapshot figures reflect the check date and may change over time.

Anyone writing end-to-end tests ends up on one side of the same trade-off. Scripted tests with hard-coded selectors break when a page is reworked; fully agentic tests can finish a flow, but when they pass it is hard to say what they actually checked. e2e is a TypeScript testing framework that TesterArmy, an AI testing platform, open-sourced on October 1, and it puts both styles in one test: a plain-English step where describing the goal is easier, and role-based locators and assertions where you need precision. The repo was created on July 22 and has 6,324 stars; a WeChat Channels video from 「表格流电商」 on October 6 claimed it gained 1,430 stars in a single day, a figure we haven’t verified independently.

Core features

  • Agent steps beside exact checks: agent.act() carries out a goal you describe, agent.assert() checks a condition in plain language, and agent.extract() reads data off the screen. Everything else uses Playwright-style locators and auto-retrying assertions, so the report shows what was verified exactly.
  • Record and replay: once a later assertion verifies an agent step, its actions are cached and later runs replay them without a model call, at scripted-test speed. If the UI changes enough that replay fails, the step goes back to the live agent to find a new path.
  • One API for web and mobile: browsers run through Playwright, iOS simulators and Android emulators through agent-device, with the same fixtures, locators and assertions everywhere.
  • Bring your own model: any AI SDK model works, including local ones, or you can sign in with a ChatGPT Plus or Pro, GitHub Copilot or SuperGrok subscription. TesterArmy says it adds no markup on tokens.
  • Built for coding agents: it ships an agent skill and an MCP server so Claude Code, Cursor or Codex can explore your app and write tests with real locators. e2e explore runs an exploratory bug bash before you open a pull request.
  • Migration guides: the docs cover moving from Playwright, Cypress, Selenium, Detox and Maestro.

Typical use cases

  • Teams with a Playwright suite: port the tests over as they are, then swap in agent steps only for the flows that break on redesigns, such as checkout or settings pages.
  • Mobile apps nobody tests: iOS and Android share one suite, so you don’t learn two automation stacks.
  • People who write code with agents: let the agent generate and maintain tests, and post results on the pull request with the @e2e-dev/github reporter.

Quick start

You need Node.js 24.8 or newer (22.22.3 or newer on Node 22), and Windows users must run inside WSL. Mobile tests also need Xcode with an iOS simulator runtime or the Android SDK with an emulator. The commands and example below come from the official README:

npx e2e init
npx e2e run

init asks for an engine, web (Playwright) or mobile, and a subscription or model provider (or none for tests without AI), then writes a config and an example test. run downloads a browser or boots the simulator, checks that the app opens and writes .e2e/report.json, with no model calls yet. A test with an agent step looks like this:

import { test, expect } from 'e2e';

test('a member upgrades to Pro', async ({ app, agent, screen }) => {
  await app.open('/settings/billing');
  await agent.act('upgrade the workspace to the Pro plan');
  await expect(screen.getByRole('status')).toContainText('Pro');
});

The examples/ folder has finished setups for Vite, Next.js, Expo and SwiftUI.

Summary

e2e suits teams already writing Playwright or mobile automation who want to cut the upkeep on their most fragile flows. It is Apache-2.0 and written in TypeScript. Know these before adopting it:

  • Pre-1.0: the README says APIs and config can still change between minor releases.
  • Telemetry is on by default: the CLI sends anonymous usage data (commands, engines, where runs fail) but no test content or credentials. Turn it off with npx e2e telemetry disable or E2E_TELEMETRY_DISABLED=1.
  • First runs cost model calls: caching saves later runs, but the first pass that gets an agent through a flow still spends model quota.
  • A company is behind it: the launch post calls e2e the open foundation for TesterArmy’s commercial platform, and the hosted-browser and hosted-simulator packages (Kernel, EAS) are external integrations.
  • Cloud runs: a TestMu AI (formerly LambdaTest) article says the web engine can attach to its cloud browsers over CDP. That is the vendor’s own claim and we haven’t tried it.