leann-search

parcadei's avatarfrom parcadei

Semantic search across codebase using LEANN vector index

⭐2.2kstars🔀157forks📁View on GitHub🕐Updated Jan 10, 2026

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.
nameleann-search
descriptionSemantic 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

  1. LEANN uses sentence embeddings to understand meaning
  2. Searches find conceptually similar code, not just text matches
  3. 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"