Return
284 words2 min read

Usageview

Your AI Credits, from the Menu Bar

A native macOS menu bar app for checking AI usage limits, reset times, and multiple provider accounts in one place.

GitHub

The problem was friction: checking whether I had Claude credits left meant switching to a browser tab, logging in, navigating to the usage page, and doing arithmetic on reset times. Multiply that by four providers and it breaks your flow several times a day. I built Usageview to put the answer in the menu bar where it belongs, ambient and always a glance away.

The app runs as a menu bar accessory with no Dock icon. Clicking the icon opens a window of provider cards showing quota consumed, a progress bar, and a reset countdown. Compact mode collapses those same cards into tight rows for people who want the information smaller. The menu bar icon itself regenerates from live account data, so status communicates before you open anything.

Swift 6's strict concurrency model shaped the architecture throughout. I gave each provider its own authentication and usage service rather than a shared generic request path, because the providers themselves are not generic: Claude uses session tokens, GitHub Copilot uses device flow OAuth, some providers expose REST usage endpoints, others require parsing browser cookies. Getting all of that right in a thread-safe way meant leaning into Swift's actor model rather than working around it.

Credentials never touch the interface or a plain-text config file. Keychain Services handles storage for each provider's sensitive values, and the Codex session management preserves login state across account switches without surfacing tokens. Sparkle handles auto-updates for direct builds, with a separate no-op implementation for any future Mac App Store distribution.

The philosophy is ambient information: a utility that earns its place in the menu bar by being genuinely useful in a fraction of a second, then disappearing back into the background.

End