# Show HN: AI Usage – Native macOS Menu Bar for Claude Code and Codex Limits

> Source: <https://github.com/burakgon/ai-usage-menubar>
> Published: 2026-07-28 06:43:05+00:00

**Claude Code and Codex limits, one click away.**

Native Liquid Glass. Measured at 0.0% CPU between scheduled refreshes.

A real native menu bar popover — no Dock icon or persistent window.

AI Usage shows the limits that matter and stays out of the way. No extra account, API key, local server, telemetry, usage history, or background log scanning.

Open the DMG, drag **AI Usage** to Applications, and launch it. It appears in
the menu bar rather than the Dock. macOS 26 or newer is required.

Note

Current public builds are ad-hoc signed because a Developer ID certificate
is not available yet. If macOS blocks the first launch, right-click
**AI Usage** in Applications and choose **Open**. Future updates are still
protected by Sparkle's EdDSA signature.

- Claude Code session, weekly, Sonnet, and Fable limits
- Codex session, weekly, Spark, and Spark weekly limits
- Remaining or used percentages, switchable directly in the panel
- A selectable provider and session/weekly value directly in the menu bar
- Configurable 1, 5, 15, 30, or 60-minute refresh and one-click manual refresh
- Signed update checks at launch and daily, plus
**Check for Updates…** - A direct
**Update** button in the panel when a new version is available - Provider cards only for installed tools, with signed-out status kept visible
- Native light and dark appearances with Liquid Glass
- Launch at Login enabled by default and still user-controllable

You need:

- macOS 26 or newer
- Xcode 27 or newer
- Claude Code and/or Codex already signed in locally

Then:

```
git clone https://github.com/burakgon/ai-usage-menubar.git
cd ai-usage-menubar
./scripts/install.sh
```

The script builds a local Release version, installs it to
`~/Applications/AI Usage.app`

, and opens it. AI Usage appears in the menu bar,
not the Dock.

To run without the installer, open `AIUsage.xcodeproj`

in Xcode and run the
`AIUsage`

scheme.

AI Usage reads the same local OAuth credentials already created by the
`claude`

and `codex`

CLIs, then requests quota data directly from the
providers' first-party endpoints.

- Credentials stay on your Mac.
- Tokens are never printed, logged, or sent anywhere else.
- Temporary failures keep the last successful values in memory and mark them stale.
- Nothing is cached across launches.

API-key-only Codex authentication can't read ChatGPT subscription usage.
`CLAUDE_CODE_OAUTH_TOKEN`

is intentionally ignored because setup tokens don't
include the profile scope required by Claude's usage endpoint.

The exact researched contracts are documented in
[docs/provider-contracts.md](/burakgon/ai-usage-menubar/blob/main/docs/provider-contracts.md).

The default **Auto** mode shows the provider with the highest used percentage
for the selected period. You can independently choose Claude Code, Codex, or
Auto; Session or Weekly; and whether numbers mean Used or Left.
**Left** is the default number mode. The menu bar stays compact and shows only
the selected percentage; its meaning remains visible in the panel.

Raw percentages are shown exactly as reported by the provider. Only progress
bar drawing is clamped to `0...100`

. Remaining usage is bounded to `0...100`

because a negative remaining percentage is not meaningful.

Run the complete test suite:

```
xcodebuild test \
  -project AIUsage.xcodeproj \
  -scheme AIUsage \
  -destination 'platform=macOS'
```

The app is SwiftUI and AppKit, with a small provider layer and an in-memory
store. Its only runtime package dependency is
[Sparkle](https://github.com/sparkle-project/Sparkle), used for signed
over-the-air updates.

Contributions are welcome. Please read [CONTRIBUTING.md](/burakgon/ai-usage-menubar/blob/main/CONTRIBUTING.md)
before opening a pull request.

Release packaging and OTA feed maintenance are documented in
[docs/releasing.md](/burakgon/ai-usage-menubar/blob/main/docs/releasing.md).

Provider contracts and parts of the system-boundary implementation were
adapted from [OpenUsage](https://github.com/robinebers/openusage), pinned to
tag `v0.7.6`

/ commit `5a2864f19a1c664f6a140ba06abad5596000af10`

.
See [NOTICE](/burakgon/ai-usage-menubar/blob/main/NOTICE) for attribution.

AI Usage is available under the [MIT License](/burakgon/ai-usage-menubar/blob/main/LICENSE).

If AI Usage saves you a few clicks, please
[star the repository](https://github.com/burakgon/ai-usage-menubar). It helps
other Claude Code and Codex users find it.
