DEV Community

Cover image for A diff shows which lines your AI agent changed. It does not show what they affect.
Recep Batuhan Dikmen
Recep Batuhan Dikmen

Posted on Originally published at Medium

A diff shows which lines your AI agent changed. It does not show what they affect.

When I work with AI coding agents, writing the code is rarely the slow part. The slow part is afterwards: what did it change, and what else does that touch? A diff answers the first question. It does not tell you that the helper you edited is called from four endpoints, or that one of them also calls another service.

I built Axle, an open source editor built on VS Code, to answer that on the call flow itself.

Draw the flow, then put the diff on it

For an endpoint, Axle draws the chain as cards, each with its real code. When an agent changes something, the same flow shows the added lines in green and the removed ones in red. You pick what to compare against: your uncommitted work, everything since the branch left main, or the last commit.

Be honest about what is a guess

A call to another service is linked to the route it probably reaches by matching names and paths. That can be wrong, so those links are drawn dashed and labelled (HTTP?, topic?). A call that could not be resolved is not hidden. A flow that looks complete but is partly invented is worse than one that says what it does not know.

Know which agent needs you

Claude Code and Codex run as their real CLIs, side by side. A dock ranks what needs you (an approval with its text, a question, an error), shows how full each context window is, what it costs and the state of its pull request. Each agent can work in its own git worktree, and two agents editing the same method get flagged.

See what a change reaches beyond the code

A migration or an entity is in nobody's call chain, yet changing it can break every endpoint that reads or writes that table. When an agent edits one, Axle reads what the change does to which tables and lists those endpoints: "migration 0007_orders_key alters orders (adds key, drops legacy_ref) · 4 endpoints read or write it". It is a static reading, so raw SQL, views and other services are not seen, and Axle says what it did not check.

The harness is part of the code

Instructions, rules, skills, hooks, MCP servers and permissions shape what an agent does as much as the code does, so Axle maps them too, with what each costs in tokens and a simulator that tells you whether a command would be allowed and which rule decides.

Axle is open source (MIT), with installers for Windows, macOS and Linux (the macOS and Linux ones are new): github.com/bothuany/axle

If you try it on a real codebase, I would most like to hear where the flow is wrong.

Top comments (0)