QuotaPulse
Know when your AI is back.
You hit the limit of your AI coding tool, and the question is always the same: when can I go on? QuotaPulse puts the answer on a Stream Deck key, for Claude Code, Codex CLI, OpenCode, Gemini CLI and Qwen Code. Which one is blocked, the countdown to its reset, and, where a tool writes it down, how close you are before it happens.
One key, every AI tool. macOS.
The listing is on its way, and this button turns into a link the moment Elgato publishes it.
One key for every AI tool
The first key tells the whole story: a Codex window fills up, turns amber near the limit, runs out and counts down to its reset, says DUE once the reset has passed, and turns green again when a request goes through. Next to it, Claude counts down in real time, Token Burn burns, and the Infobar keeps the most urgent limit in view.
See it coming
Where a tool records how much of its usage window is used (Codex does, for its 5-hour and weekly windows), the ring fills by that share, with the window under the number. Once the window is used up, the key shows the wait instead. Tools that record no share, like Claude Code, show the countdown when they are blocked and READY when they are not.
Try it
The plugin's own renderer, in your browser. Pick a tool and a look, drag the share used, or set the key to blocked, due or ready.
Tool
Look
State
At 90% the key turns amber; at 100% the window is used up and the key counts down to the reset.
The tools it watches
QuotaPulse reads each tool's own records on your Mac, and only the parts it needs.
- Claude Code
- Blocked and the reset time it gives; READY once a request goes through. Tokens for Token Burn.
- Codex CLI
- The share used of its 5-hour and weekly windows, with their resets. Tokens.
- OpenCode
- Rate limits per provider (Anthropic, OpenAI and others), and successful requests. Tokens.
- Gemini CLI
- Quota and rate-limit errors, and the turns after them. Tokens where the log has them.
- Qwen Code
- Quota and rate-limit errors, and the turns after them. Tokens where the log has them.
Token Burn
An optional second key: the tokens used in a window you choose (30 minutes to 30 days), the live pace, and the last half hour as a flame, bars, a line, a gauge or a heartbeat that beats faster as you burn and flatlines while you are blocked.
Honest about what it knows
A reset time only when a tool gave one
QuotaPulse never guesses a deadline. If a tool said “resets 2:50 am”, that is confirmed; if it only said “retry in 120 seconds”, that is derived. If it said nothing, the key says so.
DUE until it is proven
A reset time that has passed is not proof that access is back. The key says DUE until a successful request is actually seen.
Nothing leaves your Mac
It reads timestamps, status fields and error messages from the tools' logs. No prompts, no tool output, no credentials or API keys, and no network.
Requirements
- Stream Deck app
- 7.6 or newer
- Platform
- macOS 12 or newer
- Devices
- Every Stream Deck with keys; the Infobar action needs a Stream Deck Neo
- Tools
- Claude Code, Codex CLI, OpenCode, Gemini CLI or Qwen Code, used on this Mac
- Internet
- Never. It does not use the network.
- Permissions
- None
What it reads
The tools' own logs and databases in your home folder, read only: timestamps, models, token counts, status fields and the text of limit messages. Its own cache, in ~/.quotapulse, holds only what the keys show. Nothing is sent anywhere.
Version
v1.0.0
First release. The AI Limits key for Claude Code, Codex CLI, OpenCode, Gemini CLI and Qwen Code, with the share used where a tool records it; Token Burn; the Neo Infobar; ring, digital and minimal looks.
Support
Does a tool's limit show differently from what the tool itself says? Tell us, and send what the tool printed.
- Which tool, and what it said about the limit
- What the key showed
- Your macOS and Stream Deck app versions