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.
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 Distribution
File details
Details for the file lightning_code_index-0.0.0.tar.gz.
File metadata
- Download URL: lightning_code_index-0.0.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0400b7d6562ba99e5d8df233c6d7aae5a6a700f290c35c6455b8531982540e1
|
|
| MD5 |
cbb991241865e2a645b463eee3a13eef
|
|
| BLAKE2b-256 |
41faab0012f6f9cf4e559db05afd9a50bbe70d8fa9f27fac7e190431a11a0591
|
Provenance
The following attestation bundles were made for lightning_code_index-0.0.0.tar.gz:
Publisher:
release.yml on standardbeagle/lci
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lightning_code_index-0.0.0.tar.gz -
Subject digest:
a0400b7d6562ba99e5d8df233c6d7aae5a6a700f290c35c6455b8531982540e1 - Sigstore transparency entry: 809617026
- Sigstore integration time:
-
Permalink:
standardbeagle/lci@f7affa32171d8a537dbcdf04edef3c73ddd28f53 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/standardbeagle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f7affa32171d8a537dbcdf04edef3c73ddd28f53 -
Trigger Event:
push
-
Statement type: