NotchStack

How to track Claude Code and Codex usage limits on your Mac

Hitting a limit in the middle of a task is the worst time to find out about it. Here's where Claude Code and Codex actually report your usage, what the numbers mean, and how to keep them visible while you work.

Updated 5 min readBy the NotchStack team

The short answer

Claude Code has three places that show your limits:

  • /usage shows your plan usage limits inside a session. It also answers to /cost and /stats.
  • Settings → Usage on claude.ai shows progress bars for your five-hour and weekly limits.
  • The status line can keep the percentages on screen all the time. Claude Code passes rate_limits data to your status-line script.

Codex CLI has two. During an active session, OpenAI’s pricing page says /status shows your remaining limits. The usage page at chatgpt.com/codex/settings/usage shows them in the browser.

The rest of this guide explains the windows, clears up the /status vs /usage confusion, and shows a status-line script you can copy.

How Claude Code limits work

On the Pro and Max plans, Anthropic’s help centre says “Both Pro and Max plans have a five-hour session limit and a weekly limit”. It also says “these limits are shared across Claude and Claude Code”. Chatting in claude.ai and coding in the terminal draw from the same pool.

  • The five-hour window limits how much you can use in a burst.
  • The weekly limit caps the total. For Max, the help centre says the weekly limit “resets at a fixed time each week that is assigned to your account”, and you can see the next reset time in Settings → Usage.
  • Max multiplies the session allowance. “Max 5x includes five times the Pro plan’s per-session usage allowance”, and 20x likewise.

On Team and Enterprise plans, Anthropic’s cost documentation says usage “resets on a rolling five-hour window and a weekly window”.

If a third-party article tells you the weekly limit is always rolling, or always fixed, check which plan it’s talking about. Plans differ.

Checking usage inside Claude Code

/usage, not /status

This trips up a lot of people, partly because older help articles say otherwise. In the current command reference:

  • /usage: “Show session cost, plan usage limits, and activity stats”. /cost and /stats are aliases for it.
  • /status: shows “version, model, account, and connectivity”. It doesn’t show your limits.

So if you type /status looking for how much you have left, you won’t find it there. Use /usage.

What /usage counts

The usage breakdown comes with a caveat worth knowing. Anthropic says the figures “are approximate and computed from local session history on this machine”. That means “usage from other devices or claude.ai is not included” in that breakdown.

The plan-limit percentages are a different matter. They reflect your account as a whole. If the activity numbers look low next to your limits, it’s probably because you also used Claude elsewhere.

Settings → Usage

In claude.ai, Settings → Usage shows “progress bars showing how much of your five-hour session and weekly usage limits you’ve consumed”. It’s the easiest place to check from your phone, or before starting a long session.

Keep your limits on screen with the status line

Claude Code can run a script of your choice to draw a status line at the bottom of the terminal. The script receives JSON on standard input. For Pro and Max subscribers, that JSON includes these rate_limits fields:

  • rate_limits.five_hour.used_percentage, “from 0 to 100”
  • rate_limits.seven_day.used_percentage
  • resets_at for each window, in “Unix epoch seconds”

Two caveats from the docs: the rate-limit data “appears only for claude.ai Pro and Max subscribers”, and only “after the first API response in the session”. A brand-new session shows nothing until Claude has answered once.

Here’s a small script that prints both percentages and the time until the five-hour window resets. Save it as ~/.claude/statusline.sh and make it executable with chmod +x ~/.claude/statusline.sh:

#!/bin/bash
# Prints: 5h 42% (resets in 2h 15m) · week 63%
input=$(cat)
five=$(printf '%s' "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty')
week=$(printf '%s' "$input" | jq -r '.rate_limits.seven_day.used_percentage // empty')
reset=$(printf '%s' "$input" | jq -r '.rate_limits.five_hour.resets_at // empty')
[ -z "$five" ] && { echo "limits after first reply"; exit 0; }
left=""
if [ -n "$reset" ]; then
  s=$(( ${reset%.*} - $(date +%s) )); [ $s -lt 0 ] && s=0
  left=" (resets in $((s/3600))h $(((s%3600)/60))m)"
fi
printf '5h %.0f%%%s · week %.0f%%\n' "$five" "$left" "$week"

Then point Claude Code at it in ~/.claude/settings.json:

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

The script needs jq to read JSON. If jq isn’t on your Mac, install it with Homebrew (brew install jq).

Reading the numbers

  • The five-hour percentage is the one to watch during a work session. If it’s high and the reset is far away, save the heavy prompts for later.
  • The weekly percentage is your budget for the week. Glance at it on Mondays.
  • The reset time tells you whether waiting is an option. “88% used, resets in 12 minutes” means take a coffee break, not switch plans.

How Codex limits work

OpenAI’s Codex pricing page says “weekly limits may also apply”, and that “Pro plans currently have no five-hour limit”. Limits depend on your ChatGPT plan, and OpenAI updates them, so treat any specific numbers you read elsewhere as a snapshot.

To check them:

  • In the CLI: “If you want to see your remaining limits during an active Codex CLI session, you can use /status”, according to the pricing page. The slash-command reference describes /status as “Display session configuration and token usage”. It describes /usage as “View account token usage”. If one doesn’t show what you expect, try the other.
  • In the browser: the usage page at chatgpt.com/codex/settings/usage.

People do report the CLI and the app disagreeing now and then. For example, an “I’ve hit the usage limit” message while /status still showed plenty left. If that happens, the server’s answer is the one that counts.

Codex keeps its local state under CODEX_HOME, which “defaults to ~/.codex”, including session transcripts.

Seeing Claude Code and Codex together

Each tool shows its own numbers in its own place. If you use both, you end up checking two terminals and a browser tab. That’s the gap NotchStack’s AI Usage tool fills.

Claude Code. NotchStack reads your limits from the status line. With your OK, it adds a small local bridge to your status-line setting. Any status line you already had keeps working, because NotchStack chains it rather than replacing it. The bridge saves the latest five_hour and seven_day percentages on your Mac, and the notch shows them as rings with the reset time.

Codex. NotchStack reads the session files Codex keeps under ~/.codex.

Tokens. Tokens used today and over the last seven days come from the session files both tools keep locally. Model split and session activity come from the same files.

Nothing is sent to NotchStack or anyone else. The same numbers appear on the Home dashboard, so a glance at the notch tells you whether to start that big refactor now or after the reset.

Sources

Checked on October 9, 2026. Plans and limits change; the linked pages are the source of truth.