QAwalk

All guides › By agent

By agent

QAwalk in CI: headless runs, read-only tokens, one comment per scenario

Run the same walkthrough from GitHub Actions or any CI: bundled Chromium, a tester token to share, a read-only token to read, results in the PR and on the canvas.

The agent's walkthrough is also a job. In CI the same four commands run against review or staging on every push, and the PR gets one comment per scenario that updates itself.

The problem

Screenshots produced in CI end up as artifacts nobody downloads. Visual checks live in a separate tool with its own login and its own idea of what a step is.

What changes with QAwalk

CI runs qawalk start, walk, evaluate, share --pr. The canvas is the artifact, the PR comment is the notification, verdicts are given by people on the canvas and read back by the agent or the next job.

How it works

  1. Config for CI

    a copy of qawalk.config.yml without browser.channel so bundled Chromium is used (npx playwright install --with-deps chromium), environments limited to what CI can reach.

  2. Secrets

    QAWALK_TOKEN with the tester role to share runs; TYPESAFE_API_KEY if you want semantic criteria evaluated in CI. A read-only token is enough for jobs that only read results or export runs.

  3. Job

    checkout, npm ci, install Chromium, then the four commands with --config qawalk.ci.config.yml; qawalk export if you want the zip as an artifact too.

  4. Gate

    qawalk feedback --json returns the run verdict; a job can wait for accepted before deploying. QAwalk's own daily demo refresh is exactly such a job.

Skills and prompts

For CI there is no prompt, only the workflow. QAwalk's own workflow is a template: demo-run.yml and scripts/demo-run.mjs.

QAWALK_TOKEN=… node scripts/demo-run.mjs

Expected outcome: a shared run, a PR comment (with --pr on a branch with a pull request), the summary line in the job log.

What you get

FAQ

How long does a run take in CI?

Roughly a minute per ten steps in two locales and two viewports, plus evaluation. Runs are read-only against production and never create data.

Can CI accept the run automatically?

No, and that is the point: acceptance is a person's stamp. CI can check that a person gave it.

What it looks like

A real run of QAwalk on its own public pages, refreshed daily. This is the canvas your team gets.

6 of 6 steps passed · 2026-09-24Open the run in QAwalk ↗

More guides

QA with Claude Code: install the skill, ask in plain words, read the canvasQA with Codex: the skill in skills/qawalk and a pointer in AGENTS.md

Install in three steps

QAwalk runs where your code and your agent are. The service stores and versions the results, shows the canvas and collects approvals.

  1. Add the CLI to the project
    npm install --save-dev github:sinfin/qawalk#v0.1.0

    Pre-launch: the repository is private. Ask Sinfin for access.

  2. Create the config and install the skill
    npx qawalk init --agent claude --org <your-org>
    npx qawalk doctor

    The skill is copied to .claude/skills/qawalk.

  3. Create your organization and a token

    Create an organization; you become its admin. The start page offers a tester token in one click, later under Settings → API tokens. Put it into the project .env:

    QAWALK_TOKEN=qwk_…
    TYPESAFE_API_KEY=…   # optional: semantic evaluator
  4. Run and share
    npx qawalk start --scenario docs/tasks/TASK-123/qa/scenario.yml --env local
    npx qawalk walk        # playwright steps; agent/manual steps: qawalk capture
    npx qawalk evaluate
    npx qawalk share --pr

    Or ask your agent: “Walk the acceptance plan of TASK-123 with QAwalk on local and share the result.”