
Code-Graph-RAG
github.com/vitali87/code-graph-rag- Category
- Developer Tools
- Rank
- No. 826Tools index
- Pricing
- Freemium
- Type
- TOOL
- Use case
- Coding
- Interfaces
- CLI · MCP
- Builder
- vitali87
- GitHub
- 5.2k stars
- Latest release
- v0.0.945
- Date
About
Parses multi-language codebases with Tree-sitter and builds a knowledge graph in Memgraph, letting developers query, edit, and optimize code across a monorepo using natural language. Supports AST-based structural search/replace, dead code detection, and runs as both a CLI and an MCP server for Claude Code and other AI clients.
What it does
Treat it as a codebase memory layer for developers and coding agents. It records symbols, calls, references, imports, inheritance, and data flow in a graph. Language models translate questions into graph queries, then return relevant structure and source. The same system can preview targeted edits, trace values, export graph data, and refresh changed files.
Why it's ranked here
This is a compelling choice for serious repository analysis because it combines broad language coverage, graph relationships, source retrieval, and guarded editing in one system. The documentation also distinguishes verified flow absence from incomplete coverage and calls dead-code findings candidates, showing useful restraint. Operational weight and pre-1.0 interface changes keep it from being an effortless default.
What's good
The unified graph schema makes relationships comparable across mixed-language repositories. Structural rewrites default to a dry-run diff, which gives developers a review point before files change. Data-flow questions return found, absent, or unknown outcomes based on analysis coverage. Dead-code scans support custom entry points, decorator roots, exclusions, JSON output, and CI failure behavior.
Tradeoffs
Setup is heavier than a standalone parser. The recommended installation needs Python 3.12 or newer, Docker for Memgraph, CMake, and ripgrep; semantic search adds Qdrant and large machine-learning dependencies. Language fidelity varies: Ruby has structural coverage, Scala remains in development, and documented type inference gaps affect Python, TypeScript, JavaScript, and C++. Pre-1.0 interfaces may change with any release.
How to use it well
Use it for mixed-language monorepos where architecture questions, impact tracing, structural refactors, and agent-assisted maintenance recur often enough to justify indexing infrastructure. Prefer incremental updates during active development, inspect edit diffs, and tune dead-code roots for framework entry points. It does not replace runtime tracing or human deletion decisions when reflection, dynamic dispatch, string lookups, or external frameworks hide real reachability.
Technical notes+
pyproject.toml packages Python 3.12+ console entry points cgr and code-graph-rag, with optional treesitter-full, semantic, milvus, and ast-grep dependency groups. main.py forwards execution to codebase_rag.cli:app. docs/guide/mcp-server.md documents stdio or HTTP serving and tools for indexing, incremental updates, graph queries, file operations, structural replacement, semantic search, agent questions, and coverage-aware flow verdicts. docs/sdk/overview.md exposes graph loading, direct Memgraph access, Cypher generation, embeddings, and provider settings. docs/TODO.md records concrete type-inference gaps, while docs/guide/dead-code.md explains graph reachability and expected false positives. The Makefile defines lint, type-check, unit, integration, parallel, security, and release workflows.
Observed
- License
- MIT
- Primary language
- Python 3 only, requiring Python 3.12 or newer
- Packaging
- Published on PyPI with optional extras for full Tree-sitter coverage, semantic search, Milvus, and ast-grep
- Interfaces
- Interactive CLI, Python SDK, MCP server over stdio or HTTP, and JSON graph export
- Platform support
- Package metadata classifies the project as operating-system independent; local graph operation requires Docker
- Testing structure
- Pytest is configured under codebase_rag/tests with unit, integration, slow, and end-to-end markers
Read from README.md, Makefile, pyproject.toml, main.py, docs/TODO.md, docs/index.md, docs/roadmap.md, docs/contributing.md, docs/claude-code-setup.md, docs/sdk/overview.md, docs/guide/dead-code.md, docs/guide/mcp-server.md, docs/sdk/graph-loader.md, docs/guide/graph-export.md, docs/guide/cli-reference.md.
What it can do
Parse multi-language codebases using Tree-sitter and build a knowledge graph
Source code repository → Knowledge graph in Memgraph
Query codebase using natural language
Natural language query → Code information/results
Edit code using AI-driven natural language instructions
Natural language editing request → Modified code
Perform AST-based structural search and replace
Structural search/replace pattern → Modified code
Detect dead code across a codebase
Codebase → List of unused/dead code
Optimize code across a monorepo
Codebase → Optimized code
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.