reticle_sessions lists every browser tab currently connected to the Reticle daemon, with the health fields that decide whether it can actually be driven. Reach for it first when a tool says no session is connected, and after every reticle_navigate that came back confirmed: false.
recommendation telling you what to do about it, and attachment grows a lastOutage once the connection has dropped at least once:
When nothing is connected
An empty list is not silent. It comes back with awhy that separates the two causes, and refuses to guess between them:
init.
The fields that decide whether driving will work
Confirm after navigating
reticle_navigate can only report that a navigation was dispatched. sessions is how you confirm one arrived: a session at the new URL means the page loaded and is instrumented. No session means one of those two is false, and you find out now rather than after three confusing failures.
Scoping
You rarely need to passsessionId to other tools. Reticle scopes to your project, prefers the active tab, and refuses rather than guesses when the choice is ambiguous. A refusal you can act on beats a silent pick of the wrong tab.
Pass it explicitly when you genuinely mean one specific tab, such as when testing two apps at once.
Sessions accumulate. A stale entry pointing at a dev server you have since restarted will sit there
looking plausible.
reticle_session { action: "end" } clears one out.