If Claude just cut you off, the reset time is in the message. Claude Code prints it with the error:
You've hit your session limit · resets 3:45pm
You've hit your weekly limit · resets Mon 12:00am
You've hit your Opus limit · resets 3:45pm
If you have already dismissed it, run /usage — it shows both windows, how much of each you have consumed, and when each one resets. This guide explains why there are two clocks, why they reset when they do, and how to burn through them more slowly.
How Claude Limit Resets Actually Work
On a subscription plan you are running two meters at once:
| Window | How it resets | Applies to |
|---|---|---|
| Session | A rolling five-hour window | All models |
| Weekly | A weekly window | All models |
| Opus | Its own window | Opus requests only |
Two consequences follow, and they cause most of the confusion:
- The session window is rolling, not a clock time. It resets five hours after the window began, not at midnight and not at a fixed hour. There is no universal reset time to look up — yours depends on when you started using Claude.
- Both windows apply simultaneously. You can be well inside your five-hour allowance and still be blocked, because the weekly window is the one you exhausted. Waiting five hours does nothing for a weekly limit; the message tells you which one you hit.
Anthropic does not publish a fixed message count per plan, and any specific number you find is someone's estimate rather than a documented figure. Your actual consumption depends on how much context each request carries — a long session with large files costs far more per message than a short one. Read your own numbers from /usage rather than budgeting against a message count.
How to See Your Own Reset Time
Inside Claude Code — /usage. This is the authoritative view. On a Pro, Max, Team, or Enterprise plan it shows:
- Plan usage bars for your current windows and when each resets
- An attribution breakdown of what consumed your usage — skills, subagents, plugins, and individual MCP servers, each as a percentage
- Behaviour flags for anything accounting for 10% or more of recent usage, such as long context or cache misses
Press d or w to switch between the last 24 hours and the last 7 days.
Two caveats worth knowing: the figures are approximate and computed from session history on that machine, so usage from other devices or from claude.ai is not included. And if the usage endpoint is itself rate limited, /usage falls back to the last bars it loaded within the past 60 minutes with a Showing last-known usage note — press r to retry.
Other places the same information appears:
- claude.ai — sign in and open Settings, then Usage
- VS Code extension — the Account & usage dialog, with a Day/Week toggle (requires Claude Code v2.1.174 or later)
- Status line — add the
rate_limitsfields to a custom status line to keep it on screen continuously - Desktop app — the usage ring
The Four Situations, and Why They Are Different
Conflating these is why most advice on this topic does not work. Each has a different cause and a different fix.
1. Session limit — the rolling five-hour window
You've hit your session limit · resets 3:45pm
You have used your five-hour allowance. Switching models will not help — the window is shared across all of them. Your options are to wait until the printed time, or to continue on usage credits.
2. Weekly limit — the longer window
You've hit your weekly limit · resets Mon 12:00am
This is the one that catches people out mid-week. A five-hour reset does not restore your weekly allowance, so sitting and waiting for the shorter window to roll over achieves nothing here. The message names the day and time the weekly window resets.
3. Opus limit — model-specific, and the one you can work around
You've hit your Opus limit · resets 3:45pm
This one applies only to Opus requests. Unlike the session and weekly windows, you can keep working immediately:
/model
Switch to Sonnet or Haiku and carry on. Sonnet handles most coding work well; reserve Opus for complex architectural decisions and multi-step reasoning. See how to switch models in Claude Code for setting a default.
4. API rate limits (429) — a different system entirely
If you authenticate with an API key or a cloud project rather than a subscription, you are not on a usage window at all. You are on per-minute rate limits, and the failure looks like this:
API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.
The mechanics differ in a way that matters:
- There is no reset time. The API uses a token bucket, so capacity replenishes continuously up to your maximum rather than resetting at fixed intervals. Waiting a few seconds genuinely helps; waiting for "the reset" is a category error.
- Three limits apply per model: requests per minute (RPM), input tokens per minute (ITPM), and output tokens per minute (OTPM). The 429 body names which one you exceeded.
- The response tells you how long to wait. A
retry-afterheader gives the number of seconds; retrying earlier will fail.
The response also carries headers you can read to see how close you are before failing:
anthropic-ratelimit-requests-limit
anthropic-ratelimit-requests-remaining
anthropic-ratelimit-requests-reset (RFC 3339 timestamp)
anthropic-ratelimit-input-tokens-limit
anthropic-ratelimit-input-tokens-remaining
anthropic-ratelimit-input-tokens-reset
anthropic-ratelimit-output-tokens-limit
anthropic-ratelimit-output-tokens-remaining
anthropic-ratelimit-output-tokens-reset
Limits are set per organisation and rise with usage tier; you can see yours on the Rate limits page in the Claude Console. If Claude Code returns a 429, run /status first to confirm which credential is actually active — a subscription session and an API-key session fail in completely different ways, and people frequently debug the wrong one.
Rate Limit Calculator
Model API throttling budgets, per-client limits, and queue sizing to avoid 429 errors
Open the full Rate Limit Calculator tool →Not everything that looks like a limit is one. Two other messages are neither your quota nor your rate limit:
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary.
API Error: Server is temporarily limiting requests (not your usage limit)
The 529 means the API is at capacity across all users. Retry in a few minutes, or run /model to switch — capacity is tracked per model. See how to fix API Error 529 Overloaded for the full treatment.
Organisation and workspace limits
On Team and Enterprise plans, each member draws on a per-seat allowance that uses the same rolling five-hour and weekly windows. That allowance is shared with Claude chat and Cowork, and its size depends on the member's seat tier. Admins turn on usage credits and set spend limits at the organisation, group, or individual level.
On the API, limits are organisation-wide and shared by everyone using them. Workspace limits can cap one workload's share — useful for stopping Claude Code traffic from starving a production service — but organisation limits always apply on top, even if workspace limits sum to more.
Burn Through Your Limit More Slowly
This is where the real wins are, because usage is driven far more by context size than by message count.
Understand why a quiet session still costs a lot. Claude Code sends your full conversation with every request, and each time Claude uses tools it sends another request carrying that batch of tool results. A one-line question in a session that has been open all day still draws usage for the whole conversation.
Clear between unrelated tasks. /clear starts fresh and costs nothing. This is the single highest-impact habit:
/clear
Use /rename before clearing so you can find the session again with /resume.
Compact when you need continuity instead. /compact summarises history rather than discarding it — but note that compacting a large context is itself a large request, so /clear is cheaper when you do not need the history:
/compact Focus on the code changes and test output
Watch out for cache misses. Your first message after a long break reprocesses your full context. The cache lifetime is one hour on a subscription and drops to five minutes once you are drawing on usage credits. You can keep the one-hour lifetime while on credits:
export ENABLE_PROMPT_CACHING_1H=1
Match the model to the task. Sonnet handles most coding work at lower cost. Set a default in /config or switch mid-session with /model, and specify model: haiku for simple subagent work.
See what is filling your context. /context shows what is consuming space. Common offenders:
- MCP servers — run
/mcpand disable ones you are not using. Prefer CLI tools likeghoraws, which add no per-tool listing at all. - A bloated CLAUDE.md — it loads at session start and stays in context for unrelated work. Aim to keep it under 200 lines and move specialised instructions into skills, which load on demand.
- Verbose tool output — delegate test runs and log processing to subagents so the output stays in their context and only a summary returns.
Lower thinking effort on simple work. Thinking tokens are billed as output tokens. Use /effort, or disable thinking in /config for tasks that do not need deep reasoning.
Check what is running while you are idle. Scheduled tasks fire on their interval, cross-session messages arrive as new turns, and each active agent teammate keeps consuming tokens until it exits. Agent teams use roughly 7x the tokens of a standard session.
Write specific prompts and use plan mode. "Improve this codebase" triggers broad scanning; "add input validation to the login function in auth.ts" does not. Press Shift+Tab for plan mode on complex work so you catch a wrong direction before paying for it.
When Waiting Is Not an Option
Usage credits let you keep working past your plan's limit:
/usage-credits
On Pro and Max this opens Settings > Usage on claude.ai, where you can turn credits on and check your balance, this month's spend, and your monthly spend limit. On Team and Enterprise with billing access it opens your organisation's admin usage settings; without billing access it sends a request to your admins. The command requires subscription sign-in via /login and is not available with API-key authentication.
Upgrading your plan raises your base limits — see claude.com/pricing for current tiers.
Switching to API billing moves you off usage windows entirely and onto per-minute rate limits with per-token charges. That is the right move for automation and CI, and the wrong move if you simply want predictable monthly cost.
Claude Code Starter Kit
Drop-in CLAUDE.md templates for Next.js, Python, Go, Rust, and monorepos. Plus MCP server configs and a troubleshooting guide.
Claude Code Starter Kit — CLAUDE.md templates + MCP configs + troubleshooting
Next Steps
- Fix "Prompt is too long" if you are hitting context limits rather than usage limits
- Configure CLAUDE.md to keep your base context small
- Work with large codebases without loading everything into context
- Run several AI CLIs side by side so one tool's limit does not stop your day