I got curious where my tokens were actually going, so I wrote a quick audit tool that reads the Claude Code session logs.
Turns out the biggest sink isn't your prompts. It's the agent's own tool calls. In my case, grep alone ate 3.5M tokens across ~350 sessions. 1800+ calls, most of them dumping raw output that the agent barely used. Full file reads for one function signature. Complete test output when only failures matter.
So I built wrappers: function signatures without bodies (~90% smaller), test output with just failures, that kind of thing. 2.3M tokens saved so far.
You can audit your own sessions without installing anything:
Turns out the biggest sink isn't your prompts. It's the agent's own tool calls. In my case, grep alone ate 3.5M tokens across ~350 sessions. 1800+ calls, most of them dumping raw output that the agent barely used. Full file reads for one function signature. Complete test output when only failures matter.
So I built wrappers: function signatures without bodies (~90% smaller), test output with just failures, that kind of thing. 2.3M tokens saved so far.
You can audit your own sessions without installing anything:
https://github.com/edimuj/tokenlean