lci

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2026 License: MIT

README

LCI - Lightning Code Index

Lightning-fast code indexing and search for AI assistants.

CI Go Report Card

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 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.

Directories

Path Synopsis
cmd
decode_ids command
lci command
sizecheck command
internal
analysis
Package analysis provides code analysis utilities including memory allocation analysis.
Package analysis provides code analysis utilities including memory allocation analysis.
config
Build artifact detection from language-specific configuration files Parses package.json, tsconfig.json, Cargo.toml, etc.
Build artifact detection from language-specific configuration files Parses package.json, tsconfig.json, Cargo.toml, etc.
core
Testing infrastructure for FileContentStore - provides builder API for creating mock file systems in memory without disk I/O.
Testing infrastructure for FileContentStore - provides builder API for creating mock file systems in memory without disk I/O.
encoding
Package encoding provides low-level encoding utilities with no dependencies.
Package encoding provides low-level encoding utilities with no dependencies.
git
Package git provides git integration for analyzing code changes.
Package git provides git integration for analyzing code changes.
idcodec
Package idcodec provides consolidated ID encoding/decoding operations.
Package idcodec provides consolidated ID encoding/decoding operations.
indexing
Binary file detection utility for early rejection of non-text files Prevents tree-sitter from attempting to parse binary data as source code
Binary file detection utility for early rejection of non-text files Prevents tree-sitter from attempting to parse binary data as source code
interfaces
Package interfaces defines the core interfaces used throughout the Lightning Code Index system.
Package interfaces defines the core interfaces used throughout the Lightning Code Index system.
mcp
mcp/workflow_scenarios
Package workflow_scenarios contains MCP workflow testing scenarios and fixtures.
Package workflow_scenarios contains MCP workflow testing scenarios and fixtures.
semantic
Package semantic provides advanced semantic search capabilities for code analysis.
Package semantic provides advanced semantic search capabilities for code analysis.
pkg
pathutil
Package pathutil provides utilities for converting between absolute and relative paths.
Package pathutil provides utilities for converting between absolute and relative paths.
Package testhelpers provides performance baseline management for testing
Package testhelpers provides performance baseline management for testing
testing
integration command
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL