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

Requires Go 1.24 or later (for go-fast JavaScript parser support).

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 Distributions

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

lightning_code_index-0.4.0-py3-none-win_amd64.whl (7.9 MB view details)

Uploaded Python 3Windows x86-64

lightning_code_index-0.4.0-py3-none-manylinux_2_17_x86_64.whl (7.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

lightning_code_index-0.4.0-py3-none-manylinux_2_17_aarch64.whl (7.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

lightning_code_index-0.4.0-py3-none-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

lightning_code_index-0.4.0-py3-none-macosx_10_12_x86_64.whl (7.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file lightning_code_index-0.4.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for lightning_code_index-0.4.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 96bff0dae87a7fe8e28041e5fd6f8114ad745c819214ffc3713f72b392010834
MD5 227c4381f8bc174a262e6bce09743f51
BLAKE2b-256 d776f2a2a29df7fc208d4649b25adbf10f7a2ffc4368990d599a4599dfd52d32

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_code_index-0.4.0-py3-none-win_amd64.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.

File details

Details for the file lightning_code_index-0.4.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for lightning_code_index-0.4.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5252059cc56d75d543f0eb95881c11639ff12e73045034692c29fd562a57bf34
MD5 8fc3006f342c716a672c2b7bf51773ff
BLAKE2b-256 e83d90e815fdef90ffc30b74e8b0e245f1620e62cb76f121ef4dcd31eb357e6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_code_index-0.4.0-py3-none-manylinux_2_17_x86_64.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.

File details

Details for the file lightning_code_index-0.4.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for lightning_code_index-0.4.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 24d537a8e3eff6e8c44f8292258f491398c070fa02a27d9e82bfab72420879a5
MD5 a15ee1d2ffcf2912e61f9b983289c150
BLAKE2b-256 a1c4df4e81f449371ce6ac1deb6a1829d592ade78a563d586344774c800de533

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_code_index-0.4.0-py3-none-manylinux_2_17_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.

File details

Details for the file lightning_code_index-0.4.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightning_code_index-0.4.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92e2fbea97e392d14632d78e9c9cfc25e72c8f1041526d1afa972d16430cf02a
MD5 d5eb528fc31cbec91dde74bea7c8c4f2
BLAKE2b-256 bf843fdd76782c7c0bcbdec1d8a9c608f0aacbf95f34f8aa1b007148c19b0f12

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_code_index-0.4.0-py3-none-macosx_11_0_arm64.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.

File details

Details for the file lightning_code_index-0.4.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for lightning_code_index-0.4.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 da356c16cb6b6561776dc054aee80dca665ab015759b781bf63efa9bb88e7277
MD5 e7da0639076cd177141868a5e07fe50a
BLAKE2b-256 deb033be0e06c3206d90e6effd2fe09759b9960bb2e3290a991d9a6a1c455005

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_code_index-0.4.0-py3-none-macosx_10_12_x86_64.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