Skip to content

jev-playwright

Playwright reporter that uses Jev to select end-to-end tests relevant to a code change before browser execution in CI.

ProjectbetaMIT

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

TypeQuestionAnswers
Yes / noIs this Playwright test relevant to the code change?yes · no

How it works

  1. Wrap playwright.config with defineConfigWithJev
  2. On run, collect changed paths and patches
  3. Ask Jev whether each discovered test is relevant
  4. 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

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.

    CLIproductionRust
  • Gives Claude Code, Codex, Pi and OpenCode five typed Jev tools (classify, check, score, rank, ask) plus a skill on when to use them.

    MCP serverbetaTypeScript
  • OpenAPI diff tool that adds Jev semantic review of changed prose to deterministic checks, then code decides pass, review or block.

    ServicebetaPython
  • CLI that scores every test against a git diff with Jev and emits filter arguments for vitest, jest, node, Playwright, cargo, go and rspec.

    ProjectbetaTypeScript
  • Six evidence-oriented Jev tools for pi, omp and any MCP client: ask about code, find files, locate ranges, check diffs and select tests.

    ServicebetaTypeScript
  • Semantic 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