Complete Guide to Dependencies for Running Code-Graph-RAG
Code-Graph-RAG requires a minimal core of loguru, mcp, and tree-sitter, with five optional dependency groups available for testing, full language support, semantic search, Milvus integration, and AST pattern matching.
The vitali87/code-graph-rag repository structures its Python package to remain lightweight by default while offering feature-rich extras for specific use cases. All dependency declarations reside in the [project.optional-dependencies] table of pyproject.toml (lines 87–131), allowing selective installation based on your target environment.
Core Dependencies
The base installation includes only essential runtime packages needed for fundamental operation:
loguru– Structured logging utilitiesmcp– Model Context Protocol implementationtree-sitter– Core Tree-Sitter library for parsing
These ship automatically when running pip install codegraph-rag. All additional functionality is gated behind optional extras to prevent bloat.
Optional Dependency Groups
The project defines five distinct extras in pyproject.toml, each targeting specific workflows or integrations.
Test Dependencies
Install the test extra to execute the repository's test suite, generate coverage reports, and run integration tests. This group includes:
pytest,pytest-asyncio,pytest-cov,pytest-xdisttestcontainers,libclang,filelockast-grep-py,pyyaml
Tree-Sitter Full Language Support
The treesitter-full extra provides comprehensive grammar support for multi-language code graph construction. According to pyproject.toml (lines 100–114), this adds:
tree-sitter-pythontree-sitter-javascript,tree-sitter-typescripttree-sitter-rust,tree-sitter-go,tree-sitter-scalatree-sitter-java,tree-sitter-c,tree-sitter-cpptree-sitter-lua,tree-sitter-php,tree-sitter-c-sharp,tree-sitter-dart
Without this extra, the parser relies on a limited subset of grammars.
Semantic Search Dependencies
Enable embedding-based retrieval and LLM integration with the semantic extra. As declared in pyproject.toml (lines 116–120), this installs:
qdrant-client– Vector database clienttorch– PyTorch for tensor operationstransformers– Hugging Face model library
These dependencies power the modules in codebase_rag/semantic/ for vector-based similarity search.
Milvus Vector Store Integration
For teams preferring Milvus over Qdrant, the milvus extra installs pymilvus[milvus-lite] as specified in pyproject.toml (lines 122–124).
AST-Grep Pattern Matching
The ast-grep extra adds structural query capabilities through ast-grep-py and pyyaml (lines 126–129), enabling pattern matching against abstract syntax trees.
Installation Commands
Install the core library without optional features:
pip install code-graph-rag
Add specific functionality using bracket notation:
# Testing tools
pip install "code-graph-rag[test]"
# Full language support
pip install "code-graph-rag[treesitter-full]"
# Semantic search stack
pip install "code-graph-rag[semantic]"
# Milvus vector store
pip install "code-graph-rag[milvus]"
# AST pattern matching
pip install "code-graph-rag[ast-grep]"
Combine multiple extras for development environments:
pip install "code-graph-rag[semantic,treesitter-full,test]"
Conditional Import Architecture
The library implements lazy loading to prevent import errors when extras are missing. In codebase_rag/cli.py, the CLI entry point checks for available dependencies before importing modules from codebase_rag/semantic/ or codebase_rag/parsers/.
This design ensures that:
- Core functionality remains available without heavy ML frameworks
- Import errors only occur when accessing specific features that require missing dependencies
- Container images stay small unless extended language support is explicitly requested
Summary
- Core dependencies (
loguru,mcp,tree-sitter) always install automatically testextra provides pytest suite and coverage tools for CI/CD pipelinestreesitter-fulladds 13 Tree-Sitter grammars for multi-language code graph generationsemanticenables Qdrant, PyTorch, and Transformers for vector-based RAGmilvusoffers an alternative vector database to Qdrantast-grepsupports structural code pattern matching- All extras are declared in
pyproject.toml(lines 87–131) and installable via pip bracket syntax
Frequently Asked Questions
What are the minimum dependencies required to run code-graph-rag?
The minimal installation requires only loguru, mcp, and tree-sitter. These support basic code parsing and logging functionality without requiring PyTorch, Hugging Face, or additional grammar packages. This lightweight core suits environments where you need only specific language support or basic graph construction.
How do I install support for multiple programming languages?
Add the treesitter-full extra to gain support for 13 additional languages including Rust, Go, Java, C, C++, and TypeScript. Without this extra, the parser operates with limited grammar support. Install via pip install "code-graph-rag[treesitter-full]" as defined in pyproject.toml lines 100–114.
Which dependencies are needed for semantic search and RAG?
Semantic retrieval requires the semantic extra, which installs qdrant-client, torch, and transformers. These power the embedding generation and vector similarity search features located in codebase_rag/semantic/. For alternative vector storage, add the milvus extra for pymilvus support.
Can I use Milvus instead of Qdrant for vector storage?
Yes. While the semantic extra defaults to Qdrant via qdrant-client, you can install pymilvus[milvus-lite] using the milvus extra. The codebase supports conditional imports for different vector backends, though you must ensure the appropriate client library is present in your environment.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →