CLI

Your whole checklist runs from one command.

Same YAML on your laptop and in CI. JUnit and JSON reports. A failing test exits non-zero, which is all your pipeline needs to stop a bad merge. Prefer nothing to install? Start in the web app.

Run the checklist
npx zerocheck run --env staging

Node 20.19 or newer. Local runs install Chromium with one command. Hosted runs need no browser install.

Built for teams shipping with

Claude CodeClaude Code
CodexCodex
GitHub CopilotGitHub Copilot
CursorCursor
Amp

From install to a passing pipeline.

The CLI reads zerocheck.yaml, collects the YAML checks in your project, and runs them. Your repository supplies the tests and configuration; Zerocheck supplies the AI service and shared results.

01Install the runner

Add zerocheck to devDependencies, sign in, and write zerocheck.yaml with your environments. Local runs install Chromium with one command; hosted runs need no browser install.

Terminal
npm install --save-dev --save-exact [email protected]
npx zerocheck login
npx zerocheck init --url http://localhost:3000 --github-actions
npx zerocheck install

02Keep the tests in the repo

Repository tests are YAML files next to your code. Review and save imported drafts, edit tests by hand, or use a compatible coding agent through MCP.

zerocheck/tests/release-notes.yaml
version: zerocheck/v1
name: Release notes are available
blocks_merge: true
steps:
  - Navigate to /releases
  - Verify the Release notes heading is visible

03Run locally, then gate the merge

The same command runs on your laptop and on a CI runner. A blocking failure exits non-zero; configure the workflow check as required to enforce your merge policy. The report command updates one PR comment.

Terminal
npx zerocheck run --env dev
npx zerocheck run --env staging --json .zerocheck/latest-run.json --junit .zerocheck/junit.xml
npx zerocheck report --file .zerocheck/latest-run.json

What the CLI gives you.

Local runs first

npx zerocheck run --env dev starts the tests against your dev server. Localhost and private networks work because the browser runs where you run it.

Pick the tests that matter

Pass a file path or a directory. Empty, invalid, or duplicate selections fail before a browser opens; run never invents starter checks.

Reports your pipeline can read

--json writes the complete run with every attempt. --junit writes JUnit XML for CI. Results and screenshots upload to the web app, with recordings when no configured credentials are used.

Exit codes you can trust

0 for a completed accepted result, 1 for a blocking failure, 2 for setup, incomplete, or infrastructure errors. A pass after a transient retry is labeled flaky; --fail-on-flaky makes a blocking flaky test fail CI.

One flag for hosted

--runner hosted runs the same YAML in Zerocheck's hosted browser against a URL it can reach. Runner, environment, and trigger are independent.

MCP for coding agents

npx zerocheck mcp starts a stdio server. Coding agents such as Claude Code or Cursor reach the same import, run, results, and cancel tools, so an agent can write a check and run it in the same turn.

What it looks like.

Real import against the TodoMVC demo app, 6 September 2026. One item could not run, and it says so.

zerocheck import
$ npx zerocheck import release-checklist.md --env dev
Checklist import f467c792-c905-4931-9d34-0683148282af: completed
  heading  # TodoMVC release checklist
  verified passing  Open the app and confirm the "todos" heading is visible
    zerocheck/tests/import-f467c792/item-3.yaml (dfd265b1)
  verified passing  Add a todo "Buy milk" and verify it appears in the list
    zerocheck/tests/import-f467c792/item-4.yaml (8e989a99)
  could not run  Mark "Buy milk" as completed and verify the "Clear completed" button appears
    AI could not confidently identify a valid action for this step.
    zerocheck/tests/import-f467c792/item-5.yaml (2ed53656)
Review the exact YAML, then save with: zerocheck import --draft f467c792-c905-4931-9d34-0683148282af

The CLI, answered.

How do I install the CLI?

Add zerocheck to devDependencies, run npx zerocheck login, then npx zerocheck init to write zerocheck.yaml. Run npx zerocheck install once on a new machine or CI runner to install Chromium.

What does zerocheck run do?

It reads zerocheck.yaml, collects the YAML checks in the project, runs them in a browser against the selected environment, and writes results locally and to the web app.

Where do the tests live?

CLI tests live in your repository as YAML files you can review in pull requests. Tests created in the web app can be saved, edited and rerun there, with individual YAML downloads. To save imported drafts in your repository, review them first and use zerocheck import --draft.

Do I need an API key to run tests?

Yes. Sign in with zerocheck login on your machine, or set ZEROCHECK_TOKEN to a project token in CI secrets.

Which report formats does the CLI write?

A complete JSON run record and JUnit XML. The report command turns the JSON into a GitHub job summary and a PR comment.

Can a coding agent run these commands?

Yes. Coding agents such as Claude Code or Cursor reach the same commands through the MCP server, so an agent can import a checklist, run a check, and read the result in one turn.

Does the CLI have other package names?

Yes. The same CLI is published on npm under 13 other command names (e2e-testing, e2e-qa, e2e-agent, agentic-qa, e2e-verify, bugbash, qa-tests, qa-checks, run-qa, agentic-testing, agentic-e2e-testing, browser-qa and web-qa), each pinned to the same version, so npx e2e-testing run and npx zerocheck run are the same program. The docs use zerocheck; use whichever name you installed.

Can I run tests without a browser window?

Yes. Runs are headless. Hosted runs need no browser on your machine at all.

How do I pass secrets and environment variables to a run?

Define an environment in zerocheck.yaml and reference values as ${NAME}. Only referenced variables are read, from your shell, your CI secret store, or the hosted server. Missing values stop the run.

How do I run against a preview deployment?

Point an environment at the preview URL in zerocheck.yaml and select it with --env. Dev, staging, and production are named explicitly.

Close the feedback loop.

Point Zerocheck at your app. Free to start, no credit card.