Confusingly similar names, genuinely different engineering. token-savior indexes with hand-written regex annotators and compacts shell output; TokenSave parses with tree-sitter and goes deep on the graph. There is a head-to-head agent benchmark, and it does not go entirely TokenSave's way.
TokenSave v7.12.1 · token-savior v1.0.0 (PyPI, Sep 2026)
Both tools were run through Mibayy/tsbench, a 96-task agent benchmark authored by
token-savior's own developer. The results:
token-savior scores higher on task success. TokenSave uses roughly a fifth of the active tokens to get within four tasks of it. Which number matters depends on what you are optimising: if the last 2% of task completion is worth 5x the token spend, token-savior is the better buy, and the benchmark says so. The caveat that applies to both directions is that the benchmark was written by one of the two vendors.
| Dimension | TokenSave | token-savior |
|---|---|---|
| Implementation | Rust + libSQL + tree-sitter | Python 3.11+, in-memory dict |
| License | MIT | MIT |
| Parsing strategy | tree-sitter ASTs, full type and scope info | Hand-written regex annotators |
| Languages | 60 | 7, plus 8 config formats |
| MCP tools | 87 | 68 full, 15 in the default optimised mode |
| Edge kinds | calls, uses, implements, extends, annotates, derives, receives | Name-occurrence level |
| Health analytics | 11 dedicated tools | 2 (dead code, complexity) |
| Shell-output compaction | Out of scope — pair with RTK | Yes, 34 compactors |
| Config / Docker linting | No | Yes |
| Branch awareness | Per-branch DBs | No |
| Index freshness | Staleness check per call + catch-up sync | No automatic refresh |
| Cold index (FastAPI) | 2.15 s | 6.21 s |
| Impact analysis (FastAPI) | 0.57 ms | 24.4 ms |
| tsbench score | 184 / 192 | 188 / 192 |
| tsbench tokens/task | 695 | 3,395 |
git, cargo, npm, docker and friends. This addresses the other half of agent token spend — Bash results — which TokenSave treats as out of scope entirely.analyze_config and analyze_docker find duplicate keys, committed secrets and orphaned settings across TOML, JSON, YAML, XML, INI, HCL, .env and Dockerfiles. TokenSave parses some of these as languages but has no linting layer over them.impl block a Rust method belongs to or which interface a TypeScript class implements, because that requires scope. TokenSave recovers implements, extends, type_of, annotates, returns and receives edges from the tree.you want shell-output compaction and config/Docker linting in the same tool as your code index, you work mainly in Python or TypeScript, and the last two percent of benchmark task success matters more to you than a five-fold difference in token spend.
you want real ASTs across 60 languages, materially faster indexing and impact analysis, branch-aware graphs, automatic freshness, and the lowest token cost per task.
Every TokenSave figure on this page was verified against the source at origin/master
(v7.12.1), 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.docs/TOKENSAVE-VS-TOKENSAVIOR.md) against the Mibayy/tsbench suite, which is authored by token-savior's developer. Both tools' figures were produced on the same hardware in that run.