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.
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.
If you run Claude Code, Codex and Gemini CLI all day, you already have the data. Indicators just reads it.
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.
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.
SwiftUI menu bar app. No Electron, no accounts, no background daemons. Builds with the Xcode Command Line Tools alone.
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.
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.
indicators-cli report prints the same numbers for scripts and dashboards. JSON output included.
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.
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.
claude mcp add indicators -- \ /Applications/Indicators.app/Contents/MacOS/indicators-mcp
set_routing_rule {
"task": "code-review",
"primary": "claude-opus-5",
"fallback": ["gpt-6-astra", "gemini-3.1-pro-preview"],
"threshold": 85
}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.
| Provider | Rate-limit windows | Cost from local logs | Real billed spend |
|---|---|---|---|
| Claude | 5h session, weekly, per-model weekly, extra usage (Claude Code login) | ~/.claude/projects transcripts | Anthropic Admin API |
| OpenAI | Plan windows from your Codex / ChatGPT login, log fallback | ~/.codex/sessions rollouts | OpenAI Costs API |
| Gemini | Per-model quota buckets (Gemini CLI Google login) | ~/.gemini/tmp chats | — |
| Grok | Not exposed by xAI | — | xAI Management API: spend + prepaid balance |
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.
| Indicators | ccusage (CLI) | Vendor dashboards | |
|---|---|---|---|
| Where | macOS menu bar, always on | Terminal, on demand | Browser, one tab per vendor |
| Rate-limit windows & reset time | Claude, OpenAI, Gemini — live | — | Partially, per vendor |
| Cost from local logs | Claude Code, Codex, Gemini CLI | Claude Code, Codex | — |
| Real invoiced spend | Anthropic, OpenAI, xAI (optional keys) | — | Yes |
| Telemetry / accounts | None | None | Vendor account |
Install Indicators. It reuses your Claude Code login and shows the 5-hour session and weekly windows as percentages, with the exact reset time.
Yes, when Codex CLI is signed in with ChatGPT. With an API-key login you still get cost estimates from the Codex session logs.
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.
No backend, no telemetry. Logs are read locally; tokens and keys only go to the vendor that issued them, to fetch your own usage.
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.
macOS 14 Sonoma and later, Apple Silicon and Intel. Built with SwiftUI; no Electron.
No. It is a SwiftPM package that builds with the Xcode Command Line Tools alone. Prebuilt releases are on GitHub.
Requires macOS 14 Sonoma or later. The app is ad-hoc signed; the installer clears the quarantine flag for you.
curl -fsSL https://indicators.jonymusky.com/install.sh | sh
# 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
git clone https://github.com/jonymusky/indicators.git
cd indicators
make install # → /Applications/Indicators.app