CLI
Run any command with npx tensteps@beta <command>. Add --help to any command for every option.
| Command | Does |
| --- | --- |
| run | Send personas through a site and write a report |
| validate | Check tensteps.yml |
| personas | Preview the personas a population or study will use |
| models | List the models Tensteps can use, with prices |
| install-browser | Download Chromium ahead of time |
run
npx tensteps@beta run --url https://your-preview.vercel.app
| Option | What it does |
| --- | --- |
| -u, --url | The site to test (or TENSTEPS_URL). In GitHub Actions it comes from the deploy event. |
| -s, --study | Only these studies. |
| -n, --sessions | Personas per study, overriding the config. |
| -t, --trigger | Use a trigger's session count (pull_request, push_main, nightly). |
| --model | Claude model (or TENSTEPS_MODEL). Default claude-fable-5-1. |
| --effort | Thinking effort: none, low, medium, high. Default low. |
| --concurrency | Sessions at once. Default 4. |
| --max-cost | Don't start if the estimate is above this many dollars. |
| --fail-under | Exit 1 if any study's success rate is below this, like 80%. |
| -H, --header | Extra request header for the site, like "x-api-key: abc". |
| --allow-host | Other sites a flow may visit, like checkout.stripe.com. |
| --dry-run | Show the plan and cost estimate, then stop. |
| --open | Open the report when done. |
| -y, --yes | Don't ask before starting. |
| --headed | Show the browser windows. |
| --no-summarize | Skip writing plain-language finding titles. |
| --ci | CI mode. On automatically when CI=true. |
| --no-comment | In CI mode, don't comment on the pull request. |
| -o, --out | Where runs are saved. Default .tensteps/runs. |
Exit codes: 0 done; 1 a study fell below --fail-under; 2 a setup problem (config, key, URL); 3 the run itself failed.
Environment: ANTHROPIC_API_KEY (required), VERCEL_AUTOMATION_BYPASS_SECRET (protected Vercel previews), TENSTEPS_URL, TENSTEPS_MODEL, TENSTEPS_EFFORT, and any secret:NAME your studies use.
validate
npx tensteps@beta validate [file] [--strict] [--print-resolved] [--json]
Points to the exact line of any problem. --print-resolved shows the config with every default filled in.
personas
npx tensteps@beta personas -p low_tech_comfort -n 5
npx tensteps@beta personas --study checkout
Shows who will test your site, with their traits and, for a study, the device and network each one gets.
models
| Model | Price per million tokens (in / out) | Notes |
| --- | --- | --- |
| claude-fable-5-1 | $10 / $50 | Most capable. Default. |
| claude-opus-5-5 | $4 / $20 | About 40% of Fable's cost. |
| claude-sonnet-5-5 | $2 / $10 | Faster and cheaper; good for large runs. |
| claude-haiku-4-5-20251001 | $1 / $5 | Cheapest; least realistic personas. |