AGPL-3.0 · self-hosted · built in the open

Goal-based browser testing you can watch run.

Give it a URL and a goal in plain English. An AI agent drives a real Chromium, and you watch the session as it happens.

No seats, no run limits, no telemetry. The whole thing is on GitHub.

  1. Describe the goal
  2. Watch it run
  3. Read the verdict
New test
Liveabout:blank
waiting for the first step…

Monitoring

Then leave it running.

A saved test, suite or project can run on a schedule — hourly, daily or weekly. Every run leaves a verdict, a report and a recording, so "does signup still work?" is answered by something that ran an hour ago rather than by whoever last thought to check.

Schedules4 active · next fire in 12 min
  • Signup + onboardingsuiteevery hourin 12 min
  • Discount code appliestestevery 6 hin 3 h
  • Password resettestdaily 02:00in 11 h
  • Acme productionprojectweekly Monin 4 d

Capabilities

What else it does.

Six things you'd otherwise build yourself.

No selectors

Nothing to keep in sync with your markup. The agent reads the page on each run and locates the elements itself.

page.click("#btn-submit-v2")"the Submit button"

Live session view

Watch a run in progress, or open a finished run's page later and read back what happened, step by step.

12:04:31·step 7/11·filling card number

PDF report

Verdict, stats, summary and a link to the recording. One page, rendered on every run, readable without an account.

run-4821.pdf·1 page·84 KB

Projects and suites

Save tests, group them into modules, suites and projects, and run a whole group in one call — the same grouping a schedule points at.

Acme production/Checkout/6 tests

REST API

Token-authed HTTP endpoints for starting runs and fetching results, from CI or from your own tooling.

POST /api/v1/runs201

Saved sessions

Sign in to the app under test once and reuse the session, so a test can start from behind the login.

session: acme-admin·reused·expires in 6 d

Self-host

Run it yourself.

Docker is the only thing you install — Node, Python and Chromium are all inside the image. The app under test never leaves your network. Everything described on this page is in the repository; there is no feature held back for a paid build.

$ curl -O .../docker-compose.release.yml
$ docker compose up
pulling ghcr.io/rszhd/qassist:latest
db ready
app listening on :8080
→ open http://localhost:8080
License
AGPL-3.0-only. The agent, server, frontend and control plane are all in the one repository.
Cost
None. Self-hosting is free and isn't limited by run count, seats or features.
Model
Bring your own OpenAI key. Tokens are billed to you by your provider; nothing is resold.
Data
Runs, screenshots and reports stay on your disk under runs/. Metadata goes to your Postgres.
Architecture
One Python agent per run, driving Chromium through browser-use. Screencast frames and step events stream back over a WebSocket; the worker keeps no state between runs.
Hosted
A paid hosted tier is planned at qassist.run for people who'd rather not run a server. It doesn't exist yet, and the self-hosted build won't be narrowed to make room for it.

Start

Try it.

The demo runs on our box with nothing to install. Or pull the image and bring the stack up locally.

Issues, questions and patches are welcome on GitHub.