Mimir indexes a repo into a typed knowledge graph (nodes = symbols, edges = CALLS/IMPORTS/EXTENDS with confidence scores) and exposes it via MCP so agents can actually reason about code structure.
How it works: 1. mimir analyze . — parallel AST parse (go-tree-sitter, 8 languages), scope-aware cross-file resolution, Louvain community detection, BM25 + HNSW vector search 2. mimir daemon start — background MCP server 3. mimir setup — auto-writes config into Claude Code, VS Code, Cursor, Windsurf, Zed
Stack: Go 1.22, modernc/sqlite (pure Go, no CGO), sqlite-vec (HNSW), Sigma.js web UI
Benchmarks vs the Node.js predecessor:
- Cold index 1k files: 45s → < 8s
- Incremental re-index: 45s → < 2s
- Binary size: 350MB → < 20MB
- RAM during index: 800MB → < 120MB
GitHub: github.com/thuongh2/git-mimir
Install: go install github.com/thuongh2/git-mimir/cmd/mimir@latest
Happy to answer questions about the architecture (resolver phases, incremental patching, the MCP transport layer).