Two local code knowledge graphs for AI coding agents. Same core idea โ parse with tree-sitter, skip the embeddings, let the agent query a graph instead of grepping. Different enough underneath that the choice actually matters. This page includes the places where Graphify is the better tool.
TokenSave v7.12.1 ยท Graphify (graphify.com) as documented Sep 2026
Both tools reject the vector-database approach. Both parse on-device with tree-sitter, produce a typed
graph of files and symbols, cite real file:line locations, re-index only changed files, hook
into git to stay fresh, speak MCP, and are free and open source. If you are choosing between them, none of
that is a differentiator โ it is the shared premise.
| Dimension | TokenSave | Graphify |
|---|---|---|
| Implementation | Rust, single static binary | Python (uv tool install graphifyy) |
| Runtime deps | None โ OS libraries only | Python interpreter + dependency tree |
| License | MIT | Apache 2.0 |
| MCP tools | 87 (86 without ast-grep) |
10 |
| Languages | 60 across 3 build tiers | 36 |
| Graph scope | Code (+ Markdown structure) | Code, docs, SQL schemas, configs, PDFs |
| LLM at index time | Never โ graph is a pure function of source | Yes, for INFERRED edges and community naming |
| Edge semantics | Deterministic; ambiguity reported by a dedicated tool | Provenance-tagged inline: EXTRACTED / INFERRED / AMBIGUOUS |
| Retrieval control | Node, file and line caps | First-class token budget on BFS/DFS traversal |
| Analytics | Health score, Gini, DSM, hotspots, coupling, dead code, test-risk | Communities, god_nodes, shortest_path, graph_stats |
| Write path | Atomic edit primitives, re-index in place | Read-only |
| Branches | Per-branch graphs, cross-branch diff and search | Not offered |
| PR tooling | pr_context, diff_context |
PR triage with CI status and blast radius |
| Business model | None โ fully local, unmetered | OSS engine + hosted Pro / Teams / Enterprise |
otool -L on the shipped macOS binary links nothing outside the operating system:
$ otool -L $(which tokensave) /System/Library/Frameworks/IOKit.framework/โฆ/IOKit /System/Library/Frameworks/Security.framework/โฆ/Security /System/Library/Frameworks/CoreFoundation.framework/โฆ/CoreFoundation /usr/lib/libiconv.2.dylib /usr/lib/libSystem.B.dylib # that is the whole list
That matters for one specific reason: it makes the tool cheap enough to invoke synchronously and
unconditionally. TokenSave installs a PreToolUse hook that fires on
every Agent, Grep and Bash call the agent makes, redirecting symbol-shaped searches into the graph
before they ever hit the filesystem. That design is only tolerable because the binary boots and answers in a
quarter of a second with no interpreter to warm up. Pay a Python cold start on every single tool call and the
latency tax compounds until the user uninstalls the tool.
The same property shows up in failure handling. TokenSave parses each file in a short-lived worker
subprocess: a tree-sitter grammar that segfaults or calls abort() kills one worker, the pool
respawns it, and the sync continues. A tool that sits in the critical path has to be a tool that cannot take
the session down with it.
So the honest claim is not "Rust is faster." It is that TokenSave is fast and self-contained enough to be a reflex, while Graphify is architecturally confined to being a tool the agent calls deliberately, when it remembers to. Those are different product categories.
A comparison page that finds no faults in its own product is marketing. These are real, and two of them are things TokenSave should arguably copy.
query_graph takes a literal token budget and the traversal honours it. TokenSave exposes
max_nodes, max_code_lines and max_per_file โ useful, but proxies for
the thing you actually care about. For a tool whose entire pitch is token economy, that is a fair hit.
list_prs and triage_prs combine CI status, review state and graph blast radius into
a merge-risk ranking. TokenSave gives you the graph primitives to build that; Graphify ships it.
tokensave bench ships a fixed query set and reports retrieval savings against a full-file
baseline; an append-only ledger records every MCP call so tokensave gain can price the
difference. The claim is checkable on your own repo rather than asserted.
This is the structural distinction the feature table cannot capture: TokenSave has no business model to protect.
Graphify's open-source engine is the on-ramp to a per-seat hosted product. That is a legitimate way to fund a tool, and it is how most infrastructure gets maintained. But it sets a permanent gravitational pull: the capabilities that justify a seat price โ shared graphs, hosted rebuilds, team dashboards, SSO, PR review โ accrue to the cloud side, and the local engine's job becomes to be good enough to adopt and not so good that nobody upgrades. Nobody has to act in bad faith for that to happen. It is simply where the incentive points.
TokenSave is not looking for a way to sustain itself, so no feature is held back to create a paid tier โ all 87 tools are the product. There is no account, no telemetry, and no monthly call quota. That last one is not abstract: metered plans cap MCP calls per month, and a tool that sits in the agent's critical path making thousands of calls a day is fundamentally incompatible with a meter.
your context genuinely lives outside the code โ specs, schemas, PDFs โ and linking those to implementations is the problem you are solving. Or you want graph-aware PR triage out of the box, you prefer a deliberately small tool surface, or you want a hosted product with a support contract behind it.
you want the graph in the agent's critical path rather than beside it: no interpreter, no metered calls, a deterministic index, an agent that can edit as well as read, and per-branch graphs that survive parallel worktrees. And if you would rather verify the savings than be told about them.
Every TokenSave figure on this page was verified against the source at
origin/master, not taken from its own README:
test_tool_definitions_complete in src/mcp/tools/handlers/mod.rs; 86 when the optional ast-grep binary is absent from PATH.[features] tiers in Cargo.toml: 11 lite, 9 medium, 40 full. The README's "50+" is conservative.real time for a complete tokensave status invocation, best of repeated runs on an Apple Silicon Mac. Your hardware and repo size will differ.otool -L on the released binary; system frameworks only.src/mcp/ for token_budget and max_tokens; no matches. The gap above is real.