QA Wolf CLI is a command-line tool for running and managing QA Wolf end-to-end testing flows from a local terminal or continuous-integration environment. Development and QA teams use it to execute their browser-test flows, while test creation, AI test generation, cloud execution, and collaboration belong to the wider QA Wolf platform.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/qawolf/cliWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/qawolf/cli/qawolfclirunresults.template)<a href="https://agentmods.dev/commands/qawolf/cli/qawolfclirunresults.template"><img src="https://agentmods.dev/badge/commands/qawolf/cli/qawolfclirunresults.template.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01563 |
| Opus 5 | $0.00000 | $0.00781 |
| Sonnet 5 | $0.00000 | $0.00313 |
| Haiku 4.5 | $0.00000 | $0.00156 |
Grade A, and why
qawolfCliRunResults.template scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| xargs -r curl -sS -o trace.zip How it starts
The opening of the file, as written. The whole thing — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Reading a run's results
How to use what qawolf run get --run-id <id> --json returns, and how to read
the Playwright trace it links to.
Call run get with --json and you see most of the response immediately. Read
this file for the parts a single response cannot show you: fields that appear
only when something fails, rules about the artifact URLs, and how to read a
trace without opening the trace viewer.
The shape
A run holds flows, a flow holds attempts, and artifacts hang off an attempt:
run
└── flows[]
├── failure only when the flow failed
└── attempts[] oldest first
├── logsUrl
├── traceUrl
└── videoUrl
runId in the response is canonical and can differ from the id you asked for.
Use the returned value for follow-up calls.
Poll status until it reaches passed, failed or canceled. The other
values mean the run is still going.
Fields a passing run does not show you
flows[].failureexists only when a flow failed. Every flow passing means there is no failure object at all, so its diagnosis and issue id are invisible until something breaks. Do not conclude the field does not exist.gitis populated only when a deploy notification started the run. A run started manually or withrun createhas an empty object here.- An attempt's
kindandstatusselect which other fields it has. Only automated attempts that reached a verdict carry artifact URLs; canceled attempts and manual Wolf Browser attempts carry none. - A flow that passed after a retry still lists its failed attempts. Read the last attempt for the outcome, and the earlier ones to see what went wrong.
Artifact URLs
Each automated attempt links logsUrl (execution logs), videoUrl (screen
recording) and traceUrl (a Playwright trace.zip).
- They are signed URLs with a limited life. The contract guarantees at least a
day. Call
run getagain for fresh ones instead of storing them; a stored URL becomes a dead link. - A URL can return 404 when that attempt did not produce that artifact. Handle the 404 rather than treating the URL's presence as a guarantee of content.
- Download with a plain HTTP GET. The signature is in the URL, so no authentication header is needed and no QA Wolf credentials are involved.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 149 lines · 0 tokens per session scan A 5a8d8074c983
qawolfCliRunResults.template is a command published in the GitHub repository qawolf/cli (3,446 stars, last pushed today), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,563 tokens. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
e2e-echo-command
E2E test command — echoes back the user message.
auto-canary
A command for deployment verification that runs a build, end-to-end tests, and browser health checks. End-to-end tests check a complete user flow across the application rather than only one small part.
auto-verify
A command for checking a website's front-end user experience with Playwright, a tool that automates web browsers.
create-smoke-test.template
This prompt was authored for Claude-style slash workflows. In Codex runtime, adapt tool calls as follows.
ui-test.template
This prompt was authored for Claude-style slash workflows. In Codex runtime, adapt tool calls as follows.
ui-smoke.template
This prompt was authored for Claude-style slash workflows. In Codex runtime, adapt tool calls as follows.