An honest provider matrix.
23 providers ship with real usage data today. 8 more are detected but expose no usage API — we mark them so, rather than pretending. Confidence labels live on every row.
-
exact Exact
Numbers come from the vendor's own API or local logs — counted, not guessed.
-
estimated Estimated
Numbers come from a local pricing table or a token estimate. Good for trends. Bad for tax audits.
-
unavailable Unavailable
The vendor doesn't expose this. We mark it so, instead of pretending.
One row per account. Routing is per-account, not per-provider.
Each row below is one account you add to BurnBar — not the vendor in the abstract. Add five Z.ai keys and you get five rows, five quota buckets, five spots in the router rotation. The matrix shows what BurnBar knows about each account; the router decides how to use them.
-
model identity preserved Failover only picks accounts that carry your exact model.
Each row below lists which models that account carries. Failover only considers other rows that list the same model you asked for — MiniMax or Kimi only handle traffic for the models they actually carry, never a generic OpenAI-shape stand-in. The wire-format family (OpenAI-shape, Anthropic-shape) is the outer boundary; the model id is the inner one. Exact Model Failover can widen the provider/account search, but only after the destination row proves the same canonical model ID. If no row survives the proof gate, the gateway returns a structured 503 — never a stealth swap into a different model.
-
account-level routing Accounts have their own clocks and quotas.
Each account keeps its own quota bucket, its own cool-down clock, its own LRU timestamp, and its own decision history. BurnBar will not collapse your accounts into a single generic pool. You added them separately because they cost differently, throttle differently, and recover differently — and the router treats them that way.
Want the policy in detail? · read the router page
23 providers ship with live data.
Each one names exactly where data comes from, what we can know about cost, and how quota is shaped. Notes capture limitations we'd rather you read than discover later.
| Provider | Where the data comes from | Cost | Quota | Credential |
|---|---|---|---|---|
| Claude Code Anthropic's CLI agent — reads ~/.claude/projects/**/*.jsonl | Local JSONL + statusline bridge | exact | yes | none (local) |
| Codex (OpenAI CLI) ChatGPT's coding CLI — reads ~/.codex/sessions/rollout-*.jsonl | Local rollout JSONL | exact | yes | none (local) or ~/.codex/auth.json for hosted refresh |
| OpenAI Organization-wide usage from the admin API | /v1/organization/usage/completions | exact | partial | Org admin key (sk-…) |
| GitHub Copilot Per-seat premium-interaction + chat limits | api.github.com/copilot_internal/user | estimated | yes | GitHub OAuth or PAT (read:user) |
| Cursor Plan usage in USD straight from Cursor's web API | cursor.com/api/usage-summary | exact | yes | Workos session token (auto-extracted) |
| Cursor Agent (CLI) Cursor's terminal agent — distinct from the editor | Local session logs | exact | no | none (local) |
| Factory (Droid) Plan tier + rolling 5h/7d/30d windows, lane-aware | factory.ai org subscription + local session settings | exact | partial | WorkOS browser session captured by FactoryLoginHelper |
| MiniMax Coding Plan remaining quota per model | minimax.io coding-plan endpoint | exact | yes | Coding Plan key sk-cp-… |
| Xiaomi MiMo Regional Token Plan credits + global PAYG routing | token-plan-{cn,sgp,ams}.xiaomimimo.com remains + api.xiaomimimo.com | exact | partial | Token Plan tp-… (pick cluster) or PAYG sk-… |
| Z.ai (GLM) Token + MCP limits from BigModel monitor API | api.z.ai monitor/usage/quota/limit | exact | yes | API key |
| Warp Request credits, refresh windows, bonus grants | app.warp.dev GraphQL | exact | yes | wk-… API key |
| Ollama Local models cost zero; Cloud routing optional | localhost:11434 + ollama.com (cloud) | exact | partial | none (local); Ollama Cloud API key (cloud) |
| Kimi (Moonshot) Weekly tokens + requests from kimi.com billing service | kimi.com BillingService | exact | yes | JWT bearer from kimi.com session or KIMI_AUTH_TOKEN |
| OpenRouter Per-call cost in USD straight from the vendor | openrouter.ai /v1/activity | exact | no | API key sk-or-… |
| Anthropic Console Org-wide messages usage report | api.anthropic.com /v1/organizations/usage_report/messages | estimated | partial | sk-ant-admin-… (org admin) |
| Aider Local analytics — tokens only, no vendor quota | ~/.aider/analytics.jsonl | exact | no | none |
| Forge Counts from ~/forge/.forge.db; routes through local gateway | Local SQLite | estimated | no | none |
| Antigravity Google Gemini-based advanced agent — reads ~/.gemini/antigravity-cli/history.jsonl | Local history JSONL + API metrics | exact | yes | none (local) or Google Gemini API key |
| DeepSeek Organization-wide usage and spend from the official platform | api.deepseek.com/v1 | exact | partial | API key (sk-…) |
| OpenCode Self-hosted coding agent — reads ~/.local/share/opencode/opencode.db | Local SQLite database | exact | yes | none (local) |
| Hermes BurnBar's native computer-use companion — reads ~/.hermes/sessions/*.jsonl | Local session JSONL | exact | no | none (local) |
| Pi Agent Pi Agent local workspaces — reads ~/.pi/sessions/*.jsonl | Local session JSONL | exact | no | none (local) |
| xAI (Grok) Grok chat and API usage from the developer management console | SuperGrok Event Log + xAI Management API | estimated | yes | xAI API key |
Vendors that don't expose data.
These get a presence in OpenBurnBar — Installed / Not installed — but no usage rows. The vendor has to expose data for us to surface it.
| Provider | Where the data comes from | Cost | Quota |
|---|---|---|---|
| Gemini CLI Per-session disk tokens exist, but Google AI Studio has no quota API. | Local session files only | unavailable | no |
| Cline Detection only; no usage API exposed | Install detection | unavailable | no |
| Roo Code Detection only | Install detection | unavailable | no |
| Kilo Code Detection only | Install detection | unavailable | no |
| Augment Detection only | Install detection | unavailable | no |
| Windsurf Detection only | Install detection | unavailable | no |
| Goose Detection only | Install detection | unavailable | no |
| OpenClaw Detection only | Install detection | unavailable | no |
Where it gets messy.
-
OpenAI & Anthropic admin keys
Both use org admin keys (
sk-…/sk-ant-admin-…), not regular API keys. Daily-granularity usage with ~24h vendor lag. We compute cost locally from a public pricing table — accurate for trends, not for tax audits. -
Cursor & Factory
Cursor's plan-usage and Factory's billing both rely on unofficial endpoints behind your authenticated session. Cursor's data is captured from the editor's local state DB; Factory uses a WorkOS browser session you complete via the in-app login helper. If the vendor changes shape, refresh breaks. We won't pretend it's covered by an SLA.
-
Z.ai endpoint
The BigModel
monitor/usage/quota/limitendpoint is undocumented. It works today and returns clean numbers; the vendor can change it tomorrow. -
Warp
Requires a spoofed
User-Agentupstream — Warp's edge limiter returns 429 otherwise. -
Gemini
Google AI Studio has no programmatic quota API. Per-session disk tokens exist on Gemini CLI; aggregate billing requires Vertex BigQuery exports, which we don't implement today.
-
Claude Code & Codex stay self-hosted
Their real data sources live in your local filesystem. A cloud function has no lawful way to read them without an agent on your Mac. Plus, Anthropic's policy disallows third-party hosting of Claude.ai credentials — and we agree with that line.
-
Antigravity & Hermes
Both are deeply integrated local components. Antigravity monitors the Gemini CLI history files (
history.jsonl) locally, while Hermes is the native automation companion scraping computer-use metrics offline. Neither leaks credential material or session data to any external server.
If your vendor is missing, file an issue.
We add providers when there's a real data source and a real user.