Skip to main content
reticle verify is the CI command: no model in the loop, no MCP. It boots the engine in drive mode, waits for the in-page SDK to dial back, replays every saved flow, renders the verdict, and exits.
It uses the same runner and the same verdict as the MCP and HTTP paths, so a platform agent that can only run a shell command gets a byte-identical artifact.

Arguments and flags

What it prints

The rendered run report on stdout. On failure it names the cause on stderr instead, and there are two refusals worth knowing:
Both of those are honesty guards, and both exit 1. Verifying nothing is never a pass.
A URL that does not answer is not one of those two. It surfaces as the underlying Playwright error, prefixed with verify failed:, and also exits 1. Real capture:
verify binds the bridge port itself and has no --port flag: passing one is rejected as unknown argument '--port'. If a daemon is already on the port, verify does not start a second one: it prints three ways out (ask the running daemon via reticle_run, stop it, or move with RETICLE_PORT) rather than a raw listen error. This bites most often on a developer machine, where an agent has usually left a daemon running; in CI the port is normally free.

Exit codes

Worked example

Recording the flows this replays

Flows are recorded interactively, then committed to .reticle/flows/.
Last modified on August 23, 2026