This project has been archived by its maintainers, and is no longer receiving any updates.
claude-limits-bar
Claude Code limits and their reset times, always visible in the macOS menu bar.
If you keep hitting "Too many requests, please try again later", this shows you exactly how close you are to the limit and when it resets — before Claude Code cuts you off.
The menu bar shows two ring gauges — the session (5-hour) limit in green and the 7-day limit in purple, percent used inside each — plus the countdown until the session limit resets:
◔66 ◔12 3h 26m
Click it for the full picture: a large donut for the session limit (weekly as a thin outer arc) and one row per limit with its reset time:
✳ Claude Limits ($) (↻)
╭─── 66% Used ───╮
◔66 5-Hour Limit Today 6:10 PM
◔12 7-Day Limit Sep 5 1:00 AM
◔18 7-Day (Fable) Sep 5 1:00 AM
Rings turn orange at 80% or when Anthropic reports elevated severity, and red with ! at 100% — the session (5-hour) limit is the one that usually triggers "Too many requests".
How it works
Claude Code stores its OAuth token in the macOS Keychain (service Claude Code-credentials). This app reads that token and polls the same official endpoint the Claude apps use (api.anthropic.com/api/oauth/usage) once a minute. The token is sent only to api.anthropic.com — nowhere else, nothing is logged or stored.
Works on Pro and Max plans. Requires being signed in to Claude Code (claude → /login).
Install
Requires macOS.
Homebrew
brew install tilbertbalaban/tap/claude-limits-bar
uv / pipx (needs Python 3.9+)
uv tool install claude-limits-bar
(or pipx install claude-limits-bar)
Then:
claude-limits-bar # run the menu bar app
claude-limits-bar autostart on # start automatically at login (LaunchAgent)
claude-limits-bar autostart off # remove the login item
claude-limits-bar status # print current limits to the terminal
Updating
The app checks GitHub once a day and shows an Update available item in the menu when there's a newer version. To update:
brew upgrade claude-limits-bar # Homebrew
uv tool upgrade claude-limits-bar # uv
pipx upgrade claude-limits-bar # pipx
Then quit the app from its menu and start it again (claude-limits-bar, or log out/in if you use autostart on).
Support
If this app saves you from surprise rate limits, you can support development via the $ button in the app or at base.monobank.ua/tilbertbalaban.
Development
git clone https://github.com/TilbertBalaban/claude-limits-bar
cd claude-limits-bar
python3 -m unittest discover -s tests -v
python3 -m claude_limits_bar.cli status
The data layer (claude_limits_bar/limits.py) is stdlib-only and fully unit-tested; only the menu bar shell (claude_limits_bar/menubar.py) depends on PyObjC (AppKit).
Troubleshooting
✳ ?in the menu bar — open the menu for the reason: no credentials (sign in to Claude Code), an expired token (use Claude Code once — it refreshes the token itself), or no network.Too many requestsstill happens at <100% — the API reports utilization rounded to whole percent and with a small delay; treat the orange ring as "wrap up what you're doing".
Metadata
Release files for claude-limits-bar 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| claude_limits_bar-1.4.1.tar.gz | 16.5 kB | With provenance | Details for claude_limits_bar-1.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| claude_limits_bar-1.4.1-py3-none-any.whl | Python 3 | none | any | Details for claude_limits_bar-1.4.1-py3-none-any.whl |
Total release size: 31.8 kB
Release files / claude_limits_bar-1.4.1.tar.gz
| Download URL | claude_limits_bar-1.4.1.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d1cfb938482abcb634183a10453783875a529d4af2fcdea5497f4a3b9d800b7
|
|
BLAKE2b-256 checksum How to use checksums |
3b868358d41fc9dd7a35519441db3cf35246e21763414440e02e932222306eea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / claude_limits_bar-1.4.1-py3-none-any.whl
| Download URL | claude_limits_bar-1.4.1-py3-none-any.whl |
|---|---|
| Size | 15.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef5f5472c2f034550ec65e00fcb2ab24e6d31683ea88777d8a7473b0053a58a2
|
|
BLAKE2b-256 checksum How to use checksums |
53946e3b28c8b8db024633c5c4847238072407cdb1fa94279e753d7053321d06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logSecurity for claude-limits-bar 1.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for claude_limits_bar-1.4.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.