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:
3items 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 guardTESTRONAUT_RESOURCE_HREF_PATTERNSβ comma list of href substringsTESTRONAUT_RESOURCE_DATA_TYPESβ comma list ofdata-typevalues