leann-search
Semantic search across codebase using LEANN vector index
When & Why to Use This Skill
leann-search is a semantic code search tool that utilizes LEANN vector indexing to enable meaning-based navigation across codebases. It solves the limitations of traditional keyword-based search (like grep) by allowing developers to find relevant code using natural language queries, making it significantly easier to understand complex architectures, locate conceptual implementations, and explore unfamiliar repositories.
Use Cases
- Conceptual Code Discovery: Finding where specific features like 'authentication flow' or 'data persistence' are implemented using natural language instead of exact variable names.
- Architectural Pattern Mapping: Identifying all instances of a design pattern, such as 'provider architecture' or 'streaming implementation', across a large-scale project.
- Codebase Onboarding: Helping new developers quickly grasp the structure and logic of a repository by searching for high-level concepts and business logic.
- Semantic Impact Analysis: Locating code blocks that are conceptually related to a planned change to ensure all relevant areas are considered, even if they use different terminology.
| name | leann-search |
|---|---|
| description | Semantic search across codebase using LEANN vector index |
| allowed-tools | [Bash, Read] |
LEANN Semantic Search
Use LEANN for meaning-based code search instead of grep.
When to Use
- Conceptual queries: "how does authentication work", "where are errors handled"
- Understanding patterns: "streaming implementation", "provider architecture"
- Finding related code: code that's semantically similar but uses different terms
When NOT to Use
- Exact matches: Use Grep for
class Foo,def bar, specific identifiers - Regex patterns: Use Grep for
error.*handling,import.*from - File paths: Use Glob for
*.test.ts,src/**/*.py
Commands
# Search the current project's index
leann search <index-name> "<query>" --top-k 5
# List available indexes
leann list
# Example
leann search rigg "how do providers handle streaming" --top-k 5
MCP Tool (in Claude Code)
leann_search(index_name="rigg", query="your semantic query", top_k=5)
Rebuilding the Index
When codebase changes significantly:
cd /path/to/project
leann build <project-name> --docs src tests scripts \
--file-types '.ts,.py,.md,.json' \
--no-recompute --no-compact \
--embedding-mode sentence-transformers \
--embedding-model all-MiniLM-L6-v2
How It Works
- LEANN uses sentence embeddings to understand meaning
- Searches find conceptually similar code, not just text matches
- Results ranked by semantic similarity score (0-1)
Grep vs LEANN Decision
| Query Type | Tool | Example |
|---|---|---|
| Natural language | LEANN | "how does caching work" |
| Class/function name | Grep | "class CacheManager" |
| Pattern matching | Grep | error|warning |
| Find implementations | LEANN | "rate limiting logic" |