Token Police 中文
Free · Open source · Chrome extension

Know how much AI coding quota you have left — at a glance.

One side panel shows your remaining usage for Claude Code, Codex, Cursor, Grok, Grok Bot and Gemini — with reset times, burn rate and low-quota alerts. No account linking, no API keys, and nothing leaves your browser. And a little hair mascot that loses hair as you burn quota and makes you stand up now and then.

Latest release

Works in Chrome and other Chromium browsers (Edge, Brave, Arc). The button always points to the newest build on GitHub — you never download an outdated version.

15%Toolbar badge shows your lowest quota
The side panel showing remaining quota for six coding agents, with the hair mascot floating over the cards

The real panel, with sample data.

Tracks the usage pages you already use
Claude Code Codex Grok Cursor Grok Bot Gemini
What it does

Stop tab-hopping to check six different usage pages.

Every AI coding tool hides its quota in a different place. This extension reads them all and puts the numbers where you can see them.

All quotas, one click

Weekly and short-term limits for all six agents, plus exactly when each one resets. Pick which agents to track in ⚙.

Burn rate & 7-day trend

After a few hours of history it estimates how fast you're spending and warns when you'll run out before the next reset. Each card draws a sparkline.

Badge you can't miss

The toolbar icon always shows your lowest remaining percentage in green, amber or red — no need to open the panel at all.

Low-quota alerts

Desktop notification when any tracked agent drops below 15%, and again below 5%. Turn it off in settings if you'd rather not.

Quiet hourly auto-check

Once an hour it quietly re-reads your usage pages in background tabs without stealing focus. Hit Refresh any time for a guaranteed update.

Private by design

No API keys, no account linking. It reads the numbers off pages you're already signed into and keeps everything in your browser's local storage.

New in v1.3 · Take breaks too

A hair mascot that thins while you sit, and makes you stretch.

Quota isn't the only thing that runs out while you vibe-code. The panel now comes with a small companion that keeps an eye on you as well.

The panel with the hair mascot floating over the quota cards, showing 51% hair left
Hair falls over the sit clock; remaining quota is a ceiling.
Break time: the quota cards are frosted over and the mascot offers three short activities with a Done button
Break time: cards frost over until you finish one activity.
  • Hair falls while you sit. After a stretch it grows back to full, then thins over 2 hours — or 1 hour if you are burning hard. Remaining quota is a ceiling. Drag it anywhere, or let it wander.
  • Every 2 hours it asks you to move (every hour if an agent burned more than 10% in that window). A frosted veil covers the cards and 2–3 random stretch or rest activities appear, drawn from a pool of 100.
  • Pick one, go do it, tap Done. The veil lifts, the hair grows back, and the numbers are readable again.
  • Move reminder (on by default, switch in ⚙): a desktop nudge when an agent burns more than 10% of its quota within 2 hours, at most once every 2 hours per agent. It's a nudge, not a lock — an extension can't stop your terminal.
Not your thing? Both the mascot and the move reminder are switches in ⚙. Turn them off and the panel is back to plain numbers.
Install in 2 minutes

No Chrome Web Store, no build step — just a folder.

The extension ships as a plain .zip. You unzip it once and tell Chrome where the folder is.

Download the .zip

Use the Download button on this page. It is always the newest release.

Unzip it somewhere permanent

Double-click on macOS, or right-click → Extract All… on Windows. You get a folder containing manifest.json. Keep it out of Downloads — Chrome loads the extension from this folder every time it starts.

Open chrome://extensions and turn on Developer mode

Paste the address into Chrome's address bar. The Developer mode toggle is in the top-right corner.

Click “Load unpacked” and pick the folder

Select the unzipped folder (the one with manifest.json inside). The extension icon appears in the toolbar — pin it if you like.

Click the icon, then Refresh

The dashboard opens in Chrome's side panel. Press Refresh to fetch your numbers — a few tabs may flash open and close while it reads each usage page. Switch to 中文 in the header if you prefer.

Why “Developer mode”? Chrome calls any extension loaded from a folder a “developer” extension. Nothing here needs coding — it's just how Chrome installs extensions outside its store.

Steps 3 and 4, as they look in Chrome (loops every 12 s):

Recorded in a real Chrome. Click the video to view it full-screen. The folder picker will be your operating system's own dialog, so it looks a little different.
Staying up to date

The panel tells you when there's a newer version.

  • Once a day the extension asks GitHub what the newest release is. When there is one, the version line at the bottom of the panel turns into a “New version available — download” link.
  • To update: download the .zip again, replace the contents of your extension folder, then press the ↻ reload button on the extension's card in chrome://extensions. Your settings and history stay.
  • This page and the Download button are synced with GitHub too: the version shown above is fetched live from the latest release.
Privacy

Your usage data never leaves your browser.

  • No server. Numbers are read from each product's own usage page and stored in chrome.storage.local.
  • No accounts, no keys. It only works on pages you're already logged into. If you're signed out, the card says so and links you to that page.
  • One optional request. The daily update check asks GitHub for the latest version number and sends nothing about you. You can turn it off in ⚙.
FAQ

Questions people ask

Why isn't it on the Chrome Web Store?

It's a small open-source side project that reads other products' pages, and store review for that kind of extension is slow and unpredictable. Shipping a .zip from GitHub means every fix reaches you the same day. You can inspect every file in the folder — it's plain JavaScript.

Is it safe? What can it access?

It only has permission for the five usage-page domains (claude.ai, chatgpt.com, grok.com, cursor.com, gemini.google.com), and it only reads the numbers displayed there. It cannot see other sites, and it makes no network requests apart from the optional daily version check.

Which browsers work?

Google Chrome, plus any Chromium-based browser with a side panel: Edge, Brave, Arc, Vivaldi. Firefox and Safari are not supported.

A card says it couldn't read the page.

Almost always you're signed out of that product. Click the link on the card, sign in, then press Refresh. Some pages (Cursor, Grok) won't render in a background tab, so the hourly auto-check keeps their last value — Refresh briefly brings them to the front for a guaranteed read.

I don't use one of the agents.

Open ⚙ in the panel and untick it. Unticked agents are skipped by Refresh and hidden from the dashboard and the badge.

Can I turn off the hair mascot?

Yes. Open ⚙ in the panel and untick "Hair mascot". The break-time veil goes with it. The move reminder is a separate switch in the same menu, on by default.

Can I get the very latest unreleased code?

Yes — grab the source zip of the main branch. It installs the same way, just with a few extra development files in the folder.

Ready? It's free.

Download, unzip, load the folder. Two minutes from now you'll know exactly how much quota you have left.