jev-playwright
Playwright reporter that uses Jev to select end-to-end tests relevant to a code change before browser execution in CI.
Overview
Jev Playwright runs only the Playwright tests relevant to a code change. Package-aware tools can scope unit tests, but a single browser journey crosses many packages, pages and services. This reporter compares the change with Playwright's discovered tests and uses Jev's yes/no decisions to select relevant journeys before any browser runs, reducing E2E runtime in large CI suites.
It is added through a config wrapper that keeps existing Playwright settings and reporters, and can be enabled only in CI. The README is careful: it is a relevance filter, not a guarantee, and can miss affected tests, so full-suite coverage should remain where completeness matters. A green run can execute zero tests if none are selected. It also documents what leaves the machine: changed paths, git patches, test titles and test bodies by default, without secret redaction, with include/exclude filters and an option to keep test source local. OpenRouter can be used instead of TypeSafe.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this Playwright test relevant to the code change? | yes · no |
How it works
- Wrap playwright.config with defineConfigWithJev
- On run, collect changed paths and patches
- Ask Jev whether each discovered test is relevant
- Skip unrelated tests before browser execution
Strengths
- Cuts E2E runtime in large suites
- Keeps existing Playwright config
- Clear documentation of data sent
Caveats
- Can miss affected tests; not a coverage guarantee
- Diffs and test source are sent without secret redaction
- Requires Node 24.16+ and Playwright 1.62+
Getting started
pnpm add -D jev-playwright @playwright/test, export JEV_PLAYWRIGHT_PROVIDER_KEY, then wrap your config with defineConfigWithJev.At a glance
- Type
- Project
- Status
- beta
- Language
- TypeScript
- Runtime
- Playwright reporter (Node)
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Shrinks Playwright suites in CI by letting Jev select tests related to code diffs.
logicrw/awesome-jev-projects
Frequently asked questions
What does Jev decide?
Whether each Playwright test is relevant to the current code change.
Can it skip a test that should run?
Yes. It is a relevance filter and can miss tests; keep full runs where completeness matters.
What data is sent?
Changed paths, git patches, test titles and test bodies by default; filters can limit this.
Related projects
Rust code-review gate asking Jev small typed questions about functions and tests, failing CI only on rules measured 80% right.
CLIproductionRustGives Claude Code, Codex, Pi and OpenCode five typed Jev tools (classify, check, score, rank, ask) plus a skill on when to use them.
MCP serverbetaTypeScriptOpenAPI diff tool that adds Jev semantic review of changed prose to deterministic checks, then code decides pass, review or block.
ServicebetaPythonCLI that scores every test against a git diff with Jev and emits filter arguments for vitest, jest, node, Playwright, cargo, go and rspec.
ProjectbetaTypeScriptSix evidence-oriented Jev tools for pi, omp and any MCP client: ask about code, find files, locate ranges, check diffs and select tests.
ServicebetaTypeScriptSemantic grep for code, diffs and CSV rows that packs 16 chunks per Jev request and prints file:line hits with CI-friendly exit codes.
Agent skillbetaTypeScript