Pixel compared

Pixel against each tool a team weighs it against, one page each: a short answer, the figures side by side, how they were measured, and where the other tool wins.

Updated

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

CriterionPixelGitNexusMeasured head to headSerenaCodeGraph­Contextcode-graph-ragClaude Contextgraphify
Callers found (29 cases)0.860.84Not benchmarkedNot benchmarkedNot benchmarkedNot benchmarkedNot benchmarked
Context on every turn (Pixel 0.4.0)~4,160 tok~19,700 tok
How it answersA tree-sitter graph, text and embedding searchA tree-sitter graph in LadybugDB, queried in Cypher; embeddings optionalLanguage servers, or a paid JetBrains pluginA tree-sitter or SCIP graph in FalkorDB, KuzuDB or Neo4jA tree-sitter graph in Memgraph, vectors in Qdrant; an LLM writes CypherKeyword and vector search over code chunks, in MilvusA tree-sitter graph in local files; a model reads non-code inputs
What it needsOne binary, an index in .pixel/Node.js, installed with npmPython through uv, plus a language server per languagePython, or its Docker image; Neo4j needs a serverPython, Docker for Memgraph, an LLM key for plain-English queriesNode.js, a vector database and an embedding provider; cloud by defaultPython through uv or pipx; a model for docs and media
How the agent reaches itShell commands, with a skill and a prompt-submit hookMCP tools, a CLI, skills and hooksMCP toolsMCP tools and a CLIMCP tools, a CLI and a Python SDKMCP tools, a VS Code extensionA skill, a CLI, hooks, optional MCP
Git historyYes, and guarded Git writesNoNone documentedNone documentedNone documentedNone documentedNo history search; hooks rebuild the graph on commit
LicenceMITPolyForm NoncommercialGPL-3.0-or-laterMITMITMITApache-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.

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