MIT Licensed ยท 100% Rust ยท macOS ยท Linux ยท Windows

Every AI coding CLI.
One menu bar.

usagio tracks usage and quota across Claude Code, Codex, and every AI coding CLI you run โ€” multiple accounts per provider, one keystroke to switch, and an auto-swap daemon that keeps you coding when a weekly limit hits.

Free & open source ยท macOS ยท Linux ยท Windows

usagio's menu open on macOS, showing session and weekly quota for several Claude and Codex accountsusagio's menu open on Windows, showing the same account listusagio's menu open on Linux, showing the same account list
Built to stay out of your way

Never re-login. Actually.

Capture each account's login once. usagio never touches your active account's token โ€” the vendor CLI owns it โ€” so there's no recurring/login dance, on any provider.

usagio on macOS, Linux, and Windows

A native menu bar on all three โ€” same menu, same auto-swap, same never-re-login guarantee, for both Claude Code and Codex.

Codex โ€” switch and go

Instantly swap between OpenAI Codex accounts too. ~/.codex/auth.json is under usagio's control now.

No re-login loop

usagio never touches your active account's token โ€” the vendor CLI owns it. Capture a login once and it stays valid; switching between accounts never triggers a fresh /login.

See what changed โ†’

One dashboard, every CLI

Ships with support for the CLIs you actually run.

First-party coverage for Claude Code and Codex today. Stubs and scaffolding for the rest are in the tree โ€” provider adapters land as each CLI's usage surface stabilises.

  • Claude Code
  • Codex
  • Cursor
  • opencode
  • Gemini CLI
  • Qwen
  • Copilot CLI
  • Amazon Q
  • Cline
  • Grok
  • Kimi
  • OpenRouter
  • DeepSeek
  • Z.ai
  • Fireworks
  • Synthetic

Shipping today Planned / stub in tree

Built the way Mac tools should be

Native. Fast. Out of your way.

Claude + Codex, macOS + Linux + Windows

Full support for both providers on all three OSes โ€” one binary, one menu, the same never-re-login guarantee everywhere you code.

Session & weekly at a glance

Each row shows session-window and weekly-quota use as a percentage, with reset countdowns on hover. No dashboards, no browser.

Multiple accounts per provider

Sign in more than once to Claude Max or Codex, switch which one claude or codex uses without touching /login.

Auto-swap daemon

When a weekly quota is about to hit, usagio drains accounts in reset order โ€” the next account is already active before you notice the wall.

Menu bar first, CLI too

The same single Rust binary powers the menu-bar app and a scriptable CLI. Pipe usage into your shell prompt, or check it in a Raycast script.

OS-native secret storage, no webview

Tokens live in your OS keychain, not a file. One small binary per OS โ€” no Electron, no bundled Chromium.

Open source, single binary

Pure Rust. Install via Homebrew or build from source. The whole app is licensed MIT โ€” run it anywhere, audit it, build on it.

Why open source?

usagio talks to first-party provider endpoints with tokens issued toyour account. That's a lot of trust to give a closed binary. Every line is MIT-licensed and onGitHubso you can audit exactly what it sends, where it stores state, and how the auto-swap decides when to move you.

One glance, the whole picture

Green when you're fine. Red when you're not.

The menu reads at a glance in every state โ€” from a fresh Monday morning to the moment auto-swap catches a weekly ceiling.

Healthy state โ€” every account showing session and weekly percentages

Everything's under budget

All accounts under 60% weekly. Menu stays green; auto-swap keeps its powder dry until it's actually needed.

Mixed state โ€” some accounts show percentages, others a reset countdown

Two accounts, two colors

One account at 82% starts glowing amber. Another crosses 94% and turns red. Auto-swap has already picked the next candidate โ€” you notice the color before you notice the wall.

Locked state โ€” a weekly-locked account's row swaps its percentage for a reset countdown

The lockout turns into a countdown

When an account hits 100%, its percentage row swaps for a countdown to when it's usable again. Auto-swap flips to the next-priority account in the same tick โ€” no interruption.

Install

Two commands, no configuration.

brew install puts the binary on your PATH.usagio install wires up the menu-bar app and the auto-swap daemon, now and at every login.

# Homebrew tap โ†’ single Rust binary, no runtime, no webview$ brew tap --trust mattjackson/tap
$ brew install mattjackson/tap/usagio
$ usagio install   # menu-bar app + auto-swap, now and every login

Prefer a manual install, or building from source? See the download page โ†’

Stop hitting the wall at 3 a.m.

Install usagio. See every quota. Never lose a session to a limit you didn't know you were about to hit.