◉ QA agent for Claude Code

The AI agent that drives, explores
& QAs
your app

Watchr gives Claude Code hands and eyes inside any iOS, Android, or web app. Tell it what to test in plain English — it taps, types, scrolls, watches the network, finds bugs, and reports back. No scripts. No selectors.

iOS simulator + device Android emulator + device Web Playwright
you › Launch the app, sign up with a new email, audit accessibility
      on every screen, and flag anything slow or crashing.

watchr › booting iPhone 15 simulator… launching com.acme.app
watchr › walking onboarding: Welcome → Email → Verify → Home (5 screens)
  ✓ sign-up flow completed, no crashes
  ⚠ "Continue" button on Verify screen has no accessibility label
  ⚠ Home feed took 3.8s to stabilize (>3s threshold)
  ✓ report + screenshots saved

What it actually is

It's the difference between writing a test suite and asking a teammate to go test something. You direct it in a sentence; it does the clicking, watching, and reporting.

🗣️

Plain-English control

No Appium, no XCUITest boilerplate, no brittle selectors. Describe the flow; Watchr figures out the taps.

🔁

One surface, four backends

The same commands run on iOS, Android, and web. Watchr auto-detects what's connected and speaks the right dialect.

📸

Evidence by default

Screenshots at every step, a narrated report at the end — not just a red/green dot.

One tool surface, four backends

Write the test once, conceptually. Switching platform is one parameter — or nothing at all, since it auto-detects what's connected.

running

iOS Simulator

auto-detected
USB · device

iOS Physical Device

one-time guided
emulator · device

Android

zero setup
headless Chromium

Web

device="web"

A research agent — not just a remote control

Watchr is built to explore and investigate, not only replay fixed steps. It goes looking for what you didn't think to check.

🧭

Autonomous exploration

Turn it loose on a starting screen with explore — it crawls the app on its own, mapping flows and surfacing pages you forgot existed.

🎭

Personas

Define a "first-time user on slow 3G" or "power user with a full cart" and have Watchr behave like them while it tests.

😤

Frustration signals

Instruments the page and reads back real friction — rage clicks, dead clicks, thrash — like a UX researcher would.

🔬

Network & state introspection

Read requests & response bodies, inspect storage/cookies, run arbitrary JS, and mock routes to simulate failures.

Parallel runs

parallel_run fans out N sessions across N flows in a single round-trip to cover a lot of ground fast.

📝

Shareable reports

Turn any session into a QA report with build_report, or import test cases from CSV.

Full QA, built in

These are first-class — not separate tools you wire up. A single session can be a functional test, an a11y audit, a perf check, a visual-regression pass, and a crash hunt at the same time.

Crash detection check_app_state

Reads crash logs & console errors after every risky action.

Accessibility audit_accessibility

Flags missing labels & too-small touch targets, per screen.

Performance perf_audit

Times every action; flags slow (>3s) and very slow (>5s) screens.

Visual regression compare_with_baseline

Golden screenshots, diffed automatically after changes.

Chaos testing monkey_test

Random taps & swipes to shake out crashes.

Usability usability_audit

Heuristic UX review of the current screen.

Security & SEO security_scan / seo_audit

Web-side scans for common issues.

Assertions assert_*

Text visible, URL matches, no console errors, no failed requests.

Where it fits in your week

Before a PR merges

"Test the flow I just changed and tell me what broke."

Pre-release QA

One pass covering function, a11y, perf & crashes across iOS + Android + web.

Investigating a bug

"Reproduce this on Android and capture the network traffic."

Exploratory testing

"Poke around the settings screens and find anything that feels off."

Get started in one command

Add Watchr to Claude Code. uvx downloads everything automatically.

$ claude mcp add --scope user watchr -- \
    uvx --python 3.12 --upgrade watchr-mcp

Then just open Claude Code in any project and tell it what to test.