Your mission control for AI coding agents β monitor Claude Code, Cursor, and Codex from your Mac's menu bar, terminal, or a TUI.
If you run AI coding agents all day, you probably juggle a few questions constantly: Which agents are installed? Which account am I logged into? How close am I to my rate limit? Is my machine about to fall asleep mid-task?
Agent Hub answers all of that in one place. It's a single, fast Rust binary that ships three faces β a native macOS menu-bar app, a rich terminal dashboard (TUI), and scriptable CLI commands β so you can check on your agents however you prefer to work. It watches your system, detects your agents, surfaces token usage and subscription limits, and can keep your Mac awake while long-running jobs finish.
Inspired by steipete/CodexBar.
System status
- Live CPU, RAM, and uptime monitoring
- Network status at a glance
- Proxy / VPN detection
- Keep-alive via
caffeinateto prevent sleep while agents run β with timed presets
Agent intelligence
- Auto-detects installed AI coding agents and their versions
- Shows the logged-in account (email / organization) per agent
- Tracks active sessions
- Reports token usage
- Surfaces subscription rate limits across rolling windows (5-hour and weekly)
Three ways to use it
- π₯οΈ Native macOS menu-bar / desktop app (Tauri 2)
- π Interactive terminal dashboard (ratatui)
- β¨οΈ Scriptable CLI with
--jsonoutput on every command
| Agent | Install / Version | Account (email/org) | Active Sessions | Token Usage | Rate Limits |
|---|---|---|---|---|---|
| Claude Code | β | β | β | β | β |
| Cursor | β | β | β | β | β |
| Codex | β | β | β | β | β |
Rate limits are reported across rolling 5-hour and weekly subscription windows where the agent exposes them.
| GUI (menu bar) | TUI (dashboard) | CLI (status) |
|---|---|---|
![]() |
![]() |
![]() |
| Desktop app + system tray | Interactive ratatui dashboard | --json-friendly commands |
Screenshots live in
docs/screenshots/. Replace the placeholders above with real captures.
macOS only (10.15 Catalina or later).
brew tap xiaoleiy/tap
brew install --cask xiaoleiy/tap/agent-hubInstalls the Agent Hub menu-bar app and the agent-hub CLI/TUI. The app
goes to /Applications (Homebrew may prompt for your password once).
No admin rights? Install the app into your home folder instead:
brew install --cask --appdir=~/Applications xiaoleiy/tap/agent-hubJust the agent-hub command β installs into the Homebrew prefix, so no sudo
and no Gatekeeper prompts. Ideal for terminal users and IT-managed Macs:
brew tap xiaoleiy/tap
brew install xiaoleiy/tap/agent-hub-cli
agent-hub tui- Download the
.dmgfor your chip from the latest release and drag Agent Hub.app into~/Apps(or~/Applications). - The app is ad-hoc signed but not notarized, so macOS may flag it on first open. Clear that without admin:
xattr -cr "$HOME/Apps/Agent Hub.app" codesign --force --deep --sign - "$HOME/Apps/Agent Hub.app"
- (Optional) put the CLI/TUI on your PATH β it's the same binary:
ln -sf "$HOME/Apps/Agent Hub.app/Contents/MacOS/agent-hub" "$HOME/.local/bin/agent-hub"
Requires a recent Rust toolchain and Node.js.
git clone https://github.com/xiaoleiy/agent-hub.git
cd agent-hub
npm install
npm run tauri buildAgent Hub is a single binary that routes by its arguments. Launch the GUI, drop into the TUI, or run one-off CLI commands.
agent-hub # launch the desktop app + system tray
agent-hub gui # explicit formA SvelteKit + Svelte 5 dashboard backed by Tauri 2, with a live menu-bar / tray presence.
agent-hub tuiAn interactive ratatui dashboard. Keybindings:
| Key | Action |
|---|---|
β / β or Tab |
Switch tabs |
1β9 |
Jump to tab by number |
r |
Refresh |
w |
Cycle usage window |
Space |
Toggle keep-alive |
a |
Keep-alive for 30 minutes |
s |
Keep-alive for 1 hour |
d |
Keep-alive for 3 hours |
f |
Keep-alive forever |
q / Esc |
Quit |
Every command supports --json for scripting and integration.
agent-hub status # system overview: CPU, RAM, uptime, network, agents
agent-hub network # network + proxy / VPN status
agent-hub agents # detected agents, versions, and logged-in accounts
agent-hub sessions # active agent sessions
agent-hub usage # token usage and subscription rate limits
agent-hub keepalive # manage caffeinate keep-alive# Example: machine-readable usage data
agent-hub usage --jsonagent-hub/
βββ src/ SvelteKit frontend
β βββ routes/+page.svelte dashboard
β βββ lib/components/*.svelte UI components
βββ src-tauri/
βββ src/
βββ lib.rs CLI / GUI router
βββ cli/ clap parsing + handlers
βββ tui/ ratatui dashboard
βββ core_modules/ business logic
β βββ system CPU / RAM / uptime
β βββ network network status
β βββ keepalive caffeinate wrapper
β βββ proxy proxy / VPN detection
β βββ agents/ claude Β· codex Β· cursor
βββ commands/ Tauri IPC handlers
βββ models/ shared types
Tech stack: Rust (Tauri 2, ratatui 0.29, clap 4, rusqlite, reqwest, sysinfo 0.32, tokio, chrono) Β· SvelteKit 2 + Svelte 5 + Vite 6 + TypeScript.
# Install frontend dependencies
npm install
# Run the GUI in dev mode (hot reload)
npm run tauri dev
# Build the production app bundle
npm run tauri buildRun the CLI or TUI directly from source without building the app:
# CLI
cargo run --manifest-path src-tauri/Cargo.toml -- status
cargo run --manifest-path src-tauri/Cargo.toml -- usage --json
# TUI
cargo run --manifest-path src-tauri/Cargo.toml -- tuiRun the test suite:
cargo test --manifest-path src-tauri/Cargo.tomlContributions are welcome and appreciated! Whether it's a bug report, a feature idea, a new agent integration, or a docs fix:
- Open an issue to discuss larger changes.
- Fork the repo and create a feature branch.
- Make your change and run
cargo test(andnpm run tauri buildif touching the GUI). - Open a pull request.
Friendly, focused PRs get merged fastest. Thanks for helping make Agent Hub better.
Inspired by steipete/CodexBar β a great take on surfacing agent status in the macOS menu bar.
Released under the MIT License. Β© xiaoleiy.


