Tokens, context and usage limits
TL;DR
Every request Claude Code makes sends the whole conversation again, plus everything your setup loads. Your subscription limits how much of that you can use every five hours and every week. Keep conversations short and your setup small.
How it works
What every request sends
The model reads and writes text in tokens: pieces of words, roughly four characters each. The context window is measured in tokens, and so is your subscription.
The model doesn’t remember anything between requests. Every time Claude Code sends it something, your message or the output of a command it ran, it sends the whole context again:
- Claude Code’s own instructions
- your
CLAUDE.md - the description of every skill and the name of every MCP tool
- the whole conversation so far: messages, files it read, command output
One task can take dozens of requests, because every command Claude runs is followed by another request with its output. Most of the repeated part comes from a cache and counts for less, but it still counts.
Usage limits
A subscription limits your usage in two windows:
- a session limit, which resets every five hours
- a weekly limit, which resets once a week
Both are shared with the claude.ai chat and the desktop app. The model and the effort level matter too: a bigger model or a higher effort uses up the limits faster. Getting started says which one to pick for which task.
Two commands show where you are. /context shows what fills the current conversation. /usage shows how much of each limit you’ve used, and which skills, subagents and MCP servers it went to: look there when you run out early.
My take
- Keep conversations short. A long conversation costs twice: Claude pays less attention to what matters, and every request gets more expensive. Start a new one for every task, and from a Markdown file when a task outgrows one (see keeping Claude Code on track).
- Keep what’s loaded in every conversation small. Your
CLAUDE.md, skills and MCP servers are sent with every request, whether the task needs them or not. More on that in CLAUDE.md, skills and MCP servers.
Gotchas
- A conversation left open all day is expensive. A one-line question at the end of it sends the whole day’s conversation along. Start a new one instead.
- The first message after a break costs more. The cache expires after about an hour, so the whole conversation is processed again at the full rate.
/compactisn’t free. It reads the whole conversation to summarize it. A new conversation costs nothing.
Example
Say your setup takes 20k tokens, and a task grows the conversation to 80k over 30 requests. Each request sends everything so far, about 50k on average. That’s 1.5 million tokens read for one task, not counting anything Claude writes. A setup of 40k instead of 20k adds another 600k, on every task.