TokenSight › Claude Code usage limits

How to see your Claude Code usage limits (5-hour and weekly)

Updated October 10, 2026 · written by the maker of TokenSight, one of the apps mentioned below.

Short answer: type /usage in Claude Code. For an always-visible number, add the status line script below — it reads the same limits Claude Code already knows — or use a menu-bar app.

How the two windows work

On claude.ai Pro and Max plans, Claude Code usage counts against two rolling windows at once:

Each window has its own percentage and reset time, and you're stopped by whichever fills first. A heavy afternoon can hit the 5-hour limit while you still have most of your week left; a heavy week can run out the weekly limit even if no single afternoon was extreme. If you use Claude Code with an API key, there are no windows — you pay per token instead.

4 ways to check them

1. /usage inside Claude Code

The built-in way. Run /usage (also available as /cost) in any session to see where you stand. Fine for a quick check; easy to forget mid-task.

2. Your claude.ai usage page

The same limits are shown in your account's usage settings on claude.ai. Useful from your phone, less useful while you're working in the terminal.

3. A status line that shows them all the time

Claude Code pipes a JSON blob to your status line script on every refresh. For Pro and Max subscribers it includes rate_limits.five_hour and rate_limits.seven_day, each with used_percentage and resets_at. This script turns that into a compact, color-coded line — no extra tools beyond jq:

#!/bin/bash
# ~/.claude/limits-statusline.sh — 5-hour and weekly limits with time to reset.
input=$(cat)
pct()   { printf '%s' "$input" | jq -r "$1 // empty | round"; }
reset() { local t; t=$(printf '%s' "$input" | jq -r "$1 // empty"); [ -z "$t" ] && return
          local s=$(( t - $(date +%s) )); [ $s -le 0 ] && { echo now; return; }
          [ $s -ge 86400 ] && echo "$((s/86400))d$((s%86400/3600))h" || echo "$((s/3600))h$((s%3600/60))m"; }
color() { [ "$1" -ge 80 ] && printf '\033[31m' || { [ "$1" -ge 50 ] && printf '\033[33m' || printf '\033[32m'; }; }
model=$(printf '%s' "$input" | jq -r '.model.display_name // "Claude"')
line="$model"
for w in five_hour:5h seven_day:7d; do
  p=$(pct ".rate_limits.${w%%:*}.used_percentage")
  [ -z "$p" ] && continue
  r=$(reset ".rate_limits.${w%%:*}.resets_at"); [ -n "$r" ] && r=" ($r)"
  line="$line | ${w##*:} $(color "$p")$p%\033[0m$r"
done
printf '%b' "$line"

Save it, make it executable (chmod +x ~/.claude/limits-statusline.sh), and point Claude Code at it in ~/.claude/settings.json:

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

You'll see something like Opus 5.5 | 5h 38% (2h40m) | 7d 44% (4d2h), turning yellow at 50% and red at 80%.

Limits not showing? Claude Code only sends rate_limits to Pro and Max subscribers, and only after the session's first response. A window also drops out once its reset time passes, until the next response arrives.

4. A menu-bar app

A status line only shows while a Claude Code session is open. To keep an eye on limits all day — and get warned before you hit them — use a menu-bar app:

For a fuller comparison, see the best Claude Code usage trackers.

Why limits run out faster than you expect

Every request re-sends the whole conversation. Prompt caching makes repeated context much cheaper, but three things quietly use up your windows:

TokenSight's Insights page measures all three from your own session logs.

FAQ

What are Claude Code's usage limits?

On claude.ai Pro and Max plans, Claude Code usage counts against a rolling 5-hour window and a weekly window, each with its own percentage and reset time. API-key users pay per token and have no windows.

Why doesn't my status line show rate limits?

They're only sent to Pro and Max subscribers, only after the session's first response, and a window disappears once its reset time passes.

Do cached tokens count toward the limits?

Cached context is far cheaper than fresh input, but long sessions re-read their whole context on every request, so big contexts and cache rebuilds still drain your windows faster.

Want this in your menu bar? TokenSight shows Claude's 5-hour and weekly limits, Codex's weekly limit, and which tools are using them up. 7-day free trial. brew install --cask sanv725/tap/tokensight