Compare · measured across 3 real AI clients

How GitCortex compares to CodeGraph.

CodeGraph is another local code-knowledge-graph tool built for AI coding agents. Rather than run it once through one client, we ran the same 10 questions against five real repos through three independent AI clients — Claude Code, Codex, and Antigravity — with a fresh baseline captured for each, so nothing stale got compared.

In short

GitCortex answered with complete evidence accuracy (10/10) in every single run, across all three clients. CodeGraph scored 8/10 in each client — and missed the same call-tracing question independently, every time. Token efficiency was closer and client-dependent: CodeGraph was actually cheaper via two of the three clients.

We're posting the losses along with the wins — see the per-client breakdown for exactly where CodeGraph came out ahead.

Accuracy and tokens, by client

10 tasks (search + callers, 5 repos: tokio, django, next.js, moby, spring-boot) run through each client independently, fresh baseline captured per client so nothing stale got reused across runs.

ClientGitCortex evidenceCodeGraph evidenceGitCortex tokensCodeGraph tokensToken winner
Claude Code10/108/101,867,6502,091,507GitCortex (−11%)
Codex10/108/10595,651507,114CodeGraph (−15%)
Antigravity10/108/10256,092248,211CodeGraph (−3%)
GitCortex
Rust · tree-sitter · KuzuDB · MCP-native

Perfect evidence accuracy in every client, every run — 30/30 tasks correct across the full sweep.

CodeGraph
Node.js · tree-sitter · CLI + MCP

24/30 correct — missed the same callers-type task independently in all three clients (see below).

The repeatable miss

One task — tracing callers of Next.js's normalizePagePath — is where CodeGraph lost evidence accuracy in all three independent client runs. Not a one-off across a single flaky run: three separate clients, three separate LLM providers, same result.

Consistent across Claude Code, Codex, and Antigravity

A second task — tracing callers of Moby's ContainerKill — was also missed by CodeGraph in 2 of the 3 client runs. Both are callers-style tasks (tracing who calls a symbol, not just where it's defined) — CodeGraph's search results were correct on all 15 attempts across the three clients; the gap is specifically in call-tracing.

This lines up with a known weakness documented in CodeGraph's own GitHub issue tracker: cross-file edges can conflate same-named symbols, producing a confident-sounding but wrong call attribution rather than declining to answer. GitCortex's syntactic, no-type-inference design deliberately leaves ambiguous same-named calls unlinked instead of guessing — the tradeoff shows up directly in this result.

Task-by-task detail (Codex client)

Showing the Codex-driven run in full — cleanest single-client trace, zero tooling artifacts. Claude Code and Antigravity runs are in the repo (see methodology below).

TaskTypeGitCortexCodeGraphGitCortex tokCodeGraph tok
tokio · Notifysearch1.001.0056,79439,368
tokio · notify_waiterscallers1.001.0057,32955,294
django · QuerySetsearch1.001.0040,18438,156
django · filtercallers1.001.0055,93174,169
next.js · useRoutersearch1.001.0067,53768,309
next.js · normalizePagePathcallers1.000.00118,27569,077
moby · ContainerCreatesearch1.001.0042,43841,899
moby · ContainerKillcallers1.000.0061,04342,246
spring-boot · SpringApplicationsearch1.001.0056,10839,588
spring-boot · getMainApplicationClasscallers1.001.0040,01239,008
Methodology and how this page was built
  1. Five real open-source repos, pinned to an exact commit: tokio, django, next.js, moby, spring-boot — chosen as large, real-world codebases rather than the smaller canonical set used for other benchmarks on this site.
  2. 10 tasks (5 search + 5 callers, one pair per repo), run independently through three real AI clients: Claude Code, Codex, and Antigravity — each with its own freshly-captured baseline (grep-only arm), so no client's numbers were reused or extrapolated from another's run.
  3. GitCortex accessed via its MCP tool in Claude Code/Antigravity, and via its own CLI in Codex (matching how each client is actually used in practice). CodeGraph accessed via its CLI (codegraph query / codegraph callers) in all three, since it has no MCP integration wired into this harness.
  4. Quality is the fraction of independently-verified required evidence (a specific repo-relative file path) present in the final answer — same grading rule applied identically to both tools.
  5. A staleness gate compares each run's recorded gcx_sha256/suite hash against the binary and task suite in use, refusing to mix a stale baseline with a fresh comparison run.
  6. Full harness, task definitions, and raw per-client logs: tools/agent-bench/ in the repo, including codegraph_compare.py and big-repos-v1.toml.