LeanKG
Lightweight Knowledge Graph for AI-Assisted Development
LeanKG is a local-first knowledge graph that gives AI coding tools accurate codebase context. It indexes your code, builds dependency graphs, generates documentation, and exposes an MCP server so tools like Cursor, OpenCode, and Claude Code can query the knowledge graph directly. No cloud services, no external databases -- everything runs on your machine with minimal resources.
How LeanKG Helps
graph LR
subgraph "Without LeanKG"
A1[AI Tool] -->|Scans entire codebase| B1[10,000+ tokens]
B1 --> A1
end
subgraph "With LeanKG"
A2[AI Tool] -->|13-42 tokens| C[LeanKG Graph]
C -->|Targeted subgraph| A2
end
Without LeanKG: AI scans entire codebase, wasting tokens on irrelevant context (~10,000+ tokens).
With LeanKG: AI queries the knowledge graph for targeted context only (13-42 tokens). 98% token saving for impact analysis.
Installation
One-Line Install (Recommended)
Install the LeanKG binary, configure MCP, and add agent instructions for your AI coding tool:
|
This installs:
- LeanKG binary to
~/.local/bin - MCP configuration for your AI tool
- Agent instructions (LeanKG tool usage guidance) to the tool's config directory
Supported targets:
| Target | AI Tool | MCP Config | Agent Instructions |
|---|---|---|---|
opencode |
OpenCode AI | ~/.config/opencode/opencode.json |
~/.config/opencode/AGENTS.md |
cursor |
Cursor AI | ~/.cursor/mcp.json |
~/.cursor/AGENTS.md |
claude |
Claude Code/Desktop | ~/.config/claude/settings.json |
~/.config/claude/CLAUDE.md |
gemini |
Gemini CLI / Google Antigravity | ~/.config/gemini-cli/mcp.json / ~/.gemini/antigravity/mcp_config.json |
~/.gemini/GEMINI.md |
kilo |
Kilo Code | ~/.config/kilo/kilo.json |
~/.config/kilo/AGENTS.md |
Examples:
# Install for OpenCode
|
# Install for Cursor
|
# Install for Claude Code
|
# Install for Gemini CLI
|
# Install for Kilo Code
|
# Install for Google Antigravity
|
Install via Cargo
Build from Source
Try Without Install
Use GitHub Codespaces to try LeanKG in your browser - no installation required!
- Go to github.com/FreePeak/LeanKG
- Click "Code" → "Create Codespace"
- LeanKG auto-installs when the codespace starts
- In the terminal:
- Click "Open in Browser" on port 8080
Free tier: 60 hours/month (3 months), then 15 hours/month
Live Demo
Try LeanKG without installing - visit the live demo at https://leankg.onrender.com
Update
To update LeanKG to the latest version, run the same install command:
|
This will replace the existing binary with the latest release while preserving your configuration.
Quick Start
# 1. Initialize LeanKG in your project
# 2. Index your codebase
# 3. Start the MCP server (for AI tools)
# 4. Start the Web UI (for visualization)
# Open http://localhost:8080 in your browser
# 5. Run commands with RTK-style compression
# 6. Compute impact radius for a file
# 7. Check index status
# 8. Watch for changes and auto-index
# 9. View context metrics (token savings)
How It Works
C4 Model - Level 2: Component Diagram
graph TB
subgraph "Developer Machine"
subgraph "LeanKG System"
direction TB
CLI["CLI<br/>init, index, serve, watch"]
subgraph "Indexer"
Parser["Parser<br/>(tree-sitter)"]
Extractor["Extractor<br/>functions, classes, imports, calls"]
end
DB[("CozoDB<br/>SQLite")]
subgraph "MCP Server"
Tools["MCP Tools<br/>search, query, impact, context"]
end
subgraph "Web UI"
Graph["Graph Viewer<br/>sigma.js"]
API["REST API<br/>/api/graph/data"]
end
end
AI["AI Tool<br/>(Claude, Cursor, OpenCode)"]
end
CLI -->|init| DB
CLI -->|index| Parser
Parser -->|parse| Extractor
Extractor -->|store| DB
CLI -->|serve| MCP
DB -->|query| Tools
Tools -->|MCP| AI
CLI -->|web| API
API -->|fetch| Graph
Extractor -->|watch| CLI
Data Flow
graph LR
subgraph "1. Index Phase"
A["Source Code<br/>*.rs, *.ts, *.py, *.go, *.java, *.kt"] --> B["tree-sitter Parser"]
B --> C["Code Elements<br/>functions, classes"]
B --> D["Relationships<br/>imports, calls"]
C --> E[("CozoDB")]
D --> E
end
subgraph "2. Query Phase"
E --> F["MCP Tools"]
F --> G["AI Tool Context<br/>13-42 tokens"]
end
Node Types in the Graph
| Element Type | Description | Example |
|---|---|---|
function |
Code functions | src/auth.rs::validate_token |
class |
Classes and structs | src/db/models.rs::User |
module |
Files/modules | src/db/models.rs |
document |
Documentation files | docs/architecture.md |
doc_section |
Doc headings | docs/api.md::Usage |
Relationship Types
| Type | Direction | Description |
|---|---|---|
calls |
A → B | Function A calls function B |
imports |
A → B | Module A imports module B |
contains |
doc → section | Document contains section |
tested_by |
A → B | Code A is tested by test B |
documented_by |
A → B | Code A is documented by doc B |
Key Insight: The graph stores the FULL dependency graph at indexing time. When you query, LeanKG traverses N hops from your target to find all affected elements - no file scanning needed.
MCP Server Setup
See MCP Setup for detailed setup instructions for all supported AI tools.
Agentic Instructions for AI Tools
LeanKG instructs AI coding agents to use LeanKG first for codebase queries.
Quick Rule to Add Manually
Add this to your AI tool's instruction file:
Before ANY codebase search/navigation, use LeanKG tools:
1. 2.3.
Instruction Files (Auto-installed)
| Tool | File | Auto-install |
|---|---|---|
| Claude Code | ~/.config/claude/CLAUDE.md |
Yes |
| OpenCode | ~/.config/opencode/AGENTS.md |
Yes |
| Cursor | ~/.cursor/AGENTS.md |
Yes |
| KiloCode | ~/.config/kilo/AGENTS.md |
Yes |
| Codex | ~/.config/codex/AGENTS.md |
Yes |
| Gemini CLI | ~/.gemini/GEMINI.md |
Yes |
| Google Antigravity | ~/.gemini/GEMINI.md |
Yes |
See Agentic Instructions for detailed setup.
OpenCode Plugin (Auto-Trigger)
LeanKG includes an OpenCode plugin that automatically injects LeanKG context into every prompt. Add to your opencode.json:
This makes LeanKG tools always available without manual activation. See .opencode/INSTALL.md for details.
Claude Code Plugin (Auto-Trigger)
LeanKG is available via the official Claude plugin marketplace:
/plugin install leankg@claude-plugins-official
Or register the marketplace:
/plugin marketplace add FreePeak/leankg-marketplace
/plugin install leankg@leankg-marketplace
See .claude-plugin/INSTALL.md for details.
Cursor Plugin (Auto-Trigger)
LeanKG is available via the Cursor plugin marketplace:
/add-plugin leankg
See .cursor-plugin/INSTALL.md for details.
Gemini CLI / Google Antigravity (Auto-Trigger)
Install via gemini extensions:
gemini extensions install https://github.com/FreePeak/LeanKG
See GEMINI.md for context file details.
Codex (Fetch Instructions)
Tell Codex:
Fetch and follow instructions from https://raw.githubusercontent.com/FreePeak/LeanKG/refs/heads/main/.codex/INSTALL.md
See .codex/INSTALL.md for details.
Kilo Code (Fetch Instructions)
Tell Kilo Code:
Fetch and follow instructions from https://raw.githubusercontent.com/FreePeak/LeanKG/refs/heads/main/.kilo/INSTALL.md
See .kilo/INSTALL.md for details.
Highlights
- Token Concise -- Returns 13-42 tokens per query vs 10,000+ tokens for full codebase scan. AI tools get exactly what they need.
- Token Saving -- Up to 98% token reduction for impact analysis queries. Index once, query efficiently forever.
- Code Indexing -- Parse and index Go, TypeScript, Python, Rust, Java, and Kotlin codebases with tree-sitter.
- Dependency Graph -- Build call graphs with
IMPORTS,CALLS, andTESTED_BYedges. - Impact Radius -- Compute blast radius for any file to see downstream impact.
- Auto-Indexing -- Watch mode automatically updates the index when files change.
- Context Metrics -- Track token savings and usage statistics per tool call.
- Auto Documentation -- Generate markdown docs from code structure automatically.
- MCP Server -- Expose the graph via MCP protocol for AI tool integration.
- File Watching -- Watch for changes and incrementally update the index.
- CLI -- Single binary with init, index, serve, impact, status, watch, and metrics commands.
- RTK Compression -- RTK-style compression for CLI output and MCP responses (
leankg run,compress_response). - Orchestrator -- Intelligent query routing with cache-graph-compress flow.
- Business Logic Mapping -- Annotate code elements with business logic descriptions and link to features.
- Traceability -- Show feature-to-code and requirement-to-code traceability chains.
- Documentation Mapping -- Index docs/ directory, map doc references to code elements.
- Graph Viewer -- Visualize knowledge graph using standalone web UI.
Benchmark Results
Core Value Props: Token Concise + Token Saving
| Metric | Value |
|---|---|
| Tokens per query | 13-42 tokens (vs 10,000+ without) |
| Token saving | Up to 98% for impact analysis |
| Context correctness | F1 0.31-0.46 on complex queries |
LeanKG provides concise context (targeted subgraph, not full scan) and saves tokens over baseline.
| Metric | Baseline | LeanKG |
|---|---|---|
| Tokens (7-test avg) | 150,420 | 191,468 |
| Token overhead | - | +41,048 |
| F1 wins | 0 | 2/7 tests |
| Context correctness | - | Higher |
Key Findings:
- LeanKG wins on F1 context quality in 2/7 tests (navigation, impact analysis)
- Token overhead: +41,048 tokens across all tests (pending deduplication fix)
- Context deduplication optimizations pending (see AB Testing Results)
Historical (2026-03-25): 98.4% token savings for impact analysis on Go example
See AB Testing Results for detailed analysis and benchmark/README.md for test methodology.
Web UI
Start the web UI with leankg web or leankg serve and open http://localhost:8080.
Graph Viewer

The graph viewer provides an interactive visualization of your codebase's dependency graph. Filter by element type, zoom, pan, and click nodes for details.
See Web UI for detailed documentation.
Auto-Indexing
LeanKG watches your codebase and automatically keeps the knowledge graph up-to-date. When you modify, create, or delete files, LeanKG incrementally updates the index.
# Watch mode - auto-index on file changes
# Or use the serve command with auto-index enabled
See CLI Reference for detailed commands.
Context Metrics
Track token savings and usage statistics to understand how LeanKG improves your AI tool's context efficiency.
# View metrics summary
# View with JSON output
# Filter by time period
# Filter by tool name
# Seed test data for demo
# Reset all metrics
# Cleanup old metrics (retention: 30 days default)
Metrics Schema
| Field | Type | Description |
|---|---|---|
tool_name |
String | LeanKG tool name (search_code, get_context, etc.) |
timestamp |
Int | Unix timestamp of the call |
input_tokens |
Int | Tokens in the query |
output_tokens |
Int | Tokens returned |
tokens_saved |
Int | Tokens saved vs baseline grep scan |
savings_percent |
Float | Percentage savings |
baseline_tokens |
Int | Tokens a grep scan would use |
execution_time_ms |
Int | Tool execution time |
success |
Bool | Whether the tool succeeded |
Example Output
=== LeanKG Context Metrics ===
Total Savings: 64,660 tokens across 5 calls
Average Savings: 99.5%
Retention: 30 days
By Tool:
search_code: 2 calls, avg 100% saved, 25,903 tokens saved
get_impact_radius: 1 calls, avg 99% saved, 24,820 tokens saved
get_context: 1 calls, avg 100% saved, 7,965 tokens saved
find_function: 1 calls, avg 100% saved, 5,972 tokens saved
CLI Commands
For the complete CLI reference, see CLI Reference.
MCP Tools
See MCP Tools for the complete list of available tools.
Supported AI Tools
| Tool | Integration | Agent Instructions |
|---|---|---|
| Claude Code | MCP | Yes (CLAUDE.md) |
| OpenCode | MCP | Yes (AGENTS.md) |
| Cursor | MCP | Yes (AGENTS.md) |
| KiloCode | MCP | Yes (AGENTS.md) |
| Codex | MCP | Yes (AGENTS.md) |
| Google Antigravity | MCP | Yes (AGENTS.md) |
| Windsurf | MCP | Not yet |
| Gemini CLI | MCP | Yes (AGENTS.md) |
Roadmap
See Roadmap for detailed feature planning and implementation status.
Requirements
- Rust 1.70+
- macOS or Linux
Tech Stack & Project Structure
See Tech Stack for architecture, tech stack details, supported languages, and project structure.
License
MIT