A universal execution board where testers and autonomous agents collaborate on the same interface. AI progressively takes over the cognitive work — writing test cases, generating scripts, executing runs, reporting back — without ever leaving the board.
Postman is for humans clicking buttons. Pytest is for engineers reading stack traces. Neither was designed for an AI agent that wants to read context, generate a script, run it, and write back the result. QA Runner is.
No ceremony. Drop in a description, let AI do the busywork, override anything you want, and ship the result to the same board your teammates see.
Run tests by hand. Run them on every PR. Run them at 3 AM. Run them from a chat with Claude. Same TC, same result, one history.
Claude sees your TC, your fixtures, your environment, and your last 10 runs. Ask it to write Part 2, refine an assertion, or explain why TC-014 has been flaky for three days. It has tools, not vibes.
Run on push, PR, or schedule. Block merges on fail.
Failures land in your channel with the failing TCs already inline.
Part 1 is yours — fixtures, dependencies, secrets. Part 2 is the AI's — the actual test logic, regenerable from a spec change. The boundary is enforced. AI never touches your auth.
A typed tool registry over SSE. Connect Claude Code to your qa-runner instance and it writes results to the same board your team is staring at — with attribution, script snapshot, and a verifiable trail.
@mcp_tool
def report_test_result(
tc_id: str,
verdict: Literal["pass", "fail", "error"],
http_status: int,
duration_ms: int,
actual_response: dict,
note: str,
env: str,
run_by: str, # "human" | "agent:{id}"
script_snapshot: str, # exact script executed
) -> RunResult: ...
@mcp_tool
def get_tc_context(tc_id: str) -> TCSpec: ...
@mcp_tool
def gen_script(tc_id: str, part: int = 2) -> str: ...
@mcp_tool
def execute_script(
tc_id: str, timeout: int = 30
) -> ExecutionResult: ...Deploy frontend to Vercel, backend to Railway/Fly/Render. Bring your own Anthropic key. Per-target recipes shipped in the repo.
One command. Docker-compose-based. Agent has full local file/process access — perfect for CI runners and privacy-strict shops.
# docker-compose.yml
services:
frontend: image: qa-runner-frontend
backend:
image: qa-runner-backend
volumes:
- ./data:/app/data
- ./scripts:/app/scripts
$ docker compose upSelf-host guideSpin up a board in two minutes. Connect your first agent in five. Self-host is free, forever — no per-seat pricing, no usage caps.