Architecture Overview
July 21, 2026 · View on GitHub
Code-Graph-RAG consists of two main components that work together to analyse and query codebases.
Components
1. Multi-Language Parser
A Tree-sitter based parsing system that analyses codebases and ingests data into Memgraph.
- Uses Tree-sitter for robust, language-agnostic AST parsing
- Extracts functions, classes, methods, modules, and their relationships
- Supports 13 programming languages with a unified graph schema (plus Scala in development)
- Handles complex patterns like nested functions, class hierarchies, and cross-module calls
2. RAG System (codebase_rag/)
An interactive CLI for querying the stored knowledge graph.
- Translates natural language questions into Cypher queries
- Retrieves source code snippets for found elements
- Supports AI-powered code editing with AST-based targeting
- Provides code optimisation with interactive approval workflow
Data Flow
Source Code → Tree-sitter Parser → AST Analysis → Memgraph Knowledge Graph
↓
User Query → AI Model (Cypher Gen) → Cypher Query → Graph Results → Response
Key Dependencies
| Dependency | Purpose |
|---|---|
tree-sitter | Language-agnostic AST parsing |
pymgclient | Memgraph database adapter |
pydantic-ai | Agent framework for LLM integration |
pydantic-settings | Settings management |
mcp | Model Context Protocol SDK |
typer | CLI framework |
rich | Terminal rendering |
prompt-toolkit | Interactive command line |
diff-match-patch | Code patching |
watchdog | Filesystem events monitoring |
huggingface-hub | UniXcoder model download |