AgentBar sits in your Mac's menu bar and shows what every Claude Code session is doing: working, waiting for you, done or stuck. It stays quiet until one needs you. Press ⌃⌥A and a tiny office opens where every session works at its own desk.
AgentBar only reads what Claude Code writes on your Mac. It cannot answer prompts or approve anything for you; it brings the right terminal tab to the front so you can.
| Needs | |
|---|---|
| Every session with status, project, current activity and context | nothing, AgentBar reads Claude Code's local logs |
| Status the moment it changes (approval, done, error) | Claude Code hooks, set up with one click |
| Tokens, cost and sessions today and over 7 days | nothing |
| Plan usage as rings (5 hours and week) | your Claude Code login from the keychain |
| Notifications | your OK when macOS asks |
| The office with sky and time of day | nothing |
| Real weather behind the office window | a location |
| Sessions from your other Macs | the same pairing code on every Mac |
New in 26.11: calmer, more useful notifications: permission prompts after 10 seconds at most, everything else once per waiting state after the delay you choose, a click opens the right tab, and usage warnings at 80 % and 95 %. Every change is in the releases.
Unzip AgentBar.zip and move AgentBar.app to /Applications. AgentBar is not notarized by Apple (that needs a paid developer account), so macOS blocks the first launch once: open System Settings > Privacy & Security, scroll to "AgentBar" was blocked and click Open Anyway, or run
xattr -dr com.apple.quarantine /Applications/AgentBar.appLater updates arrive through the built-in update window and are checked with an Ed25519 signature (key compiled into the app), bundle ID, version and code signature.
Build from source
No Xcode needed, the Command Line Tools are enough (xcode-select --install).
git clone https://github.com/SH1FT-W/agentbar.git
cd agentbar
./build.sh # build/AgentBar.app
./build.sh install # copies to /Applications and launchesYou need macOS 14 or later on Apple Silicon (built and tested on macOS 27) and Claude Code. There is no account and no Dock icon.
- Launch it. Clawd appears in the menu bar: eyes closed when all is idle, eyes open while working, waving when a session needs you. Allow notifications when macOS asks.
- Turn on precise detection. Click Set Up on the Precise detection card in the menu. AgentBar adds small hook commands to
~/.claude/settings.json(backup insettings.json.agentbar-backup). It applies to Claude sessions started afterwards and can be removed again in Settings. - Allow the keychain. For the usage rings AgentBar reads Claude Code's login (
Claude Code-credentials) with thesecuritytool. Allow it if macOS asks. - Optional extras. A location under Settings > Office for the real weather, Launch at login under Settings > General, and Other Macs with the same pairing code on every Mac.
The first time you jump to a session, macOS asks whether AgentBar may control your terminal app. AgentBar follows your macOS language, English or German.
| Part | Shows |
|---|---|
| Session row | Status, project, what it is doing, tokens and a context bar that turns orange when the window is almost full. Sessions from the Terminal, the Claude desktop app, Cowork and Xcode; subagents as helpers. A phone symbol marks Remote Control, a device symbol another Mac. |
| Usage rings | Your 5-hour and weekly plan usage, Apple Watch style, with a forecast of how long the window lasts at your pace. |
| Today and 7 days | Tokens, API-equivalent cost and sessions per day, a 7-day chart and your top projects today. |
| Office (⌃⌥A) | A floating window with a character per session. It types while working, raises a hand when it needs you, goes to the lounge when idle and looks tired as its context fills up. |
| Notifications | When an agent needs you (with its actual question), finishes, fails, runs out of context or seems stuck. Permission prompts after 10 seconds at most, the rest after a delay you choose (20 seconds by default), once per waiting state. Usage warnings at 80 % and 95 %. Quiet hours and a one-hour mute. |
| Keep awake | Stops your Mac from sleeping, always or only while agents work. |
Click a character or press Return on a row and the exact tab comes to the front: Terminal and iTerm2 by tty, Ghostty by folder. In the menu: arrow keys select, Space expands, ⌘R reloads, ⌘, opens Settings. Every row and ring has a VoiceOver label.
What happens in the office
The sky follows your local time; with a location you get clouds, rain on the glass, fog, snow on the hills and the real sunrise and sunset. The trees change with the seasons (flipped for the southern hemisphere). The office decorates itself for Valentine's Day, Easter, Halloween, Advent, Christmas and New Year's Eve, and the team dresses for the occasion and the weather. Each character picks its own look for the day and keeps it for the session. Subagents orbit their character as glowing spheres, the robot vacuum speeds up with your CPU load and docks in the evening, and agents that just finished sometimes queue at the espresso machine. Now and then: a shooting star, a flock of birds, a rainbow, a snowman, pizza on Friday lunchtime.
- Local files only. AgentBar reads Claude Code's session logs (
~/.claude/projects), the Claude desktop metadata and its own hook log. No analytics, no telemetry. - The token is only read. It goes only to
api.anthropic.comand is never refreshed, changed or stored elsewhere. - Other Macs get only status, project, title and activity of your sessions, never files or logs, encrypted with the pairing code.
- Without hooks AgentBar infers the state from pauses in the logs, so a waiting approval can show up late.
- Ghostty has no tty in its scripting dictionary. AgentBar switches the tab only when exactly one Ghostty tab is in the session's folder; otherwise it brings Ghostty to the front.
- No notification while the session's terminal is in front, unless Even when in front is on.
- Apple Silicon only.
How it works
Without hooks, AgentBar parses the Claude Code JSONL logs (for example, a tool call without a result for a while in a non-auto permission mode probably waits for approval). With hooks, Claude Code reports PreToolUse, PermissionRequest, Notification, Stop and so on directly: each hook appends one status line to ~/Library/Application Support/AgentBar/hooks.log, with no network, no prompts or file contents and no AgentBar process involved. AgentBar also checks whether the Claude process is still alive.
| Talks to | For | When |
|---|---|---|
api.anthropic.com |
your plan usage | only while Fetch usage is on |
api.github.com |
update check | |
api.open-meteo.com, geocoding-api.open-meteo.com |
weather behind the office window | only once you enter a location, rounded to about 1 km |
| your other Macs | sessions on the other Macs | only if paired; found via Bonjour on the local network |
Development
./build.sh snapshot # renders the office and the dropdown as PNGs into build/
./build.sh test # self tests
build/AgentBar.app/Contents/MacOS/AgentBar --dump # lists the detected sessions and exits
AGENTBAR_LANG=en # or =de, to test a languagebuild.sh prefers a macOS 26 SDK from the Command Line Tools (the SDK 27 there lacks the SwiftUI macro plugin); override with SDK=/path/to/sdk ./build.sh. Versions are YY.M.N: 26.10.11 is the eleventh release of October 2026, and the update check sees it as newer than the old 2.3.1. Releasing is described in RELEASING.md.
MIT. AgentBar was inspired by so-agentbar by sotthang and is an independent rewrite with a different design and feature set.
AgentBar is an independent open-source project, not affiliated with Anthropic or Apple. Claude is a trademark of Anthropic.



