Claude Code usage limits
If Claude Code hits its usage limit far sooner than you expect, the problem is usually not the size of your task - it is how many tokens each command wastes on the way into the context window.
Why you hit the limit so fast
Every command an agent runs returns its full output, and that output counts
against your window. A single git status in a busy repository can be 176
tokens. npm install can be 200. Run a few dozen of those in a session, add a
couple of MCP servers returning raw tool responses, and the window fills with
noise long before the model does anything useful. You pay for every one of those
tokens, and you hit the ceiling faster.
Where the tokens go
The biggest offenders are the commands agents run all day:
git status,git diff, andgit log- package managers:
npm install,cargo build,pip install - infrastructure:
kubectl get,docker ps,terraform plan - test runners and long build logs
Most of that output is padding - progress bars, unchanged files, repeated headers - that the model does not need in order to act.
Compact the output before it reaches the context
banish sits between the command and the agent. It runs the real command, pipes
the output through a matching filter, and returns compact text. A git status
that was 176 tokens comes back as 12. The signal stays; the noise is gone.
Because it compacts rather than truncates, you never lose the part you needed. If a filter fails, banish returns the raw output.
Measured savings
Across a fixed set of everyday commands, compaction runs from about 90 to 98 percent:
| Command | Raw | Compacted | Saved |
|---|---|---|---|
| git status (clean) | 40 | 3 | 92 percent |
| git diff --stat | 127 | 2 | 98 percent |
| npm install | 200 | 5 | 98 percent |
| cargo build (ok) | 150 | 4 | 97 percent |
Token counts vary with repository state, so treat these as representative. See the methodology for how they are measured and how to reproduce them, or set up an agent to start cutting your own token burn.