reticle_tools lists them and reticle_run invokes them.
Measured off the real wire on 2026-08-14, by reading
tools/list from a fresh daemon: the default
surface is 18 tools at 21,468 bytes, against 48 tools at 134,368 bytes. That is 6.3x more,
charged on every message. In real tokenizer terms that is roughly 4,930 and 30,200 tokens
per turn (measured by bench/harness/schema-tax.mjs, which puts every server
through one tokenizer in a single pass). Re-measure before quoting these; the surface grows.The default 18
Grouped by the job they do in the verify loop.Look
reticle_snapshot · reticle_query · reticle_inspect · reticle_sessionsAct
reticle_act · reticle_act_and_wait · reticle_act_sequence · reticle_navigateObserve
reticle_observe · reticle_network · reticle_console · reticle_state · reticle_wait_forProve & discover
reticle_assert · reticle_tools · reticle_runSession & feedback
reticle_session · reticle_feedbackWhy these 18 and not others
Each one earned its slot, and a couple are there because of measured mistakes.reticle_inspect maps a DOM node to src/components/Sidebar.tsx:41. Finding a bug is half the job. Knowing which file to open is the half that makes an agent useful.
It used to sit in the cold tail, which meant an agent had to already know it existed to use it. So essentially nobody did.
reticle_act_sequence batches a multi-step interaction into one round trip. It was also in the cold tail, and the consequence showed up in the data: agents drove login forms one call at a time, over and over.
Those repeats were not retries. The calls succeeded and got repeated, because the batching tool was invisible. A tool an agent must already know about is a tool that never gets called.
Direct reticle_network and reticle_console stay advertised even though reticle_observe can filter for both, because two obvious tools beat one clever tool with a filter grammar.
Reaching the other 30
reticle_run takes a tool name and its arguments. reticle_tools lists what’s available and returns the full argument grammar for any of them, so your agent can discover a tool mid-task without you having pre-loaded its schema.
Notable residents of the cold tail: flow recording and replay, visual diffing and screenshots, network mocking, viewport pinning, coverage, autonomous crawling, and the human-in-the-loop session controls.
Every response carries its cost
Reticle tells you what each answer cost, because a verification tool that quietly eats your context window is not saving you anything:reticle_query response: seven buttons found, with source pointers, for 235 tokens.
Every response tells you when not to trust it
This is the part we’re proudest of and the part that makes demos slightly less shiny. When the browser tab is backgrounded, every response says so:Reference
Look
Act
Observe
Prove and discover
The complete reference
Every tool, every argument, including the 30 in the cold tail.