Skip to main content

CLI Reference

testronaut --init​

Scaffold missions and config.

testronaut --turns=<n>​

Override max turns for this run (e.g., --turns=30).

testronaut --tag=<tag>​

Run missions matching a tag. Repeat the flag for multiple tags; this is the recommended syntax because each value is unambiguous to the shell.

testronaut --tag authentication --tag smoke

testronaut --tags=<tag,...>​

Compact comma-separated form. Lists containing spaces must be quoted:

testronaut --tags authentication,smoke
testronaut --tags "authentication, smoke"

Tags themselves cannot contain spaces. Singular and plural forms may be repeated or combined. Use the reserved untagged filter to select missions without tags. Selection is ignored when mission filenames are explicitly provided.

testronaut --tag-match=<any|all>​

Choose OR (any) or AND (all) tag matching. The default is any.

testronaut --add-tag=<tag>​

Add one tag to every executed main mission. Repeat for multiple tags:

testronaut --add-tag nightly --add-tag full-test-run

testronaut --add-tags=<tag,...>​

Compact comma-separated form. Quoted whitespace around commas is accepted. CLI additions combine with addTags in configuration.

testronaut --provider=<n>​

Override the provider used for this run: openai, gemini, or anthropic (claude is also accepted). This overrides the project config. Pair it with a model from that provider, for example testronaut --provider=anthropic --model=claude-sonnet-5.

testronaut --model=<n>​

Override model used for this run (e.g., --model=gpt-5.6-terra). Note that this override should use the same LLM provider.

testronaut [mission]​

Run discovered missions, or run one or more .mission.js/.mission.ts files by name or path. Paths support shell tab completion:

testronaut login.mission.js
testronaut missions/login.mission.js
testronaut missions/checkout.mission.ts

Mission files may use import/export syntax without adding "type": "module" to the project package file. A missing filename produces a suggestion when a close discovered name exists. A missing executeMission export or load failure exits nonzero.

testronaut list​

List discovered mission files and their exported tags without executing them.

testronaut list

testronaut config​

Print the effective provider, model, report directory, turn budget, tag settings, screenshot setting, authentication presence, and the source of overridden values. Session tokens are never printed.

testronaut config
testronaut config --json

testronaut login​

Manage authentication.

testronaut upload [report]​

Upload the newest JSON report from the configured outputDir, or select a report by run ID, filename, or direct path:

testronaut upload
testronaut upload run_1788745106444
testronaut upload run_1788745106444.json
testronaut upload artifacts/reports/run_1788745106444.json

Only screenshots referenced by that report are uploaded; unrelated images are ignored.

testronaut --dry-run​

Resolve configuration, discovery, tags, mission exports, and the execution selection without launching a browser or calling an LLM.

testronaut --dry-run
testronaut checkout.mission.ts --dry-run

Screenshot controls​

  • --no-screenshots removes the screenshot tool and disables automatic failure screenshots for a mission run.
  • --no-upload-screenshots uploads only report JSON when used with testronaut upload.

Output controls​

  • --json suppresses informational logs and emits machine-readable JSON for supported commands and run summaries.
  • --quiet suppresses informational logs while preserving errors and exit status.

The flags can be combined for automation, for example:

testronaut --tags authentication --json --quiet

Machine-readable output does not disable screenshots. Use --no-screenshots explicitly when capture is not wanted.

testronaut serve​

View the most recent HTML report from the configured outputDir.

testronaut view​

View the most recent html report. Alias for serve.

To make a local report available in Mission Control, upload it separately with testronaut upload.

testronaut --no-human-input​

Disable the human-in-the-loop verification prompt for this run. Useful for automated/CI environments where no one is at the terminal. When disabled, any mission instruction that would trigger a user prompt will fail immediately instead of waiting.

testronaut --human-input[=<bool>]​

Explicitly enable or disable human input for this run (e.g., --human-input=true, --human-input=false). --no-human-input is shorthand for --human-input=false.

testronaut --human-input-timeout=<s>​

Override the number of seconds the agent waits for a user to enter a verification code before timing out (e.g., --human-input-timeout=120). Accepted range: 5–300 seconds. Default: 60.

testronaut <mission> -o mfa=<nickname>​

Tell the automated MFA tool which stored MFA nickname to use for this run.

testronaut login.mission.js -o mfa=github-test-mfa

The CLI uses the sessionToken from testronaut-config.json and calls the Testronaut API to retrieve the current TOTP code. Creating or updating stored MFA entries is a premium feature, but reading existing MFA entries does not require premium access if an account later downgrades.

For the full setup flow, see Automated MFA Codes.