Every Claude Code session becomes an oven in your menu bar. See what is cooking, what is blocked, what is finished, and how full each context window is.
Blocked 路 finished 路 compacting 路 cooking 路 still running
macOS, with Claude Code already set up.
curl -fsSL https://agenteria.henrywhittle.com/install.sh | sh
Prefer to read it first? It is 30 lines. Or do it by hand:
git clone https://github.com/Whittle777/agenteria.git cd agenteria && python3 install.py
That is the whole install. It adds the hooks, builds the
menu bar app, and sets it to start at login. Nothing needs sudo and nothing
lands outside your home directory. python3 install.py --uninstall
takes it all back out.
| Oven | State | Means |
|---|---|---|
| Orange flame | cooking | The agent is mid-turn. |
Red ! | blocked | Claude stopped and is waiting on you. |
| Golden pizza | ready | Finished and unreviewed. |
| Violet bars | compacting | Claude is squeezing its own context down. |
| Blue dots | still running | The turn ended but a backgrounded command has not. |
| Empty oven | idle | Running, but not doing anything. |
| Amber 鈿狅笌 | context | Some session is past 80% of its window. |
It brings that session's terminal to the front, and that is all it does. The match is exact, not a guess: the hooks report the tty and Terminal.app exposes the same string per tab. There is deliberately no dismiss button in the bar, so the way you clear a finished pie is by going back to the session and using it.
Each ticket shows how much of its context window it has used, and the menu totals the tokens generated today. Read from the transcripts Claude Code already writes, incrementally, so polling stays cheap.
A browser counter at 127.0.0.1:4646 with the full ticket detail,
and ./cook, a pty wrapper that lets you type into a running session
from the browser while the terminal stays completely live. Both are optional;
the menu bar is the main event.
iTerm.app, so it was identified as
"iTerm" and never matched the apps we try to raise a window in. Fixed, but
reviewed is not the same as run.~/.claude/sessions/<pid>.json, for whether a session
still has work running after its turn ended. If either changes shape those
readouts go blank. Nothing else is affected.Issues and pull requests welcome, especially from anyone running a terminal that is not Terminal.app.