Your AI agent says "done." Reticle checks whether that's true.
It drives your real running app, reads what actually happened, and hands back pass · fail · couldn't tell with the file:line to fix.
Ask anything, see what's being built, and help decide what ships next.
The problem · Demo · What Reticle does · Install · Use it · Community · vs Playwright · Benchmarks · Safe to install · Docs
Your agent writes code, assumes it worked, and moves on. It never opens the app.
So the broken modal, the silent 500, the "Deploy succeeded" over a failed deploy: they all ship, and you find them by clicking around afterwards. You've become your agent's QA.
The truth was in the running app the whole time. It just never reached the screen.
This isn't something your agent forgot. A coding agent is built to produce a change, and it's optimistic by construction. Verification is the opposite motion: going to find out, and being willing to come back with no.
▶ An agent says its fix works. Reticle catches the double charge it missed. Click for the full demo.
Reticle puts a small, dev-only SDK inside your app, and gives your coding agent tools to look, act, observe and assert through it. Because it reads the app from the inside, it sees what the screen hides: the request a click fired and what came back, the state the app holds, the console, and the source line behind each element. Every check ends in a verdict with the evidence attached.
- A verdict, not a screenshot.
verified: "yes","no"or"unknown"(couldn't tell), with the request, state change and console line that decided it, and thefile:lineto open. - Sees what the screen hides. Network responses tied to the click that caused them, your store's real state (zustand, Redux, TanStack Query, Pinia and more), console errors, request counts, React renders.
- Says when it can't tell. Only
yesis a pass. A check that couldn't decide comes back
