Running out of Claude usage, explained by monkey
(plus the fixes)
You ask one tiny question and your limit still drops. Here's why Claude Code burns through Pro and Max usage, how to see what's eating it, and the commands and settings that make it last.
Claude Code sends your whole conversation with every request, and every time Claude uses a tool it sends another request with the results. Prompt caching makes re-reading that history cheaper, but it still counts. In the docs' words, "a one-line question in a session that has been open all day still draws usage for the whole conversation". So the two things that drain your limit are how big the conversation is and how many requests it takes. Subagents add their own requests on top.
See what's eating your limit: /usage
/usage shows your plan bars, when they reset, and a breakdown of what used them. /cost and /stats open the same screen (/stats starts on the Stats tab).
- Attribution: your recent usage split by skill, subagent, plugin and each MCP server, as a percentage. This is where a chatty MCP server or a heavy skill shows up.
- Behaviour flags: things like long context or cache misses, flagged when one is 10% or more of recent usage, each with a tip.
- Loops: a row for each of the heaviest /loop and scheduled tasks, with runs, total tokens and tokens per run (v2.1.243 or later).
- Press d or w to switch between the last 24 hours and the last 7 days. Press r to retry if it says Showing last-known usage.
- Since v2.1.299 it also warns about max effort, workflows, always-on context and large tool results.
/clear vs /compact
- /clear starts an empty conversation and costs nothing. /reset and /new do the same. Use it when you switch to unrelated work: stale context costs you on every message after it.
- /clear my-auth-work labels the old conversation so you can find it in /resume. Or /rename it first, then /clear, and /resume to come back.
- /compact [focus] summarises the conversation so you can keep going on the same task. To do that it reads the whole conversation in one request.
The catch is the cache. On a subscription the main conversation's cache lasts an hour. While it's warm, a /compact reads your history from the cache and costs a fraction of what the context size suggests. After a long break the cache has expired, so /compact reprocesses everything at full price. That's when it costs the most. Coming back to an old session? /clear is free.
Choose when it compacts by itself: /autocompact
On the 1M-token models, Claude Code compacts on its own at about 967K by default. A smaller window keeps every request smaller:
/autocompact 500k # compact at 500K for this model (saved per model since v2.1.288)
/autocompact auto # back to the default
It takes 100K to 1M: 200000, 500k, 1M, or a bare 200 (meaning thousands). For every model at once, put it in ~/.claude/settings.json:
{ "autoCompactWindow": 200000 }
claude --autocompact 300k # one launch
CLAUDE_CODE_AUTO_COMPACT_WINDOW=300000 claude # scripts: plain number only, beats everything else
Subagents: the hidden cost
Every subagent, and every agent a workflow spawns, sends its own requests on top of your main conversation. And they don't get the hour-long cache: on a subscription the main conversation gets one hour, while subagents, workflows, forks and compaction get five minutes. A subagent that pauses for six minutes pays full price for its context again.
Put them on a cheaper model. Add this to your shell profile (~/.zshrc or ~/.bashrc):
export CLAUDE_CODE_SUBAGENT_MODEL=sonnet
export CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 # v2.1.257+: every subagent, teammate and workflow agent
- Without _FORCE it's only a default: a subagent's own model: line, or a model Claude picks when it spawns one, still wins (changed in v2.1.251).
- Without _FORCE it also doesn't change the built-in Explore and Plan subagents.
- For one subagent, put model: haiku in its file.
Hit a limit? Read which one
- "You've hit your Opus limit" (or Sonnet limit): those limits only cover their own model family. Run /model sonnet (or another family) and keep working.
- Session limit or weekly limit: shared across all models, so switching does nothing. Both count at the same time, and one heavy burst, like a big workflow fan-out, can use up the weekly allowance before the session window resets.
- Since v2.1.234, when a limit stops Claude mid-task, the session waits and picks the task up after the reset (Continuing automatically at 3:45pm · esc to cancel). It does this at most twice in a row, so keep the session open.
Turn the effort down
/effort low # low, medium, high, xhigh, max or auto
- Lower is faster and uses less. In the slider, Enter saves the level as your default for that model, and s applies it to this session only (v2.1.257+). max is always session-only.
- Opus 5.5, Sonnet 5.5 and Haiku 5.5 default to medium. Most other models default to high, and Opus 4.7 to xhigh.
- You can't turn thinking off on Opus 5.5, Sonnet 5.5, Haiku 5.5 or the Fable models, so effort is the knob.
Side questions: /btw
/btw what was the name of that config file again?
The question and the answer never enter the conversation history, so your chat doesn't grow. While the cache is warm it costs little more than the answer itself. It has no tools: it only answers from what's already in the conversation.
What uses your limit while you're not typing
- A /loop or scheduled task, which sends your full context every time it fires. Check the Loops rows in /usage.
- Messages from your other sessions.
- Goal check-ins (at most three per goal between your prompts).
- Every subagent and agent teammate. Agent teams use about 7x more tokens than a normal session when teammates run in plan mode.
- Background summarising for --resume, typically under $0.04 per session.
Copy-paste setup
~/.claude/settings.json:
{ "autoCompactWindow": 200000 }
~/.zshrc (or ~/.bashrc):
export CLAUDE_CODE_SUBAGENT_MODEL=sonnet
export CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1
Then the habits:
- /clear between unrelated tasks. /rename first if you want to come back.
- /compact mid-session while the cache is warm, never as the first thing after a long break.
- /btw for quick side questions.
- /usage once a day, and look at the Attribution and Loops rows.
- /effort low for easy jobs.
Gotchas
- Once you're on usage credits, the main cache drops from an hour to five minutes, unless you set the lifetime yourself.
- The environment-variable version of the auto-compact window takes only a plain number: 300000, not 300k.
- CLAUDE_CODE_SUBAGENT_MODEL alone doesn't touch the built-in Explore and Plan subagents. You need _FORCE.
- /usage only knows this machine. Your claude.ai chats and other computers use the same limits but aren't in its breakdown.
- /compact on a big, cold context is itself a big request. On a warm one it's cheap. Timing is everything.
Monkey believe in you. Now go build.
follow @nocodemonkey
More guides
Shortcuts most people missplus a cheat sheetMonkey only ever pressed Enter and Esc. Claude Code has way more keys hiding in it
Pluginsplus a plugin setupMonkey turn on one plugin. Now it eat tokens in every session
Permission rulesplus a safe rules setupMonkey wrote "never push" in CLAUDE.md. Claude Code doesn't enforce that. It enforces permission rules