Each page says how its figures were obtained before it shows them: measured head to head on the same cases, set beside the other tool’s published figure on a different sample, or not benchmarked at all. Each keeps the rows where the other tool wins, and every figure is on the benchmarks page first.
Compare the approaches
| Criterion | Pixel | GitNexusMeasured head to head | Serena | CodeGraphContext | code-graph-rag | Claude Context | graphify |
|---|---|---|---|---|---|---|---|
| Callers found (29 cases) | 0.86 | 0.84 | Not benchmarked | Not benchmarked | Not benchmarked | Not benchmarked | Not benchmarked |
| Context on every turn (Pixel 0.4.0) | ~4,160 tok | ~19,700 tok | |||||
| How it answers | A tree-sitter graph, text and embedding search | A tree-sitter graph in LadybugDB, queried in Cypher; embeddings optional | Language servers, or a paid JetBrains plugin | A tree-sitter or SCIP graph in FalkorDB, KuzuDB or Neo4j | A tree-sitter graph in Memgraph, vectors in Qdrant; an LLM writes Cypher | Keyword and vector search over code chunks, in Milvus | A tree-sitter graph in local files; a model reads non-code inputs |
| What it needs | One binary, an index in .pixel/ | Node.js, installed with npm | Python through uv, plus a language server per language | Python, or its Docker image; Neo4j needs a server | Python, Docker for Memgraph, an LLM key for plain-English queries | Node.js, a vector database and an embedding provider; cloud by default | Python through uv or pipx; a model for docs and media |
| How the agent reaches it | Shell commands, with a skill and a prompt-submit hook | MCP tools, a CLI, skills and hooks | MCP tools | MCP tools and a CLI | MCP tools, a CLI and a Python SDK | MCP tools, a VS Code extension | A skill, a CLI, hooks, optional MCP |
| Git history | Yes, and guarded Git writes | No | None documented | None documented | None documented | None documented | No history search; hooks rebuild the graph on commit |
| Licence | MIT | PolyForm Noncommercial | GPL-3.0-or-later | MIT | MIT | MIT | Apache-2.0 |
| Where it beats Pixel | — | Cypher queries, taint analysis, API route maps, and callers in Ruby. | type-resolved references, and symbol-level editing and refactoring through the language server. | a graph database of your choice, raw Cypher queries, an HTML graph view and code complexity reports. | plain-English questions turned into Cypher, code edits through the agent, runtime traces and data-flow checks. | a managed cloud vector store, a choice of embedding provider, and a VS Code extension. | non-code inputs (docs, PDFs, media, database schemas), community clustering and an interactive graph view. |
| Full comparison | How we measured | Full comparison with GitNexus | Full comparison with Serena | Full comparison with CodeGraphContext | Full comparison with code-graph-rag | Full comparison with Claude Context | Full comparison with graphify |
Other ways to spend fewer tokens have a page each: shunt, which hands large reads to a second model, Jev, a model for coding judgement calls, and RTK, which compresses command output and runs beside Pixel. Where a specialist beats Pixel at its one job (semble on a plain-English search's top 10, stacklit on a compact repository map), and how Pixel compares with WarpGrep, Morph's search subagent, the numbers are on the benchmarks page, and every comparison is listed.
Choosing a tool
Why not just grep?
Grep finds the line; the agent then opens the file around it. On Hugging Face's 4,639-line trainer.py, the whole file is 57,058 estimated tokens against 1,649 for its signatures (UTF-8 bytes ÷ 4), a volume, not a session cost. pixel search-content keeps grep's regex syntax.
Why not a language server or my editor's index?
A language server resolves types, so its callers are more exact than a syntax graph's, but it needs one running server per language; an editor's index lives inside that editor. Pixel is one binary every agent on this page shares, covers 13 languages and your Git history, and says when an answer may be incomplete.
Pixel or semble?
Both, if you search in plain English a lot. On 45 natural-language queries, semble has the right file in its top 10 for 100%, Pixel for 96%; Pixel puts it first more often, 87% against 64%, and adds the call graph, blast radius, Git history and guarded Git writes.
Full comparisons
Pixel vs GitNexus
Measured head to head
A code graph for coding agents, served as MCP tools, with Cypher queries over the graph.
Where GitNexus wins: Cypher queries, taint analysis, API route maps, and callers in Ruby.
Pixel vs Serena
Not benchmarked
An MCP toolkit that gives an agent an IDE's symbol-level retrieval and editing, through language servers or a JetBrains plugin.
Where Serena wins: type-resolved references, and symbol-level editing and refactoring through the language server.
Pixel vs CodeGraphContext
Not benchmarked
An MCP server and CLI that indexes local code into a graph database, queried for callers, call chains and raw Cypher.
Where CodeGraphContext wins: a graph database of your choice, raw Cypher queries, an HTML graph view and code complexity reports.
Pixel vs code-graph-rag
Not benchmarked
A knowledge graph of a codebase in Memgraph, queried and edited in plain English through an LLM that writes the Cypher.
Where code-graph-rag wins: plain-English questions turned into Cypher, code edits through the agent, runtime traces and data-flow checks.
Pixel vs Claude Context
Not benchmarked
Zilliz's MCP plugin for semantic code search: code split along its syntax tree, embedded, and stored in Milvus or Zilliz Cloud.
Where Claude Context wins: a managed cloud vector store, a choice of embedding provider, and a VS Code extension.
Pixel vs graphify
Not benchmarked
A skill that turns a codebase, with its docs, schemas, PDFs and media, into a knowledge graph an agent can query.
Where graphify wins: non-code inputs (docs, PDFs, media, database schemas), community clustering and an interactive graph view.
Pixel vs shunt
Published figures, different samples
Spotify's plugin that hands an agent's large file reads to a worker model, a second model on the bill.
Where shunt wins: its worker also writes boilerplate code, which Pixel does not.
Pixel vs Jev
Published figures, different samples
A dedicated model for coding judgement calls, scored on its own benchmark, JevBench.
Where Jev wins: its 0.738 typed-decisions accuracy is slightly higher than winnow:e4b's 0.722.
Pixel vs RTK
Not benchmarked
A Rust proxy that rewrites an agent's shell commands and compresses what they print: build logs, test runs, Git output.
Where RTK wins: it compresses the output of builds, tests, Git and other shell commands, which Pixel leaves as they are.
Pixel vs semble
Measured head to head
A search tool that finds code from a question in plain English, with a small context footprint.
Where semble wins: a top 10 that held the right file on every query, and a lighter context on every turn.
Pixel vs WarpGrep
Measured head to head
Morph's search subagent: a model trained with reinforcement learning drives ripgrep and file reads on your code for a few turns and hands back the relevant spans.
Where WarpGrep wins: nothing to build before the first search, and an answer that is the code itself, in one or two files, rather than a ranked list.
Pixel vs grep
Measured from the baseline
The line search every agent already knows, and the one it reaches for first: grep, ripgrep, the agent's own search tool.
Where grep wins: nothing to install and no index to build: it runs on any file, anywhere, the moment it exists.
Pixel vs a language server
Not benchmarked
The type-aware engine behind an editor's go-to-definition and find-references: rust-analyzer, tsserver, gopls and the like.
Where a language server wins: it resolves types, so its callers and references are more exact than a syntax graph's.
Pixel vs an editor's index
Not benchmarked
The index an editor or an AI editor builds for its own search and its own agent.
Where an editor's index wins: it is already there, with nothing to install or wire.