Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.
reticle_query is not advertised. The default surface is the merged ten, so an agent does not see
this name. Call reticle_look { action: "find" } instead. Everything below describes what that call does;
only the spelling changed. A call to the old name is answered with the new one, but an
allowedTools allowlist or an MCP permission rule naming it refuses before Reticle is asked.
reticle_look { action: "find" } answers “where is the thing I mean?” without dumping the whole page into your context window. It queries the way a testing library does: by role, label, text or testid. Your agent then binds to meaning, not to DOM structure that a refactor will move.
role · text · label · placeholder · testid · alt · component
value
The query value for that strategy
name
Accessible-name filter. Narrows a broad role query
scope
CSS selector or ref, to search inside a subtree
limit
Cap the descriptors returned. Cuts tokens hard on broad queries
count_only
Return just { count }, around 30x smaller
attrs
Attribute NAMES to project per match, e.g. ['href'] to inventory links. The values come back in each match’s attrs map. It does not filter, so name=value is refused
self
Return the scope element itself instead of searching inside it
role, text, label, placeholder, testid and alt also have a predicate spelling, so { "role": "button" } works as shorthand for { "by": "role", "value": "button" }.
The testid existed, on another route. hint.route says where you actually are, presentTestids says what is on this page instead, and presentRegions distinguishes an empty list from a missing one. All of it without paying for a snapshot.
ref is the handle for every other call: reticle_act, reticle_look { action: "element" }, reticle_look { action: "state" }. It stays valid until the element leaves the DOM, so you do not need to re-snapshot between actions on the same element.source appears when the app is built in development with the Reticle build plugin. Production builds omit it. Both sidebar buttons above report Sidebar.tsx:41. That is the line where the component renders its nav buttons in a loop, which is the line you want to edit.truncated: true with total: 7 means limit cut the list, not that Reticle ran out of room. Neither field is emitted when nothing was cut, so their absence is itself the signal that you are looking at every match.states distinguishes present from visible from enabled. An element can be all three and still be covered by a modal. reticle_look { action: "element" } reports occluded for that.
Query by testid when you can. Role and text queries survive refactors well; testids survive
redesigns, translations, and the day someone rewrites your button labels for the marketing team.
Last modified on October 25, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Reticle","description":"Reticle is the proof layer for AI agents: it verifies a running web app from the inside, without screenshots, and returns a verdict with evidence.","colors":{"primary":"#ff9d86","light":"#ffbcac","dark":"#d04425"},"logo":{"light":"https://mintcdn.com/reticle/Av2V9aUJid9T03FY/logo/wordmark-black.svg?fit=max\u0026auto=format\u0026n=Av2V9aUJid9T03FY\u0026q=85\u0026s=e08f6759b891a00c239f881dbd753e51","dark":"https://mintcdn.com/reticle/Av2V9aUJid9T03FY/logo/wordmark-white.svg?fit=max\u0026auto=format\u0026n=Av2V9aUJid9T03FY\u0026q=85\u0026s=b6d93ace9d26effbd5118548c4037bac"},"favicon":{"light":"https://mintcdn.com/reticle/Av2V9aUJid9T03FY/favicon/mark-black.svg?fit=max\u0026auto=format\u0026n=Av2V9aUJid9T03FY\u0026q=85\u0026s=67a4aa2bd8abbe587697b62440ef9568","dark":"https://mintcdn.com/reticle/Av2V9aUJid9T03FY/favicon/mark-white.svg?fit=max\u0026auto=format\u0026n=Av2V9aUJid9T03FY\u0026q=85\u0026s=e767b03c6c23a64027794fe639d5f918"},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://github.com/reticlehq/reticle","type":"github"}],"primary":{"type":"button","label":"Get started","href":"/quickstart"}},"footer":{"socials":{"x":"https://x.com/reticle_hq","github":"https://github.com/reticlehq/reticle","linkedin":"https://www.linkedin.com/company/reticlehq","discord":"https://discord.gg/BwAbzv9ZRz"},"links":[{"header":"Docs","items":[{"label":"Quickstart","href":"/quickstart"},{"label":"Usage guide","href":"/usage"},{"label":"Agent cheat sheet","href":"/agent-cheatsheet"},{"label":"For agents","href":"/for-agents"}]},{"header":"Project","items":[{"label":"Contributing","href":"https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.md"},{"label":"Security","href":"https://github.com/reticlehq/reticle/blob/main/SECURITY.md"},{"label":"License","href":"https://github.com/reticlehq/reticle/blob/main/LICENSE"}]},{"header":"Community","items":[{"label":"Discord","href":"https://discord.gg/BwAbzv9ZRz"},{"label":"Star on GitHub","href":"https://github.com/reticlehq/reticle"},{"label":"X","href":"https://x.com/reticle_hq"},{"label":"LinkedIn","href":"https://www.linkedin.com/company/reticlehq"}]}]},"search":{"prompt":"Search the Reticle docs"},"seo":{"metatags":{"og:site_name":"Reticle Docs","og:type":"website","og:title":"Reticle Docs: verification for AI coding agents","og:description":"Reticle verifies a running web app from the inside and returns a verdict with evidence, not a screenshot. Install it, instrument it, and read the full tool reference.","og:url":"https://docs.reticle.sh","og:image":"https://docs.reticle.sh/images/og.png","og:image:alt":"Reticle: your agent says it works. Reticle checks.","twitter:card":"summary_large_image","twitter:site":"@reticle_hq","twitter:creator":"@reticle_hq","twitter:image":"https://docs.reticle.sh/images/og.png"},"organization":{"name":"Reticle","url":"https://docs.reticle.sh","logo":"https://docs.reticle.sh/images/og.png","sameAs":["https://github.com/reticlehq/reticle","https://www.npmjs.com/org/reticlehq"]}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"errors":{"404":{"redirect":false,"title":"No such page","description":"That page moved or never existed. Start at [Getting started](/getting-started), or search above."}},"contextual":{"options":["copy","view","claude","chatgpt","cursor","vscode","mcp","add-mcp"],"display":"header"},"metadata":{"timestamp":true},"markdown":{"instructions":["Reticle is a verification layer for AI coding agents. Its SDK runs in development builds, and in staging or production only through the signed activate loader (see /production-mode). It reads program truth (network, state, console, routing, animations, framework state) from inside a running web app and returns a deterministic verdict with evidence. It is not a screenshot tool and not a browser automation library.","Verdicts come from `reticle_act_and_wait`, `reticle_assert`, `reticle_act { steps }` when a step declares `expect`, and `reticle_verify` (`change`/`flows`). Everything else moves or reads the app and proves nothing. Only `verified: \"yes\"` is a pass: `unknown` means Reticle could not tell, and `no-fault` means nothing was declared to prove. A drive that ends without a verdict has no result, however many tools it used. Never weaken a check to make it pass.","Package names are scoped `@reticlehq/*`. Run every CLI command as `npx @reticlehq/server \u003ccommand>`, for example `npx @reticlehq/server init`. `reticle` is a bin name that `@reticlehq/server` installs once it is on your PATH, NOT a package on npm: `npx reticle` fetches an unrelated package published by somebody else, so never run that. The complete tool surface is on the `/usage` page; `/agent-cheatsheet` is the one-screen version."]},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/reticlehq/reticle"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/BwAbzv9ZRz"},{"anchor":"npm","icon":"npm","href":"https://www.npmjs.com/org/reticlehq"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"https://github.com/reticlehq/reticle/blob/main/CHANGELOG.md"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"reticle","hasAudioNarration":false,"actualSubdomain":"reticle","customDomains":["docs.reticle.sh"],"gitSource":{"type":"github","owner":"reticlehq","repo":"reticle","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae69cc40339475b5aab186c","collectionId":"2ac606aa-a038-4b66-a9a0-af8c551db2f8","liveDeploymentHistoryId":"6ae69cc40339475b5aab186c","schemaVersion":"v3"},"feedback":{"agentFeedback":true},"entitlements":{},"buildId":"6ae69cc40339475b5aab186c","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Reference","count":67},{"language":"default","tag":"CLI commands","count":25},{"language":"default","tag":"Guides","count":25},{"language":"default","tag":"Tools","count":19},{"language":"default","tag":"Packages","count":14},{"language":"default","tag":"Resources","count":12},{"language":"default","tag":"Get started","count":6},{"language":"default","tag":"Install","count":6},{"language":"default","tag":"Long form","count":5},{"language":"default","tag":"Verify and ship","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#footer a.select-none::after{content:'Your agent says it works. Reticle checks.';display:block;margin-top:.75rem;font-size:.875rem;line-height:1.25rem;color:rgb(var(--gray-500))}.dark #footer a.select-none::after{color:rgb(var(--gray-400))}"}],"page":{"pagePath":"tools/query","slug":"/tools/query","pageMetadata":{"title":"reticle_query","description":"Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.","icon":"magnifying-glass","href":"/tools/query"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`reticle_query is not advertised.`}),` The default surface is the merged ten, so an agent does not see\nthis name. Call `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`reticle_look { action: \"find\" }`})}),` instead. Everything below describes what that call does;\nonly the spelling changed. A call to the old name is answered with the new one, but an\n`,_jsx(_components.code,{children:`allowedTools`}),` allowlist or an MCP permission rule naming it refuses before Reticle is asked.`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`reticle_look { action: \"find\" }`}),` answers “where is the thing I mean?” without dumping the whole page into your context window. It queries the way a testing library does: by role, label, text or testid. Your agent then binds to meaning, not to DOM structure that a refactor will move.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`Example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"by\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"button\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"limit\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Real response from a running app, with four of the six elements trimmed out for length:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`24`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"count\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`7`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"elements\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"ref\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"e118\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"role\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"button\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Overview\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"visible\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"src/components/Sidebar.tsx:41\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"states\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"present\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"visible\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"ref\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"e120\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"role\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"button\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Compose\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"visible\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"src/components/Sidebar.tsx:41\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"states\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"present\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"visible\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`7`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"truncated\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"cost\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"bytes\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`944`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"tokens\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`236`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Seven buttons matched and six came back, because `,_jsx(_components.code,{children:`limit`}),` is 6. Each one has a `,_jsx(_components.code,{children:`ref`}),` to act on and a source file to open, for 236 tokens.`]}),`\n`,_jsx(Heading,{level:`2`,id:`arguments`,children:`Arguments`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Argument`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`by`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`role`}),` · `,_jsx(_components.code,{children:`text`}),` · `,_jsx(_components.code,{children:`label`}),` · `,_jsx(_components.code,{children:`placeholder`}),` · `,_jsx(_components.code,{children:`testid`}),` · `,_jsx(_components.code,{children:`alt`}),` · `,_jsx(_components.code,{children:`component`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`value`})}),_jsx(_components.td,{children:`The query value for that strategy`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsxs(_components.td,{children:[`Accessible-name filter. Narrows a broad `,_jsx(_components.code,{children:`role`}),` query`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`scope`})}),_jsx(_components.td,{children:`CSS selector or ref, to search inside a subtree`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`limit`})}),_jsx(_components.td,{children:`Cap the descriptors returned. Cuts tokens hard on broad queries`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`count_only`})}),_jsxs(_components.td,{children:[`Return just `,_jsx(_components.code,{children:`{ count }`}),`, around 30x smaller`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`attrs`})}),_jsxs(_components.td,{children:[`Attribute NAMES to project per match, e.g. `,_jsx(_components.code,{children:`['href']`}),` to inventory links. The values come back in each match’s `,_jsx(_components.code,{children:`attrs`}),` map. It does not filter, so `,_jsx(_components.code,{children:`name=value`}),` is refused`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`self`})}),_jsxs(_components.td,{children:[`Return the `,_jsx(_components.code,{children:`scope`}),` element itself instead of searching inside it`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`role`}),`, `,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`label`}),`, `,_jsx(_components.code,{children:`placeholder`}),`, `,_jsx(_components.code,{children:`testid`}),` and `,_jsx(_components.code,{children:`alt`}),` also have a predicate spelling, so `,_jsx(_components.code,{children:`{ \"role\": \"button\" }`}),` works as shorthand for `,_jsx(_components.code,{children:`{ \"by\": \"role\", \"value\": \"button\" }`}),`.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`use-count_only-when-you-only-need-a-number`,children:[`Use `,_jsx(_components.code,{children:`count_only`}),` when you only need a number`]}),`\n`,_jsx(_components.p,{children:`“Are there still three rows?” does not require three row descriptors:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"by\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"testid\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"login-submit\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"count_only\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"count\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"cost\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"bytes\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`11`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"tokens\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` } }`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Three tokens. Note that `,_jsx(_components.code,{children:`total`}),` is not emitted on this path, because `,_jsx(_components.code,{children:`count`}),` already is the total.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`a-zero-match-result-tells-you-what-is-there`,children:[`A zero-match result tells you what `,_jsx(_components.em,{children:`is`}),` there`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"by\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"testid\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"compose-prompt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`27`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`27`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"count\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"elements\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"hint\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"route\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/hostile\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"knownEmptyState\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"presentTestids\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"brand\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"nav-overview\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"nav-deployments\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"nav-compose\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"nav-diagnostics\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"nav-hostile\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"session-pill\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"cmdk-open\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"sign-out\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"hostile-view\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"hostile-ticker\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"hostile-feed-count\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"presentRegions\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"list\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"childCount\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"hostile-feed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"sample\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [] },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"role\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"banner\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"childCount\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"sample\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [] }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"cost\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"bytes\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`402`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"tokens\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`101`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The testid existed, on another route. `,_jsx(_components.code,{children:`hint.route`}),` says where you actually are, `,_jsx(_components.code,{children:`presentTestids`}),` says what is on this page instead, and `,_jsx(_components.code,{children:`presentRegions`}),` distinguishes an empty list from a missing one. All of it without paying for a snapshot.`]}),`\n`,_jsx(Heading,{level:`2`,id:`reading-the-response`,children:`Reading the response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ref`}),` is the handle for every other call: `,_jsx(_components.code,{children:`reticle_act`}),`, `,_jsx(_components.code,{children:`reticle_look { action: \"element\" }`}),`, `,_jsx(_components.code,{children:`reticle_look { action: \"state\" }`}),`. It stays valid until the element leaves the DOM, so you do not need to re-snapshot between actions on the same element.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`source`}),` appears when the app is built in development with the Reticle build plugin. Production builds omit it. Both sidebar buttons above report `,_jsx(_components.code,{children:`Sidebar.tsx:41`}),`. That is the line where the component renders its nav buttons in a loop, which is the line you want to edit.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`truncated: true`}),` with `,_jsx(_components.code,{children:`total: 7`}),` means `,_jsx(_components.code,{children:`limit`}),` cut the list, not that Reticle ran out of room. Neither field is emitted when nothing was cut, so their absence is itself the signal that you are looking at every match.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`states`}),` distinguishes `,_jsx(_components.code,{children:`present`}),` from `,_jsx(_components.code,{children:`visible`}),` from `,_jsx(_components.code,{children:`enabled`}),`. An element can be all three and still be covered by a modal. `,_jsx(_components.a,{href:`/tools/inspect`,children:_jsx(_components.code,{children:`reticle_look { action: \"element\" }`})}),` reports `,_jsx(_components.code,{children:`occluded`}),` for that.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Query by `,_jsx(_components.code,{children:`testid`}),` when you can. Role and text queries survive refactors well; testids survive\nredesigns, translations, and the day someone rewrites your button labels for the marketing team.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"reticle_query","description":"Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.","icon":"magnifying-glass","href":"/tools/query"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Example","slug":"example","depth":2,"children":[]},{"title":"Arguments","slug":"arguments","depth":2,"children":[]},{"title":"Use count_only when you only need a number","slug":"use-count_only-when-you-only-need-a-number","depth":2,"children":[]},{"title":"A zero-match result tells you what is there","slug":"a-zero-match-result-tells-you-what-is-there","depth":2,"children":[]},{"title":"Reading the response","slug":"reading-the-response","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"reticle","siteName":"Reticle","title":"Reticle Docs: verification for AI coding agents","navMaps":{"firstHrefInVersion":{"3.9.0":{"href":"/tools/query","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T17:22:48.756Z","gitLastModified":"2026-10-25T16:59:47.000Z","originalFileLocation":"tools/query.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Reticle\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Reticle Docs: verification for AI coding agents\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reticle verifies a running web app from the inside and returns a verdict with evidence, not a screenshot. Install it, instrument it, and read the full tool reference.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Reticle Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.reticle.sh/tools/query\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.reticle.sh/images/og.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Reticle Docs: verification for AI coding agents\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reticle verifies a running web app from the inside and returns a verdict with evidence, not a screenshot. Install it, instrument it, and read the full tool reference.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.reticle.sh/images/og.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/reticle/KCHC-1Uhb39vqD4T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Reticle\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff9d86\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"Reticle: your agent says it works. Reticle checks.\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@reticle_hq\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.reticle.sh/tools/query\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tools/query.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.reticle.sh/#organization\",\"name\":\"Reticle\",\"url\":\"https://docs.reticle.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.reticle.sh/images/og.png\"},\"sameAs\":[\"https://github.com/reticlehq/reticle\",\"https://www.npmjs.com/org/reticlehq\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.reticle.sh#website\",\"name\":\"Reticle\",\"url\":\"https://docs.reticle.sh\",\"publisher\":{\"@id\":\"https://docs.reticle.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.reticle.sh/tools/query#webpage\",\"url\":\"https://docs.reticle.sh/tools/query\",\"name\":\"reticle_query\",\"description\":\"Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.\",\"dateModified\":\"2026-10-25T16:59:47.000Z\",\"isPartOf\":{\"@id\":\"https://docs.reticle.sh#website\"},\"breadcrumb\":{\"@id\":\"https://docs.reticle.sh/tools/query#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.reticle.sh/tools/query#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tools\",\"item\":\"https://docs.reticle.sh/tools/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"reticle_query\",\"item\":\"https://docs.reticle.sh/tools/query\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.reticle.sh/tools/query#article\",\"headline\":\"reticle_query\",\"name\":\"reticle_query\",\"description\":\"Find elements by Testing-Library semantics. Role, text, label, placeholder, testid, alt, or React component, including inside open shadow roots.\",\"url\":\"https://docs.reticle.sh/tools/query\",\"mainEntityOfPage\":{\"@id\":\"https://docs.reticle.sh/tools/query#webpage\"},\"image\":\"https://docs.reticle.sh/images/og.png\",\"dateModified\":\"2026-10-25T16:59:47.000Z\",\"publisher\":{\"@id\":\"https://docs.reticle.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.reticle.sh#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Reticle\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Reticle","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/reticlehq/reticle"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/BwAbzv9ZRz"},{"anchor":"npm","icon":"npm","href":"https://www.npmjs.com/org/reticlehq"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"https://github.com/reticlehq/reticle/blob/main/CHANGELOG.md"}]},"versions":[{"version":"3.9.0","default":true,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/quickstart"}]},{"tab":"Reference","groups":[{"group":"Tools","pages":[{"title":"Reticle tools overview","sidebarTitle":"Tools overview","icon":"wrench","href":"/tools/overview"},{"title":"reticle_look","icon":"magnifying-glass","href":"/tools/look"},{"title":"reticle_verify","icon":"shield-check","href":"/tools/verify"},{"title":"reticle_snapshot","description":"A semantic accessibility snapshot of the page or a subtree, in three sizes. From the full tree down to a 25-token route check.","icon":"camera","href":"/tools/snapshot"},{"title":"reticle_query","icon":"magnifying-glass","href":"/tools/query"},{"title":"reticle_look { action: \"element\" }","description":"Everything about one element. Accessibility properties, geometry, computed styles, design tokens, React component stack, and the exact source file and line.","icon":"crosshairs","href":"/tools/inspect"},{"title":"reticle_navigate","icon":"compass","href":"/tools/navigate"},{"title":"reticle_act","icon":"hand-pointer","href":"/tools/act"},{"title":"reticle_act_and_wait","icon":"circle-check","href":"/tools/act-and-wait"},{"title":"reticle_act_sequence","icon":"layer-group","href":"/tools/act-sequence"},{"title":"reticle_observe","icon":"timeline","href":"/tools/observe"},{"title":"reticle_network","icon":"satellite-dish","href":"/tools/network"},{"title":"reticle_console","icon":"terminal","href":"/tools/console"},{"title":"reticle_state","icon":"database","href":"/tools/state"},{"title":"reticle_wait_for","icon":"hourglass","href":"/tools/wait-for"},{"title":"reticle_assert","icon":"gavel","href":"/tools/assert"},{"title":"reticle_sessions","icon":"list-check","href":"/tools/sessions"},{"title":"reticle_tools and reticle_run","icon":"boxes-stacked","href":"/tools/tools-and-run"},{"title":"reticle_session and reticle_feedback","icon":"comments","href":"/tools/session-and-feedback"}]},{"group":"Beyond the loop","pages":[{"title":"Beyond the verify loop","icon":"sparkles","href":"/capabilities"}]},{"group":"CLI commands","pages":[{"title":"CLI reference","icon":"terminal","href":"/cli"},{"title":"reticle init","icon":"wand-magic-sparkles","href":"/cli/init"},{"title":"reticle setup mcp","icon":"plug","href":"/cli/setup"},{"title":"reticle doctor","icon":"stethoscope","href":"/cli/doctor"},{"title":"reticle status","icon":"heart-pulse","href":"/cli/status"},{"title":"reticle serve","icon":"play","href":"/cli/serve"},{"title":"reticle stop","icon":"circle-stop","href":"/cli/stop"},{"title":"reticle restart","icon":"rotate","href":"/cli/restart"},{"title":"reticle mcp","icon":"plug","href":"/cli/mcp"},{"title":"reticle open","icon":"window-maximize","href":"/cli/open"},{"title":"reticle drive","icon":"gauge-high","href":"/cli/drive"},{"title":"reticle verify","icon":"circle-check","href":"/cli/verify"},{"title":"reticle try","icon":"play","href":"/cli/try"},{"title":"reticle affected","icon":"code-branch","href":"/cli/affected"},{"title":"reticle gate","icon":"shield-halved","href":"/cli/gate"},{"title":"reticle report","icon":"clipboard-check","href":"/cli/report"},{"title":"reticle update","icon":"arrow-up","href":"/cli/update"},{"title":"reticle rollback","icon":"arrow-rotate-left","href":"/cli/rollback"},{"title":"reticle license","icon":"key","href":"/cli/license"},{"title":"reticle version","icon":"tag","href":"/cli/version"},{"title":"reticle telemetry","icon":"chart-line","href":"/cli/telemetry"},{"title":"reticle feedback","icon":"comment","href":"/cli/feedback"},{"title":"reticle help","icon":"circle-question","href":"/cli/help"},{"title":"reticle cloud commands","icon":"cloud","href":"/cli/cloud"},{"title":"Environment variables","icon":"sliders","href":"/environment"}]},{"group":"Packages","pages":[{"title":"Packages: what is in the box","sidebarTitle":"Packages","icon":"cubes","href":"/packages"},{"title":"open-verification","icon":"scale-balanced","href":"/packages/open-verification"},{"title":"@reticlehq/core","icon":"cube","href":"/packages/core"},{"title":"@reticlehq/engine","icon":"gavel","href":"/packages/engine"},{"title":"@reticlehq/browser","icon":"window","href":"/packages/browser"},{"title":"@reticlehq/server","icon":"server","href":"/packages/server"},{"title":"@reticlehq/react","icon":"react","href":"/packages/react"},{"title":"@reticlehq/vite-plugin","icon":"bolt","href":"/packages/vite-plugin"},{"title":"@reticlehq/babel-plugin","icon":"file-code","href":"/packages/babel-plugin"},{"title":"@reticlehq/next","icon":"n","href":"/packages/next"},{"title":"@reticlehq/test","icon":"vial","href":"/packages/test"},{"title":"@reticlehq/eslint-plugin","icon":"shield-check","href":"/packages/eslint-plugin"},{"title":"@reticlehq/electron","icon":"display","href":"/packages/electron"},{"title":"reticle-tauri","icon":"rust","href":"/packages/tauri"}]},{"group":"Grammar","pages":[{"title":"Predicate reference: the grammar of green","sidebarTitle":"Predicates","icon":"filter","href":"/predicates"},{"title":"Action reference: lights, camera, click","sidebarTitle":"Actions","icon":"hand-pointer","href":"/actions"},{"title":"Recipes: copy, paste, verify","sidebarTitle":"Recipes","icon":"book-open","href":"/recipes"}]},{"group":"Long form","pages":[{"title":"Agent cheat sheet","icon":"bolt","href":"/agent-cheatsheet"},{"title":"Reticle: what each tool actually does","icon":"table-list","href":"/reticle-manual"},{"title":"Complete usage guide","icon":"book","href":"/usage"},{"title":"Let Reticle drive","icon":"steering-wheel","href":"/autodrive"},{"title":"FAQ: frequently asserted questions","sidebarTitle":"FAQ","icon":"circle-question","href":"/faq"}]}]},{"tab":"Desktop","pages":[{"title":"Desktop","href":"/desktop"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/architecture"}]},{"tab":"Contributing","pages":[{"title":"Contributing","href":"/first-drive"}]}]}]},"basePath":"","title":"Reticle Docs: verification for AI coding agents","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}