Discover and debug
Discover an app from its URL
On the dashboard's Overview, enter your app's URL (it defaults to the selected environment) and choose Explore this URL. A connected worker opens the app in a real browser and moves through it the way a first-time visitor does:
- It starts on the home page and follows the links a person can see, clicking them rather than jumping straight to URLs.
- It notes every page it reaches and every form on it.
- It never submits a form or presses a button, stays on your site, and skips links that sign out or delete things.
- It stops after 12 pages, two clicks deep from home.
You watch the exploration live, and every page and form becomes a runnable flow:
| Found | Flow |
|---|---|
| A page | Open the app, click through to the page, and check its heading is shown |
| A form | Click through to the form, fill each field with safe sample data, and check the submit button is ready |
Flows are saved under spec/flows/discovered/, published as test plans, and added to the journey graph. Password fields are filled with {{secret.APP_PASSWORD}}; set BUGMOLE_FLOW_SECRET_APP_PASSWORD on the worker before you run those flows. Open Test plans to run them on any browsers and devices.
Discovery needs only a browser, so it runs on local workers and cloud workers alike.
Debug a failed run
Select a browser's result in a run to open it:
| Tab | Shows |
|---|---|
| Overview | Status, the step that failed, duration, browser, and environment |
| Logs | The step log, page errors, and console errors (typed text is masked) |
| Screenshots | The page when the run failed or finished |
| Trace | Every step on a timeline with its duration, plus the full Playwright trace to download and open at trace.playwright.dev |
| AI Analysis | Why the run failed, the evidence, and a suggested fix |
When a step fails, Bugmole records what was on the page — its controls and headings, error messages, and fields that are empty or invalid — and works out the cause:
- Test needs an update: a button or label was renamed, or the flow left a required field empty. Bugmole suggests the exact change to the flow.
- App bug: the page crashed, or what the flow expects is gone with nothing similar on the page.
- Environment problem: the app could not be reached.
If your project configures an AI model (llm.provider of openai, anthropic, or ollama; see Configuration), the model explains the failure in plain words. The suggested change itself always comes from what Bugmole verified on the page.
Apply a fix
Apply fix starts a new run on the same browser with the suggested change written to the flow first. The flow file is updated where the plan keeps it, so the fix sticks. If the flow changed since the suggestion was made, the run stops and asks you to re-run for a new suggestion instead of editing the wrong step.