An LLM reads your
failed CI runs
so you don't have to.
Every Playwright failure classified — real bug, flake, selector drift, or env — with a short, human-readable summary posted straight to your PR.
Three steps, zero dashboards
It runs inside your CI. Nothing leaves except redacted failure text, sent to the Anthropic API on your key.
CI run fails
The reporter attaches to Playwright. When tests fail, it collects error text, stacks, retry history, and step titles — locally.
The LLM classifies
Obvious cases (retry-passed, network errors) are decided locally for free. The rest get a verdict, a confidence score, and a reason.
Posted to your PR
One auto-updating comment on your PR — or stdout, or Slack. Fixed findings flip to ✅, repeats stay muted, only new failures shout.
One summary. Three destinations.
Same triage, rendered for wherever your team reads it. Auto-detected from your CI environment.
It tells you why it failed, not just that it did
A genuine regression in your app. Assertion diffs and logic errors that a human should look at now.
The UI moved, not the logic. Comes with a suggested locator fix so you can patch the test in seconds.
Passed on retry or matched a known flake signature. Classified locally, for free — never hits the API.
Network blips, expired credentials, infra hiccups. Not your code — and it says so, so you stop debugging it.
You can see exactly what's sent
Self-hosted by design. Text-only, secret-patterns redacted, on your own Anthropic key. No hosted platform in the middle.
Sent to the Anthropic API
Never sent anywhere
A reporter, not a service
Run history, flakiness scores
& suite trends
The reporter stays free and self-hosted forever. Flaketrace, the optional hosted add-on for playwright-ai-triage, adds cross-run memory: which tests flake most, whether the suite is getting healthier, and trends over time.
Ship it in one line
Add the reporter, set your key, open a PR. That's the whole thing.