Skip to content
OpenLimiter Pro is here. Everything you can see is free. Alerts, history, phone access, extra accounts and spend tracking above $100 are Pro.

Track usage across all your LLMs. Real time. Desktop, mobile, and terminal.

Read your AI subscription quota locally. Give agents bounded budget state and advice. Open source, local first, cross platform.

Every plan on one screen

A card per provider: the meter, how fresh that reading is, and when the window resets. Every number is read from your own machine, and what you see in this capture is exactly what installs.

The OpenLimiter desktop application, showing one card per provider with a meter, a percentage, a freshness state and a reset countdown, over synthetic demo data.The OpenLimiter desktop application, showing one card per provider with a meter, a percentage, a freshness state and a reset countdown, over synthetic demo data.

The packaged desktop application, captured on a real machine against the project's synthetic demo fixtures. No account, credential or real usage figure appears in it.

Demo data

When you step away from the desk, the numbers are still on your own disk.

Nothing had to be uploaded to make that true.

What it reads, where it lands

No testimonials, no avatar wall, no user count. Every card below either ships a connector in this release or says plainly that it does not have one yet, so the wall itself is a status report. Connecting a provider normally happens in the desktop application; the surfaces below are the developer paths, under Advanced, for anyone who wants them directly.

Claude

Parses the rate limit block Claude Code already hands to your statusline command. It asks nothing of Anthropic on its own.

OpenRouter

Parses the credits shape OpenRouter documents. The key belongs in your operating system credential store, never in a file.

Codex

Parses the usage shape the Codex tooling produces. The shape is internal, so it can change without notice, and it fails closed when it does.

Antigravity

Parses the quota shape the Antigravity tooling produces. Internal too, marked as such, and never repaired or rewritten.

OpenCode

Describes the usage view behind an existing session. It carries the highest automation risk of the nine and stops the moment that session expires.

Grok Build

Reads the billing windows exposed to the installed Grok session and fails closed when the shape changes.

Gemini CLI

Reads the quota response through the Gemini CLI session already on this device.

Kimi

Reads the usage windows exposed to the installed Kimi session and fails closed when the shape changes.

Claude Code statusline

One line beside your prompt: the worst meter per provider with a reason code in front. It falls back to the cache and never blocks the tool that called it.

Claude Code prompt hook

A bounded block on prompt submit, fenced in an explicit untrusted data boundary. When every provider is unknown it injects nothing at all.

Any shell

The whole snapshot as a table for you or as JSON for a script, read straight from the local cache with no daemon in the middle. Local mode has zero telemetry and no account; when a provider is connected through the desktop application, that connection talks only to the provider's own endpoint, never to OpenLimiter.

Any tool that can write a file

One generic command takes a payload for any connector, so a provider without an integration can still be fed from a script you control.

Continuous integration

Export the cache as JSON and assert on it in a pipeline. Every release is tested on Windows and Linux on every push.

Your own front end

The cache is a plain document on your disk with a versioned schema. Read it and build whatever view you want.

Works with your tools

One meter over every subscription you already hold. Connect a provider from the desktop application, or use manual entry or ingest under Advanced. Local mode has zero telemetry and no account. Pro sends only selected bounded quota snapshots to the hosted service after you sign in.

Ships today

Nine connectors ship in this release

Claude CodeConnector
OpenAI CodexConnector
Google AntigravityConnector
Gemini CLIConnector
Grok BuildConnector
KimiConnector
OpenCodeConnector
OpenRouterConnector

What each one actually does

A parser is not a connection

  • ClaudeLocal CLI
    Parser
    Ready
    Reader
    Ready
    Auth
    Not required
    Verification
    Unverified

    Claude Code writes a rate limit block to its statusline command.

  • OpenRouterConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    The credits endpoint is documented and its response parses.

  • CodexConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    An internal payload shape, which can change without notice.

  • AntigravityConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    An internal payload shape, which can change without notice.

  • OpenCodeConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    A usage view behind a session you already hold.

  • Gemini CLIConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    Model quota returned through the installed Gemini CLI session.

  • Grok BuildConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    Subscription windows returned through the installed Grok session.

  • KimiConnected
    Parser
    Ready
    Reader
    Ready
    Auth
    Ready
    Verification
    Unverified

    Subscription windows returned through the installed Kimi session.

Reader means something in OpenLimiter goes and fetches the number. Auth means a credential is held and used. Every cell above is read at build time from the reviewed provider registry rather than written into this page, so a stage cannot be claimed here without a human changing a spec first. The registry describes 12 further products with no connector at all, which is why they are not rows here. A row on this page is only ever called Connected once a live reader for it is confirmed, never on the strength of a parser alone.

Every connector ships marked UNVERIFIED, the honest default: no verifier has confirmed a shape against a live account yet. Three read interfaces internal to somebody else's tooling, and when one changes, that provider fails closed to unknown rather than guessing. Every connector and its real state.

Product names, logos, brands, and other trademarks featured or referred to within OpenLimiter are the property of their respective trademark holders. These trademark holders are not affiliated with OpenLimiter, our products, or our website. They do not sponsor or endorse OpenLimiter. Use of them does not imply any affiliation with or endorsement by them.

Runs where you work

Windows, macOS and Linux, from a terminal, a statusline, a prompt hook or a script, and in any browser through the web app. One local cache, read by whatever you point at it.

The web app on a phone, showing the overall verdict and routing recommendation at the top, then one card per provider below it, each with a meter bar, a percentage, a freshness state and a reset countdown.The web app on a phone, showing the overall verdict and routing recommendation at the top, then one card per provider below it, each with a meter bar, a percentage, a freshness state and a reset countdown.
MetersDemo data

Screenshots of the web app at phone size, against the project's synthetic fixtures, declared here in words rather than stamped over the pictures. The same reading opens in the web app and installs to a home screen. Native mobile applications are planned and not built.

Web app

live

A browser is the one surface every device already has. This one runs the same engine as the command line tool, parsed entirely in the tab, with nothing to install before it works. Sign in and it shows the percentages your own devices synced; a phone paired by QR reads the same rows.

The same engine, in the tab

Not a second implementation. The core, the connectors and the adapter are mirrored from the command line tool into the browser bundle, so a reading here and a reading in a terminal cannot disagree.

Sign in, or hand it a document

Signed in, it shows the bounded percentages your own devices synced. You can also paste or drop what openlimiter export prints, and that parsing happens in the tab: a document you hand it is never uploaded.

Installs, and works offline

Add it to a phone or desktop home screen and it opens like an application. A service worker keeps it working with no network at all, because it never needed one.

Both of those are written up in full: what an agent is told and every command it ships with.

FAQ

What actually leaves my machine?
In local mode, nothing leaves for OpenLimiter. Provider connections talk only to that provider through a fixed allowlist, and credentials stay in the operating system credential store. When you sign in, selected bounded quota snapshots go to the hosted service so your own devices can see them, and Pro adds alerts, history, forecasts and agent routing on top of those. Provider credentials never go there.
Is it safe to point at my tools?
OpenLimiter opens what your installed tools already store, read only, and never rewrites, repairs or migrates them. Every parser keeps bounded numbers and timestamps and discards provider text before anything reaches your agent.
Can the prompt hook break my session?
No. The hook reads the local cache, makes no network request, injects nothing when every provider is unknown, and exits 0 whatever happens. The statusline behaves the same way: if input is absent or malformed it falls back to the cache and reports unknown.
Which providers work today?
Nine connectors ship: Claude through the native statusline payload, OpenRouter through its documented shape, Codex, Antigravity, Gemini CLI, Grok and Kimi through internal shapes that may break, OpenCode through an existing session that may break, and manual entry. Every one is marked UNVERIFIED until an explicit verifier exists.
Do I need an API key?
Not to start. The Claude path reads a payload Claude Code already hands your statusline, and the manual path needs nothing at all. OpenRouter is the one connector that expects a key of your own, and that key belongs in your operating system credential store.
Does it route my requests for me?
No, and it is not going to. OpenLimiter provides advice. It does not route requests automatically, does not bypass a limit, and does not touch how your agent authenticates. The decision stays with you.
What happens when a connector breaks?
Unofficial shapes change without notice. When one does, parsing fails closed: that provider returns to unknown, the other providers are unaffected, and nothing invents a number to fill the gap. Unknown never becomes zero.
Is there a desktop or phone app?
The desktop tray application ships for Windows, macOS and Linux. Windows and macOS are unsigned, so each asks once: on Windows, SmartScreen, choose More info then Run anyway; on macOS, open System Settings, go to Privacy and Security, and choose Open Anyway. macOS ships as one universal disk image and stays out of automatic updates until signed and notarised builds exist. On a phone, the web app opens in the browser and installs to a home screen, and the desktop application pairs a phone by QR code so it can read your quota. Native iOS and Android applications are not built, nothing is in a store, and there is no waiting list. The download page lists every platform with its real state.
Is it free?
Everything you can see is free and always will be, under Apache 2.0. The OpenLimiter account is free. Alerts, ninety days of history, phone access, more than one account per provider and spend tracking above $100 a calendar month for each source are Pro. Only usage percentages sync, never keys or credentials.
What is OpenLimiter Pro?
OpenLimiter Pro is $5 a month or $50 a year, with the first 30 days free and no card required. It adds five things: every alert, as a desktop toast, an email and a phone push at 60, 80 and 90 percent and on reset; ninety days of hosted history with a forecast; more than one account per provider; one Pro accent or density preset; and API spend meters in a labelled beta above the free ceiling of $100 a calendar month for each source. Three of those are hosted services and two are switches in the local application. A full refund is available on request within 14 days of any charge.
Do I get alerts when a window fills up?
Yes, with Pro. Every alert is a Pro alert: a desktop notification, an email and a phone push, at 60, 80 and 90 percent of a window and again when that window resets. Those four moments are the product rather than a setting. A push payload never carries usage detail, so a locked screen never shows one.
Can I see my quota on my phone?
Yes, with Pro. The desktop application shows a QR code that lives for two minutes, you scan it with the phone, and you approve the pairing back on the desktop. The phone then holds a read only token: it can never change the account or upload anything, and revoking that device from the desktop or from your account page ends its access at once.
How much API spend does the free plan track?
Up to $100 a calendar month for each source, and Pro goes above that. API spend meters are a labelled beta that reads the provider's own billing surface, so they need an organisation admin or management key and a project key will not work. Moonshot is read as a balance rather than as spend, in three separate figures, and is never turned into a monthly total, a forecast or a budget alert.

Pricing

Everything you can see is free. Alerts, history, phone access, extra accounts and spend tracking above $100 are Pro.

OpenLimiter

available

Freeforever, and in the licence

The local product and the account are free. Sync is on from the moment you sign in, because moving your own percentages between your own devices is what signing in is for.

  • Every supported provider
  • Sync across your own devices, on from your first sign in
  • One active account per provider, and Pro raises that
  • No usage limit and no charge for the account. Everything you can see is free
Open source under Apache 2.0, so this cannot be taken away later. The licence is the promise.

OpenLimiter Pro

available

$5a month

or $50 a year

Five Pro features. Three are hosted services and two are switches in the local application.

  • Every alert: a desktop toast, an email and a phone push at 60, 80 and 90 percent of a window, and when it resets
  • One Pro accent or density preset, applied in the local application
  • More than one account per provider, unlocked in the local application
  • API spend meters, in beta. Free tracks up to $100 a calendar month for each source and Pro goes above it
  • Ninety days of hosted history, with a forecast to the day a window runs out

Spend meters need an organisation admin key. Full refund within 14 days, cancel any time in the Stripe portal. Sold by Lucas Costa, payments by Stripe. Full conditions

Start 30 days free

Everything you can see is free. Alerts, history, phone access, extra accounts and spend tracking above $100 are Pro.

OpenLimiter is an independent open source project for people who hold several AI coding subscriptions at once and would rather know which one still has room than find out the hard way, mid task.

It is built around three commitments that are easy to state and awkward to keep. If it saves you an afternoon, sponsorship is the best way to keep the connectors working as the shapes underneath them shift. Reporting a connector that broke is worth just as much.

It runs on your machine

Local mode has zero telemetry. The account is free. Provider connections talk only to that provider through a fixed allowlist, with credentials held by the operating system. Only usage percentages sync, and sync can be turned off.

It reports to nobody

The app reports to nobody. It sends no telemetry in any mode. This website counts page views without cookies, which is a count of pages rather than a profile of you. Pro is optional and receives selected bounded quota snapshots only after sign in, never provider credentials.

Unknown stays unknown

A missing number never becomes a confident one. When a shape changes underneath a connector, that provider fails closed.