Tool

keywords

A vocabulary scout, not an answer engine. Describe a concept in your own words and the un-guessable local name surfaces — and any of your words that really do name something here come back confirmed, with the evidence that confirms them.

You ask your agent “what does this codebase actually call rate limiting?” — this is what it sends. The same operation is a shell command, which is the form you script against.

Your agent calls — mcp

keywords keywords="throttle, debounce, rate limit" question="what does this codebase call rate limiting?" tokenBudget=600

You call — cli

rql keywords "throttle, debounce, rate limit" --question "what does this codebase call rate limiting?" \ --token-budget 600

What comes back — the same on both surfaces

Names - sliding window portal rate limiter · 54.9% - RateLimitDecision · 56.9% - PortalRateLimitOptions · 50.7% - VoyageRateLimitException · 49% … six more leads Docs - PortalRateLimitsMustKeyOnCfConnectingIp · 52.9% - backpressure-and-flow-control · 37.2% … eight more confidence: 55%+ strong · 30-55% lead · <30% noise [270 tok | 49.4 s | ready]

None of the three words typed appears in the answer as typed. What came back is what to search for next — including a concept the repository wrote down about its own rate limiting. Scripting against it? --jsonl streams one object per term for shell pipelines.

Parameters

ParameterWhat it does
keywordsrequiredThe rough handles you already have. They get reshaped, not matched.
questionoptionalWhat you are trying to find, as a sentence. Reranks candidates against your intent.
uriGloboptionalEvidence scope. Defaults to this repository plus its concept glossary; imported repos need naming explicitly.
tokenBudgetoptionalSmall budgets render names only; larger ones add locations, then a line of summary each.

Where it fits

Reach for it when a search came back weak or empty, when you are cold-starting a domain, or when the question is simply “what do we call this here?”. It fits badly for framework-wired behaviour — dependency injection, attributes, event handlers — where the name you want is never written near the thing it does; go straight to explore for those.

This page names what exists. The depth behind every name ships inside the binary at help:///: the bounds, the failure modes, how they compose. It answers to explore and read exactly like your code does. Install it, and your agent has the manual.