And it cut the cost of each correct answer by 24%.
Ask a coding agent “who calls this function?” and it does what you would do without an IDE: it searches text, opens files, searches again. On a small project that works. On django — 2,500 files — it guesses. Confidently.
We built Crux to fix this. Crux gives the agent a pre-built map of the codebase: every definition, every reference, every caller, computed once and kept fresh. The agent asks; the map answers. No file spelunking.
Then we did the part most tool announcements skip: we benchmarked it against plain grep, question by question, on the same model, with the same token meter.
What we found
Fifty verifiable questions over django and sympy. Three kinds: where is this defined, who calls this, which files use this.
With Crux, the agent answered 48 of 50 correctly (96%). With grep alone: 33 of 50 (66%). That is 45% more correct answers — and each correct answer cost 24% less (71k tokens vs 94k).
Three patterns, and they tell one story:
Where the map wins, it wins on both counts. “Who calls X” across a big codebase: the map answers in one call, complete — and when both approaches got the answer right, the map did it for 13% fewer tokens. Same right answer, smaller bill.
Where the map cannot win, it stays home. “Where is X defined” is a one-line search — the map adds nothing, so the agent skips it and pays exactly what grep pays. A tool that costs nothing when it is not needed took us three prompt iterations to get right, and it was worth every run.
The only premium is for being right. “Which files use X” costs a bit more with the map — and it is the question grep reliably gets wrong, because text search cannot tell a mention in the docs from a real reference in code. Paying a little more for the correct answer beats paying almost as much for a wrong one you will act on.
One more thing, and it makes the numbers conservative: every question above was asked in a fresh, separate session — the hardest possible setup for Crux, because each answer paid the full cost of setting up alone. Real coding sessions ask many questions about the same code, one after another. The map is already loaded; each additional question gets cheaper. These results are the floor, not the ceiling.
Why this matters beyond one tool
A wrong answer from a coding agent is not cheap. It is a token bill deferred: the retry, or worse, the refactor built on a caller list that missed three callers. Correctness is the cheapest token optimization there is.
Crux is one layer of Halv — the piece that handles code navigation. It ships built in and activates automatically on projects big enough to need it; Halv’s other layers, like context compression, are measured separately. Crux is also open source, MIT, fully local — point any MCP-capable agent at it.
Want the receipts? The full technical write-up has the methodology, the per-question tables, the five most instructive cases, and the tuning trail — including the two prompt wordings that failed before one worked.