Agentic end-to-end testing framework for any app.
Describe what a user does in natural language, pin the exact outcome with locators and assertions, and run it like any other test suite. Web runs through Playwright, iOS and Android through agent-device, and anything else with a UI through the same engine contract.
// tests/checkout.e2e.ts
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 agent.assert('the invoice preview shows a prorated amount');
await expect(screen.getByRole('status')).toContainText('Pro');
});npx e2e initAn agent step that a later assertion verifies records its actions, and the next run replays them with no model calls until the app changes. Tests without agent steps need no model. Bring your own subscription, API key, or local model.
e2e.tester.army/docs: quickstart, writing tests, mobile, migrating from Playwright, Cypress, Selenium, Detox, or Maestro, and the full reference.
e2e: SDK, runner, and CLI.@e2edev/web: the browser engine.@e2edev/mobile: the iOS and Android engine.@e2edev/github: the pull request comment reporter.
See CONTRIBUTING.md and SECURITY.md. Apache-2.0, by TesterArmy.