mrkeyoor.com_
Sat 07 Nov 23:35 UTC
LLM Toolsevaluationupdated 01 Nov 2026

code-graph-rag review

Consider Code-Graph-RAG when you need to investigate relationships between symbols across a repository and can verify the results against source. It builds a code knowledge graph and provides natural-language querying and editing through a CLI or MCP client. The current README documents embedded SQLite as the default graph backend, with Memgraph and Neo4j available as opt-in backends. Our run on October 13, 2026, tested commit a982bcf, whose README still required Memgraph; it did not validate the current embedded backend or a completed indexing, querying, or editing workflow.

+22stars / 7d
Verdict

Code-Graph-RAG merits a trial when graph relationships could help answer concrete repository questions. The current documentation removes Docker from the default graph setup, but our run on October 13, 2026, at a982bcf did not test that route and ended with integration errors. Start with one repository, verify known relationships, and review every proposed edit before expanding its role.

We ran it

Lab card: what happened when we ran code-graph-ragScreenshot of code-graph-rag (code-graph-rag.com)
Install✓ · 48s116 packages · 317 MB
Build✓ · 30s
Tests✗ · 123s19 passed · 0 failed · 24 skipped · 200 errors of 219 (pytest)
Known vulns0(pip-audit)
Repo2144 files~715,732 lines of source · 61.2 MB · 17 CI workflows · Dockerfile

Answers from our run

Does code-graph-rag build from source?

Dependencies installed in 48 seconds (116 packages), and the build succeeded in 30 seconds. We cloned commit a982bcf into a clean Debian container with 3 CPUs and no project-specific setup.

Do code-graph-rag's tests pass?

No. The project's own test command finished in 123 seconds and reported 19 passed, 0 failed, 24 skipped, 200 collection errors (pytest).

Does code-graph-rag have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use code-graph-rag?

Teams requiring demonstrated end-to-end reliability from this review: our sandbox did not complete that validation.

What are the alternatives to code-graph-rag?

Aider, Continue. Code-Graph-RAG merits a trial when graph relationships could help answer concrete repository questions.

Setup2/5At the tested commit, install and build commands completed, but integration cases encountered Docker connectivity errors. This rating does not assess the current SQLite default.
Docs5/5The supplied README states prerequisites, backend choices, language tiers, and task-specific documentation routes. The rating concerns that documented coverage, not independent verification of every linked guide.
Community4/5The supplied v0.0.720 release shows contributor participation and numerous changes. This historical activity supports the rating; adoption, current response times, and support guarantees remain unmeasured.
Maturity3/5The documented graph, CLI, MCP, and editing features are substantial, but language coverage varies and our sandbox did not validate an end-to-end workflow.

Discussed on

  1. hnGraph-Code: A Graph-Based RAG System for Python Codebases4 points
  2. hnMonorepos solved: graph-based search3 points
  3. hnGraph-Code: A Graph-Based RAG System for Any Codebases3 points
  4. hnGraph-Code: A Multi-Language Graph-Based RAG System3 points

Who it’s for

Engineers evaluating graph-based investigation of callers, imports, inheritance, and other code relationships.
Teams that want repository-query and editing tools available through MCP.
Maintainers willing to check language-specific analysis limits and verify graph results against source.
Operators who can trial the exact backend, languages, and platform they intend to use.

Who it’s NOT for

Teams requiring demonstrated end-to-end reliability from this review: our sandbox did not complete that validation.
Readers expecting identical analysis depth across languages: the README distinguishes full support, structural support, and Scala work in development.
Anyone expecting the October run to establish whether the current SQLite default works.
Operators unwilling to review generated edits or account for the shared graph's destructive cleanup scope.

Setup reality

In our sandbox, our run on October 13, 2026, at commit a982bcf recorded installation completing in 48 seconds and the build command completing in 30 seconds, both with exit code 0. The harness recorded 116 installed packages occupying 317 MB. These outcomes establish command completion, not a working CLI deployment.

The test command exited 1 after 123 seconds of harness wall time. Its stored parser summaries report 19 passed, 0 failed, 24 skipped, 200 errors, and total 219. These fields are not a verified count of unique, exhaustive tests and should not be added together or treated as a pass rate. The raw pytest footer separately reports 19 passed, 24 skipped, and 200 errors in 107.52 seconds. Its elapsed time covers a different reporting boundary from the harness duration.

The visible log tail contains Docker API connection errors in integration cases. It does not establish that every recorded error had that cause or that language analysis returned incorrect results. The current README now documents Python 3.12+, ripgrep, and an embedded SQLite graph without Docker or cmake by default. That current route was not tested in our recorded run.

Pip-audit recorded 0 advisories. Scan coverage is unknown: the attached record does not establish which packages were scanned. This was not a security review.

Should you try it?

Use a controlled trial if questions about callers, references, or dependencies routinely require you to piece together results from several files. Code-Graph-RAG's documented workflow builds those relationships into a graph, then uses Cypher queries to retrieve code for natural-language answers. Treat the returned files and symbols as evidence to inspect before accepting an answer or edit.

The current README documents embedded SQLite as the default graph backend, with Memgraph and Neo4j available as opt-in backends. That changes the setup decision: lacking Docker no longer rules out the documented default route. It does not change what our older sandbox run demonstrated.

What our sandbox established

Our run took place on October 13, 2026, at commit a982bcf, with full SHA a982bcffbe1a109a99d6c9bc56cfd527d939ded6. The recorded container used 3 CPUs, 8 GB RAM, and the Python 3.12 Bookworm uv image. Installation completed in 48 seconds and the build command completed in 30 seconds, both with exit code 0.

The test command exited 1. The attached stored parser summaries report 19 passed, 0 failed, 24 skipped, 200 errors, and total 219. These are recorded parser fields, not reconciled totals of unique tests. The skipped cases were not failures, and the zero failed field does not make a run with errors successful.

The raw footer says 19 passed, 24 skipped, and 200 errors in 107.52 seconds; the harness records 123 seconds for the test step. We retain both reporting boundaries rather than replacing one with the other. Named cases in the visible tail include Java flow, Java I/O, JavaScript/TypeScript environment, and JavaScript/TypeScript flow integration tests. They report failure to fetch the Docker server API version, ending with FileNotFoundError. That tail supports a Docker-connectivity explanation for those shown cases, not a diagnosis of every error in the stored summary.

Our harness records step status, exit code, wall-clock duration, parsed test counts, and log tails separately. The supplied testing methodology explains those distinctions and their limits. Its later description is provenance context, not evidence that this older run used today's procedure or that we executed anything again.

We did not validate a completed repository index, natural-language answer, MCP session, generated edit, runtime trace, or current SQLite deployment. The successful build command does not establish any of those outcomes. Pip-audit's recorded zero advisories also does not establish security or scan coverage.

Match setup instructions to the version

The README at the tested commit required Python 3.12+, Docker for Memgraph, cmake, and ripgrep. Its quick start began with the packaged Memgraph and Qdrant stack. That is the relevant documentation for interpreting our October run.

The current README instead documents an embedded SQLite graph file, Python 3.12+, and ripgrep. Memgraph and Neo4j are optional graph backends. It also documents a separate Memgraph setup using the memgraph extra and backend configuration. Do not mix that optional route with the default installation requirements.

Issue #386 contains useful historical discussion of embedded storage, but its open status does not override the current README's documented default. Likewise, release v0.0.720 is a historical release, not the identity of our tested commit or proof of the current installation path. Pin the version you intend to evaluate and use its matching documentation.

Check language depth and edit scope

The README describes Tree-sitter as the parsing backbone, with compiler frontends and runtime traces adding information where available. A compiler frontend covers what its toolchain can build; a trace covers code that actually ran. Neither establishes complete relationships throughout an arbitrary repository.

The current language list includes Julia among the fully supported languages, keeps Scala in development, and gives a separate structural tier for languages such as Ruby, Kotlin, Swift, and Bash. Choose representative questions from your own languages and check the answers against known call paths. Our sandbox did not measure graph precision or compare languages.

Editing is part of the documented product. The README describes AST-based patching with a diff preview and exposes querying and editing through MCP. Review proposed changes before applying them and give the process only the filesystem access it needs.

The shared graph also deserves care: the README warns that the cleanup flag deletes every project in that graph, rather than only the repository being updated. Check the selected graph and preserve any data you need before resetting it.

Alternatives depend on the job

Aider supports terminal pair programming and automatically commits changes to Git. Choose it when your main task is making and reviewing code changes through a Git workflow. That is a different decision from evaluating relationship queries; its supplied README does not establish it as a replacement for Code-Graph-RAG's graph backend. It can also serve a separate editing role alongside repository investigation, although we did not test an integration between them.

Continue's repository is read-only and no longer actively maintained. Its README describes a coding agent available through a CLI, VS Code extension, and JetBrains plugin, with a final 2.0.0 release. Consider it only if you specifically want to evaluate that existing codebase and accept its maintenance status. It is an alternative agent interface, not evidence of equivalent graph analysis.

How to read the scores

These are editorial ratings, not benchmark results. The scale runs from 1 for substantial barriers or little supporting evidence to 5 for the strongest documented support within a dimension. For setup, 2 means installation completed but the tested workflow faced service-related barriers. For documentation, 5 means the supplied README gives prerequisites, backend choices, language distinctions, and routes to task-specific guides; it does not certify every linked guide. For community, 4 reflects visible release and contributor activity in the supplied historical release extract, not measured adoption or response times. For maturity, 3 reflects a substantial documented feature set with language limitations and incomplete validation in our sandbox. The setup score concerns the tested commit, so it should not be read as a measurement of today's embedded default.

Alternatives

ProjectWhat it isPick it when
Aider gh↗A terminal pair-programming tool with automatic Git commits.Choose it for a Git-based coding and review workflow. It addresses the editing job rather than establishing an equivalent graph-query system.
Continue gh↗A coding agent with CLI and editor interfaces whose repository is now read-only and no longer actively maintained.Consider its final 2.0.0 release only when those interfaces or the existing source meet a specific need and you accept the maintenance status.

What people are saying

  1. [github-trending] vitali87/code-graph-rag

Sources

  1. Code-Graph-RAG README
  2. Code-Graph-RAG v0.0.720 release
  3. Embedded database alternatives issue
  4. Windows locale decoding issue

More llm tools reviews

MCPJungle · octomind · kimi-k3-in-c · nanochat · FreeToken · ironclaw · the whole board →