CodexBar is a Windows 11 system-tray app that shows your AI coding-provider usage at a glance,
so you don't have to open several dashboards. It reads each provider's local CLI credentials
directly and queries the matching usage endpoint — your tokens never leave your machine.
Supports Codex, Claude, Cursor, Gemini, GitHub Copilot, and Google Antigravity, with
per-provider adaptive backoff, an optional taskbar dock, a configurable global hotkey, and
signed in-app updates.
README
CodexBar for Windows
A Windows 11 tray app that shows your AI coding-provider usage at a glance — no need to open every provider dashboard. Built on WinUI 3 + Windows App SDK 1.6 with Mica/Acrylic chrome, native Fluent UI, and live theme/accent reactivity.
Supports Codex, Claude, Cursor, Gemini, and GitHub Copilot. Reads local CLI credentials directly — your tokens never leave your machine.
Screenshots
Install
Download the latest release from the Releases page. Most users want the .installer.exe. A portable zip is also published for users who don't want an installer.
Scoop installs the portable build and manages updates — run scoop update codexbar to upgrade.
Both the installer and the app executable are signed with Azure Trusted Signing (Microsoft ID Verified Code Signing). Authenticode reports Status: Valid and the publisher is verified by Microsoft; SmartScreen reputation builds over time as downloads accumulate.
Requirements:
Windows 11 (Windows 10 22H2 may work but isn't a target)
.NET 9 runtime is bundled in the release artifacts (self-contained)
Signed-in CLI credentials for whichever providers you enable
Provider Support Matrix
Provider
Credential source
Status
Notes
Codex
Codex CLI OAuth at %CODEX_HOME%\auth.json or %USERPROFILE%\.codex\auth.json
Supported
Settings can Test credentials and open setup Help.
Off by default — opt in from Settings after signing in with gh.
First run
Launch CodexBar.WinUI.exe.
The Welcome window appears on a new install — enable the providers you want to track. Each provider has a Help link explaining where credentials come from.
Click Get Started, or Skip to keep defaults and configure later.
The tray icon shows your most-constrained provider's usage. Left-click it to open the popover.
Right-click the tray icon for Settings, About, or Quit.
Features
Tray popover with all enabled providers as tabs, Acrylic backdrop, live theme + accent reactivity.
Per-provider adaptive backoff: if a provider rate-limits you, only that provider backs off — the others keep refreshing.
Live "updated Ns ago" indicator that ticks every 5 seconds while the popover is open.
Taskbar dock (optional): a compact strip pinned near the taskbar showing all providers at once.
Global hotkey (default Ctrl+Alt+U, configurable in Settings): toggle the popover from anywhere, even when the tray icon is hidden in the overflow.
First-run onboarding, Settings with Fluent SettingsCard layout, About window, native MenuFlyout right-click menu.
Automatic update checks against GitHub Releases (24-hour cadence, off by default). The app surfaces updates via a Windows AppNotification banner. Settings has an Install now button that downloads the signed installer, verifies it against the published SHA-256 sidecar, launches it elevated, and exits so the installer can replace the running binaries.
DPAPI-encrypted secrets: manual cookie headers (Claude, Cursor) are encrypted at rest with Windows DPAPI tied to your user profile. Plaintext values from older installs are migrated on next save.
Accessibility: every interactive control exposes an AutomationId and icon-only buttons expose an accessible Name, so Narrator and UI automation tools can navigate the app end-to-end.
Local Claude Code token tracking (when Claude Code is installed): the Claude tab also shows today's local token spend by scanning ~/.claude/projects/**/*.jsonl, ccusage-style. No network call, no NPX dependency.
Credential-expiry surfacing: when a provider's sign-in expires or is rejected, that tab shows a clear "reconnect" message with the exact re-auth steps (and a one-time toast), instead of going blank or showing stale numbers. Expired credentials are kept distinct from transient network errors and rate limits.
Updates
CodexBar checks GitHub Releases automatically every 24 hours when enabled in Settings, and you can check manually any time. The Settings window shows your version and the latest release found. When an update is available you can Install now — CodexBar downloads the signed installer, verifies its SHA-256, runs it elevated, and relaunches — or use Open Release to download from GitHub yourself.
CodexBar reads known credential/configuration files for enabled providers and queries the matching provider endpoint directly. Provider credentials stay on your machine and are never sent to any CodexBar-operated service.
The app doesn't crawl your disk. It checks specific paths like %USERPROFILE%\.codex\auth.json, %USERPROFILE%\.claude\.credentials.json, and %USERPROFILE%\.gemini\oauth_creds.json, plus any manual cookie text you paste into Settings.
Manual cookie headers entered in Settings are encrypted at rest with Windows DPAPI under your current user profile — the on-disk value is unusable on a different machine or under a different Windows account.
Known limitations
Updates aren't silent: you trigger them from Settings — Install now installs in place, or Open Release downloads from GitHub. The app never updates itself in the background.
Cursor support requires a manual cookie header you copy from a signed-in browser session.
Gemini requires Gemini CLI OAuth credentials. API key and Vertex AI modes are not yet supported.
A provider can show "No usage yet" when credentials are present but the provider returns no measurable usage window.
Provider dashboards and private usage APIs can change without notice.
Contributing
The active solution is src/windows/CodexBar.Windows.sln (.NET 9, WinUI 3 via Windows App SDK 1.6).
dotnet test src\windows\CodexBar.Windows.sln --verbosity minimal
Releases use the checklist in docs/windows-release-checklist.md. Provider data is kept siloed per provider; behavior changes need focused tests.