Short answer
Ask for the blast radius before the edit: pixel impact lists the callers upstream of a symbol from a code graph, and pixel who-calls the direct ones. On 29 blast-radius cases in Rust, TypeScript and Ruby, Pixel found 0.86 of the callers grep confirms, in a 153 ms median. Static analysis never sees every dynamic call, so every graph answer says when it may be incomplete.
Ask before the edit, not after the tests
An agent that changes a function’s signature, its return value or what it throws needs to know who depends on it. Without that list it edits, runs the tests, and fixes what failed; whatever the tests do not cover ships broken. A search for the name finds some callers and many lines that are not calls.
What the graph answers
Pixel parses the repository with tree-sitter into a graph of symbols, imports and calls. pixel who-calls returns the functions that call a symbol, pixel impact follows them upstream to the blast radius, and pixel call-path shows how one function reaches another. Each answer says how complete it is: a call the graph could not resolve is reported as such rather than dropped, and the answer carries a warning that static analysis never sees every dynamic call.
Run it before the edit and give the list to the agent as the scope of the change, or let the agent run it: the protocol pixel install deploys tells it to.
The figures
| Callers found, 29 cases | 0.86 (GitNexus 0.84, a tie at this sample size) |
|---|---|
| Callers found in Rust and TypeScript | Every one |
| Callers found in Ruby, two repositories | 0.90 and 0.56 |
| Median time per answer | 153 ms |
Every figure above is on the benchmarks page, with its sample size and its method: Against GitNexus.
Where Pixel does not win
The figure is callers found, not breakage predicted: a caller is where to look, not proof that it breaks. Ruby is the weak spot, 0.90 and 0.56 on two repositories where GitNexus finds 1.00 and 0.68. A language server resolves types, so its references are more exact for the language it serves; this page has no figure for it.