Skip to content

E2E 0.23.0 adds doctor, engine protocol and viewport resize

Updated E2E

Summary

E2E 0.23.0 (November 5, 2026) adds e2e doctor, an out-of-process engine protocol, agent viewport resize, MCP run_tests, and a breaking inputValue/isChecked change.

Tool
E2E
Date
Open source
Yes
License
Apache-2.0
Pricing
Not stated in the sources we cited.

E2E 0.23.0 shipped on November 5, 2026. The release adds a preflight e2e doctor command, an engine protocol for out-of-process engines, viewport resize for the built-in agent, and an MCP run_tests tool. One change is breaking: inputValue() and isChecked() now throw ACTION_FAILED on nodes that have no value or checked state, matching Playwright.

Release facts

FactDetail
ProductE2E, repository tester-army/e2e
Versione2e@0.23.0, after 0.22.0
Release dateNovember 5, 2026
Docshttps://e2e.com/docs (CLI help and MCP listing now point here)
LicenseApache-2.0

e2e doctor

PR 1493 adds e2e doctor. It checks that e2e run can start without starting anything: the Node.js runtime, the config and its targets, each engine's own checks, and the model each agent resolved to. --json prints a doctor-1 report; --check-model calls each model once; the command exits 2 when a check failed. Engines can report checks through an optional doctor hook.

Engine protocol

PR 1232 adds connectEngine, serveEngine and transports in e2e/engine. An engine can run in another process, on another machine, or in another language over LSP-style JSON-RPC. Every engine built with defineEngine now goes through the protocol in process, so the harness drives every engine the same way. Engine.dispose runs only after init was called, even when init failed.

Agent viewport resize and MCP run_tests

PR 1524 gives the built-in agent a resize_viewport tool so agent.act and e2e explore can check layouts at desktop, tablet and phone widths. The tool is offered when the target's engine implements the optional session.resize hook. Custom executors call ctx.actions.resize({ width, height }), and the replay cache records it.

PR 1520 adds an MCP run_tests tool: it runs a test file, one test (tests/checkout.e2e.ts:12), or the whole suite the same way e2e run does and returns the printed output, so a coding agent can run tests without a shell.

Breaking: inputValue and isChecked

PR 1552 changes inputValue() on a node with no value (heading, button) and isChecked() on a node with no checked state to throw ACTION_FAILED, as in Playwright, instead of returning "" and false. A field with no value still reads "", and a checkable role with no state still reads false. uncheck() on an ARIA role="radio" now clicks it; a native radio still refuses.

Other changes worth checking

  • Explore: digs into edge-case inputs and other accounts after main flows; --max-steps up to 100 and --timeout up to 2 hours (PR 1522, PR 1523).
  • test.fail: mark a test expected to fail; an unexpected pass fails with UNEXPECTED_PASS (PR 1539).
  • timeout: 0: means no deadline of its own, as in Playwright (PR 1554).
  • Startup: heavy deps load lazily; e2e --version and --help are about 25% faster per the notes (PR 1576).
  • app.baseUrl: no longer ends in a slash (PR 1479).

The previous release is E2E 0.22. More tools are in the coding agents category.

More from E2E

View all

Questions

What is E2E?

E2E is a TypeScript testing framework for web and mobile apps. The product site and repository describe agent actions that can be recorded and replayed without calling the model again when the cache matches.

Is E2E open source?

Yes. The GitHub API reports Apache-2.0 for tester-army/e2e.

What shipped in the latest release covered here?

e2e@0.23.0, published November 5, 2026. It adds e2e doctor, an out-of-process engine protocol, a resize_viewport agent tool, MCP run_tests, test.fail, and a breaking change where inputValue/isChecked throw ACTION_FAILED on nodes without a value or checked state.

Where are the docs?

As of 0.23.0, CLI help, e2e init output and the MCP server listing point to https://e2e.com/docs.

Filed on Agent Radar. Claims in this note are limited to the sources above.