Skip to main content

Lightning Code Index - Sub-millisecond semantic code search and analysis

Project description

LCI - Lightning Code Index

Lightning-fast code indexing and search for AI assistants.

CI Go Report Card License: MIT

Features

  • Sub-millisecond search: Trigram-based indexing with <5ms search guarantee
  • Multi-language support: Go, TypeScript, JavaScript, Python, Rust, C#, PHP, and more
  • MCP integration: Model Context Protocol server for AI assistant integration
  • Semantic search: Natural language queries with intelligent matching
  • Call graph analysis: Track function calls, references, and dependencies
  • Semantic annotations: @lci: vocabulary for marking up code with metadata

Installation

npm (recommended)

npm install -g @standardbeagle/lci

pip

pip install lightning-code-index

Homebrew (coming soon)

brew install standardbeagle/tap/lci

From Source

go install github.com/standardbeagle/lci/cmd/lci@latest

From Releases

Download pre-built binaries from GitHub Releases.

Quick Start

CLI Usage

# Index and search in current directory
lci search "handleRequest"

# Find symbol definitions
lci def UserService

# Find all references to a symbol
lci refs CreateUser

# Display function call hierarchy
lci tree main

# Fast grep-style search
lci grep "TODO|FIXME"

# List files that would be indexed
lci list

MCP Server

Start the MCP server for AI assistant integration:

lci mcp

Claude Code Integration

Add to your .mcp.json:

{
  "lci": {
    "command": "lci",
    "args": ["mcp"],
    "env": {}
  }
}

Configuration

Create .lci.kdl in your project root:

project {
    name "my-project"
    root "."
}

index {
    include "**/*.go" "**/*.ts" "**/*.py"
    exclude "**/node_modules/**" "**/vendor/**"
}

search {
    max-results 100
    context-lines 3
}

MCP Tools

When running as an MCP server, LCI exposes these tools:

Tool Description
search Semantic code search with fuzzy matching
get_context Get detailed context for a code symbol
find_files Fast file path search with glob patterns
code_insight Codebase intelligence and analysis
context Save/load code context manifests
semantic_annotations Query @lci: semantic labels
side_effects Analyze function purity and side effects

Semantic Annotations

Mark up your code with @lci: annotations for enhanced AI understanding:

// @lci:risk[high] @lci:public-api
// @lci:requires[env:DATABASE_URL]
func HandleUserLogin(w http.ResponseWriter, r *http.Request) {
    // ...
}

// @lci:purpose[Validate user credentials against database]
// @lci:must[Return error for invalid credentials]
func ValidateCredentials(username, password string) error {
    // ...
}

Annotation Categories

  • Risk & Safety: @lci:risk[low|medium|high|critical], @lci:safe-zone, @lci:stability
  • Dependencies: @lci:requires[env:VAR], @lci:requires[db:table], @lci:requires[service:name]
  • Conventions: @lci:convention[pattern], @lci:idiom[name], @lci:template[name]
  • Contracts: @lci:must[behavior], @lci:must-not[behavior], @lci:invariant[condition]
  • Purpose: @lci:purpose[description], @lci:domain[area], @lci:owner[team]

Architecture

lci/
├── cmd/lci/          # CLI entry point
├── internal/
│   ├── core/         # Trigram index, symbol store, reference tracker
│   ├── parser/       # Tree-sitter based multi-language parsing
│   ├── search/       # Search engine and scoring
│   ├── indexing/     # Master index and pipeline
│   ├── mcp/          # MCP server and tools
│   └── analysis/     # Code analysis and metrics
└── pkg/              # Public API

Performance

LCI is designed for speed:

  • Indexing: <5s for typical projects (<10k files)
  • Search: <5ms for most queries
  • Memory: <100MB for typical web projects
  • Startup: Near-instant with persistent index

Development

# Run tests
go test ./...

# Build
go build ./cmd/lci

# Run with race detector
go test -race ./...

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please read the contributing guidelines before submitting PRs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lightning_code_index-0.1.2-py3-none-musllinux_1_1_aarch64.whl (3.3 kB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

File details

Details for the file lightning_code_index-0.1.2-py3-none-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for lightning_code_index-0.1.2-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 dd4c0d8d61a28cd48dd6ef579e30d78e917d8e9e2ba08d061234a6eca4d5397d
MD5 08e4871e1b4dece942f9eaa749fc4d64
BLAKE2b-256 92ee7a138713d7c729c23f466e42a3a930bcede733e06d5024c4703adf381d38

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_code_index-0.1.2-py3-none-musllinux_1_1_aarch64.whl:

Publisher: release.yml on standardbeagle/lci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page