Guide8 min read

Claude Usage Limits: Claude Code, Pro, Max, and Extra Usage

How Claude usage limits really work across Claude Code, Pro, and Max — the 5-hour and weekly reset windows, extra usage credits, and how to use less.

Fast Inference

Quick answer: where to see usage, how it resets, what to do at a limit

People use "Claude usage" loosely — the web, desktop, and mobile apps; Claude Code; the Pro or Max subscription; "extra usage" credits; the pay-as-you-go API. Most expect a message counter that resets to zero. It doesn't, which drives almost every "why am I blocked?" question. The short version:

Where to see it. In Claude Code, run /usage for session bars, plan bars, and an attribution breakdown, and /status for a snapshot. On the web, open Settings > Usage for session and weekly bars plus reset timers.

How it resets. Every plan resets on a rolling five-hour session window; paid plans add weekly limits on top; the two reset independently, and the weekly limit is tracked separately for Opus versus all other models.

What to do at a limit.

  1. Wait for the next reset.
  2. Upgrade (Pro → Max 5x → Max 20x).
  3. Turn on usage credits to keep working at standard API rates.
  4. Optionally, if capacity-constrained, route the coding harness to a separately billed model.
bash
# Read your Claude usage from inside Claude Code.
# All figures are local to this machine and approximate (list rates).

/usage          # Session + plan bars, per-tool attribution; press d/w for 24h vs 7d
/status         # Quick session snapshot
/context        # Visualize what is filling the context window
/insights       # Write an HTML usage-pattern report to ~/.claude/usage-data/report.html
/usage-credits  # Open Settings > Usage on claude.ai (balance, spend, spend limit)

Where Claude usage lives — and what shares one meter

On a paid plan, Claude's surfaces don't each get their own budget. The diagram maps what shares a pool versus what bills separately.

Rendering diagram…

Figure 1: Claude usage surface map — what shares a meter

Claude Code surfaces (/usage, /status, /context)

/usage (aliases /cost, /stats) shows a session block, plan bars, and per-tool attribution; press d/w to toggle 24h versus 7d. /status snapshots the session, /context visualizes the window, and /insights writes an HTML report. These figures are local and approximate. They're computed on this machine at list rates, so other devices and claude.ai activity aren't counted.

One shared pool across web, desktop, mobile, and Claude Code

This clears up most of the confusion about claude code usage and claude code limits: activity everywhere counts against the same plan limits. Web, desktop, mobile, and Claude Code (including the VS Code, Cursor, and JetBrains extensions) share one pool, and Claude Code is included in every paid plan. Switching models with /model gives no fresh window; it only bypasses the "You've hit your Opus limit" message.

Subscription pool vs API-key billing

If an ANTHROPIC_API_KEY variable is set, Claude Code bills at API rates instead of your subscription. That's an expensive surprise, so check it first if your bill looks wrong. The Console hides usage from subscription users, which is why third-party trackers like ccusage (history) and Claude-Code-Usage-Monitor (live) fill the gap.


How Claude usage limits reset: the 5-hour session and weekly windows

Every plan resets on a rolling five-hour session window that starts with your first message. Paid plans add weekly limits on top, and the two reset independently, so you can exhaust a weekly budget while the five-hour window still shows capacity. That is why claude usage limits and claude code usage limits confuse people: two clocks, one pool.

Why the weekly Opus limit resets separately

Weekly limits are tracked separately for "Opus only" and "all other models," so Settings > Usage shows two weekly bars. Switching off Opus preserves your "all other models" budget but creates no new capacity. Anthropic added weekly limits in August 2025 atop the existing five-hour windows, which is why older advice still assumes a single reset.


Claude Pro vs Max usage and pricing (verified 2026-08-22)

Claude pro usage limits versus claude max usage comes down to price and relative usage per five-hour session. Here is the current, source-linked comparison.

PlanPrice /mo (annual / monthly)Usage vs ProClaude CodeNotes
Free$0LimitedNo200k context
Pro$17 / $201x (baseline)Yes200k context
Max 5x$100+5xYesBilled monthly
Max 20x$100+20xYesBilled monthly
Team seat$20 / $25SharedYesStandard seat
Enterprise seat$20 + APIUsage-basedYes500k context

Prices per month; Pro annual billed $200 up front; Max billed monthly at 5x or 20x Pro usage; Team/Enterprise usage bills at API rates. Last verified 2026-08-22 — claude.com/pricing.

As of claude.com/pricing, Pro is $17/mo on annual billing ($200 up front) or $20/mo monthly, and Max starts at $100/mo for 5x or 20x more usage than Pro per five-hour session. Every paid tier includes Claude Code, which shares the plan pool. For claude pro limits, the context window is 200k tokens on Free/Pro/Max and 500k on the Enterprise default model.


What "extra usage" means: usage credits at standard API rates

Claude extra usage means usage credits: on a paid plan, when you hit a limit you can turn them on to keep working at standard API rates instead of waiting for a reset or upgrading. It's overflow at API pricing, not a bigger native quota.

Manage it on claude.ai under Settings > Usage, or in Claude Code with /usage-credits, which opens that page (balance, spend, limit); a separate "Buy usage bundles" flow also exists. It is not a native quota increase, nor the Console/API pay-as-you-go meter that API-key billing uses.

One gotcha makes credits cost more than expected: prompt-cache lifetime is one hour on a subscription but drops to five minutes on usage credits, so a cache miss reprocesses your full context far more often (restore the hour with ENABLE_PROMPT_CACHING_1H=1).


Why your Claude usage varies — model, context, effort, cache, retries

Anthropic publishes no fixed message count because consumption is dynamic. The same plan goes much further on some days than others.

FactorEffect on usageMitigation
Model choiceOpus costs mostDefault to Sonnet
Effort / thinkingMore reasoning tokensLower with /effort
Context lengthFull resend per turn/clear, /compact
Cache missesReprocess full contextKeep session warm
Tools / attachmentsExtra tokens per callTrim inputs, retries
Agent-team sessions~7x tokensAvoid agent teams

Sources: C-002, C-017, C-018, C-019, C-020.

Context length matters because Claude Code resends the full conversation on every request, so long sessions keep drawing usage even for one-line prompts. Cache misses past the cache lifetime reprocess the entire context. And parallel work is the big one: agent teams use roughly 7x the tokens of a standard session, since each teammate keeps its own window.

Chasing latency rather than consumption? See Diagnose why Claude Code is slow. When the fix is a lighter model, choose the best Claude model for coding covers the tradeoffs.


A usage-saving workflow for Claude Code

To reduce token usage in Claude Code without changing plans, in roughly this order:

  • /clear between unrelated tasks to stop resending stale context.
  • /compact with focus instructions to shrink a long session.
  • Keep CLAUDE.md lean; move workflow detail into on-demand skills.
  • Match the model to the job — Sonnet for most coding, Opus for hard reasoning.
  • Lower effort with /effort on simple tasks.
  • Reduce MCP overhead: run /context, disable unused servers.
  • Delegate verbose output to subagents; use plan mode to course-correct early.
bash
# Core token-saving moves in Claude Code (no plan change required).

/clear          # Drop stale context between unrelated tasks
/compact        # Shrink a long session; add focus instructions to keep what matters
/context        # Inspect context usage; disable unused MCP servers
/effort         # Lower effort on simple tasks to cut reasoning tokens

Capacity-constrained? Keep the harness, change the route

Sometimes you run out of pool anyway. Alongside the official options (wait, upgrade, or turn on usage credits), one more is to change what your harness calls.

Fast keeps the Claude Code harness and routes its native Anthropic-compatible /v1/messages calls to a selected, separately billed catalog model, so work continues on an independent per-token balance rather than the subscription pool. Enable it with fast claude on (default glm-5.2), pick another with fast claude on --model <catalog-id>, check with fast claude status, and revert byte-for-byte with fast claude off. See the Fast Claude Code route for how a separately billed pool is charged.

This is not a native quota increase, and it does not accelerate an unchanged proprietary model. It swaps which model the harness calls and which meter it bills. New accounts start with $26 in free credit. Treat it as a test: install, sign in, run one request, then verify tokens and spend before committing real work. To compare, explore Claude Code alternatives; for the walkthrough, run Claude Code on Fast Inference.

bash
# Install and sign in (new accounts start with $26 in free credit at /register).
npm install -g @inference/fast
fast login

# Route Claude Code through Fast: writes the gateway + model map to
# ~/.claude/settings.json and backs up the original under ~/.inference-fast/backups.
# All six model slots point at one model, defaulting to glm-5.2. Restart Claude Code.
fast claude on

# Pick a different callable catalog model instead of the default.
fast claude on --model <catalog-id>

# Confirm the route is active.
fast claude status

# Revert: restores the original settings.json snapshot byte-for-byte and removes
# the backup. Restart Claude Code after restoring.
fast claude off

Conclusion

On a paid plan, "Claude usage" is not one meter: every first-party surface draws from one shared pool governed by two independent reset windows, with no fixed message count.

Read your real numbers with /usage and Settings > Usage, then apply the workflow above. For more capacity, choose deliberately: wait, upgrade, turn on usage credits, or route the harness to a separately billed model.


npm install openaibaseURL: "https://api.inference.net/v1"ship it