# Claude Code usage limits


# 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`, and `git 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.

```text
git status            raw: 176 tokens
git status            via banish: 12 tokens (93% saved)
```

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](/docs/reference/methodology) for how they are measured and how to
reproduce them, or [set up an agent](/docs/getting-started/set-up-an-agent) to
start cutting your own token burn.
