Short answer
code-graph-rag builds a knowledge graph in Memgraph with a vector store beside it, and an LLM turns a plain-English question into Cypher; its fixed graph tools need no LLM. It can also edit code and overlay runtime traces. Pixel needs no database, no Docker and no LLM key: one binary, one local index, your Git history.
Side by side
Not benchmarked. No figure: how Pixel and code-graph-rag work, side by side. Nothing on this page is a measurement.
| Measure | Pixel | code-graph-rag |
|---|---|---|
| Callers and callees | Yes | Yes |
| Plain-English questions | Search, pixel search-meaning | Answered through an LLM that writes Cypher |
| Edits code | Renames only | Yes |
| Services to run | None | Memgraph and Qdrant, in Docker |
| Git history | Yes, with guarded Git writes | None documented |
Where code-graph-rag wins
Plain-English questions turned into Cypher, code edits through the agent, runtime traces and data-flow checks.
How they differ
code-graph-rag parses code with tree-sitter (and compiler front ends for some languages) into Memgraph, with a vector store beside it, both started in Docker. A plain-English question goes to an LLM that writes the Cypher; its fixed tools (callers, callees, definitions) query the graph directly. It can also edit code and merge runtime traces into the graph. Pixel is one binary: its graph and search index live in .pixel/, and pixel who-calls, pixel impact or pixel search-meaning answer without a model.
Choosing
Use code-graph-rag when you want to ask the graph questions in plain English through an LLM, or have the tool edit code and follow runtime traces. Use Pixel when the agent should get callers, blast radius, task scope and Git history with no service to run and no key to configure.