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.
/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:
- 5-hour window — short-term burst limit. Starts counting with your first request and resets 5 hours later.
- Weekly window — the 7-day budget. Resets at a fixed time each week.
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%.
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:
- CodexBar — free and open source; shows session and weekly limits for Claude, Codex and dozens of other providers by reusing your existing logins.
- SessionWatcher — paid; limits and costs for Claude Code, Codex, Cursor and more, on Mac and Windows.
- TokenSight (ours) — reads your Claude limits from the status line above, with alerts at 50 / 80 / 95 %, next to exact token usage, per-tool context attribution and Insights that point at what's burning your budget. Mac only.
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:
- Long sessions. At 150K+ tokens of context, each small follow-up still re-reads all of it.
- Cache rebuilds. Step away past the cache lifetime, switch models, or edit CLAUDE.md mid-session, and the next request re-sends everything at full price. Estimate what that costs.
- Startup overhead. Big CLAUDE.md files and many MCP servers add tens of thousands of tokens before you type anything — on every request.
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.
brew install --cask sanv725/tap/tokensight