Skip to content

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).

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

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.

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 1280x800 parses to { width: 1280, height: 800 }. Omit it to use Playwright’s default viewport.

See Configuration Reference for the exact Zod schema this is generated from.