ToolRecall's context tracker tells your agent which files to drop after every turn.
Your agent sends 46% fewer prompt tokens — and survives workloads
naive sessions can't finish.
N=1 seed per workload. Custom scripted workloads on ToolRecall's own codebase — not SWE-bench. Full methodology →
$ pipx install toolrecall
Zero deps, pure stdlib
$ toolrecall setup
Sets up daemon + per-agent config
ToolRecall's file cache eliminates repeat file-read tokens. Whether that saves you money depends on whether your agent already manages its own context.
| Agent | File Cache via MCP | Forward Proxy | Multiplexer | Why |
|---|---|---|---|---|
| Hermes | ✅ Saves 73–91% | ✅ | ✅ | Stateless. No built-in context management. Biggest win. |
| Cline | ✅ Saves | ✅ | ✅ | Python agent, little native context management. |
| Google ADK | ✅ Saves | ✅ | ✅ | No built-in tool caching in the framework. |
| OpenCode | ✅ Saves | ✅ | ✅ | Node.js (shim N/A), but MCP bridge helps. |
| Claude Code | ❌ Avoid — 2.4× cost | ✅ | ✅ | Native Read + compaction already manage context. File cache adds cost. |
| Cursor | ⚠️ No benefit | ✅ | ⚠️ Redundant | Manages its own tool state aggressively. |
File cache savings measured in 13h Hermes benchmark: 73-91% fewer repeat file tokens. Claude Code A/B test: 2.4× cost increase when routing file I/O through MCP (real billed API usage, n=2, adoption forced, edit-heavy — directional). Full agent compatibility →
Every LLM agent session accumulates context turn by turn — every file read, every command output stays forever. Eventually you hit the context limit and the session dies. All progress lost.
Full conversation history re-sent every turn. Hits the model's context cap and dies — typically within a few hundred turns on DeepSeek V4 Flash.
Clean file content is dropped each turn. Only instructions and responses accumulate. Survives workloads naive sessions can't finish — benchmarked at 450+ turns with 35% headroom.
ToolRecall intercepts file reads via a shared daemon. Every read is cached. Every write is tracked. Your agent can drop clean files from context.
File caching is agent-specific, but these features save time and money regardless of which agent you use.
Caches API responses by body hash. Hit = zero tokens billed, zero API calls. Works with any agent — set OPENAI_BASE_URL=http://localhost:8569/v1.
One warm daemon instead of N cold Node processes per agent session. Shared subprocesses for GitHub, Postgres, fetch — across all agents simultaneously.
Record agent sessions, replay in CI. Byte-identical tool outputs every time. Works with any agent that connects via MCP.
Measured on DeepSeek V4 Flash at the model's true 1,048,576 context limit. On read-heavy workloads, naive sessions hit the cap at ~112 turns while ToolRecall completes all 200 turns at 142K context. On analysis workloads, TR completes 400 turns vs naive's 145. The same pattern across all workloads: ToolRecall keeps sessions alive longer. Full benchmark →
No — it makes sessions more expensive. A controlled A/B test showed 2.4× cost increase and 3.1× longer wall time when routing file I/O through ToolRecall's MCP bridge (real billed API usage, n=2, adoption forced, edit-heavy, Sonnet 5 — directional). This is specific to Claude Code's append-only harness: it can't drop context, so TR's file-cache stubs add round-trips without savings. It is orthogonal to provider prefix caching, which pairs well with TR on stateless agents. Use TR for the forward proxy and MCP multiplexer only. Details →
Agents like Claude Code already have native Read tools, compaction, and prompt caching. Adding an MCP layer with patch (which lacks replace_all) duplicates tool infrastructure while turn-inflation from extra round-trips swamps any stub savings (~15K tokens saved vs ~690K extra billed — 45×).
Yes, for stateless agents. Measured in real Hermes sessions. The file cache eliminates repeat file-read tokens entirely. For agents without native context management (Hermes, Cline, ADK), this translates to real cost savings and longer-lived sessions.
Every MCP-capable agent benefits from the MCP multiplexer (shared subprocesses) and forward proxy (cached API responses). The file cache via MCP is only beneficial for stateless agents without built-in context management. See the agent compatibility table.
No dependencies. Just Python 3.11+.
$ pipx install toolrecall
$ toolrecall setup
$ toolrecall status
Works with Hermes Agent, Claude Code, Cursor, Cline, opencode — any MCP-capable agent. Per-agent notes →
Clone the repo and reproduce the benchmark in one command.
GitHub →
git clone https://github.com/whiskybeer/toolrecall && cd toolrecall