Your coding agent has hands — tapp gives it judgment. Autonomous QA that explores the app like a user (iOS simulator or real browser), detects what's broken, and returns a deterministic ship/no-ship verdict with evidence. No test code. No app changes.
Every driver speaks the same protocol, so the exploration, detectors, verdict, and regression gate are identical everywhere.
Hands and judgment: a generic XCUITest harness drives any app on the simulator via the accessibility surface. Native — no Appium, no WebDriverAgent, no SDK.
Built on Playwright: your agent already has browser hands; tapp adds autonomous exploration and detectors for uncaught exceptions, failed requests, dead buttons, broken links, and error pages.
A macOS cockpit around the same engine: import a project, click Run, watch QA live, get the decision card. Free download, in packaging.
tapp explores like a user, acts like a user, screenshots what it sees. Everything runs locally on your Mac; nothing leaves it.
tapp_open_appLaunch the app, get a screenshot + accessibility tree back in seconds.
tapp_session_*Interactive driving — the Playwright loop. Tap, type, swipe, back, wait.
tapp_run_qaAutonomous QA — explores the app (iOS bundle id or web URL), returns {verdict, confidence, findings[]}.
tapp_flow_*Record a session as a replayable Flow, or generate one from a goal in plain English.
tapp_boot_simulatorSimulator + app install management — list, boot, install.
tapp_healthDiagnostics, capture history, marker parsing.
tapp explores like a user and detects crashes, failed sign-ins, dead buttons, stuck loading
screens, navigation dead ends — and on web, uncaught exceptions, failed requests, and broken
links — then commits to a verdict. Same build in, same verdict out. A shallow run is never
ready. Absence of findings is not a pass.
Genuinely explored, no blockers found.
Issues to review, or the run couldn't see enough.
A release-blocking issue was found.
Install the tapp GitHub App and every PR gets one question answered with evidence: did this break anything that worked in your last release? A fleet of simulated users runs your app's real workflows — new crashes, dead screens, lost content, and broken flows are caught against a baseline and posted as a check + comment, with an honest account of what wasn't checked. No runners, no PATs, no YAML. iOS today; web next.