Open source · Apache 2.0 · runs on your machine
One command opens your running app in a real browser, explores it like a careful tester, reproduces every bug it finds in a fresh browser context, and hands your coding agent a report it can fix from. No account. No key. Nothing leaves your machine.
npx breakmyapp test http://localhost:3000What you get
Each confirmed bug prints with its severity, the evidence line, and a one-line repro, usually within the first minute.
Every candidate replays in a fresh browser context. If the failure does not happen again it is marked suspected and never scored.
A standalone HTML report, findings.json for coding agents, screenshots, Playwright traces, and one failing Playwright test per finding.
A mobile pass catches horizontal overflow, covered controls, and menus that do not open. axe-core violations are listed separately.
Example report
fixtures/broken, the app with every defect class the engine must find.Benchmark
The brief, the generated apps, the prompts, and the full reports are published with the results. The first run has not been published yet; the harness is in the repository.
| Builder | Score | Confirmed bugs | Pages tested | Report |
|---|---|---|---|---|
| Lovable | not run yet | |||
| Bolt | not run yet | |||
| v0 | not run yet | |||
| Replit Agent | not run yet | |||
| Cursor | not run yet | |||
| Claude Code | not run yet | |||
| Codex | not run yet | |||
Scores always appear with their coverage. A score reflects the areas tested, not the whole application. Method and brief: benchmark/.
Three loops
Your coding agent drives BreakMyApp over MCP, finds a bug, reads findings.json, fixes it, and runs the exported Playwright test until it passes. No second API key.
claude mcp add breakmyapp -- npx -y breakmyapp mcp --allow-writes
Render any confirmed finding as a 1200×675 card with the screenshot, the repro, and the score with its coverage. Add the badge to your README; it reads from a file in your repository.
npx breakmyapp card BMA-0001 npx breakmyapp badge
Test every preview deployment on every pull request. One comment per PR, edited on each run, with the score, coverage, and top findings. Fail the check at the severity you choose.
- uses: renderinc/breakmyapp/action@main
with:
url: https://pr-123.example.com
fail-on: high
Privacy and safety
--ai anthropic, to Anthropic.--allow-writes.Try it on the app you are building right now
npx breakmyapp test http://localhost:3000