Give Claude, Cursor, and Cline instant memory of your entire codebase. Written in Rust. Zero cloud dependency. Search 10,000 chunks in 0.21ms.
Install β’ Quick Start β’ Demo β’ Docs
The Problem: AI coding agents are powerful but forgetful. Every new conversation starts from zero β no memory of your codebase, your patterns, your architecture.
| Pain Point | Without AIKD | With AIKD |
|---|---|---|
| π΅ Context Amnesia | Agent asks "what does this file do?" every session | Instant recall of entire codebase |
| π Slow Search | Python-based RAG takes 500ms+ per query | Rust-powered BM25+Vector in 0.21ms |
| βοΈ Cloud Dependency | Your code sent to external servers | 100% local, zero data leaves your machine |
| π§ Complex Setup | Install Python, pip, CUDA, models... | Single binary, one command install |
| Feature | grep |
LlamaIndex | ai-devkit | AIKD |
|---|---|---|---|---|
| Speed | Fast | Slow | Medium | β‘ 0.21ms |
| Semantic Search | β | β | β | β Hybrid |
| Local Only | β | β | β | β 100% |
| MCP Native | β | β | β | β Built-in |
| Memory Usage | Low | High (Python) | High | π 27% RAM |
| Setup Time | 0s | ~10min | ~5min | β±οΈ 30s |
- Hybrid Search: BM25 (Tantivy) + Vector (ONNX all-MiniLM-L6-v2, 384d)
- Reciprocal Rank Fusion: Combines keyword + semantic results intelligently
- Incremental Indexing: Blake3 hashing for zero-redundancy scans
- Resource Adaptive: Auto-detects CPU/GPU and adjusts batch sizes
- MCP Protocol: Native support for Model Context Protocol
- 7 Built-in Tools:
scan,query,embed,stats,remember,recall,status - Auto-Registration: Works with Claude Code, Cursor, Cline, Continue, Windsurf, MiMoCode
- Session Memory: Persistent conversation context across sessions
- Single Binary: No Python, no Node, no dependencies
- File Watcher: Auto-reindex on file changes
- REST API: HTTP endpoint on port 9090 for custom integrations
- CLI First: Full control from terminal
$ aikd init
β
AIKD initialized for project
$ aikd scan
π Indexed 847 files, 12,453 chunks in 1.2s
$ aikd query "authentication flow"
1. src/auth/login.rs (Lines 45-89, Score: 0.923)
Implements JWT-based authentication with refresh tokens...
2. src/middleware/auth.rs (Lines 12-34, Score: 0.871)
Validates Bearer tokens on protected routes...
3. docs/architecture/auth.md (Lines 1-25, Score: 0.845)
Authentication flow diagram and security considerations...
Linux / macOS:
curl -sSf https://raw.githubusercontent.com/gelutjari/aikd/main/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/gelutjari/aikd/main/install.ps1 | iexπ¦ From crates.io (if you have Rust)
cargo install aikdπΊ Homebrew (macOS/Linux)
brew install gelutjari/tap/aikdπ§ Build from Source
git clone https://github.com/gelutjari/aikd.git
cd aikd
cargo build --release
cp target/release/aikd ~/.local/bin/π³ Docker
docker run -v $(pwd):/workspace -p 9090:9090 ghcr.io/gelutjari/aikd:latestcd your-project
aikd initWhat does aikd init do?
Creates ~/.aikd/config.yaml with smart defaults based on your project type (Rust, Node, Python, Go). It detects .git, Cargo.toml, package.json, etc. and sets appropriate file filters.
aikd scanWhat happens during scan?
- Walks directory tree (skipping
node_modules,.git,target, etc.) - Chunks files by semantic boundaries (functions, headings)
- Generates BM25 index (Tantivy) and vector embeddings (ONNX)
- Stores everything in local SQLite database
# Keyword search (fast)
aikd query "error handling"
# Semantic search (smart)
aikd query "how does login work" --hybrid
# Get JSON output for scripting
aikd query "database connection" --jsonClaude Code / Cursor / Cline
AIKD auto-registers via MCP. Just restart your AI agent after running aikd scan.
The MCP config is at ~/.aikd/mcp.json:
{
"mcpServers": {
"aikd": {
"command": "aikd",
"args": ["serve"]
}
}
}REST API
# Start the daemon
aikd daemon
# Query via HTTP
curl "http://localhost:9090/api/query?q=authentication&limit=5" βββββββββββββββββββ
β How to use β
β AIKD? β
ββββββββββ¬βββββββββ
β
ββββββββββββββββββΌβββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββ
β CLI β β MCP β β REST API β
β Mode β β Server β β Daemon β
ββββββββββββ ββββββββββββ ββββββββββββ
Best for: Best for: Best for:
β’ Quick search β’ AI agents β’ Web apps
β’ Scripts β’ Claude Code β’ Custom UIs
β’ CI/CD β’ Cursor β’ Team shared
CLI Mode (default):
aikd query "rust error handling" --limit 5
aikd stats
aikd statusMCP Server (for AI agents):
aikd serve # Starts stdio MCP serverREST Daemon (background service):
aikd daemon # Start in background
aikd daemon foreground # Start in foreground
aikd daemon-stop # Stop daemonHardware: AMD EPYC 7B13, 7.8GB RAM, NVMe SSD
| Operation | Time | Throughput |
|---|---|---|
| Index 1,000 files | 144ms | 6,934 files/s |
| BM25 Search | 0.21ms | 4,762 queries/s |
| Hybrid Search | 0.35ms | 2,857 queries/s |
| Concurrent (500) | 28ms | 17,669 queries/s |
| Embedding (batch) | 12ms/batch | ~800 chunks/s |
Resource Usage:
CPU: ββββββββββββββββββββ 22.9%
RAM: ββββββββββββββββββββ 27.4%
π‘ Real-world context: A human eye blink takes ~300ms. In that time, AIKD can complete 857 hybrid searches across your entire codebase.
Default config (~/.aikd/config.yaml):
version: 2.0.0
scan:
include_paths: ["."]
exclude_paths: ["node_modules", ".git", "target"]
include_extensions: ["rs", "ts", "py", "md", "json"]
follow_symlinks: false
chunk:
max_tokens: 1000
min_tokens: 100
embedding:
enabled: true
model: all-MiniLM-L6-v2
batch_size: auto
server:
rest_port: 9090
auth_token: null
cors_origins: ["*"]π Slow Machine (4GB RAM, 2 cores)
embedding:
enabled: true
batch_size: 8
device: cpu
resource:
mode: Lowπͺ Beefy Machine (32GB RAM, 16 cores, GPU)
embedding:
enabled: true
batch_size: 64
device: gpu
resource:
mode: Maxπ Docs-Only Project
scan:
include_extensions: ["md", "txt", "rst"]
exclude_paths: [".git"]
filter:
max_file_size: 524288 # 512KBπ₯ Team Sharing
server:
rest_port: 9090
auth_token: "your-secret-token"
cors_origins:
- "https://your-team-app.com"βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AIKD v2.0.0 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββ βββββββββββ βββββββββββ βββββββββββββββ β
β β CLI β β MCP β β REST β β File Watcherβ β
β β (clap) β β (rmcp) β β (axum) β β (notify) β β
β ββββββ¬βββββ ββββββ¬βββββ ββββββ¬βββββ ββββββββ¬βββββββ β
β β β β β β
β ββββββββββββββ΄βββββββββββββ΄ββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββ β
β β Core Engine β β
β βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββββββββββββββ€ β
β β Scanner β Chunker β Session Manager β β
β β (walkdir) β(pulldown- β (conversation DB) β β
β β β cmark) β β β
β ββββββββ¬βββββββ΄βββββββ¬βββββββ΄ββββββββββββββββββββββββββ β
β β β β
β ββββββββ΄βββββββ ββββββ΄ββββββ ββββββββββββββββββββββββ β
β β Indexer β β Embedder β β Storage β β
β β (Tantivy) β β (ONNX) β β (SQLite + WAL) β β
β β BM25 + β β 384d β β + r2d2 pool β β
β β HNSW ANN β β MiniLM β β + blake3 hashing β β
β βββββββββββββββ ββββββββββββ ββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
See docs/ARCHITECTURE.md for detailed breakdown.
Diagnostic Commands:
aikd status --json # System info
aikd stats # Index statistics
aikd daemon-pid # Check if daemon running"No results found"
- Run
aikd scanfirst - Check
aikd statsto verify files indexed - Try broader search terms
- Check
include_extensionsin config
"Model not downloaded"
aikd model downloadThis downloads ~90MB ONNX model to ~/.local/share/aikd/model/.
"Port 9090 already in use"
# Change port in config
# ~/.aikd/config.yaml
server:
rest_port: 9091Or stop existing process: aikd daemon-stop
High memory usage
Set resource mode to Low:
resource:
mode: Low
max_memory_mb: 512MCP not connecting to Claude/Cursor
- Check
~/.aikd/mcp.jsonexists - Restart your AI agent
- Verify
aikd serveworks:echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | aikd serve
Windows: "vcruntime140.dll not found"
Install Visual C++ Redistributable.
Get Help:
- π¬ GitHub Discussions β Ask questions
- π Issues β Report bugs
- π§ Email: gelutjari@github.com
Contributors:
| Contribution | Who |
|---|---|
| ποΈ Architecture & Core | @gelutjari |
| π Security Audit | AI-assisted (MiMo) |
| β‘ Performance Optimization | Community |
| π Documentation | Community |
See CONTRIBUTING.md for how to contribute.
MIT License β see LICENSE for details.


