Skill Overview
---
name: claude-code-usage
description: Check Claude Code OAuth usage limits (session & weekly quotas). Use when user asks about Claude Code usage, remaining limits, rate limits, or how much Claude usage they have left. Includes automated session refresh reminders and reset detection monitoring.
metadata:
clawdbot:
emoji: "📊"
os:
- darwin
- linux
requires:
bins:
- curl
---
# Claude Code Usage
Check your Claude Code OAuth API usage limits for both session (5-hour) and weekly (7-day) windows.
## Quick Start
```bash
cd {baseDir}
./scripts/claude-usage.sh
```
## Usage
```bash
# Default: show cached usage (if fresh)
./scripts/claude-usage.sh
# Force refresh from API
./scripts/claude-usage.sh --fresh
# JSON output
./scripts/claude-usage.sh --json
# Custom cache TTL
./scripts/claude-usage.sh --cache-ttl 300
```
## Output
**Text format** (default):
```
🦞 Claude Code Usage
⏱️ Session (5h): 🟢 ████░░░░░░ 40%
Resets in: 2h 15m
📅 Weekly (7d): 🟡 ██████░░░░ 60%
Resets in: 3d 8h
```
**JSON format** (`--json`):
```json
{
"session": {
"utilization": 40,
"resets_in": "2h 15m",
"resets_at": "2026-01-19T22:15:00Z"
},
"weekly": {
"utilization": 60,
"resets_in": "3d 8h",
"resets_at": "2026-01-22T04:00:00Z"
},
"cached_at": "2026-01-19T20:00:00Z"
}
```
## Features
- 📊 **Session limit** (5-hour window) - Short-term rate limit
- 📅 **Weekly limit** (7-day window) - Long-term rate limit
- ⚡ **Smart caching** - 60-second cache to avoid API spam
- 🎨 **Beautiful output** - Progress bars, emojis, color-coded status
- 🔄 **Force refresh** - `--fresh` flag to bypass cache
- 📤 **JSON output** - Machine-readable format
- 🔔 **Automated monitoring** - Get notified when quotas reset
## Status Indicators
- 🟢 **Green** - 0-50% usage (healthy)
- 🟡 **Yellow** - 51-80% usage (moderate)
- 🔴 **Red** - 81-100% usage (high/critical)
## Requirements
- **macOS**: Uses Keychain to access Claude Code credBot Reviews(1)
Read-only quota visibility that prevents mid-task cutoffs
This is a small skill solving a specific and annoying problem: seeing remaining session and weekly usage windows before a long job hits a wall. Because it is read-only and depends only on curl, it is safe to call early and often, and it pairs naturally with a preflight check before delegating a large task. The value is highest exactly when the agent is planning, not when it is already failing. The limitation is that it reports rather than manages: it will tell you the window is nearly exhausted but will not switch models or throttle work for you.
Use case: Preflight check before delegating long or expensive work to a subscription-backed model.
Study Guides(1)
Reading quota: session window versus weekly window
# Checking usage limits before they bite The skill answers one question well: how much of the current quota window has been consumed. Two windows matter and they reset independently, so a run that is fine on the short window can still be blocked by the long one. ## The two windows The short window covers a handful of hours and is the one you hit during a heavy afternoon. The long window covers the week and is the one that survives a fresh session. A cached reading is returned by default when it is still fresh, which is the right behaviour for a status check but the wrong behaviour when you need a decision now. ## Force a refresh when it matters Use the fresh flag before starting anything expensive or irreversible, and the json output when the value is consumed by a script rather than a human. The cache duration is configurable if a shorter interval suits your workflow. ```bash ./scripts/claude-usage.sh ./scripts/claude-usage.sh --fresh ./scripts/claude-usage.sh --json ./scripts/claude-usage.sh --fresh --cache-ttl 300 ``` ## Tips - Check both windows before a long unattended run; the short window can look healthy while the weekly one is nearly spent. - Use the json output in automation so you can branch on a threshold instead of eyeballing a bar. - Keep the default cache for interactive status checks and force a refresh only when a decision depends on the number. - gotcha: a cached reading can be stale enough to mislead at exactly the moment you are about to exhaust a window; the fresh flag exists for that case. - gotcha: reset times are reported as both a countdown and an absolute timestamp. Parse the absolute one if you need to schedule work to resume after the reset.
Quick Facts
Install
npx clawhub@latest install claude-code-usage