ENTELXCORE
UsageBar icon

Free macOS menu bar app

UsageBar

Your AI usage and limits, live in the macOS menu bar

See Claude, Cursor, and ChatGPT usage at a glance from the menu bar — without opening another dashboard.

v0.3.9 · 26.5 MB · macOS · Apple silicon · free for personal and public use

What it does

AI usage at a glance

  • Menu bar glanceable usage
  • Stay aware without opening dashboards
  • Free for personal and public use

Install

Get UsageBar running in under a minute

Terminal install · UsageBar

After downloading the zip

Ad-hoc signed apps are not Apple-notarized. Paste these commands if Gatekeeper blocks launch — same flow across all tools.

  1. 1. Unzip into Applications

    unzip -o "$HOME/Downloads/UsageBar-0.3.9-macos-arm64.zip" -d /Applications/
  2. 2. Remove Gatekeeper quarantine (if macOS blocks launch)

    xattr -dr com.apple.quarantine "/Applications/UsageBar.app"
  3. 3. Open UsageBar

    open -a "UsageBar"

Version history

UsageBar release notes

Every published version, newest first.

  1. v0.3.9

    Current9 Oct 2026

    Fixed

    • Update notice never seen — When the background check finds a new version, the “Update available” dialog (Install & restart… / Not now) now opens by itself, in front of other windows, once per version. Until now it only posted a notification, which macOS never showed.
    • Notifications never shown — Notifications go through Apple's current API (UNUserNotificationCenter). rumps used the deprecated NSUserNotificationCenter, whose notifications current macOS drops without an error. macOS only shows them for Developer ID signed apps; this ad-hoc build logs the reason to its error log instead.
    • Update check failed without Homebrew — Update checks and downloads work on Macs without Homebrew: the bundled OpenSSL only looked for certificates in Homebrew's folder. macOS's own `/etc/ssl/cert.pem` is now trusted as well.
  2. v0.3.8

    9 Oct 2026

    Changed

    • Python 3.14 — the app now bundles Python 3.14.8 (was 3.13.7).
    • Current dependencies — `curl_cffi` 0.16.3, `requests` 2.34.2, `urllib3` 2.8.0, `certifi` 2026.7.22, PyObjC 12.2.2, `python-dotenv` 1.2.4, `pycryptodomex` 3.24.0, PyInstaller 6.22.3.
    • Quieter build — dropped leftover hidden imports (`Crypto`, `keyring`, `secretstorage`, `jeepney`) from `ai_usage.spec`, so the build no longer logs `Hidden import … not found`. browser-cookie3 uses `Cryptodome`, which is still bundled.
  3. v0.3.7

    16 Sep 2026

    Changed

    • Auto update check every 6 hours (was 12). A failed check — offline right after login, server error — is retried up to 3 times, 10 minutes apart, instead of waiting for the next interval.
    • Python 3.10+ for source installs — `install.sh` skips Apple's bundled Python 3.9 and rebuilds a virtualenv that was created with it; the bundled .app is unaffected.

    Fixed

    • Auto update check ran at launch, twice — rumps timers fire as soon as they start, so the “first check about a minute after launch” happened immediately (often before Wi-Fi was up) and the periodic timer fired once more right behind it. The first check now really waits a minute.
  4. v0.3.6

    12 Sep 2026

    Added

    • Auto update check — every 12 hours (first check about a minute after launch). A purple dot on the menu-bar icon plus a notification when a new version is ready; Check for Updates… becomes “Update x.y.z available…”.
  5. v0.3.5

    12 Sep 2026

    Fixed

    • Quit after login — Launch at login used `KeepAlive`, so the next login would make Quit reopen UsageBar. Match RunBar: `KeepAlive` off, unload the login item on Quit (plist stays for the next login).
  6. v0.3.4

    9 Sep 2026

    Added

    • Pin several metrics — click more than one row to keep them on the menu bar at once (click again to unpin; at least one stays). Example: Claude weekly + Cursor plan total shows `ClW 42% · Cu 67%`. Tags: ClS / ClW / ClSn / ClO / ClF, Cu / CuA / CuAPI / CuCr / CuOD, G5h / GW. Each percentage keeps its own green / yellow / red tint; the gauge follows the highest.
  7. v0.3.3

    9 Sep 2026

    Added

    • Claude Fable — Weekly (Fable) usage from the `limits[]` payload (Max per-model windows)

    Changed

    • Claude org id — resolve from `lastActiveOrg` / `/api/organizations` instead of a hard-coded uuid (403 after Max upgrade)
    • Claude Auto-Import — skip browsers that have cookies but no `sessionKey`
  8. v0.3.2

    27 Aug 2026

    Changed

    • Menu chrome — Settings… (providers + Launch at login), Check for Updates…, Version, then Quit. Refresh now is now Refresh.

    Fixed

    • Duplicate menu bar icon after update — after `open` of the new app, do not reload the LaunchAgent. KeepAlive would start a second copy. The plist stays on disk, so Launch at login is unchanged at the next login.
  9. v0.3.0

    22 Aug 2026

    Added

    • Cursor credits and on-demand — remaining credit grants (plus Stripe prepaid) and on-demand spend/limit from the dashboard APIs

    Changed

    • Claude free plan — a 404 from the usage API shows “Free · limits not available on free plan” instead of an error code

    Fixed

    • ChatGPT weekly — classify 5-hour vs weekly by window length so a weekly-only `primary_window` is not left as `?`
  10. v0.2.15

    14 Aug 2026

    Fixed

    • Self-update with launch at login — start the installer script before parking the KeepAlive LaunchAgent, then relaunch with `open`
    • Unpack the free-tools zip with `ditto` and skip `__MACOSX/*.app` stubs
  11. v0.2.14

    13 Aug 2026

    Fixed

    • Relaunch after update — open the new `.app` with LaunchServices instead of treating LaunchAgent bootstrap as a successful start
  12. v0.2.13

    13 Aug 2026

    Fixed

    • Update progress window — briefly become a regular app so the percent panel stays visible on a menu-bar-only process
    • Double reopen after update — park the LaunchAgent before replacing the app so KeepAlive plus `open -n` cannot start both the old and new copies
  13. v0.2.12

    13 Aug 2026

    Changed

    • `install.sh` picks the newest Python 3 from Homebrew or Xcode / CLT (no longer hard-coded to 3.12)
  14. v0.2.11

    9 Aug 2026

    Fixed

    • Check for Updates zlib Error -3 — fetch manifest/zip via stdlib urllib instead of requests/urllib3 so a CDN that wrongly sets `Content-Encoding: gzip` no longer breaks the update check
  15. v0.2.10

    18 Jul 2026

    Changed

    • Patch release for ENTELXCORE Free Tools
  16. v0.2.9

    18 Jul 2026

    Changed

    • Menu bar icon is now `gauge.with.needle` (Bars family; matches website UsageBar mark)
    • Badge styling aligned with CommitBar / RunBar (size, weight, tint)
    • App bundle renamed to `UsageBar.app`; logo aligned with ENTELXCORE free-tools product mark

    Fixed

    • `release.sh` always rebuilds before zipping so the published version matches the binary (fixes endless “update available”)
  17. v0.2.8

    18 Jul 2026

    Added

    • ChatGPT provider — 5-hour and weekly usage via chatgpt.com session cookie

    Changed

    • Release artifact is now `UsageBar-{version}-macos-arm64.zip` (same install flow as CommitBar / RunBar)
    • In-app update check uses `https://entelxcore.com/downloads/usagebar/release-macos.json`
    • “Open download page” opens `https://entelxcore.com/free-tools#tools`
    • Self-update installs from zip; older DMG manifests still apply until they roll off
  18. v0.2.7

    18 Jul 2026

    Added

    • Production packaging: `build.sh`, `release.sh`, `install_app.sh`, `run.sh`
    • Dev app wrapper with custom icon (`scripts/make_dev_app.sh`)
    • Launch at login via `launch_login.py` (dev + installed `.app`)
    • `pyproject.toml`, pinned build requirements, CI workflow
    • MIT license and changelog

    Changed

    • `build_dmg.sh` delegates to `build.sh` + `release.sh`
    • Version in `ai_usage.spec` synced from `ai_usage.version`
    • `release.sh` publishes DMG to `ai-usage-website` and ENTELXCORE free-tools