Skip to main content

CONFIG REFERENCE (testronaut-config.json)

{
"provider": "openai",
"model": "gpt-5.6",
"initialized": true,
"outputDir": "missions/mission_reports",
"projectName": "name_of_your_repo",
"maxTurns": 20,
"tags": ["smoke"],
"tagMatch": "any",
"addTags": ["nightly"],
"sessionToken": "*******************",
"mfaName": "github-test-mfa"
}

provider: LLM provider (openai, gemini, or anthropic; claude is accepted as a CLI alias)

model: specific model to use for test runs

reporter: json, html

outputDir: artifact/report location. JSON, HTML, run-specific screenshots, upload discovery, and serve all use this directory. Relative paths resolve from the project root.

maxTurns: number of agent actions given per mission to accomplish a goal (minimum 5, maximum 200 - any values beyond these bounds are currently clipped automatically by the CLI to avoid overruns and to better ensure performance)

sessionToken: used for cli comands with authentication needed (i.e. testronaut upload)

mfaName: optional default MFA nickname for automated MFA code retrieval.

tags: default mission-selection tags. CLI --tags overrides this value. Ignored when mission filenames are explicitly supplied.

tagMatch: any (OR, the default) or all (AND). CLI --tag-match overrides this value.

addTags: tags added to every executed main mission. CLI --add-tags combines with this list.

Use testronaut config to inspect resolved values and their sources. Add --json for machine-readable output; sensitive token values are not included.

Automated MFA​

Automated MFA uses sessionToken plus a stored MFA nickname to retrieve a current TOTP code from the Testronaut API.

Default nickname:

{
"sessionToken": "eyJ...",
"mfaName": "github-test-mfa"
}

Nested form:

{
"sessionToken": "eyJ...",
"mfa": {
"nickname": "github-test-mfa"
}
}

Creating or updating MFA entries is a premium feature. Existing stored MFA entries can still be listed and retrieved if an account downgrades.

See Automated MFA Codes for CLI, config JSON, and mission text examples.

Human input​

Controls whether the agent can pause and prompt the terminal user for short verification codes (TOTP, SMS, email codes).

  • Config block:
    "humanInput": {
    "enabled": true,
    "timeoutSeconds": 60
    }
  • Env overrides:
    • TESTRONAUT_HUMAN_INPUT (true/false)
    • TESTRONAUT_HUMAN_INPUT_TIMEOUT_SECONDS (number)

enabled defaults to true. Set to false for headless CI runs. Timeout is clamped to 5–300 seconds.

Accepted aliases: humanInputEnabled, allowHumanInput, humanInput.timeout, humanInputTimeoutSeconds, humanInputTimeout.

DOM list trimming​

  • dom.listItemLimit / dom.listLimit / domListLimit (number 0–100, "all", or "none")
  • Env override: TESTRONAUT_DOM_LIST_LIMIT
  • Default: 3 items per list. "all" keeps everything but can massively increase tokens and may break flows.

Resource guard (list/table completeness)​

Ensures detected resources (documents/files/rows) are fully processed before reporting success.

  • Config block:
    "resourceGuard": {
    "enabled": true,
    "hrefIncludes": ["/document/", "/file/", "/download", "/attachment/"],
    "dataTypes": ["document", "file", "item", "row"]
    }
  • Env overrides:
    • TESTRONAUT_RESOURCE_GUARD (true/false)
    • TESTRONAUT_RESOURCE_HREF_PATTERNS (comma-separated)
    • TESTRONAUT_RESOURCE_DATA_TYPES (comma-separated)

enabled defaults to true. Adjust patterns to fit your app. Set to false to disable.

Key env vars (summary)​

  • TESTRONAUT_DOM_LIST_LIMIT β€” cap list items (0-100, all, none)
  • TESTRONAUT_RESOURCE_GUARD β€” enable/disable resource guard
  • TESTRONAUT_RESOURCE_HREF_PATTERNS β€” comma list of href substrings
  • TESTRONAUT_RESOURCE_DATA_TYPES β€” comma list of data-type values