v0.5
Pharos Pharos

A colored light on the horizon, before you run onto the rocks.

Pharos keeps your Claude usage limits in view — quietly, from the GNOME top panel — so you're never surprised by "limit reached" mid-thought.

Runs entirely on your machine — no Pharos server, no account, and nothing about your usage leaves your computer. How your data is handled.

Pharos beacon, caution state W  Session 64%  Weekly 32%

64% of the session window, 32% of the weekly — the number past its threshold wears the caution gold.

Read the beacon

The beacon always shows your closest limit — shape and color both change, so the warning still reads in grayscale. Click it for exact percentages and reset times.

Tower with flame, untinted Tower with flame, untinted
Clear water below 50%

Sailing normally. The tower stands, the flame is lit.

Tower with short rays, gold
Light on the horizon from 50%

Half the window is spent. Worth a glance now and then.

Tower with full beam, ember
Full beam from 75%

Approaching the limit. Ease off, or check when it resets.

Tower with beam and exclamation badge, red
On the rocks from 90%

The limit is upon you. The reset time is in the menu.

All three thresholds are adjustable in Settings.

Install

Needs GNOME Shell 46, 47 or 48, and Claude Code signed in on this machine — Pharos reads the sign-in Claude Code already has.

  1. Get the beacon

    Open a terminal and paste this — it downloads the latest release and installs it for your user.

    curl -LO https://github.com/aymenkrifa/Pharos/releases/latest/download/pharos@aymenkrifa.github.io.shell-extension.zip
    gnome-extensions install pharos@aymenkrifa.github.io.shell-extension.zip

    Prefer source? Clone the repo and run ./install.sh.

  2. Reload GNOME Shell

    Log out and back in. That works whichever session you are running.

    On X11 you can skip the logout: press Alt + F2, type r, press Enter. Wayland has no in-place restart — there the shell is the display server itself, so a logout is the only way.

  3. Light the beacon

    Turn Pharos on — once is enough. Do it after the reload: GNOME Shell only scans for extensions at startup, so enabling one it has not seen yet does nothing at all, without an error.

    gnome-extensions enable pharos@aymenkrifa.github.io

    …or flip the switch in the Extensions app. The tower appears in your top panel right away.

Make it yours

Your plan decides which limits exist: a 5-hour session window, a weekly window, and on some plans a weekly window per model. Pharos finds them all and lists them in the menu. Settings — in the Pharos menu — controls what reaches the panel.

Panel metrics

Two switches per limit: Show puts its number on the panel, Tint lets it color the beacon. By default everything is shown and the beacon follows your worst number. Only care about one window? Turn the rest off — they're still one click away in the menu.

Everything shown
Beacon, on the rocks Session 64%  Weekly 92%
Session only
Beacon, caution Session 64%
Number style

Pick how the panel writes its numbers. Full names (Session 10%  Weekly 50%  Fable 82%) is the default; two compact styles are also on offer. Every style still colors each number on its own.

Full names
Beacon, full beam Session 10%  Weekly 50%  Fable 82%
Plain numbers
Beacon, full beam 10/50/82
Letter hints
Beacon, full beam s10 w50 F82
Thresholds

Set the percentages where the beacon steps up a state — caution, full beam, on the rocks. Defaults are 50 / 75 / 90.

Clear water
Beacon, clear water Session 42%
Caution, from 50
Beacon, caution Session 64%
Full beam, from 75
Beacon, full beam Session 82%
On the rocks, from 90
Beacon, on the rocks Session 96%
Background refresh

How often Pharos checks usage while the menu is closed, so the beacon stays current. Set it to 0 to check only when you open the menu. Readings older than a minute get an age tag, like (12m), so you always know how fresh the number is.

Just refreshed
Beacon, caution Session 64%
Twelve minutes on
Beacon, caution Session 64% (12m)

More than one account

Work and personal? Open Settings → Accounts from the Pharos menu and add each one — a label and the path to its credentials file. The menu grows a switcher, and the panel gets a label so you always know which account you're watching.

One account needs no setup at all: Pharos finds Claude Code's standard sign-in on its own and keeps it fresh.

Panel label

Choose how the active account's name sits next to the beacon: its full label, just the first letter, or hidden entirely. The menu switcher always spells it out in full either way.

Full label
Beacon, caution Work  Session 64%
First letter
Beacon, caution W  Session 64%
Hidden
Beacon, caution Session 64%

Your data stays yours

Pharos runs entirely on your machine. It reuses the sign-in Claude Code already saved, asks Anthropic for your usage numbers, and shows them in the panel. That's the whole story — no Pharos server, no account to create, nothing to opt out of.

Two URLs, both Anthropic's — check for yourself

Pharos's entire network layer is one short file with exactly two addresses declared at the top: api.anthropic.com/api/oauth/usage (your numbers) and platform.claude.com/v1/oauth/token (sign-in renewal — the same endpoint Claude Code uses). No middle-man server, no analytics, no third-party anything. Don't take our word for it — read the file; it's two hundred lines.

Your password never touches Pharos

Pharos never handles your login — it reads the token Claude Code saved after you signed in with Anthropic. It couldn't see your password if it tried.

Only a token, only on this computer

The one thing Pharos reads is that same token, in the same place (~/.claude), which only your user account can open. And to be fully upfront about the one write it does: when Pharos renews the sign-in, it saves the renewed token back to that same file — same place, same permissions — so Claude Code stays signed in too. No new secret store, no copy sent anywhere.

Usage numbers, nothing else

Pharos calls a single usage endpoint — percentages and reset times. It has no access to your conversations or anything you send to Claude.

Read-only mode, if you'd rather

Prefer that Pharos never renew or write anything at all? Turn off Renew the sign-in automatically in Settings. Pharos then only ever performs the read-only usage request — no token endpoint, not a byte written to disk. The trade-off: when the sign-in expires, the panel waits until you next use Claude Code.

And it's free software, GPL-2.0-or-later — every line is on GitHub to read for yourself.

If the menu ever says "Sign-in expired" — your saved sign-in has fully expired (or read-only mode is on and it lapsed). Open Claude Code, sign in once, and Pharos carries on at the next refresh.