Skip to main content
e2e is an open source testing framework for web and mobile apps. A test can use exact locators and assertions, goals in natural language that an agent completes, or both in the same test.
tests/checkout.e2e.ts

Why e2e

  • Less time on tests. Write a goal instead of a script of selectors and waits. When the UI changes, the agent adapts, so you fix fewer tests.
  • Cheap runs. e2e records an agent.act step when a later check passes. The next run replays it with no model calls, and hands back to the agent when the app changed. With the built-in agent, assert, waitFor, and extract always call the model.

How it works

  • Targets. Each test runs one time per target, such as Chromium or an iPhone simulator. The web engine drives browsers through Playwright. The mobile engine drives iOS simulators and Android emulators through agent-device. You can also write your own.
  • Agent steps. agent.act completes a goal. agent.assert, agent.waitFor, and agent.extract judge the screen. Use your own subscription, API key, or local model. Tests without agent steps need no model.
  • Reports. The runner redacts registered secrets from model input. It records steps, failures, and artifacts in a report that you or your coding agent can read.

Get started

Quickstart

One prompt for your coding agent, or set up by hand.

Example projects

Run a standalone web or mobile app that already has e2e tests.

Core concepts

Goals, assertions, and locators.

Coding agents

Let your coding agent write, run, and debug tests.