Reproduce the failure
Start with a reviewed Playwright spec and an assertion that fails on the broken application.
run_test9lives / Open-source Playwright tools
Your agent proposes a fix. Run the test, compare the results, and check what its assertions catch. Keep your Playwright suite and inspect the evidence locally.
Watch the 60-second launch film
No account needed · Apache-2.0 · macOS, Linux & Windows
0636853e136e5f24ccd29l MCPconfirm_findingconfirmed
9l prove500 · 401 · malformed JSON3 faults caught
Seven Chromium executions on a synthetic profile app. Saved results; opening the demo does not run an agent.
Inspect the patch, logs, and receiptsStart with the evidence
Follow a locator repair, find a missing assertion, or inspect a real agent run and checked application fix. Choose where to begin.
Repair a broken locator while keeping the original assertions.
Illustrated walkthrough02See how a green test can miss the outcome that matters.
Illustrated walkthrough03Follow observed controls, bounded actions, and execution receipts.
Algorithm walkthrough04Inspect saved provider decisions and browser execution logs.
Recorded execution05Compare the same test before and after a fix. Then challenge it with faults.
Recorded executionThe first three tabs explain the workflow. The last two show recorded execution. Full traces scroll, highlights stay easy to find, and evidence extracts are downloadable.
From a failure to a checked fix
9lives gives a coding agent execution tools. Your reviewed tests decide which behavior matters.
Start with a reviewed Playwright spec and an assertion that fails on the broken application.
run_testInspect the proposed application patch or locator repair. Keep the test’s intended behavior and assertions.
Your coding agentRun the same reproduction on each Git revision in isolation. Inspect the failing result before and the passing result after.
confirm_finding · experimentalInject supported fetch/XHR faults and rerun. See which faults caused an assertion failure and which survived.
9l prove · experimentalA passing receipt means the test’s assertions passed and the execution report was validated. Confirmation shows the test distinguishes two revisions. A caught fault means an assertion failed under that fault. None establishes full requirement coverage.
Read the contracts and limits →Use your own project
The Go runner uses your project’s installed Playwright and configuration. The SDK is optional. You can run ordinary specs without an AI model or QualityMax account.
Native CLI v0.4.7 · x64 & ARM64 · Chromium qualified
curl -fsSL https://9lives.run/install.sh | shexport PATH="$HOME/.local/share/9lives-runner/bin:$PATH"9l run tests/checkout.spec.ts --timeout 2m --attempts 1 --format jsonReplace the spec path with your own. Your project needs Playwright dependencies and browsers. Windows ZIP installation · Quickstart · Runnable example
Inside your coding agent
Native MCP exposes run, assess, heal, confirm, page inspection, and reproduction tools. Start a page check with scan_url. Use the QA skill for requirements and source provenance. Codex and Claude setup live in the agent guide.
claude mcp add 9lives -- 9l mcpOptional SDK: named steps and bounded goals. Goals still need explicit assertions; goal completion is unverified.
Read goal contracts →Before the reproduction
One Chromium load gives nine categories of observations. inspect_page ranks controls and locators; generate_playwright_repro writes a reviewable spec for a finding.
JavaScript errors, warnings, and failed requests
Broken and redirecting links
Alt text, control names, and heading structure
LCP, CLS, TTFB, and FCP from one cold page load
Page title and meta description
CSP, HSTS, and browser security headers
Cookie flags, trackers, and tracking before consent
HTTP resources and forms on HTTPS pages
Transfer bytes, requests, and oversized assets
9l scan https://your-app.dev --format markdownScans are observations, not test results. Load timings are from one cold visit; INP is not measured. Authenticated pages need explicit consent, and loopback targets need --allow-private-network. Page-check guide →
What you can rely on
Plans, bounded runs, cancellation, terminal receipts, advisory static assessment, page checks, and native MCP. Existing Playwright specs stay usable.
Supported locator repairs are verified in isolation. Confirmation compares revisions. Fault testing challenges fetch/XHR paths. The demo qualifies one synthetic app in Chromium.
Independent behavioral verification, verified replay, and native mobile qualification remain subsequent milestones. Other browser engines are unqualified.
Python remains in maintenance mode for existing workflows, with no removal date set. Use Go for new Playwright projects. Check 9l --version when both distributions are installed.
uv tool install 9livesBuilt by QualityMax
9lives is the open-source execution tool. Choose the other QualityMax tools when you need hosted management, a coding agent, or a separate quality review.
Hosted test management, execution, and quality intelligence.
A QA terminal that can run standalone or connect to QualityMax.
An offline A–F quality grade for Playwright specs.
Open skills for test quality, accessibility, security, and more.
Featured in AI in QA — Issue #18. The original Python package is listed in awesome-python-testing.
See what the test actually caught