GraphRAG knowledge base for codebases
Project description
nelgraph 🚀
An autonomous, zero-configuration Knowledge Graph builder and semantic search engine optimized for local codebases and AI testing agents. It ingests source code, AST Call Graphs, Class Inheritance structures, and Git history into a hybrid Graph-Vector database (Neo4j + ChromaDB) using DeepSeek V4-Flash.
🛠️ Installation
pip install nelgraph
🚀 CLI Usage
1. Initialize GraphRAG for your project
Navigate to your project directory and run:
nelgraph init
During initialization, it will:
- Prompt you for your OpenRouter API key.
- Configure the local
.envand.graphrag_data/directory. - Start Neo4j inside a local Docker container.
- Build structural nodes, relations, and indexes.
- Install a git post-commit hook so the graph auto-syncs.
- Automatically generate the AI Agent Skill definition file at
.agents/nelgraph/SKILL.md.
2. Manual Synchronization
If you want to manually trigger incremental synchronization (e.g. after changes):
nelgraph sync
3. Check Status
View current database metrics, indexed function counts, and AI enrichment coverage:
nelgraph status
4. Run Watcher
Run a file watcher that auto-syncs the graph in the background when files change:
nelgraph watch
🔌 Programmatic Python API
You can import nelgraph directly into your scripts or AI testing agents:
import nelgraph
# Configure (if .env is not present or needs custom config)
nelgraph.configure(
codebase_path="/absolute/path/to/project",
openrouter_api_key="your-openrouter-key"
)
# 1. Get snapshot of prioritized functions
# Returns functions grouped by community, sorted by priority score
snapshot = nelgraph.get_snapshot()
print(f"Total functions: {snapshot['total']}")
# 2. Retrieve detailed context for a function
# Disambiguate functions with same name using optional class_name or file filters
ctx = nelgraph.get_function_context("execute", class_name="CalculationContext")
print(ctx.get("function", {}).get("how_it_works"))
# 3. Retrieve detailed context for a class
# Returns class details, parent classes, child classes, methods, docstring, and source code
class_ctx = nelgraph.get_class_context("ExpressionParser")
print(class_ctx.get("parent_classes"))
# 4. Export context to a file (Markdown or JSON)
# Resolves class before function; saves to path
success = nelgraph.dump_context_to_file("ExpressionParser", "./scratch/class_context.md", format="markdown")
# 5. Semantic Search
# Uses vector similarity search to find functions/concepts related to a query
results = nelgraph.search("user authentication flow")
for r in results:
print(r["name"], r["score"])
# 6. Mark function as tested/verified
# Persists testing status directly to the graph
nelgraph.mark_tested("process_order")
🤖 AI Agent Skill Interface
When nelgraph init runs, it generates .agents/nelgraph/SKILL.md. This file contains standard Model Context Protocol (MCP) skill signatures and operational rules for downstream LLM agents. Agents can read this file at the start of a session to understand how to query code context, track progress, and run synchronization.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nelgraph-1.0.5.tar.gz.
File metadata
- Download URL: nelgraph-1.0.5.tar.gz
- Upload date:
- Size: 79.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
269c16ce80ce5e762cefc5224826793f3750e9cc231395c64c81d7d4e2ec06a3
|
|
| MD5 |
bc41b69dc4894dd625d2d5d8161ae069
|
|
| BLAKE2b-256 |
5da0e9046e3e766c41f85e415b6d5f830e8c7d17ae47f5920aa297a72d4e6974
|
File details
Details for the file nelgraph-1.0.5-py3-none-any.whl.
File metadata
- Download URL: nelgraph-1.0.5-py3-none-any.whl
- Upload date:
- Size: 102.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86d04c81b99159dc929b2b0a85625fe924e982af68d080de0c0cd5db2554f572
|
|
| MD5 |
3f730a9f1f4bc91c7ca235d9c592315c
|
|
| BLAKE2b-256 |
c4c47c2313ccad495292b293447acc70267fce9bbe902912df9e7f0b9ea7bc8c
|