Semantic code knowledge graph for Kiro: fewer tool calls, instant symbol lookups, 100% local.
Works with Kiro, Cursor, Copilot, Claude Code, Windsurf, Cline, Gemini CLI, and 27 more tools. Auto-detects your setup.
KiroGraph combines features from 14 separate open-source projects (160k+ combined ⭐) into a single integrated MCP server.
| Feature | KiroGraph | CodeGraph | CRG | jMunch | caveman | cavemem | rtk | lean-ctx | headroom | Engram | tokensave |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Code graph + call analysis | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | — | ✅ |
| Architecture metrics | ✅ | — | — | — | — | — | — | — | — | — | ✅ |
| 🔒 Vulnerability scanning + reachability | ✅ | — | — | — | — | — | — | — | — | — | — |
| Community detection | ✅ | — | ✅ | — | — | — | — | — | — | — | — |
| Persistent memory | ✅ | ✅ | ✅ | — | — | ✅ | — | ✅ | — | ✅ | — |
| Conflict detection + knowledge hygiene | ✅ | — | — | — | — | — | — | — | — | ✅ | — |
| Documentation indexing | ✅ | — | — | ✅ | — | — | — | — | — | — | — |
| Shell + prose compression | ✅ | — | — | — | ✅ | — | ✅ | — | ✅ | — | — |
| File read caching + CCR | ✅ | — | — | — | — | — | — | ✅ | ✅ | — | — |
| On-demand compression (any text) | ✅ | — | — | — | — | — | — | — | ✅ | — | — |
| 9 semantic engines | ✅ | — | — | — | — | — | — | — | — | — | — |
| 📖 LLM Wiki (ingest → WIKI_DIFF → search) | ✅ | — | — | — | — | — | — | — | — | — | — |
| Multi-platform (34 targets) | ✅ | 7 | 13 | — | — | — | any | 28+ | — | — | — |
When Kiro works on complex tasks it reads files, runs grep, and globs your codebase. Every one of those is a tool call that burns context and slows things down.
One kirograph_context call replaces a cascade of file reads, greps, and glob searches. Kiro gets symbol relationships, call graphs, and type hierarchies in a single round trip.
Everything is stored in a local SQLite database at .kirograph/kirograph.db. No telemetry, no external services, no API keys. Your code stays on your machine.
A single Kiro hook triggers on agentStop and syncs the index if any files changed during the session. No background watcher process; zero overhead during editing.
Core capabilities available out of the box — no extra configuration required.
Context building, symbol search, call graphs, type hierarchies, impact analysis, dead code, circular deps, architecture, coupling metrics, snapshots, memory, documentation navigation, data querying, security scanning, and more, all auto-approved in Kiro.
Every capability available from the terminal: kirograph index, sync, query, context, files, affected, path, hotspots, snapshot, export, and more.
A single agentStop hook keeps the index fresh automatically. An optional preToolUse hook reminds the agent to use kirograph_exec for shell compression. An optional memory hook prompts the agent to store observations at session end. No watcher process needed.
Opt-in embedding-based search with configurable models and nine pluggable engines: cosine, turboquant, turbovec, sqlite-vec, orama, pglite, lancedb, qdrant, typesense.
Auto-detects React, Next.js, Express, Django, Flask, FastAPI, Rails, Spring, ASP.NET, Phoenix, Laravel, Flutter, SwiftUI, and more. Enriches the graph with routes, components, and lifecycle methods.
Interactive graph dashboard with search, two-click path finding, cluster view, minimap, heat map, and analytics charts. Run kirograph export to generate it.
Choose from curated models: nomic-embed-text-v1.5 (default, 768d), embeddinggemma-300m (multilingual), all-MiniLM-L6-v2 (lightweight), bge-base-en-v1.5, or any custom HuggingFace model.
Save lightweight graph snapshots before refactors. Diff the current graph against any snapshot to see added/removed symbols and edges, available as both CLI and MCP tool.
Find the most-connected symbols and non-obvious cross-file coupling. Useful for identifying load-bearing code and unexpected dependencies before making changes.
Enable only what you need. Each module is independently opt-in via kirograph install or a single config flag.
Auto-detects packages and architectural layers (api, service, data, ui, shared). Computes coupling metrics (Ca, Ce, instability) across your entire package graph. Enable via enableArchitecture.
Compresses the agent's communication style to cut token usage on responses. Four levels: lite, full, ultra. Injected via steering file, no extra tool calls. Set via cavemanMode.
Run shell commands through kirograph_exec to get token-optimized output. Cuts 60–90% of tokens on git, test runners, linters, docker, and package managers. Three levels: normal, aggressive, ultra. Set via shellCompressionLevel.
Cross-session observations stored locally with zero LLM tokens on write. Decisions, errors, and patterns are auto-linked to code symbols and surfaced in kirograph_context when relevant. Enable via enableMemory.
supersedes, conflicts_with, compatible)review_after)Indexes project docs by heading hierarchy for section-level retrieval. 9 format parsers, code ↔ docs cross-references, FTS search, and stable section IDs. 92–97% token savings vs reading full files. Enable via enableDocs.
Indexes tabular data files (CSV, TSV, JSONL, JSON, Excel, Parquet, PDF) for structured querying. Column profiling, server-side aggregations, and filtered row retrieval. 95–99% token savings vs reading raw data files. Enable via enableData.
14 ecosystems · OSV batch queries · EPSS scores · call-graph reachability · attack surface mapping · secrets detection · SAST-lite · supply chain health · license compliance · CycloneDX 1.5 SBOM/VEX · CI/CD SARIF. Enable via enableSecurity.
Auto-synthesizes accumulated memory observations into workspace briefs and skill files. Local model synthesis — zero API cost, no data leaves your machine. Enable via enableWatchmen.
Compresses embeddings 20–30× using Google's TurboQuant algorithm. A 768-dim vector shrinks from 3,072 bytes to ~120 bytes. ANN search with zero native deps, pure TypeScript. Set semanticEngine: "turboquant".
PDF indexing for the data module via pdf-inspector by Firecrawl. Pure Rust, no OCR, no network, prebuilt binaries for linux-x64 and macOS ARM64. Each page becomes a queryable row with content, needs_ocr, has_tables, has_columns. Text-based PDFs under 200ms. Enable via enableData.
Same TurboQuant algorithm in Rust via napi-rs — NEON on ARM64 (Apple Silicon, Graviton), AVX-512BW on x86-64. Faster search than turboquant-js at the cost of a one-time Rust build. Built automatically by kirograph install. Set semanticEngine: "turbovec".
Karpathy-style structured knowledge base that compounds across sessions. A two-step ingest flow (ingest prompt → WIKI_DIFF apply) gives the agent full control over what enters the wiki. Agent mode or local model synthesis (same Gemma 4 infra as Watchmen — zero API cost). FTS5 search, conflict detection, health lint. Enable via enableWiki.
Drag or scroll to explore every release.
KiroGraph parses your codebase with tree-sitter, stores everything in SQLite, and exposes it through MCP tools and CLI commands.
A single agentStop hook asks the agent to sync the index if any files were changed during the session. Zero overhead during active editing.
Enable embeddings for natural-language search. Choose the engine that fits your project size and constraints; all fall back gracefully if deps are missing.
| Engine | Search type | Native deps? | Best for |
|---|---|---|---|
cosine (default) | Exact cosine, linear scan | None | Small/medium projects, zero setup |
turboquant | ANN, sub-linear | No (pure JS) | Large codebases, 20–30× RAM savings, no native deps |
turbovec | ANN, sub-linear | Yes (Rust/napi-rs) | Fastest ANN; SIMD-accelerated; one-time Rust build; auto-built by installer |
sqlite-vec | ANN, sub-linear | Yes | Large codebases, fast ANN |
orama | Hybrid (full-text + vector) | No (pure JS) | Best result quality, no native deps |
pglite | Hybrid, exact (WASM pgvector) | No (WASM) | Exact results, PostgreSQL semantics |
lancedb | ANN, sub-linear | No (pure JS) | Fast ANN, no native compilation |
qdrant | ANN (HNSW) | Yes (binary) | Full Qdrant features, built-in dashboard |
typesense | ANN (HNSW) | Yes (auto-downloaded) | Fast ANN, auto-downloaded binary |
Configure via kirograph install (interactive menu) or set semanticEngine in .kirograph/config.json. Each engine owns its embedding store exclusively. Switch engines without data conflicts.
All languages use WASM-compiled tree-sitter grammars. Frameworks are auto-detected and enrich the graph with routes, components, and lifecycle methods.
Built for Kiro with full support (hooks, steering, CLI agent). Works with any MCP-capable tool via kirograph install --target <name>.
| Tool | Target | MCP Config | Instructions | Hooks | Pattern |
|---|---|---|---|---|---|
| 🎯 Kiro (primary) | kiro | .kiro/settings/mcp.json | Steering + CLI agent | ✅ sync + hint + memory | Full |
| Cursor | cursor | .cursor/mcp.json | .cursor/rules/kirograph.mdc | ✅ sync on stop | A |
| GitHub Copilot | copilot | .github/copilot-mcp.json | .github/copilot-instructions.md | ✅ sync on session-end | A |
| Roo Code | roo | .roo/mcp.json | .roo/rules/kirograph.md | — | A |
| JetBrains Junie | junie | .junie/mcp/mcp.json | .junie/AGENTS.md | — | A |
| Continue | continue | .continue/mcpServers/kirograph.json | .continue/rules/kirograph.md | — | A |
| Warp | warp | .warp/.mcp.json | AGENTS.md | — | A |
| Trae | trae | .trae/mcp.json | .trae/rules/kirograph.md | — | A |
| Augment Code | augment | .augment/mcp.json | augment-guidelines.md | — | A |
| Sourcegraph Amp | amp | .amp/config.json | .amp/instructions.md | — | A |
| Tabnine | tabnine | .tabnine/mcp.json | .tabnine/instructions.md | — | A |
| Claude Code | claude | .mcp.json | CLAUDE.md | ✅ sync on Stop | B |
| Codex CLI | codex | .codex/hooks.json | AGENTS.md | ✅ sync on Stop | B |
| Gemini CLI | gemini-cli | .gemini/settings.json | GEMINI.md | ✅ SessionEnd | C |
| OpenCode | opencode | .opencode.json | .opencode.json (instructions) | ✅ plugin | C |
| Kilo Code | kilo | kilo.json | .kilo/rules/kirograph.md | — | C |
| Devin | devin | .devin/config.json | AGENTS.md | ✅ .devin/hooks.v1.json | C |
| OpenHands | openhands | .openhands/config.json | AGENTS.md | — | C |
| Windsurf | windsurf | Print command | .windsurf/rules/kirograph.md | ✅ sync on response | D |
| Cline | cline | Print command | .clinerules/kirograph.md | ✅ sync script | D |
| Antigravity | antigravity | Print command | GEMINI.md | ✅ .agents/hooks.json | D |
| Aider | aider | Print CLI flag | CONVENTIONS.md | — | D |
| Replit Agent | replit | Print command | AGENTS.md | — | D |
| Block Goose | goose | Print command | AGENTS.md | — | D |
| Mistral Vibe | mistral-vibe | Print command | .kirograph/mistral-vibe.md | — | D |
| IBM Bob | ibm-bob | Print command | .kirograph/ibm-bob.md | — | D |
| Crush | crush | Print command | .kirograph/crush.md | — | D |
| Droid Factory | droid-factory | Print command | .kirograph/droid-factory.md | — | D |
| ForgeCode | forgecode | Print command | .kirograph/forgecode.md | — | D |
| iFlow CLI | iflow | Print command | .kirograph/iflow.md | — | D |
| Qwen Code | qwen | Print command | .kirograph/qwen.md | — | D |
| Atlassian Rovo Dev | rovo | Print command | .kirograph/rovo.md | — | D |
| Qoder | qoder | Print command | .kirograph/qoder.md | — | D |
All experimental targets share the same .kirograph/ graph data. Install multiple targets simultaneously — they don't conflict. Community-contributed, vibecoded, unverified. PRs welcome.