When Does Claude Code Rate Limit Reset?
Claude Code has two separate limit windows. They reset independently, and neither resets at a fixed clock time.
The two windows explained
| Window | Duration | How it resets |
|---|---|---|
| Session | 5 hours | Rolling: oldest request in the window falls off after 5h from when it was made |
| Weekly | 7 days | Rolling: oldest request falls off after 7 days from when it was made |
Because the windows are rolling, there's no single "reset time." If you're at 100% session usage and your oldest session request was made 4h50m ago, you have ~10 minutes to wait. The reset is continuous, not a cron job.
How to see your exact countdown
Headroom shows both countdowns live in the menu bar dropdown:
Session 23% ████░░░░░░ resets in 3h 12m Weekly 74% ███████░░░ resets in 4d 9h
When you're near a limit, the status bar changes color — amber at 70%, red at 90%. You see the pressure before the hard stop, not after.
Without Headroom, the only way to check is the /usage command inside Claude Code — a command you have to remember to run, in an interface you have to switch to.
Check the reset time from the command line
Once Headroom is installed, the countdown is also in the local JSON file:
# See both countdowns as seconds-until-reset
cat ~/.claude/headroom-usage.json | python3 -c "
import json,sys,time
d=json.load(sys.stdin)
sr=d.get('sessionResetSec',0)
wr=d.get('weeklyResetSec',0)
def fmt(s): h,r=divmod(int(s),3600); m=r//60; return f'{h}h {m}m' if h else f'{m}m'
print(f'Session resets in: {fmt(sr)}')
print(f'Weekly resets in: {fmt(wr)}')
"
Or with jq (raw seconds, useful for scripting):
jq '{sessionResetSec,weeklyResetSec}' ~/.claude/headroom-usage.json
Why did it stop me mid-task?
Claude Code enforces both limits independently. You can hit the session window at any point in a work session — not just after 5 straight hours. The window counts from when each request was sent, not from when you opened Claude Code. A morning burst + an afternoon burst can combine to fill the window by 3pm even though neither alone was heavy.
The weekly cap works the same way: it's not "all the tokens I used this calendar week." It's a rolling 7-day window anchored to when each request was made.
Strategy while waiting for a reset
If you hit the session window (5h): you usually don't have to wait the full 5 hours. The window is rolling — requests from 4h45m ago fall off in 15 minutes. Watch the Headroom countdown.
If you hit the weekly cap: you're waiting days, not hours. This is the one to avoid by watching the weekly % number. Headroom shows the weekly % in the status bar at all times; the amber threshold at 70% is your "start planning" signal.
Install Headroom — see both countdowns always
brew install --cask patwalls/tap/headroom
Or download directly. Free, MIT, ~267 KB. No API key, no login — it reads the same numbers Claude Code already computes.
→ Full guide to Claude Code rate limits
→ Set up threshold alerts
→ FAQ