For my own use Swift · AppKit · SwiftPM

AgentBar.

In my Mac’s menu bar I can see how much Claude and Codex usage I have left, no terminal needed.

The problem
I work with AI assistants all day, and I used to notice the usage limit only once it was too late. Until then, I guessed.
The solution
A small display in my Mac’s menu bar shows me whether I’m on track and when my allowance resets.
How I built it
AgentBar is a Mac app of my own, built with my AI team. I decided against bare percentages: the app measures against a target curve for the week. It’s built and signed on my own machine.
The Mac menu bar with AgentBar’s three-part capsule: W 58 %, F 21 %, 5h 43 %. Below it the panel is open, with three Claude meters at the top (week 58 %, Fable week 21 %, five-hour window 43 %) and one Codex meter underneath (week 24 %).

You notice the limit too late.

I work with Claude Code and Codex all day, and both have limits. Claude Code has a weekly budget and a five-hour window, each resetting on its own schedule. For Codex it depends on the plan, and mine only has the weekly one. I only see them if I go and check, and they matter most just when I’m in the middle of something and don’t want to stop.

Without a number I worked by feel, sometimes too cautiously, and sometimes the budget was gone by Wednesday.

The app shows me a pace.

AgentBar sits at the top right of the menu bar and shows three values in one capsule: the week, the Fable week (a separate weekly budget for Claude’s Fable model) and the five-hour window. The two weekly meters show a pace, which tells me more than a percentage. The target curve weights the weekdays differently, and the colour shows whether I’m ahead of it or on track. One click on the icon opens the details: both weekly meters with a target marker and projection, the five-hour window with a countdown to the reset, and Codex’s quota underneath: the week and, if the plan has one, the five-hour window.

/ tech decisions

Three decisions that mattered.

Native

Written in Swift

An Electron app (a common way of building desktop apps from web code) ships with its own browser, which is a lot of baggage for a small status display. So AgentBar is written in Swift, with AppKit and SwiftUI, Apple’s own tools for Mac apps, and looks like any other Mac app.

Signature

Self-signed, and still stable

I don’t need the App Store or notarisation, Apple’s security check for apps. For a tool that runs on one machine, a paid developer account and review rounds would be out of all proportion. A script builds the app on my Mac and signs it with a certificate I issued myself. Because the signature never changes, macOS recognises the app after every rebuild and keeps its privacy permissions.

Data source

Two clocks for Claude

The numbers come from two places: every minute from the usage file the Claude desktop app keeps on the Mac, and every ten minutes from Claude’s official usage interface. Whichever reading is newer wins. Codex reports its state through its local app-server, a small program running on the Mac. AgentBar changes nothing at any of the three sources. It only writes on my Mac: a cache, a log of the readings and, while I leave it switched on, a small file for a widget on my iPhone.

Talk about something like this → Status   For my own use · runs on my Mac

/ other apps