Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By sagarmk
Replace grep with hybrid semantic + keyword + BM25 code search that understands code semantics and cross-file relationships, returning ranked results with file paths, line ranges, and previews — includes indexing, re-indexing, blacklist/whitelist management, and a dedicated search agent for deeper multi-file exploration.
npx claudepluginhub sagarmk/beacon-pluginManage Beacon indexing blacklist — prevent indexing of dangerous directories
View and modify Beacon configuration — providers, thresholds, indexing rules
Show Beacon embedding index health — file count, chunk count, last sync
Visual overview of Beacon index — chunks, coverage, provider. Pass --files to list indexed files.
Force a full re-index of the codebase (escape hatch if index gets corrupted)
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Semantic code search powered by ColBERT. Replaces grep/ripgrep with natural language understanding for smarter code navigation.
Semantic code search for Claude Code. Automatically indexes your project and provides intelligent search capabilities.
Smart semantic + hybrid code search for local repositories
Precise local semantic code search via MCP. Indexes your codebase with Go AST parsing, embeds with Ollama or LM Studio, and exposes vector search to Claude through an MCP server — no cloud, no npm.
Fast and token-friendly code reading for AI coding agents. Symbol-aware MCP tools that replace cat/grep with ~85% fewer tokens, sub-millisecond search, and a raw fallback that preserves cat/grep parity byte-for-byte.
A vector-powered CLI for semantic search over files (Vexor skill bundle).
Uses power tools
Uses power tools
Uses Bash, Write, or Edit tools
Uses Bash, Write, or Edit tools
Share bugs, ideas, or general feedback.
Turn Claude Code into Cursor.
Semantic code search that understands your codebase — find code by meaning, not just string matching.
Quick Start · Usage · Models · Commands · Config · Examples
98.3% accuracy · 5x faster than grep · 20-query benchmark on a real codebase
brew install ollama
ollama serve &
ollama pull nomic-embed-text
claude plugin marketplace add sagarmk/Claude-Code-Beacon-Plugin
claude plugin install beacon@claude-code-beacon-plugin
claude
That's it. On first session start, Beacon will:
better-sqlite3 — takes a few seconds)No npm install, no manual setup. Just install and go.
After installing, Beacon indexes automatically on session start. Here's the essentials:
> /reindex
Deletes existing embeddings and rebuilds from scratch — useful after switching models or if the index gets stale.
> /index
Beacon Index
● ● ● ● ● nomic-embed-text · Ollama (local)
● ● ● ● ● 768 dims · 3.8 MB
● ● ● ● ●
● ● ● ● ● Coverage: 100% (38/38 files)
Indexed by extension
● .js 25 files
● .md 13 files
Statistics
Indexed files 38
Total chunks 109
Avg chunks/file 2.9
Last sync 2 minutes ago
For a quick numeric summary:
> /index-status
{
"files_indexed": 38,
"total_chunks": 114,
"last_sync": "2026-03-01T04:30:21.453Z",
"embedding_model": "nomic-embed-text",
"embedding_endpoint": "http://localhost:11434/v1"
}
> /search-code "authentication flow"
[
{
"file": "src/middleware/auth.ts",
"lines": "12-45",
"similarity": "0.82",
"score": "0.74",
"preview": "export async function verifyAuth(req, res, next) {\n const token = req.headers.authorization?.split(' ')[1];\n ..."
},
{
"file": "src/routes/login.ts",
"lines": "8-32",
"similarity": "0.78",
"score": "0.65",
"preview": "router.post('/login', async (req, res) => {\n const { email, password } = req.body;\n ..."
}
]
Hybrid search combines semantic similarity (understands meaning), BM25 keyword matching, and identifier boosting — so searching "auth flow" finds code about authentication even if it never uses the word "auth".
Options: --top-k N (results count), --threshold F (min score), --path <dir> (scope to directory), --no-hybrid (pure vector search).
Beacon runs on open-source models by default — no API keys, no cloud costs, fully local via Ollama.
| Model | Dims | Context | Speed | Best for |
|---|---|---|---|---|
| nomic-embed-text (default) | 768 | 8192 | Fast | General-purpose, great code search |
| mxbai-embed-large | 1024 | 512 | Fast | Higher accuracy, larger vectors |
| snowflake-arctic-embed:l | 1024 | 512 | Medium | Strong retrieval benchmarks |
| all-minilm | 384 | 512 | Very fast | Lightweight, low resource usage |
To switch models, pull with Ollama and update your config:
ollama pull mxbai-embed-large
// .claude/beacon.json
{
"embedding": {
"model": "mxbai-embed-large",
"dimensions": 1024,
"query_prefix": ""
}
}
Then run /reindex to rebuild with the new model.
For cloud-hosted embeddings, create .claude/beacon.json in your repo:
export OPENAI_API_KEY="sk-..."
{
"embedding": {
"api_base": "https://api.openai.com/v1",
"model": "text-embedding-3-small",
"api_key_env": "OPENAI_API_KEY",
"dimensions": 1536,
"batch_size": 100,
"query_prefix": ""
}
}
export VOYAGE_API_KEY="pa-..."
{
"embedding": {
"api_base": "https://api.voyageai.com/v1",
"model": "voyage-code-3",
"api_key_env": "VOYAGE_API_KEY",
"dimensions": 1024,
"batch_size": 50,
"query_prefix": ""
}
}