Configuration
All configuration ultimately resolves to one Zod-validated shape
(configSchema in @frontend-qa/shared). CLI flags are the only
configuration surface today — there is no config file yet (see
Roadmap).
Options
Section titled “Options”| Option | CLI flag | Type | Default |
|---|---|---|---|
url |
--url <url> |
valid URL | auto-detected from a running/launchable dev server |
routes |
--route <path...> |
string[] |
['/'] |
outDir |
--out <dir> |
string |
.local/frontend-qa/runs/<runId>/ |
headed |
--headed |
boolean |
false |
timeoutMs |
--timeout <ms> |
positive integer | 30000 |
failOn |
--fail-on <severity> |
critical | high | medium | low | never |
high |
viewport |
--viewport <WxH> |
{ width, height } |
Playwright’s default viewport |
discoverRoutes |
--discover-routes |
boolean |
false |
har |
--har |
boolean |
false |
a11y |
--a11y |
boolean |
false |
perf |
--perf |
boolean |
false |
visual |
--visual |
boolean |
false |
How resolution works
Section titled “How resolution works”packages/core’s resolveConfig() takes the raw CLI input, applies these
Zod defaults, and validates it — an invalid --url or negative --timeout
fails fast with a validation error rather than reaching the browser layer.
The resolved config is stored verbatim on every Report.config, so a report
is self-describing: you can tell exactly what produced it without cross
referencing the command that ran.
Route matching
Section titled “Route matching”routes are paths appended to url’s origin — --route /pricing against
--url http://localhost:5173 scans http://localhost:5173/pricing.
--discover-routes additionally crawls same-origin <a href> links found on
the routes you gave it, and scans those too, deduplicated.
Viewport format
Section titled “Viewport format”--viewport 1280x800 parses to { width: 1280, height: 800 }. Omit it to
use Playwright’s default viewport.
Full schema
Section titled “Full schema”See Configuration Reference for the exact Zod schema this is generated from.