Docs · Getting started
Run Omea against your own repo.
npx @omea/cli run is fully local: no cloud, no login, nothing leaves your machine. It boots your app in a microVM, runs your repo's own @playwright/test suite with coverage instrumented, and streams verdicts as tests complete.
Install
Omea ships as a Rust binary distributed via npm, with per-platform binaries as optionalDependencies — the same pattern esbuild uses. npx @omea/cli only pays Node's startup cost on the very first invocation; the installed command is the native binary, never a JS shim on the run path.
Supported today: macOS arm64 (HVF) and Linux x64 (glibc and musl, KVM).
Run it
npx @omea/cli run [PATH] # PATH defaults to the current directory
In a repo checkout, that one command:
- Detects how the app boots and boots it in a local microVM — dependencies, build, and any services it needs (for example, an in-guest Postgres for a Prisma app) — with zero config and zero edits to your repo.
- Runs the repo's own
@playwright/testsuite against the running app, with the Omea coverage harness injected transparently. No app or test file changes;git statusstays clean. - Streams per-test verdicts (pass/fail + duration) as they complete, then prints a coverage summary and the paths to the evidence artifacts.
Flags
| Flag | Meaning |
|---|---|
PATH | Repo to test. Defaults to the current directory. |
--test-command <CMD> | Run CMD in the guest instead of npx playwright test. |
--json | Streams the run as NDJSON (test-started/test-finished/run-finished) so a coding agent can act on it without human interpretation — schema version 2. |
Exit codes
Agents branch on these, so boot, test, and environment failures are distinct:
| Code | Meaning |
|---|---|
0 | All tests passed. |
1 | The suite ran and one or more tests failed. |
2 | The app failed to boot (install, build, boot, or readiness). |
3 | Environment failure — no recognizable boot recipe, no Playwright suite, or the runner never produced verdicts. |
Artifacts
Each run writes evidence next to your repo under .omea/last-run/: coverage.json and coverage.md (see coverage artifacts explained), playwright-results.json, and playwright.log.
Coming soon: npx @omea/cli login and a hosted/cloud sync variant that runs the same loop against your current, uncommitted workspace from our infrastructure. Not shipped yet — today's CLI is local-only and needs no account.
Read next
- How boot detection works — what Omea looks for before it boots your app.
- The test format — why tests are plain Playwright and how coverage gets injected.