---
title: "BugRunner | AI synthetic users that find bugs in your web app"
description: "AI users browse your live web app like a customer, find broken flows and console errors, and file each bug in GitHub or GitLab with repro steps and a screenshot. Early access."
image: "https://bugrunner.io/og-image.png"
---

# Synthetic users that browse your web app, find the bugs and file the issues

BugRunner sends AI users through your live app. They browse like a customer: read the page, click, type and scroll. They find broken flows, failed requests and console errors, then file each one in GitHub or GitLab with the steps and a screenshot.

[Talk to the founder on WhatsApp](https://wa.me/5548992091242?text=Hi!%20I%27m%20interested%20in%20BugRunner%20%28AI%20synthetic%20users%20that%20find%20bugs%20in%20web%20apps%29%20and%20I%27d%20like%20to%20talk%20about%20early%20access.%20I%20came%20from%3A%20home%2C%20top%20of%20page) [See how a run works](https://bugrunner.io/#how)

- Early access, by conversation
- No test scripts to write
- Local CLI as well as a hosted runner

The problem

## You ship faster than anyone can click through the app

Small teams end up with three choices: end-to-end scripts that break whenever the UI changes, a human tester now and then, or waiting for a customer to report the broken signup. BugRunner is a fourth: a user that keeps going through the app and writes down what breaks.

Signup worked on Tuesday. Nobody checked it after Wednesday's deploy.

The checkout button does nothing, and we learned it from a customer.

The test scripts fail every time someone renames a class.

How a run works

## From a URL to a filed issue, with no scripts in between

1. ### Point it at an app
   Create a project with the app URL and an issue tracker. Add a test login if the app needs one. A staging URL works, and `bugrunner tunnel start` exposes a local port through ngrok.
2. ### A synthetic user browses
   The AI reads each page and decides what a person would do next: click, type, scroll, follow a link. Pick a persona: new user, power user, edge case or returning user. Runs on Chromium, Firefox or WebKit.
3. ### Checks the browser can prove
   Broken links, failed XHR calls, storage keys that vanish, forms that accept invalid input and images without alt text are detected from what the browser saw, plus console errors and failed requests.
4. ### Findings become issues
   Each bug gets a severity, repro steps, a screenshot and console output, and is filed to GitHub or GitLab with the labels `bug` and `bugrunner`. Duplicates inside a session are dropped and a failed filing is retried.
5. ### Then it goes again
   After a five minute pause the next session starts, until you stop the project. Scheduled runs are part of the paid plans.

What it does

## What you get from a run

Each item below exists in the code today. Nothing here depends on a script you maintain.

**No scripts to maintain**

The AI decides the next action on every page, so a renamed button or a moved menu does not break a test. You give it a URL, not a journey.

**Evidence from the browser**

Broken links, XHR errors, lost storage keys, forms that swallow invalid values and missing alt text are collected from what the browser observed, so the model cannot invent them.Console errors and failed network requests are collected on every page as well.

**Severity you can override**

Rules map a URL pattern, an error message, an HTTP status or a WCAG level to critical, high, medium or low, so a checkout failure is never filed as low.

**Personal data masked**

With privacy mode on, email addresses, phone numbers and card numbers (checked with the Luhn test) are masked in titles, descriptions and steps before anything is stored or filed.

**Guardrails on where it goes**

It honours `robots.txt` and blocks private network addresses. The only exception is a demo target you configure on localhost.

**A gate for CI**

The CLI exits non-zero when a finding reaches the severity you set with `--fail-on`. Paid plans add commit status for GitHub.

**Cost on the report**

A local scan reports input and output tokens, the model used and an estimated cost in dollars. In the hosted runner an AI budget can be set per organization.

Who it is for

## Teams that ship often and have no QA bench

### Founders and small product teams

You deploy several times a week and the only regression test is you. BugRunner keeps going through signup, onboarding and checkout and files what it finds in the tracker you already use.

### Agencies handing over client sites

Run it before a client launch or after a change, and attach tracker-ready bugs with screenshots and repro steps instead of a vague list.

Use it only on apps you own or have permission to test. See the [terms](https://bugrunner.io/legal/terms/).

CLI and SDKs

## Run it from a terminal, or from your own code

`bugrunner scan <url>` runs the same synthetic user on your machine with no server. SDKs for Go, Python and TypeScript wrap the REST API. None of them is published to a package registry yet, so you get them from the founder. [CLI and SDK details](https://bugrunner.io/cli/)

Pricing

## Plans in the product today

These are the plan limits and prices in the billing code. Payments are not open yet: early access is arranged with the founder.

| Feature | Free$0 | Starter$29 a month | Pro$99 a month |
| --- | --- | --- | --- |
| Projects | 1 | 5 | Unlimited |
| Runs per month | 20 | 200 | 2,000 |
| Parallel sessions | 1 | 3 | 10 |
| Scheduled runs | Not included | Included | Included |
| Weekly digest email | Not included | Included | Included |
| GitHub commit status | Not included | Included | Included |
| Issue trackers and notifiers | GitHub and GitLab | All integrations | All integrations |
| Regression verification | Not included | Not included | Included |
| Team and organization support | Not included | Not included | Included |

Annual billing is $23 a month for Starter and $79 a month for Pro. Larger portfolios, invoicing and security review: talk to the founder. [Full plan comparison](https://bugrunner.io/pricing/)

Questions

## What people ask before a first run

**Which apps does it work with?**

Any web app a browser can open, whatever it is built with. If the page has a URL the synthetic user can reach, it can browse it. Native mobile apps are not covered.

**Can it test a staging site or an app on my laptop?**

Yes for both. Point a project at a staging URL, or run `bugrunner scan http://localhost:3000 --allow-internal` locally. To let the hosted runner reach a local port, `bugrunner tunnel start` opens an ngrok tunnel and needs your own ngrok token.

**What does it do differently from scripted end-to-end tests?**

Scripted tests run the steps you wrote and fail when the page changes. BugRunner has no steps: the model decides each action from the page in front of it, and a set of deterministic checks adds what the browser can prove. It finds things you did not think to script. It does not replace a test you need to pass every time.

**Will it change data in my app?**

It can. It clicks buttons and, once per run, submits forms to see how validation behaves, so point it at staging or at a test account. There is also an adversarial persona that sends attack payloads. The local CLI refuses it unless you pass `--i-own-this-domain`, and it is not part of what this page offers.

**What does it cost to run?**

A local scan prints input and output tokens, the model used and an estimated cost. Hosted plans include a monthly run quota: 20 on Free, 200 on Starter and 2,000 on Pro.

**What happens to personal data it sees on a page?**

With privacy mode on, emails, phone numbers and card numbers are masked before reports are stored or filed. See the [privacy page](https://bugrunner.io/legal/privacy/) (a draft pending legal review).

**Can I use it today?**

BugRunner is in early access and the hosted app is not open for self-service sign-up. Talk to the founder on WhatsApp and he sets up a first run with you.

## Want a synthetic user on your app?

BugRunner is in early access. Message the founder on WhatsApp with your app and your tracker, and you get a first run set up with you.

[Talk to the founder on WhatsApp](https://wa.me/5548992091242?text=Hi!%20I%27m%20interested%20in%20BugRunner%20%28AI%20synthetic%20users%20that%20find%20bugs%20in%20web%20apps%29%20and%20I%27d%20like%20to%20talk%20about%20early%20access.%20I%20came%20from%3A%20home%2C%20closing%20section)
