Install it
Four steps. Each command says what it did and is safe to run twice. Needs Node 20.11 or newer.
On Windows, step 1 is
irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex. The installer puts reticle on your PATH, registers it with every coding agent it finds. It does not wire your app: that is step 2. Skip step 2 and your agent can still check the app with the zero-install lease, which installs nothing. It asks you before it wires the app. The quickstart walks every step.
A session listed means the SDK reached the page. Setup is finished when the first run returns a verdict.
Then hand it to your agent
The installer ends with Next steps. Do them in order:- Restart your coding agent. An agent loads its MCP tools only when it starts, so one that was open during the install cannot see Reticle yet. That restart is why setup begins with a command, not a prompt.
- Paste the prompt the installer printed into the agent, opened in your app’s folder. The agent runs
reticle init, wires your app, and drives one real flow to a verdict.
What that command actually changes
The files it writes, the marks it prints, and how to read its report.
Quickstart
Install, connect your agent, and get a real verdict. Five minutes.
Why Reticle
The false-green problem, and the evidence that this fixes it.
Use cases
Agent-built changes, security behaviour, accessibility, performance, SEO basics and personas.
Desktop apps
Electron and Tauri, including the IPC boundary nothing else can see.
Install
Let your agent do it, or wire it by hand.
Tools
Every tool, with a real request and a real response.
Run it in CI
Turn a session into a suite that blocks a bad merge.
What it looks like
Your agent names the expected consequence before it acts. That ordering is the whole trick. It is the difference between a check and a rationalisation.unknown is not a pass; it means Reticle drove the app and could not tell. It says so rather than guessing, which is a rarer quality in software than it should be.
What makes it different
No screenshots
No vision model, no pixel guessing. Reticle reads program truth, so the answer is deterministic
and the same every run.
Points at the source
On React, a DOM node maps back to
src/App.tsx:104. Finding the bug is half the job; knowing
which file to open is the half that makes an agent useful.Cheap to ask
Narrow questions instead of dumping the whole accessibility tree into the context window every
single step.
Yours, locally
Dev-only and localhost-only. Your app’s data stays on your machine; anonymous usage counts are
sent unless you turn them off.
What people use it for
Beyond proving an agent’s change, people use Reticle to check security behaviour (access control by role, calls that must never fire, CSP violations), accessibility and UX (roles, names, focus, keyboard), performance (request counts, long tasks, layout shift), SEO basics (titles, headings, links, redirects), and to drive the app as different users. Use cases has what each one checks and a call to run. It pairs well with a visual testing tool for pixel diffs, Playwright for sites you don’t own, axe for full WCAG audits and a security scanner for vulnerability discovery.The evidence
Every number is measured by a committed harness, including the ties.
Read the full benchmark
How every number was measured, what it means, and where the tools tie.
Built for agents, readable by humans
Reticle is used by a coding agent far more often than by a person, so these docs are built to be fetched by one. Every page has a plain-Markdown twin, and the whole site collapses into a single file when an agent wants the lot.Docs for agents
Markdown endpoints,
llms.txt, and which page answers which question.Build with us
The roadmap moves on what people actually hit, so tell us.Join the Discord
Ask questions, show us what you are verifying, and tell us what broke. The roadmap moves on what
people actually hit.
Star the repo
It is the cheapest way to help, and it is genuinely how other people find this.
reticle_session { action: "feedback" } sends it in one call from your agent, and npx @reticlehq/server feedback "…" from a terminal. If Reticle could not tell you what happened, that is our defect and we want to know.