Skip to main content
The QAOS config file is a JSON document that fully specifies a test run. Save it anywhere on your system and pass its path to qaos run --config.

Full examples

QAOS Mode

qaos-config.json

Guided Mode

qaos-config.json

Root-level fields

name required

Type: string A human-readable label for this run, shown in the dashboard and reports. Use descriptive names that identify the scope and context.

projectId required

Type: string (UUID) The ID of the QAOS project this run belongs to. Find project IDs in the Dashboard under Projects → Settings.

agentInfo optional

Type: object Arbitrary key-value metadata attached to the run and visible in the report. Use this to track context like environment name, CI pipeline info, or triggering user.

websiteOrigin optional

Type: string The root directory of the website being tested. Only required when any startUrl is a filesystem path — either a file:// URL or a Windows local drive path (e.g. C:/my-site). When set, every startUrl (across all tasks and qaosConfig) must begin with this value. Paths are compared using forward slashes, so C:\my-site and C:/my-site are treated the same.
For HTTP and HTTPS URLs, you can omit this field entirely — it is not used.
If any startUrl is a filesystem path, the run will be rejected unless websiteOrigin is set to the root directory of the site.

maxBudget optional

Type: number Maximum run budget in USD. When set, the run is aborted as soon as the estimated OpenAI cost reaches this value.
Cost formula used by the server: costUsd = (inputTokens / 1000) * 0.00075 + (outputTokens / 1000) * 0.0045

qaosMode optional

Type: boolean When true, enables autonomous crawl mode. The agent starts at qaosConfig.startUrl, discovers pages on its own, and audits everything it finds. The tasks array is ignored.

qaosConfig required when qaosMode: true

Type: object Configuration for the autonomous crawl. Only used when qaosMode is true.

tasks required unless qaosMode: true

Type: array The list of Guided Mode tasks to execute. Tasks run sequentially in the order they are defined. Required when qaosMode is not set. Ignored when qaosMode: true.

Task fields

Each object in the tasks array:

description required

Type: string A natural language description of what this task should do. The agent interprets this to decide which actions to take, which pages to navigate to, and what to look for. More specific descriptions yield better results.

context optional

Type: string Additional background information the agent should be aware of when executing this task. Useful for providing credentials, explaining application-specific behavior, or flagging known limitations.

startUrl required

Type: string The URL the agent navigates to at the beginning of this task. Must include a recognized scheme:
  • Web URLs: https:// or http://
  • Filesystem paths: file:// URL, a Windows drive path (C:/my-site/page.html), or a Unix/Mac absolute path (/home/user/site/page.html)
Omitting the scheme (e.g. writing example.com instead of https://example.com) will cause the run to be rejected. Always include the full scheme.

subAgents optional

Type: array of "security" | "uiux" Which agent modules to activate for this task. Accepts an array containing one, both, or neither value. An empty array is valid — the agent will still navigate and attempt to complete the task description, but will not run any issue evaluations. This is primarily useful for validating that a flow can be completed end-to-end (the task fails if the agent cannot finish it). It can also be used to set up state before a subsequent task.
If a subagent is included in subAgents but all of its issues are listed in ignoredIssueIds, the run will be rejected with an error. Either remove the agent from subAgents or un-ignore at least one of its issues.

Common patterns

QAOS Mode — full site audit

Multi-step authentication flow

Security-focused admin audit

Accessibility-only UI/UX pass

Completion-only task (no evaluations)

Use "subAgents": [] to verify that a flow can be completed without checking for specific issues. The task fails if the agent cannot finish it, surfacing bugs in the flow itself. It can also be used to set up state (e.g. log in) before a subsequent task that does run evaluations.

Testing a local static site

Use filesystem paths when testing a locally-served static website. Set websiteOrigin to the root directory and use full paths for each task.