Performs hybrid semantic + keyword + BM25 code search via Beacon index. Intercepts grep and redirects to Beacon for better results, outputting scored file paths, line ranges, and previews.
From beaconnpx claudepluginhub sagarmk/beacon-pluginThis skill is limited to using the following tools:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Configures VPN and dedicated connections like Direct Connect, ExpressRoute, Interconnect for secure on-premises to AWS, Azure, GCP, OCI hybrid networking.
This repo has a Beacon hybrid search index combining semantic embeddings, BM25 keyword matching, and identifier boosting. Beacon is enforced as the default search — grep is automatically intercepted and redirected to Beacon for queries it handles better.
node ${CLAUDE_PLUGIN_ROOT}/scripts/search.js "<query>"
--top-k N — number of results (default: 10)--threshold F — minimum score cutoff (default: 0.35)--no-hybrid — disable hybrid, use pure vector search onlynode ${CLAUDE_PLUGIN_ROOT}/scripts/search.js "auth flow" "session handling" "token refresh"
Single HTTP round-trip for all queries. Returns grouped results.
JSON array of matches, each with:
file — file pathlines — line range (e.g. "45-78")similarity — vector cosine similarityscore — final hybrid score (when hybrid enabled)preview — first 300 chars of matched chunkGrep is denied and redirected to Beacon unless one of these conditions is met:
| Grep passes through when... | Example |
|---|---|
| Pattern has regex metacharacters | function\s+\w+ |
| Targets a specific file | path: "src/lib/db.js" |
output_mode is "count" | Counting occurrences |
| Pattern is <= 3 characters | fs, db |
| Dotted identifier | fs.readFileSync, path.join |
Path-like pattern (contains / or \) | src/components |
output_mode is "content" | Viewing matching lines |
| Quoted string literal | "use strict", 'Content-Type' |
| Annotation/marker pattern | TODO, FIXME, @param, #pragma |
| URL-like pattern | http://, localhost:3000 |
| Beacon index is unhealthy | DB missing, empty, dimension mismatch |
| Intercept disabled via config | intercept.enabled: false |
To disable interception entirely, set intercept.enabled: false in .claude/beacon.json.