AgentBar

What the coding agents on this Mac are doing, and how much of their quota is left.

Claude Code, Codex and Cursor. In the menu bar, above the Dock, and as a widget.

Download AgentBarmacOS 14.0 or later · Free and open source
Signed and notarized · Updates itself
The item in the menu bar, the icon in the Dock, a time in the panel, the refresh arrow, the Glass / Terminal switch under the panel.

What it shows

Every rate-limit window with the time until it starts over, and every conversation running right now with how full its context is.

AgentBar
 
5h0%
Weekly · all8%
Weekly · Fable9%
CodexPro Lite$12.40 credits
⋯
5h46%
Weekly91%
Monthly64%
Active
  1. Every window, as a meter. The 5-hour and weekly windows, and a week per model, for Claude; the same two for Codex; the plan's month for Cursor. Green, amber, then red as it fills.
  2. The time until it starts over. Click any time and every reset shows as the clock time instead.
  3. What is running right now. Named by what was last said in it, with a breathing dot while it works. Click for the model, effort and branch; click again to bring its terminal or editor forward.
  4. How full its context is. A real percentage when the limit is known; the tokens when it is not.

Where it lives

One panel, wherever you look.

AgentBarThu 14:05
The menu barThe symbol, or a bar per window with the time left on one of them. A click opens the panel.
The DockAn icon in the Dock and ⌘-Tab if you want one. A click opens the same panel above it, or a window; ⌘0 opens the window from anywhere.
Cursor
Monthly
64%
9d 5hleft
The widgetThree sizes for the desktop and Notification Center, each with its own theme and its own choice of windows.

Two styles

Glass, or a terminal readout. Each in light and dark, with a slider for how sheer the panel is.

AgentBar
 
5h0%
Weekly · all8%
Weekly · Fable9%
CodexPro Lite$12.40 credits
⋯
5h46%
Weekly91%
Monthly64%
Active
Glass
agentbar
 
[ Claude ]max 20x
5h0%
weekly.all8%
weekly.fable9%
[ Codex ]pro lite$12.40 credits
5h46%
weekly91%
[ Cursor ]pro
monthly64%
[ ACTIVE · 4 ]
›▊
Terminal

Before it runs out

A word when a window you care about reaches a mark you chose, once at each, so the week does not end in the middle of a task.

You pick the windows.

Nothing is announced until you choose it in Settings › Alerts: Claude's session, its week, Codex's week, or any other window an agent reports. The marks are yours too, 80% and 90% to begin with.

Once for each mark.

80% says so once and 90% once more; the reads in between say nothing. A read that jumps past both says the higher one, once.

A new window starts afresh.

When a window starts over, its marks are announced again as it fills. A restart does not repeat what was already said, and a figure from a window that has already rolled over raises nothing.

When it goes down

Every agent’s own status page, beside its quota, and a word when a service stops working and when it starts again.

AgentBar
 
5h0%
Weekly · all8%
Weekly · Fable9%
CodexPro Lite$12.40 credits
⋯
5h46%
Weekly91%
Monthly64%
Active
A dot before each agent’s name. Click it.
 
checked 40s ago
Partial System Outage
ResponsesDegraded performance
Codex WebOperational
Codex APIPartial outage
Chat CompletionsOperational
status.openai.com ↗
Incident
Elevated errors for multiple models22m ago
Everything that page lists, and which parts are yours.
It watches the parts you actually run on.

A status page covers a whole company. Claude's covers claude.ai, the Console, Cowork and Claude Code as separate parts; AgentBar reads Claude Code and the API, and nothing else. claude.ai going down while Claude Code keeps working is not your outage, and you are not woken for it.

It tells you when it is back.

A status page tells you a service is down. Then nothing tells you it is working again, so you go back and try until it does. That is the message this is for, and it comes whether or not you asked to hear about the outage.

It does not cry wolf.

A change is announced only once two readings agree, so a moment's flap says nothing. A page that cannot be reached is never reported as an outage: dropped Wi-Fi looks exactly like a dead service. And an outage already under way when you open your Mac is not announced at all; you are already living through it.

The widget

Three sizes for the desktop and Notification Center. Right-click › Edit picks the theme, the windows to show, and whether the running conversations are listed.

FinderFileEditViewGoWindowHelpThu 14:05
ClaudeWeekly · Fable1d 1h
9%
CodexWeekly4d
91%
CursorMonthly9d 5h
64%
Cursor
Monthly
64%
9d 5hleft
Claude · Weekly · Fable9%1d 1h
Codex · Weekly91%4d
Cursor · Monthly64%9d 5h
Claude
5h0%4h
Weekly · all8%1d 1h
Weekly · Fable9%1d 1h
Codex
5h46%2h
Weekly91%4d
Cursor
Monthly64%9d 5h
Active
Port the reader into the package and pin the file shapes41%
Fix the appcast feed on the site22%
Done: the landing page builds as a static export.31%
Waiting on review of release script64%

A size left with a single window shows it as a card; the small one shows Cursor’s plan. When there are more windows than a size has rows, it shows each agent’s fullest rather than dropping the last agents.

How it knows

Claude Code and Codex write their windows and sessions under your home folder; AgentBar reads them there. Conversations never leave the Mac. For the figures that only the account knows (what was spent on another Mac, or while the agent was not running), it asks each agent’s account with the sign-in that agent already keeps on this Mac. One read-only request every five minutes, and on the panel’s refresh. Nothing is stored or logged.

Weekly · all0%-
A dash for a window that has already started over, before the agent writes a fresh figure. Not a guess.
Codex3h ago
“3h ago” A figure old enough that you should know how old. The panel says so beside the agent's name.
Port the reader into the package410K
“410K” A context whose limit is not written anywhere shows its tokens rather than a made-up percentage.

Install AgentBar

Free, for macOS 14.0 or later. Signed with a Developer ID, notarized by Apple, and it updates itself.

  1. Download the disk image and open it.Signed with a Developer ID and notarized by Apple; macOS opens it without a fuss.
  2. Drag AgentBar onto Applications, then open it from there.It appears in the menu bar. Nothing else happens until you click it.
  3. Settings › General, if you like.Launch at login, where it lives, what a Dock click opens. Updates arrive on their own.

Questions

Why does it ask my accounts, and what does it send?

Claude Code, Codex and Cursor each keep a sign-in on this Mac. AgentBar uses it, read-only, to ask the account how much of each window is used, which is the same page you would open in the browser. One request every five minutes, one when you open the panel (at most once a minute), one when you press refresh. Nothing is stored, nothing is logged, and no token is ever shown or sent anywhere else.

Does it read my conversations?

It reads the tail of each running conversation’s transcript, on this Mac, to name it by what was last said and to read its context figure. That is all it looks for, and it stays on the Mac.

Why does a window show a dash, or say “as of 14:05”?

A dash means the window has already started over and the agent has not written a fresh figure yet; AgentBar will not guess. “as of” means the figure it shows is old enough that you should know how old.

Why does a conversation show tokens instead of a percentage?

Claude Code does not write a session’s context limit anywhere. When the limit is known (a 1M-context session, or a context already past 200K), you get a percentage; otherwise you get the tokens, which is the honest figure.

Cursor shows only the monthly plan. Codex shows nothing.

Cursor writes no usage on disk, so its figures come from the account only. Codex writes its windows while it runs on this Mac; before its first session here, or on a Mac where it never ran, there is nothing on disk, and the account is asked for the rest.

Launch at login asked me to approve something.

AgentBar registers through the system’s Login Items, which macOS may ask you to confirm once in System Settings. It reads the agents’ files only while it runs, and the widget shows what it last read; starting at login keeps both current.

The widget says “Open AgentBar once”.

The widget cannot read the agents’ folders itself (app extensions are sandboxed); it shows what the app last wrote. Open the app once and it fills in.

How do updates work?

The app reads the feed attached to the newest release on GitHub once a day and installs updates itself; you can turn that off in Settings › General. Builds are signed with a Developer ID, notarized by Apple, and every zip is signed with a key only this app accepts, so an update that is not ours is refused.

How does it know a service is down?

It reads the status page each agent publishes, every five minutes and every minute while something is wrong, which is the same page you would open in the browser. It reads the parts you run on rather than the page's overall state: Claude Code and the Claude API, Codex API, Cursor's CLI and IDE. Which part each agent is read from is written down, and the whole page is one click away in the panel.

Will it wake me for nothing?

A change is announced only after two readings agree, so a moment's flap says nothing. A page it could not reach is never reported as an outage: your Wi-Fi dropping looks exactly like a dead service, and one of those is not news. An outage already under way when AgentBar starts is not announced either. Both messages can be turned off in Settings › Status.

What are Codex's limit resets?

Credits OpenAI grants that start a Codex limit over before its time, each with its own expiry. The last line of the Codex group counts them; click it for when each one expires and how long that leaves. They come from the same read-only request to the account, and AgentBar never uses one.

Is it really free, and can I read the source?

Free, and open source under the MIT licence: the app, its tests and this website are one repository on GitHub. Read what it sends before you trust it with an account, or build it yourself. Issues and pull requests are welcome there.

Which agents next?

The three here are the ones on this Mac. Others follow as they get used; usage is the first thing AgentBar shows, not the last.

Know where you stand before the window closes.

Every agent's quota and every running conversation, one glance away, on the Mac you are already using.

Download AgentBar

Version 1.3.1 · macOS 14.0 or later · Free and open source · Signed and notarized · Updates itself