Refill

macOS menu-bar app

Your AI tanks, watched. Refilled? You'll know.

Refill watches every AI limit you burn through and pings you the second one resets. Lights, phone, Discord, whatever fits. Drip keeps watch.

macOS 14+ · free · no account

Sources

Every AI, one tank.

No more tab-hopping to see who is dry. Each source gets its own gauge in the menu bar.

Claude multi-account

Reads every Claude Code login on your Mac: the default ~/.claude, any ~/.claude-*, plus dirs you add. 5-hour session, weekly, Opus and Sonnet windows, each with its own tank. Expired tokens get refreshed for you.

work
personal
side-hustle

Codex

Live usage from the ChatGPT login already in each Codex home. An old session log is only a fallback.

GitHub Copilot

Premium requests and chat quota, read with your GitHub CLI login. Resets monthly.

Cursor

Monthly usage from the Cursor app you already have signed in.

Gemini CLI

Per-model quota for your Gemini CLI login, Pro and Flash tracked separately.

Signals

Know the second it refills.

A limit resets. Refill notices, even if you were offline when it happened. Then it gets loud, in whatever way you like.

  1. Notch pop-up

    Drip slides down from the top of your screen.

  2. Native notification

    Short, plain words from Drip.

  3. Sound

    A chime you can actually tell apart from Slack.

  4. Warnings too

    Nudges at 80% and 95%, and a dry-tank alert at 100%.

Integrations

Wire it to anything.

Each integration has its own Test button and per-event toggles. Reset, warning, empty: pick who hears what.

Phone

  • ntfyA push to your phone on reset, warning or empty.
  • PushoverA push to your phone on reset, warning or empty.
  • TelegramA message from your bot on reset, warning or empty.

Chat

  • DiscordA message in your channel when a tank changes.
  • SlackA message in your channel when a tank changes.

Lights

  • Home AssistantGreen for refilled, orange for warming, red for dry.
  • HueGreen for refilled, orange for warming, red for dry.
  • WLEDGreen for refilled, orange for warming, red for dry.

Anything

  • WebhookAny URL, custom headers, templates with {{title}} {{color}} {{json}}.
  • Shell hookRuns ~/.config/refill/on-reset with the event JSON on stdin.
  • ShortcutsFires a Shortcut, or listen for the distributed notification.
  • WidgetsmacOS widgets for the tanks, plus a local dashboard. Turn on Wi-Fi sharing for your phone.

Burn rate

See how fast you're drinking it.

A little chart per tank shows your pace against the clock, so you know whether the refactor fits before the reset. Or whether Drip should start to worry.

Pace34%/h
Used78%
Empty at14:32
0%100%0h2h4h5h resetnow 13:52empty at 14:32
Dashed grey is an even pace. Amber is where you're headed.

Private by design

Your Mac.
Your tanks.
Nobody else.

Everything local

Usage, history and settings live on your Mac in ~/.config/refill.

No account, no telemetry

Nothing to sign up for and no Refill server. No analytics, no crash pings, no "anonymous" stats.

Credentials stay put

Tokens never leave your Mac. Refill only talks to the providers you use (Anthropic, GitHub, Cursor, Google) and the integrations you add yourself. Because those endpoints are undocumented, they can change.

Read the full privacy policy

FAQ

Questions, answered short.

Partly. A known reset time is tracked locally, so a scheduled reset still fires. Fresh usage numbers need the provider's API.

Quiet hours mute the sound between the times you set. Lights and the shell hook still fire. Phone and chat pushes stay on unless you mute those too.

Refill reads usage endpoints that are undocumented and may change or be restricted, the same ones your own tools use, with your own login, at a polite pace. It doesn't send prompts or spend your quota.

macOS 14 Sonoma and newer.

Yes. It costs nothing to use. It is open source under the MIT License. The code is on GitHub.

No. It's an independent tool. Those names belong to their owners.

A battery icon with a little personality. Drip is a small glass tank, so you can see what is left.

Open an issue on GitHub Issues. That is the only support channel.

Get Refill.

Lives in your menu bar. Costs nothing. Judges nobody.

macOS 14+ · free & open source · Refill.zip also available

Homebrew

brew install --cask stepanblaha/tap/refill

One line

curl -fsSL https://raw.githubusercontent.com/StepanBlaha/Refill/main/scripts/install.sh | bash

It isn't notarized. Homebrew and the one-line installer clear the quarantine flag for you.

First launch from the disk image

Move Refill to Applications and open it. macOS will block it once. Go to System Settings → Privacy & Security and click Open Anyway. If this release has no zip yet, use the disk image.

Or clear the quarantine flag from Terminal:

xattr -dr com.apple.quarantine /Applications/Refill.app