One command. 25 testers.
Zero cost.

breakit launches AI personas with real browsers against your web app. A form abuser. A confused grandma. A skeptical buyer. An angry subscriber. They find bugs, UX friction, and trust issues — then write them up with screenshots, priority scores, and fix suggestions.

npx breakit test https://your-app.com

Paste a public URL, get a report in ~5 minutes. No account needed.

25 personas

Meet your testers

Confused Grandma

Gets lost

Misreads labels, clicks wrong things, gets lost.

OVLx12

Angry Subscriber

Tries to cancel

Tries to cancel, looking for dark patterns.

Form Abuser

Breaks inputs

XSS, SQL injection, 10k-char strings, empty submits.

Skeptical Buyer

Doubts claims

Checks pricing, proof, trust signals.

OVLx12

Impatient Teenager

Zero patience

Double-clicks everything, rage-clicks spinners.

Screen Reader User

Keyboard only

ARIA, headings, keyboard-only.

Privacy Hawk

Fights tracking

Cookie consent, trackers, privacy messaging.

Speed Runner

Shortest path

Main task in minimum clicks, zero tolerance for bloat.

Enterprise Evaluator

Checks compliance

SSO, compliance, team features.

Non-Native Speaker

Reads literally

Vague labels, idioms, unclear instructions.

...and 15 more. npx breakit test --pack all

What you get

Not a wall of AI text. A report you can actually work from.

breakit groups duplicate findings, scores them by priority, and shows what happened with screenshots and reproduction steps. You can skim the summary, jump into individual issues, or compare runs after fixes.

breakit HTML report showing findings with severity, priority scores, persona tags, and executive summary
Deduplicated findings
Priority score (0 to 100)
Screenshots from the run
Reproduction steps
Suggested fixes
Before / after comparison

Good enough for a solo launch check. Structured enough to drop into a team workflow.

How it works
01

Paste your URL

Point breakit at any public site or preview deployment.

02

Personas explore your site with real browsers

Each persona clicks, types, navigates, and tries to complete tasks from a different angle.

03

One report — everything scored and prioritized

Findings are deduplicated, scored 0-100, and packaged with screenshots and repro steps.

Personas explore independently, share findings to avoid duplicates, and produce a single scored report.

Browser mode: full interactive sessions  |  Snapshot mode: page screenshots + structure analysis, faster

Compare

Why Not Just Ask ChatGPT?

Because “this looks fine” is not a test result.

Uses a real browser
breakit
Yes
ChatGPT
No
Manual
Yes
Lighthouse
Partial
Clicks through flows
breakit
Yes
ChatGPT
No
Manual
Yes
Lighthouse
No
Fills forms and hits edge cases
breakit
Yes
ChatGPT
No
Manual
Yes
Lighthouse
No
Multiple perspectives
breakit
25 personas
ChatGPT
Usually 1
Manual
A few, if you have time
Lighthouse
No
Screenshots and repro steps
breakit
Yes
ChatGPT
Rarely
Manual
Sometimes
Lighthouse
No
Re-runnable after fixes
breakit
Yes
ChatGPT
Not really
Manual
Expensive
Lighthouse
Yes
Works in CI
breakit
Yes
ChatGPT
No
Manual
No
Lighthouse
Yes
Cost to try
breakit
Free
ChatGPT
Paid chat time
Manual
Expensive
Lighthouse
Free

Lighthouse checks technical quality. breakit checks whether the experience makes sense to different kinds of people. You probably want both.

Workflow

Use It Before Deploys, Not Just Before Launch

breakit can run in GitHub Actions, emit SARIF, and fail the build when findings cross your severity threshold.

Your test suite tells you whether the flow still works. breakit helps tell you whether the flow still makes sense.

Run in CI

Use the GitHub Action and test every deploy.

- uses: petrkindlmann/breakit@v1
  with:
    url: ${{ env.DEPLOY_URL }}
    api-key: ${{ secrets.GEMINI_API_KEY }}

Fail on serious findings

Set a severity threshold and block risky releases.

npx breakit test https://staging.app.com \
  --severity-threshold high

Browser mode

Full Playwright runs for forms, flows, uploads, and JS-heavy pages.

npx breakit test https://app.com \
  --pack qa

Snapshot mode

Faster, cheaper checks when you just want broad coverage.

npx breakit test https://app.com \
  --mode snapshot --pack ux

Compare fixes

Run it again and see what improved, what regressed, and what still hurts.

npx breakit test https://app.com \
  --compare ./previous-raw.json

Open source, local-first

No platform account. No hosted dashboard required.

export GEMINI_API_KEY=...
npx breakit test https://your-app.com
Live preview

See A Run From Start To Finish

Watch breakit launch personas, explore a site, and produce a report with ranked findings.

$ breakit run https://demo-app.com
Live
5 active5 critical5 bugs5 ux1m 58s
0:12grandma

Clicked "Deploy to Production" thinking it sends an email

bug
0:18abuser

Injected <script>alert(1)</script> in bio field — it rendered!

critical
0:24mobile

Navigation menu overlaps content at 390px viewport

bug
0:31teen

Double-clicked "Submit" — form submitted twice, duplicate entry

bug
0:38visitor

Could not find pricing page from homepage — no nav link

ux
0:45abuser

Pasted 50,000 chars into "Name" field — page froze for 4s

critical
0:52grandma

Typed phone number in email field, got cryptic "ERR_VALIDATION"

ux
1:01teen

Hit back button during checkout — cart emptied, no recovery

bug
1:08mobile

Tap target for "Delete Account" is only 24x24px

ux
1:15visitor

Signup flow has 7 required fields with no progress indicator

ux
1:22abuser

Empty form submission returns 500 Internal Server Error

critical
1:30grandma

Clicked logo expecting to go home — nothing happened

bug
1:37teen

Rage-clicked loading spinner 12 times — spawned 12 API calls

critical
1:44mobile

Horizontal scroll on /settings — content overflows viewport

bug
1:51visitor

"Get Started" redirected to login with no signup option visible

ux
1:58abuser

SQL injection in search: ' OR 1=1-- returned all users

critical
0:12grandma

Clicked "Deploy to Production" thinking it sends an email

bug
0:18abuser

Injected <script>alert(1)</script> in bio field — it rendered!

critical
0:24mobile

Navigation menu overlaps content at 390px viewport

bug
0:31teen

Double-clicked "Submit" — form submitted twice, duplicate entry

bug
0:38visitor

Could not find pricing page from homepage — no nav link

ux
0:45abuser

Pasted 50,000 chars into "Name" field — page froze for 4s

critical
0:52grandma

Typed phone number in email field, got cryptic "ERR_VALIDATION"

ux
1:01teen

Hit back button during checkout — cart emptied, no recovery

bug
1:08mobile

Tap target for "Delete Account" is only 24x24px

ux
1:15visitor

Signup flow has 7 required fields with no progress indicator

ux
1:22abuser

Empty form submission returns 500 Internal Server Error

critical
1:30grandma

Clicked logo expecting to go home — nothing happened

bug
1:37teen

Rage-clicked loading spinner 12 times — spawned 12 API calls

critical
1:44mobile

Horizontal scroll on /settings — content overflows viewport

bug
1:51visitor

"Get Started" redirected to login with no signup option visible

ux
1:58abuser

SQL injection in search: ' OR 1=1-- returned all users

critical

Try it on your own site

npx breakit test https://your-app.com

Public URL in, report out. About 5 minutes.