Open source · macOS 14+ · zero telemetry

Your AI usage,
in the menu bar.

Live rate limits for Claude, OpenAI and Gemini. Real costs computed from your own Claude Code, Codex and Gemini CLI logs, at API list prices. One glance, no dashboards.

$ curl -fsSL https://indicators.jonymusky.com/install.sh | sh
Claude Code OpenAI Codex Gemini CLI xAI Grok
See it

Every window, every reset, every dollar.

Click the gauge and you get each provider's rate-limit windows with the time until reset, today / 7-day / month-to-date cost, tokens, and a per-model breakdown. Settings live one click away.

Why

Built for people who live in AI CLIs.

If you run Claude Code, Codex and Gemini CLI all day, you already have the data. Indicators just reads it.

%

Live rate limits

5-hour session and weekly windows straight from your Claude Code and Codex logins, Gemini quota buckets per model. Color-coded, with the exact reset time.

$

ccusage-grade cost math

Tokens from your local transcripts × public API list prices (LiteLLM table, auto-refreshed). Cache reads, cache writes and the 1-hour cache tier are all priced correctly.

Native, tiny, fast

SwiftUI menu bar app. No Electron, no accounts, no background daemons. Builds with the Xcode Command Line Tools alone.

A

Real invoices, optionally

Add an Anthropic admin key, an OpenAI admin key or an xAI management key and see what the vendor is actually billing you this month, next to the estimate.

🔒

Private by construction

Everything runs on your Mac. Logs are read-only, tokens are used in memory for one request, keys live in your Keychain. No telemetry, ever.

>_

Terminal companion

indicators-cli report prints the same numbers for scripts and dashboards. JSON output included.

MCP server for model routing

indicators-mcp gives any agent your live headroom and answers "which model for this task?" from your own rules: primary model, fallbacks, and the usage threshold that flips between them.

For agents

An MCP server that routes by headroom.

indicators-mcp ships inside the app. Register it with Claude Code, Codex, Gemini CLI or any MCP client, and your agent can check live limits and ask which model to use for a task, following your rules: primary model, ordered fallbacks and the usage threshold that flips between them.

Register
claude mcp add indicators -- \
  /Applications/Indicators.app/Contents/MacOS/indicators-mcp
Set a rule
set_routing_rule {
  "task": "code-review",
  "primary": "claude-opus-5",
  "fallback": ["gpt-6-astra", "gemini-3.1-pro-preview"],
  "threshold": 85
}
Ask before every task
recommend_model { "task": "code-review" }
 { "model": "claude-opus-5",
    "is_fallback": false,
    "reason": "Claude 5h session at 26%",
    "candidates": [ …,
      { "model": "gpt-6-astra", "available": false,
        "reason": "OpenAI Weekly at 96% (threshold 85%)",
        "resets_at": "2026-09-25T12:06:19Z" } ] }

Tools: get_usage, recommend_model, set_routing_rule, list_routing_rules, delete_routing_rule, estimate_cost, list_models. Rules live in ~/.config/indicators/routing.json. The server recommends and explains; it never switches models behind your back.

Providers

What you get per vendor.

ProviderRate-limit windowsCost from local logsReal billed spend
Claude5h session, weekly, per-model weekly, extra usage (Claude Code login)~/.claude/projects transcriptsAnthropic Admin API
OpenAIPlan windows from your Codex / ChatGPT login, log fallback~/.codex/sessions rolloutsOpenAI Costs API
GeminiPer-model quota buckets (Gemini CLI Google login)~/.gemini/tmp chats
GrokNot exposed by xAIxAI Management API: spend + prepaid balance
Compared

ccusage in the menu bar, plus the limits it can't see.

Indicators uses the same cost math as ccusage and the same usage endpoints as tools like CodexBar and UsageBar, and puts them together in one native app.

Indicatorsccusage (CLI)Vendor dashboards
WheremacOS menu bar, always onTerminal, on demandBrowser, one tab per vendor
Rate-limit windows & reset timeClaude, OpenAI, Gemini — livePartially, per vendor
Cost from local logsClaude Code, Codex, Gemini CLIClaude Code, Codex
Real invoiced spendAnthropic, OpenAI, xAI (optional keys)Yes
Telemetry / accountsNoneNoneVendor account
FAQ

Questions people ask.

How do I see my Claude Code usage limit in the menu bar?

Install Indicators. It reuses your Claude Code login and shows the 5-hour session and weekly windows as percentages, with the exact reset time.

Does it show Codex / OpenAI rate limits?

Yes, when Codex CLI is signed in with ChatGPT. With an API-key login you still get cost estimates from the Codex session logs.

How are costs calculated?

Like ccusage: tokens from local logs × public API list prices (LiteLLM table), including cache reads, cache writes and the 1-hour cache tier. Optional admin keys add the real invoice.

Is anything sent to a server?

No backend, no telemetry. Logs are read locally; tokens and keys only go to the vendor that issued them, to fetch your own usage.

Can my agent use it to route between providers?

Yes. Register indicators-mcp (ships inside the app) with Claude Code, Codex or any MCP client. Tools: get_usage, recommend_model, set_routing_rule, estimate_cost. Rules live in ~/.config/indicators/routing.json.

Which macOS versions?

macOS 14 Sonoma and later, Apple Silicon and Intel. Built with SwiftUI; no Electron.

Do I need Xcode to build it?

No. It is a SwiftPM package that builds with the Xcode Command Line Tools alone. Prebuilt releases are on GitHub.

Install

Thirty seconds, no account.

Requires macOS 14 Sonoma or later. The app is ad-hoc signed; the installer clears the quarantine flag for you.

One-liner
curl -fsSL https://indicators.jonymusky.com/install.sh | sh
Manual
# download Indicators.zip from the latest release,
# then move the app and open it
xattr -d com.apple.quarantine /Applications/Indicators.app
open /Applications/Indicators.app
From source
git clone https://github.com/jonymusky/indicators.git
cd indicators
make install   # → /Applications/Indicators.app