100% local ยท graph db + contract standard

wiregraph

Two engines, one graph. A local call graph lets Claude ask instead of re-read โ€” ~half the tokens. A contract standard it enforces across your repos carries that reach to the seams between services โ€” where other code-graph tools stop at one repo's edge.

~ยฝ
the bytes a full read pulls
1ร—
index, then forget
0
bytes uploaded
GRAPH.DB COMPARTMENT A COMPARTMENT B no code-level call โœ• contract /api/register emit() handle()
call ยท within a compartment contract ยท across compartments

The problem โ†’ the fix

Stop paying to re-read the whole tree.

A code task shouldn't cost a full grep-and-read of your repo. wiregraph turns "search everything" into "ask the graph."

๐Ÿข Without wiregraph
  1. 01 grep the whole tree
  2. 02 read whole files, top to bottom
  3. 03 change it โ€” full token cost
tokens readbaseline
100%
โšก With wiregraph
  1. 01 query the graph
  2. 02 read just what matters
  3. 03 change it from the full picture โ€” ~half the cost
tokens readabout half less
~47%

The differentiator

Works with your contract architecture.

Within a compartment, calls resolve by name. Across compartments there's usually no call at all โ€” services agree on a shared shape instead. wiregraph treats that shape as a standard: it detects the seam a call graph can't see, so Claude traces a cross-compartment change from the graph instead of re-reading both services โ€” the same token savings, now across the boundary.

  • โ†’
    A route, a queue topic, an env var, or an imported package โ€” when a token appears in 2+ repos, wiregraph mints a Contract node.
  • โ†’
    Producer and consumer both link to it with REFERENCES edges, so Claude can trace producer โ†’ contract โ†’ consumer across the boundary.
  • โ†’
    Rename one side and the seam is right there โ€” no grep, no guessing which of your services just broke.
  • โ†’
    Repos indexed separately? /wiregraph-link joins two graphs so a shared wire lights up across the boundary โ€” symmetric, one db per graph, no shared code required.
COMPARTMENT A ยท producer COMPARTMENT B ยท consumer emit_register() handleRegister() no code-level call โœ• contract /api/register

What Claude can do

Seven tools. One graph.

You don't call these โ€” Claude does, automatically, on every task.

๐Ÿ”
find_symbol
answers where something is defined.
๐Ÿ“„
get_source
answers one symbol's body โ€” not the whole file.
โฌ†๏ธ
trace_callers
answers who calls it โ€” the whole tree, one query.
โฌ‡๏ธ
trace_callees
answers what it calls โ€” the whole tree, one query.
๐Ÿ”—
trace_contract
answers how code connects across compartments, via a contract.
๐Ÿงญ
path_between
answers the wiring between any two symbols.
๐Ÿ—„๏ธ
query_sql
answers anything else โ€” read-only SQL over the graph.
โœจ
graph_status ยท update_graph
keep it fresh โ€” automatically.

// set it up once and forget it โ€” the graph stays fresh as you edit.

// joining two separately-indexed repos? /wiregraph-link makes trace_contract cross the seam between them โ€” see the guide.

Install

Three lines. No build step.

Public repo, install straight from Claude Code. Native bits are prebuilt and vendored for Linux / macOS / Windows.

claude-code
/plugin marketplace add kaleLetendre/wiregraph
/plugin install wiregraph@wiregraph
/reload-plugins
/wiregraph-init
# โ†’ indexes every repo under this workspace, then keeps itself fresh

Run /wiregraph-init once per workspace. It finds every repo under the root, indexes them into one graph, and re-indexes as you edit โ€” git-worktree-safe, so adding a worktree, rebasing, or amending never forces a rebuild or leaves the graph silently stale. Then just put Claude to work.