Skip to content

Solutions · Testing and QA

Test runs with evidence.

Record what the agent does as an HTML report with screenshots and JUnit XML, replay it without a model, and run text-based scenarios in CI with the open-source CLI.

browser_record{action: "start"}
… the agent clicks through the flow …
browser_record{action: "stop"}        # → report_url (HTML) and junit_url
browser_record_script{}                # the same steps as a replayable script

How it works

01

Reports a person can read

A recording captures each step with its screenshot, URL and result, then writes an HTML run report and a JUnit XML file you can attach to a CI job or a bug. Background tabs are recorded too.

02

Replay without an LLM

Once a flow works, turn the recording into a script and replay it. Replays run the steps directly, so they are fast, cheap and repeatable. A replay stops at the first step it cannot do and says why; with on_failure: handoff it asks a person instead.

03

Scenarios in CI

The cbu CLI from the open-source repository runs text-based scenarios (goto, click, fill, login, expectText, expectUrl, screenshot, wait) against any base URL and exits 1 on failure. It can launch its own headless browser on the CI runner.

FAQ

Questions people ask

Where do the reports go?

Recordings are stored with your account. The tools return links to the HTML report and the JUnit file; over REST they are under /v1/recordings.

Can I test a site on my own network?

The hosted browser reaches public addresses only. For a staging site behind a VPN, run the open-source server inside that network; the tools and reports are the same.

Do I need a model to run tests?

Not for replays or cbu scenarios: both run steps directly. A model is only needed while an agent explores or writes the flow.

Can tests log in?

Yes. A login step uses the vault entry by name in an act tab, including TOTP 2FA. Test credentials never appear in the scenario file.

What about flaky waits?

Actions wait for the page to settle before they return, and browser_wait waits until text appears or disappears or the URL changes. Replays stop at the first failure rather than carrying on.

Give your agent a browser that remembers.

Start with the free trial. Connect Claude Code, Cursor, Codex or your own code in a minute.