9lives – Self-healing test runner that refuses to mask real bugs ( QualityMax launched 9lives, a self-healing test runner that automatically fixes broken Playwright, Cypress, and Selenium tests by repairing drifted selectors without masking real bugs. The tool uses offline selector repair and optionally leverages existing coding-agent subscriptions like Claude Code, aiming to reduce CI failures and developer toil in the coding-agent era. Your tests have nine lives. Self-healing QA for the coding-agent era, by QualityMax https://qualitymax.io . A coding agent renamed a button, the test went red, 9l heal read the live page, fixed the locator, re-ran it green, and showed the diff — no API key.Run the demo yourself → Your coding agent shipped a change and your Playwright test went red? Don't rewrite it — resurrect it: 9l heal login.spec.ts 9l runs the test, classifies the failure, and heals it in tiers: Tier 1 — offline, free, instant. Selector drifted? 9lives finds the element again from the failure-time page snapshot text, testid, id, class, aria-label and rewrites the locator. No LLM, no network, no account. Tier 2 — the subscription you already pay for. Structural change? 9lives shells out to your installed coding-agent CLI — Claude Code — so your existing subscription does the thinking. No API key to mint, nothing to configure: if the CLI is logged in, healing works. Prefer raw API? claude -p , Codex codex exec , or OpenCode opencode run ANTHROPIC API KEY / OPENAI API KEY work too. Always a diff, never a surprise. Healed code is shown as a unified diff and applied only when you approve or --yes in CI . Won't hide your bugs. A failing assertion means the app's behavior changed — not that a selector moved. 9lives refuses to rewrite assertions to force a green that's how naive auto-healers mask regressions and flags it as a possible real bug instead. Opt in with NINELIVES HEAL ASSERTIONS=1 if you really want it to propose an assertion update. curl -sL 9lives.run | sh pip install 9lives or: uv tool install 9lives Requires Node.js ≥ 18 Playwright itself runs on Node . Check your setup with 9l doctor . 9l run