I used to begin every coding session with the same routine: open Claude usage, Codex usage, OpenRouter credits, then check whether my local API and Redis were still alive.
Each check was tiny. Together they were a constant context-switch tax. And when something crashed overnight, I usually discovered it in the middle of real work, not at the start.
So I rebuilt the routine around one rule: I should be able to confirm everything in under two seconds.
That turned into a small menu bar app.
The problem was not missing data
I already had the data. It was just scattered across tabs, terminal commands, and provider dashboards.
-
lsof/psfor local process checks - web dashboards for quota checks
- memory for everything in between
The friction came from stitching those checks together every day.
What changed in practice
Now I open one menu, glance once, and start coding.
Pulse shows:
- local service state (up/down)
- quota state for Claude Code, Codex, and OpenRouter
- reset countdowns so surprises are less likely
It does not try to be a full observability stack. It just answers the first question quickly: am I clear to work?
Architecture notes
A few implementation choices mattered:
Native SwiftUI app, no Electron
Startup is instant and memory stays low (typically around 15-25MB).Simple health model for services
Service checks stay lightweight. The goal is signal, not deep metrics.Quota polling on a fixed interval
Enough frequency to stay useful, not so frequent that it becomes noisy.Config-first setup
Define services/providers once, then reload quickly as the dev stack changes.
A real week with it
Last week, one worker process died after sleep/wake. I saw it in the menu before running tests, restarted it, and moved on.
I also noticed quota dropping faster than expected during a refactor day and changed how I used prompts before hitting a hard limit.
Neither event is dramatic. That is the point. Small failures stopped turning into bigger interruptions.
Why this matters for dev flow
Productivity discussions often jump straight to big tooling changes. But a lot of wasted time comes from tiny repeated checks.
Five checks, several times a day, adds up. Removing that loop has been more useful than I expected.
If your mornings start with tab-hopping and terminal sanity checks, try collapsing them into one glance. Even if you build your own script or menu utility, the workflow change is worth it.
Top comments (0)