Skip to main content
Personaudit

Install and run your first scan

The CLI is the whole compliance path. It needs no API key and no account: scan drives a real Chromium, crawls every same-origin state it can reach, and runs axe-core at each one.

Node 20 or newer. The package installs two names for the same binary, personaudit and the older mpersonas.

npm i -g personaudit
npx playwright install --with-deps chromium

personaudit --help

Start here. Nothing is sent anywhere; the report is written next to you.

personaudit scan https://example.com

auth opens a browser, waits while you sign in by hand, and saves the session to a file with mode 0600. Treat that file like a password: it holds live cookies. It stays on your machine, and the hosted service never asks for it.

personaudit auth https://app.example.com --save ./session.json

personaudit scan https://app.example.com --session ./session.json

Snapshot today's backlog once and commit it. After that the build fails only on defects the branch introduced, so an existing backlog never blocks a release.

# once — commit the baseline
personaudit scan https://app.example.com --session ./session.json \
  --baseline mpersonas-baseline.json --update-baseline

# in CI — exit 2 only on NEW defects at or above serious
personaudit scan https://app.example.com --session ./session.json \
  --baseline mpersonas-baseline.json --fail-on serious

A ready-to-paste GitHub Actions workflow is in the CI accessibility gate guide.

run adds LLM personas that browse toward a goal and report task success. It is the one command that needs ANTHROPIC_API_KEY. Personas never render an accessibility verdict, and none of them claims a disability — that is a permanent product constraint, not a current limitation.

export ANTHROPIC_API_KEY=...
personaudit run https://example.com