OpenBalance — OpenRouter credit balance on your Stream Deck

Every AI request costs something. OpenBalance keeps the running total where you can actually see it — on the key you're already looking at. Credit balance, yesterday's spend trend, your top models, a 30-day chart. No browser tab, no subscription, no backend. One Management key and it's live.

Four tiles, one key

Balance

Credit Balance

Remaining credits, credits used, or % utilised — each with a period picker: last 7 days, last 30 days, or all time. Daily spend trend shown below the number.

/api/v1/credits + /activity

Models

Top Models

Your top 2 AI models by 30-day spend, 2 at a time. Automatically cycles through up to 6 models every minute.

/api/v1/activity

Monthly Spend

Monthly Spend

Your 30-day rolling total as the hero number, with a 7-bar chart of daily spending so you can see the pattern at a glance.

/api/v1/activity

Spike Alert

Spike Alert

Icon and label side-by-side for instant glanceability. Green ✓ Normal (bold, easy to read), amber ⚠ Spike, red ⚠ Critical — each shows the top offending model and its spend ratio. Tap to acknowledge.

/api/v1/credits + /activity

What it does

  • Three balance display modes with period picker — Remaining credits (your current balance), Credits used (last 7 days / 30 days / all time), or Percent utilised (used ÷ total purchased, same periods). Daily spend trend with a colour-coded arrow shown below the number: green = spent less than yesterday, red = spent more.
  • Spike Alert tile — monitors your spend rate every 15 minutes and compares it to your daily average. The alert icon and state label (Normal / Spike / Critical) are shown side-by-side for instant recognition at a glance. Green Normal means you're within range. Amber Spike means you've crossed your threshold (default 3×). Red Critical means 2× that threshold. The top model driving the spike and the spend ratio are shown in large, readable text below. Tap to acknowledge; next poll re-evaluates honestly.
  • No backend, no subscription — reads directly from OpenRouter's API over HTTPS. Nothing passes through Microdash servers. Your key never leaves your machine except to talk to OpenRouter.
  • Tap to open OpenRouter — Balance tile opens your credits page, Top Models opens activity, Monthly Spend opens the activity feed.
  • Hold to force-refresh — hold any key for 2 seconds to poll immediately. No need to wait for the 15-minute cycle.
  • Light and Dark themes — Light for bright setups, Dark for the classic OpenRouter aesthetic. Pick per tile in the Property Inspector.
  • One setup, three tiles — paste your Management key once in any Property Inspector. All three actions share it automatically.

Getting set up

You need a Management API key, not an inference key

OpenRouter has two types of API keys. Inference keys (the ones you paste into AI apps) let you call AI models — but they can't read account balance or activity data. Management keys have the opposite permissions: they can read your account data but can't make AI calls.

This separation is intentional and a good security practice. If someone finds your inference key, they still can't see your billing data. OpenBalance uses a Management key because that's the only way to access the balance and spend endpoints.

  1. Open openrouter.ai/settings/keys in your browser.
  2. Click Create key. Give it a name like Stream Deck.
  3. Enable Management API access — this is the checkbox that makes it a Management key. Without it, the plugin will show a "Not a Management key" error.
  4. Click Create. Copy the key shown (it starts with sk-or-v1-…).
  5. In Stream Deck, drag any OpenBalance tile to a key. Open its Property Inspector, paste the key, and click Connect.
  6. Done. Add the other two tiles if you want them — they connect automatically using the same key.

Good to know

Key shows "Not a Management key"

The key you pasted is an inference key, not a Management key. Go to openrouter.ai/settings/keys, create a new key, and make sure to check Management API access before clicking Create. Inference keys will always get a 403 from the balance and activity endpoints — this is how OpenRouter works, not a bug in the plugin.

Key shows "Key rejected" or "Invalid key"

The key may have been revoked, expired, or mistyped. Go to openrouter.ai/settings/keys to confirm the key still exists. If it's been revoked, create a new Management key and reconnect from the Property Inspector using Disconnect → paste new key → Connect.

Key shows "Offline" or "Can't reach OpenRouter"

OpenBalance couldn't reach openrouter.ai. Check your internet connection. If you're on a VPN or corporate network, make sure outbound HTTPS to openrouter.ai is allowed. Hold the key to retry immediately once you're back online.

Top Models shows "No activity yet"

Your account has no activity in the last 30 days, or all requests were made through BYOK (Bring Your Own Key) which may not appear in the standard activity feed. If you've been using OpenRouter recently and this persists, check that your Management key has permission to read activity data.

Balance doesn't match what I see on openrouter.ai

The balance tile reads GET /api/v1/credits which returns total_credits and total_usage. The remaining balance is total_credits − total_usage. This matches the number shown on openrouter.ai/settings/credits. If there's a discrepancy, hold the key to force a fresh fetch — the cached data may be up to 15 minutes old.

Spike Alert shows "Preparing…" when I add the tile

This is normal. The tile shows "Preparing…" while it fetches data on first load, then transitions to Normal, Spike, or Critical once the poll completes. If it stays on Preparing for more than a minute, hold the key for 2 seconds to force a refresh or check your key in the Property Inspector.

Spike Alert shows "Gathering baseline…" — what does that mean?

The Spike Alert needs at least 3 days of spend history to compute a meaningful daily average. If your account is new, or you haven't used OpenRouter in the past week, the tile will show this state until enough data is available. It activates automatically once the baseline is established.

Can I use one Management key for multiple accounts?

A Management key is scoped to a single OpenRouter account. If you have multiple accounts, you'd need to create a Management key in each and… we're working on per-tile key support for a future version. For now, you'll need to reconnect the plugin when switching between accounts.

Is my key stored securely?

Your Management key is stored in Stream Deck's global settings on your local machine — the same place other Stream Deck plugins store credentials. It is only ever sent directly to OpenRouter's API over HTTPS. It is never logged, never sent to Microdash, and never included in Stream Deck profile exports. The Property Inspector never receives the full key after initial setup — it only sees hasKey: true and the last 4 characters for confirmation.

Why 15-minute refresh?

OpenRouter's activity endpoint can be slow, and polling more frequently would add load for no real benefit — your credit balance doesn't change by the second. Hold any key for 2 seconds to get an immediate refresh whenever you need it.

Get it on the Marketplace →