Keep every coding agent in sight.
A native macOS status island for Cursor, Codex, and Claude Code.
Download LoopBar · How it works · Privacy
Your coding agents can keep working in different apps, windows, and terminals. LoopBar brings their most important signals to one glanceable place at the top of your screen—so you know what is running, what finished, and what needs you without constantly switching context.
LoopBar is local, read-only, and built for macOS. There is no account to create, no API key to configure, and no cloud dashboard between you and your work.
Follow every agent in one view, with clear source colors, live status, elapsed time, progress, and attention signals.
The compact island keeps only the two signals that matter most: what is running and what needs you.
▶ Watch the 6-second onboarding walkthrough
- See what is working — follow active Cursor composers, Codex tasks, and Claude Code sessions from one compact island.
- Know when to step in — spot approvals, questions, blocked work, and failures before they sit unnoticed.
- Get notified at the right moments — choose alerts for completed work, attention requests, and failures.
- Jump back into the task — select an agent to return to its source app or open the exact Codex task when available.
- Stay out of the way — the island collapses into a quiet running and attention count when you do not need the details.
LoopBar sits at the top of the active display and feels at home around the MacBook notch. Click it to reveal agent names, sources, live status, elapsed time, recent activity, and progress when available. Click away and it returns to its compact state.
Source-aware colors make the list easy to scan, while status colors keep the important moments unmistakable: running, queued, waiting for approval, waiting for input, blocked, completed, failed, or cancelled.
| Cursor | Codex | Claude Code |
|---|---|---|
| Composer activity and related workspaces | App and CLI task activity with task deep links | Local terminal session activity |
- LoopBar reads recent task status from the supported tools already installed on your Mac.
- The compact island shows how many agents are running and how many need attention.
- Expand it for details, or use a notification to return to the work that needs you.
Everything is configurable: monitor only the tools you use, launch LoopBar at login, choose the refresh interval, and decide which notification types are useful to you.
LoopBar observes local application state without sending prompts, changing tasks, editing project files, or writing to your coding tools' databases.
- No LoopBar account
- No API keys
- Anonymous usage analytics for aggregate installation counts
- No prompts or project content uploaded by LoopBar
- Read-only access to local task metadata
Firebase records app opens and sessions, app and macOS versions, and basic device data. LoopBar also records an app_active event so aggregate active installations can be counted. It never sends prompts, project names, filenames, task details, or agent activity. LoopBar otherwise uses the network only for optional, signed app updates. Sparkle checks the public update feed and downloads releases from GitHub when updates are enabled.
Requires an Apple silicon Mac running macOS 14 Sonoma or later.
brew tap tohel17/loopbar https://github.com/tohel17/LoopBar
brew install --cask loopbarUpgrade later with brew upgrade --cask loopbar.
- Download the newest DMG from GitHub Releases.
- Open the DMG and drag LoopBar into Applications.
- Launch LoopBar and follow the three-step setup.
- Choose Cursor, Codex, and/or Claude Code, then optionally enable notifications and Launch at Login.
LoopBar includes secure in-app updates, with automatic daily checks and a manual Check for Updates… action in Settings.
- Click the compact island to expand or collapse it.
- Click an agent row to return to its source application.
- Use the refresh button to check immediately.
- Use the gear button to change monitored tools, notifications, login behavior, updates, and refresh timing.
- Use the power button to quit LoopBar.
For local development, install Xcode 15 or later and run:
swift run LoopBarswift run is ideal for development, but macOS cannot register the raw executable as a login item and Sparkle updates are disabled outside a packaged app.
To build a local app bundle and DMG:
bash scripts/build-dmg.shThe script creates an ad-hoc signed build by default. To use a Developer ID identity:
CODE_SIGN_IDENTITY="Developer ID Application: Example (TEAMID)" bash scripts/build-dmg.shThe app version lives in Sources/Resources/version.txt. Synchronize it with the packaged Info.plist before packaging:
./scripts/sync-version.shLoopBar uses a small MVVM-style design:
Sources/App— app lifecycle and executable entry pointSources/Controllers— island and onboarding window managementSources/Models— normalized agent, source, and status valuesSources/Services— read-only Cursor, Codex, and Claude Code monitoring; notifications; login items; and updatesSources/ViewModels— island presentation stateSources/Views— the SwiftUI island, agent rows, onboarding, and settings
Cursor monitoring combines local SQLite state, transcript activity, filesystem events, and a process guard. Codex combines its local threads database and rollout logs with process discovery where available. Claude Code combines local session transcripts, its live-session registry, and terminal process state. When the evidence is incomplete, LoopBar reports an unknown state instead of guessing.
For the Claude Code source design notes, see docs/claude-integration-architecture.md.
After installing a Developer ID Application certificate, configuring a notarytool Keychain profile named LoopBar, and generating or importing the Sparkle signing key, run:
bash scripts/release.shThe release script builds and signs the app, creates and signs the DMG, notarizes and staples it, runs Gatekeeper validation, writes a SHA-256 checksum, refreshes the Homebrew cask, signs the update archive, and regenerates appcast.xml from CHANGELOG.md.
See Sparkle's documentation for update-key setup. Never commit the exported private key.
Spend less time checking agents. Spend more time shipping.


