~/tester — zsh — 96×40

$ tester · autonomous web-app QA

Point it at https://your-app. It crawls every page (including authenticated), runs functional + performance + visual audits, generates re-runnable Playwright specs, and writes a report you can open or share.

  • ✓ local-first
  • ✓ per-project baselines
  • ✓ auth-aware
  • ✓ html + markdown reports
  • ✓ MIT-licensed

## how it works

$ tester init https://your-app.example.com
→ opens browser for interactive auth, captures storageState

$ tester run --url https://your-app.example.com --depth standard
→ crawl · functional · performance · visual
→ emits Playwright specs at ~/.tester/specs/<projectKey>
→ writes report → REPORT.md

$ tester report --share
→ uploads + opens shareable HTML report in the dashboard

## three depths

quick

1–2 min. Health check: status codes, console errors, top-of-fold render.

standard

5–10 min. Full BFS crawl, Core Web Vitals per route, visual heuristics, regression diff vs last run.

deep

20+ min. Adds: form-fill probes, button/CTA exercises, API call tracing, multi-viewport screenshots.

## install

$ # 1. Install the skill (public, Apache 2.0)
$ git clone https://github.com/amineorion/tester-skill ~/.claude/skills/tester

$ # 2. Point at the hosted backend (the easy path)
$ export TESTER_API_URL=https://api.tester.dev

$ # 3. In Claude Code, just say:
→ "QA https://your-app.example.com"
→ "do a full report on https://your-app, deep depth, upload to dashboard"

prefer to self-host?

The platform repo (server + admin + landing + CLI) is private. Ping us for access.

## dashboard

Sign in with email. Every run uploaded with --share shows up under your project list with screenshots, findings grouped by severity, perf trend lines, and a permalink you can paste in a PR.

## faq

Does my app's data leave my machine?

Not unless you opt in. --share uploads the run's report + screenshots to the dashboard you authed against. Without it, everything stays in ~/.tester/.

What does it actually click?

The crawler follows internal links breadth-first. It does not submit forms by default. The "deep" depth probes form-fill paths and primary CTAs you opt into.

How is it different from Lighthouse or Playwright codegen?

Lighthouse audits one page at a time without auth context. Codegen records what you click. tester does an autonomous walk + audit across all your routes, generates Playwright code from what it found, and stores baselines so re-runs diff.

Where does my auth live?

Captured once via the interactive wizard into ~/.tester/projects/<projectKey>/storageState.json. Same shape Playwright uses. Never uploaded.