You hit the Claude Code usage limit sooner than your prompts seem to justify. The reason is not the prompts. It is how an agent works: on every single call, Claude Code sends the whole conversation again, and that re-sent context is most of what your plan pays for.
How the limits work
Anthropic publishes two limits for Claude subscriptions. A session limit resets every five hours. Max plans also have a weekly limit across all models. Max 5x and Max 20x give five and twenty times the Pro usage per session. Anthropic does not publish how many tokens of each kind fit in a limit, or how Opus and Sonnet tokens are weighted against each other.
What one Claude Code call sends
- The system prompt and every tool definition, including MCP tools that are not deferred.
- Your CLAUDE.md files, skills list and other reminders.
- The full chat so far: your messages, Claude's replies and every tool result (file reads, command output, MCP responses).
The prompt cache makes a repeated prefix cheap: a cache read costs a tenth of the normal input price (less on Opus 5.5 and Fable 5.1). But it is not free, and writing to the cache costs more than normal input: 1.25x for the 5-minute cache and 2x for the 1-hour cache.
A real week, by token type
We priced one developer's real Claude Code week (Sep 17 to 23, 2026) at API list prices, from the Claude Code transcripts in~/.claude/projects. 3,864 calls, 27 sessions, 983 million tokens, $692.60 in total.
| Token type | List-price cost | Share | What it is |
|---|---|---|---|
| Cache reads | $432.80 | 62.5% | Claude re-reading the chat so far |
| Cache writes | $207.86 | 30% | The chat saved again after it changed |
| Replies | $37.88 | 5.5% | What Claude actually wrote |
| Thinking | $14.00 | 2% | Reasoning tokens |
92.5% of the cost was context: read again or saved again. Only 7.5% was Claude writing and thinking. The cache hit rate was 97.6%, so the cache worked. The context was simply large: 254K tokens per call on average, read 3,864 times.
What actually moves your limit
- Start new tasks with
/clear. A fresh chat stops paying for the last task's context on every call. - Compact earlier. With a 1M-token window, a chat can grow very large before auto-compact runs. Set
CLAUDE_CODE_AUTO_COMPACT_WINDOWto a smaller window. - Cap tool output. Large Bash and MCP results stay in the chat and are re-read on every later call.
- Do not switch models in the middle of a chat. The cache belongs to one model. A switch writes the whole context to cache again.
- Watch subagents. In the week above they were 27% of spend. They can run on a cheaper model.
The settings for each of these are in How to reduce Claude Code token usage.