BlogUsage and limits

How do I check my Claude Code usage limits?

Run /usage inside Claude Code. On a Pro, Max, Team or Enterprise plan, it shows your plan usage bars and a breakdown of what used them. If you want the numbers on screen all the time, configure a status line script: Claude Code passes it a rate_limits object with the percentage used and the reset time of your session window and your weekly window.

This guide covers what each built-in view shows, as documented by Anthropic in October 2026, and where each one stops.

How Claude Code usage limits work

Paid Claude plans have two kinds of usage limits: a session limit on a rolling window, and weekly limits. Anthropic's help center adds one detail that matters a lot if you work in several places: your usage on claude.ai, Claude Code and Claude Desktop all counts towards the same limit. A long chat in the browser draws from the same budget as your terminal sessions.

Anthropic does not publish fixed numbers for these limits, and plan allowances change. This article does not quote any. Check them on your own account with the tools below.

Method 1: the /usage command

Type /usage in any Claude Code session. /cost and /stats are aliases (/stats opens on the Stats tab). Claude Code runs /usage right away, even while Claude is responding, so you don't have to wait for the turn to end.

What you see:

  • Session block. Token usage for the current session and a dollar estimate computed locally at list price. Anthropic notes this figure is meant for API users. On Pro or Max, usage is included in your subscription, so the cost line is not your bill.
  • Plan usage bars. Subscribers see how much of their plan limits they have used, plus activity stats.
  • Plan usage breakdown. On Pro, Max, Team or Enterprise, /usage attributes recent usage to skills, subagents, plugins and individual MCP servers, and lists recommendations, one per row. Press d or w to switch between the last day and the last week.

Two caveats from the docs:

  1. The breakdown is computed from local session history on this machine. Usage from your other devices or from claude.ai is not included, even though it counts against the same limits.
  2. If the request for your plan limits fails, usually because the usage endpoint itself is rate limited, /usage shows the last bars it loaded on this machine within the past 60 minutes, with a Showing last-known usage note. Press r to retry. A message like rate limited until 3:14am means Claude Code can't refresh the bars until then. It does not mean your work is blocked.

Method 2: /status (account, not usage)

/status opens the Settings screen on the Status tab: version, model, account and connectivity. Use it to confirm which account a session is logged in with. Anthropic's Pro and Max help article suggests /status to monitor your allocation, but the current command reference puts the plan usage bars in /usage, so start there.

Method 3: the status line

The status line is a bar at the bottom of Claude Code that runs a shell script you choose. Claude Code sends the script a JSON object on stdin, and the script prints whatever you want shown.

For claude.ai subscribers, that JSON includes:

Field Meaning
rate_limits.five_hour.used_percentage Share of the session window used, 0 to 100
rate_limits.five_hour.resets_at When the session window resets, Unix epoch seconds
rate_limits.seven_day.used_percentage Share of the weekly window used, 0 to 100
rate_limits.seven_day.resets_at When the weekly window resets, Unix epoch seconds

The quickest setup is to describe what you want:

/statusline show model name, session and weekly rate limit usage

Claude Code writes a script in ~/.claude/ and updates your settings. To do it by hand, point statusLine at a script in ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

A minimal script, adapted from Anthropic's example (it needs jq):

#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
FIVE_H=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty')
WEEK=$(echo "$input" | jq -r '.rate_limits.seven_day.used_percentage // empty')

LIMITS=""
[ -n "$FIVE_H" ] && LIMITS="session: $(printf '%.0f' "$FIVE_H")%"
[ -n "$WEEK" ] && LIMITS="${LIMITS:+$LIMITS }week: $(printf '%.0f' "$WEEK")%"
[ -n "$LIMITS" ] && echo "[$MODEL] $LIMITS" || echo "[$MODEL]"

The // empty guard matters. The rate_limits object is only present for Pro and Max subscribers (or behind a Claude apps gateway with spend limits), and only after the first API response of the session. The status line runs locally and does not consume tokens.

For a full walkthrough, including reset times and a macOS menu bar version, see how to show Claude Code usage in the menu bar or status line.

When you hit a limit

Claude Code tells you which limit you hit: You've hit your session limit or You've hit your weekly limit, with the time the window resets. The help center also says you get warning messages as you approach a limit. From there:

  • /rate-limit-options lists ways to keep working: wait and continue automatically when the limit resets, add usage credits, or upgrade.
  • /usage-credits opens your usage-credits settings (on Pro and Max, Settings > Usage on claude.ai).

Switching models with /model does not help with the session or weekly limit, because those windows are shared across all models.

Limits of the built-in tools

These tools are accurate, but they are per session:

  • /usage is a snapshot. You have to open it, in one terminal, to see it.
  • The status line only re-runs on events in its own session: a new assistant message, /compact, a permission mode change, and a few others. An idle session shows stale numbers unless you set refreshInterval.
  • With five sessions open in five terminals, you get five status lines that may show different moments of the same account-wide numbers.
  • The breakdown ignores other devices and claude.ai.

None of this is a problem with one session. It gets awkward when you run several agents at once, because that is exactly when you burn through a window fastest. Why the weekly limit runs out fast covers the reasons.

With Kanbell

Kanbell is a macOS app that puts your projects in windows, with real terminals in panes and tabs. For Claude Code sessions, it shows your subscription usage, session and week, in the app, so you see it in one place whichever project window you are in. It does not need a status line script.

For Codex CLI, Kanbell reads usage locally. For Gemini CLI, quota shows as "not available", because Gemini does not publish it. Kanbell only reads these numbers. It does not change how fast you consume your plan.

FAQ

Does Claude Code share its usage limits with claude.ai?

Yes. Anthropic's help center says usage on claude.ai, Claude Code and Claude Desktop counts towards the same usage limit.

Why doesn't my status line show rate limits?

The rate_limits object is only present for claude.ai Pro and Max subscribers (or behind a Claude apps gateway with spend limits), and only after the first API response of the session.

Is the session cost in /usage what I pay?

Not on a subscription. The Session block estimates API token cost at list price. Subscribers are billed by plan, so they should read the plan usage bars instead.

How do I know when my weekly limit resets?

The status line JSON gives resets_at as Unix epoch seconds for each window, and the 'You've hit your weekly limit' message shows when the window resets.