Docs · Test format

Plain Playwright. Eject any time.

Omea's tests are @playwright/test files, stock-runnable with npx playwright test. Natural-language steps are opt-in, per-step resilience layered on top of real code — never a replacement for it, never the only representation of a test.

Eject is compilation, not a data export

Delete Omea's SDK from a repo and the suite still runs, because there was never a proprietary format underneath it — the tests you keep are the same plain Playwright files the suite always ran. Lock-in, if any, lives in the boot recipe and runner integrity, never in the file format.

How coverage instruments your tests, with zero edits

Coverage is injected through two environment variables, set on every Node process you want instrumented:

NODE_OPTIONS=--require /path/to/harness/preload.cjs
OMEA_OUT=/path/to/output/dir

OMEA_OUT is the switch: without it, the harness is a complete no-op — safe to leave NODE_OPTIONS set permanently, with zero overhead and zero behavior change when it's unset. There's no omea.config.*, no test file imports, and no package.json changes. git status during an instrumented run shows nothing touched in your repo.

What gets instrumented

Tested against Node 22 LTS and Node 24. Below Node 20.6 the harness doesn't load at all.

Write it natively from your agent

Your agent can write this format natively: omea ships an installable agent pack (Claude Code skill, AGENTS.md snippet, Cursor rule) that teaches when to run omea run, how to read its NDJSON verdicts, and how to write a kept-suite-accepted @playwright/test spec.

Read next