Skip to main content

usage-limits-bar

PyPI License: MIT

Claude Code and Codex usage limits, always visible in the macOS menu bar.

See how close each signed-in account is to its session and weekly limits, and when those limits reset, before a coding session is interrupted.

What it looks like

Each signed-in provider gets its own menu-bar item with compact ring gauges and a countdown to its active limit reset. Claude uses green and purple rings; Codex uses blue and teal. A provider that is not signed in is not shown. Warning states stay consistent across providers: orange at 80% and red with ! at 100%.

Signed-in providers Menu bar Dropdown
Claude only One Claude item: green session ring, purple weekly ring, reset countdown Claude session donut, weekly outer arc, Claude limits, sponsor / usage / refresh
Codex only One Codex item: blue session ring, teal weekly ring, reset countdown Codex session donut, weekly outer arc, Codex limits, sponsor / usage / refresh
Claude and Codex Two independent items, one in each provider’s colors Each item opens only its own provider’s limits and controls

Click an item for the full picture. Every provider dropdown uses the same native layout: a large session donut, a thin weekly outer arc, and one row per reported limit with its reset time. Claude errors stay in Claude’s item; Codex errors stay in Codex’s item.

  • Data for Claude and Codex refreshes independently every minute, so one unavailable provider does not hide the other.
  • Every provider dropdown has three header buttons: sponsor, provider usage, and refresh. The gauges spin while fetching.
  • The last successful response for each provider is cached in ~/Library/Caches/usage-limits-bar/ and shown immediately after a restart.
  • The app checks once a day for a newer version and adds an Update available menu item when one exists.

Install

Requires macOS 11+ and Python 3.9+. Pick whichever tool you already use:

Method Install Update
Homebrew brew install tilbertbalaban/tap/usage-limits-bar brew upgrade usage-limits-bar
uv uv tool install usage-limits-bar uv tool upgrade usage-limits-bar
pipx pipx install usage-limits-bar pipx upgrade usage-limits-bar
pip pip install usage-limits-bar pip install -U usage-limits-bar
From source git clone https://github.com/TilbertBalaban/usage-limits-bar && cd usage-limits-bar && uv tool install . git pull && uv tool install . --reinstall

Then:

usage-limits-bar                # launch the menu bar app and return immediately
usage-limits-bar autostart on   # start automatically at login
usage-limits-bar autostart off  # remove the login item
usage-limits-bar status         # print all available limits

After updating, quit the app from its menu and start it again. If autostart was configured under an earlier installation, disable it there once before enabling it with the new command.

Provider setup

Claude Code

Sign in with Claude Code by running claude and using /login. The app reads the OAuth token from the macOS Keychain service Claude Code-credentials, falling back to ~/.claude/.credentials.json, then polls api.anthropic.com/api/oauth/usage.

Claude usage reporting works with Pro and Max plans.

Codex and ChatGPT

Run codex login and choose ChatGPT sign-in. The app reads the OAuth session from ~/.codex/auth.json, or $CODEX_HOME/auth.json when CODEX_HOME is set, then polls chatgpt.com/backend-api/wham/usage. CODEX_ACCESS_TOKEN and the optional CODEX_ACCOUNT_ID environment variables are also supported.

Codex limits are the usage included with the signed-in ChatGPT plan. API-key billing does not expose these ChatGPT plan windows.

Credentials are sent only to their matching provider: Claude tokens to api.anthropic.com, and Codex tokens to chatgpt.com. Tokens are never logged or copied into the cache.

Support

If this app saves you from surprise rate limits, you can support development through the $ button or at base.monobank.ua/tilbertbalaban.

Development

git clone https://github.com/TilbertBalaban/usage-limits-bar
cd usage-limits-bar
python3 -m unittest discover -s tests -v
python3 -m usage_limits_bar.cli status

The data layer (usage_limits_bar/limits.py) is standard-library only and unit-tested. The native menu shell (usage_limits_bar/menubar.py) depends on PyObjC/AppKit.

Troubleshooting

  • ? in the menu bar — open the menu to see which provider needs attention, then sign in with claude or codex login.
  • Usage API rate-limited — the affected provider keeps showing its last cached data while the app backs off for a few minutes.
  • Codex shows no limits — confirm Codex is signed in with ChatGPT, not only an OpenAI API key.
  • Requests stop below 100% — provider APIs may round utilization or report it with a short delay; treat an orange ring as a cue to wrap up.

Metadata

Release files for usage-limits-bar 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for usage-limits-bar 2.0.1
File Size Uploaded Provenance Actions
usage_limits_bar-2.0.1.tar.gz 19.7 kB With provenance Details for usage_limits_bar-2.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for usage-limits-bar 2.0.1
File Interpreter ABI Platform Actions
usage_limits_bar-2.0.1-py3-none-any.whl Python 3 none any Details for usage_limits_bar-2.0.1-py3-none-any.whl

Total release size: 36.8 kB

Release files / usage_limits_bar-2.0.1.tar.gz

Download URL usage_limits_bar-2.0.1.tar.gz
Size 19.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8557022bb65837678ced70fb7186995eb9211bac53564ee31b12ac6f3a24d74b
BLAKE2b-256 checksum
How to use checksums
9c15948aec4925e8248784597b3a087d1f9171259e49739460b8581adb1e29f7
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 7, 2026.

Transparency log

Release files / usage_limits_bar-2.0.1-py3-none-any.whl

Download URL usage_limits_bar-2.0.1-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b39be1fa15a5b79afb5babaea98131b8a7f86dd7a395502f1e06792b03f6b916
BLAKE2b-256 checksum
How to use checksums
e73e87b7a2290e1f91eeed00d6bd1caebb09a5717c77d5249ce40d65307e4140
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 7, 2026.

Transparency log

Security for usage-limits-bar 2.0.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.

Select from 2 files

Attestation for usage_limits_bar-2.0.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 7, 2026.

Transparency log

A 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.

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page