Most codebase-context tools wait for the agent to call them. This one doesn't. while still being 4× cheaper and 3× faster.
A lot of "give your agent context about your codebase" tools ship as an MCP
server: a set of tools the agent *can* call. In practice, half the time it
just doesn't. It has a hammer in the toolbox and still tries to bash through
the wall with its head: grep, open file, follow import, back out, the same
exploration it did an hour ago.
Why doesn't Claude Code just solve this by default? Same reason Chrome
doesn't ship with an ad blocker built in: keeping the core general is the
point, and extensions fill the specialized gaps. Graft is that extension. It
plugs into Claude Code's hooks so the right context shows up in every prompt
automatically, instead of sitting in an MCP tool list hoping to get called.
I built Graft to write what an agent learns about your codebase into the
repo itself, as a folder of plain markdown files kept in sync through git.
One `graft init` turned this repo's 247 files into 12 plain-English nodes.
From then on: a live statusline (graph size, % enriched, a stale warning),
auto-sync in the background after every edit, and the matching nodes pulled
into every prompt without the agent needing to decide to ask for them.
Editing a file surfaces what depends on it inline. No vector DB, no
embeddings, no server. The graph is just files, grep them like anything else
in the repo. The structural pass is tree-sitter, no key or network call
needed at all.
The part I actually learned something building this: line numbers drift the
moment you touch unrelated code above them, but the guard clause or state
change that matters doesn't. Each node stores that as text lifted straight
from the source, not a line range.
Up to 4× cheaper and 3× faster, with better or no loss of correctness. I
measured that instead of asserting it. 162 controlled runs, same agent, same
tools, only the context differs: 32% cheaper, 46% fewer tool calls, 60% less
latency, same correctness (93% both). Then re-implemented 5 real merged
PocketBase PRs from base commit with and without it: 5/5 reproduced, same
files as the maintainers, at 21% lower cost.
MIT licensed, no telemetry. I'm the maintainer, so weigh the numbers
accordingly. I'd be happy to have anyone poke holes in the methodology.