Skip to content

webqa run

Terminal window
webqa run <spec.json | url> [--json] [--out .webqa/runs] [--allow-private]

With a configuration file, every page is captured on every viewport (desktop 1440×900 and mobile 390×844 by default) and the configured checks run. With a URL, the http, overflow and clipping checks run on that page only.

Each run writes a new folder:

.webqa/runs/<time>/
├── result.json # validated against result.v1
├── p01-desktop.png # full-page screenshots
├── p01-mobile.png
└── p06-mobile.annotated.png # pages with findings: problem elements outlined
Option Default Description
--json off Print result.json to stdout instead of the summary.
--out <dir> .webqa/runs Parent folder for run folders.
--allow-private off Allow localhost and private network addresses (local and staging sites).

Runs are read-only: non-GET requests to the site are blocked (so consent clicks cannot submit forms), navigation stays on the hosts in your configuration, pop-ups are closed and downloads refused. Consent banners are rejected, or accepted when there is no reject button, or hidden before screenshots; the action is recorded per page.

timeouts.pageMs limits each page and timeouts.runMs the whole run. When the run limit is reached, the browser is closed, the status is timed_out and the exit code is 4. Pages that fail to load are recorded as page errors and are not reported as findings.

Command or option Description
npx webqa-platform audit <url> Discovery and checks in one step, with a JSON and HTML report
--checks a,b Run only the named checks
--ai Optional AI step: untranslated text and plain-language explanations (needs OPENROUTER_API_KEY and OPENROUTER_MODEL)
--mode remote-cdp Use your own browser endpoint
--sync, webqa login, webqa project link Upload results to webauditlabs Cloud — see Cloud sync