A quiet indicator for your coding agents.
curl -fsSL https://moonglade.josemi.me/install | sh
Apple Silicon · macOS 14+ · read it first · build from source
A count per state, and no slot for the states sitting at zero. When nothing is running it collapses to a single dimmed moon.
Not until you glance at it. Visiting the tab does not clear a pending permission, so the bar never disagrees with the menu.
Ghostty, cmux, iTerm2, Terminal, tmux — Moonglade focuses the surface a session lives in, not merely the app. Panes are told apart by the name the agent reports, so several agents in one directory never trade places.
Expand a row to rename it, copy the project path, reveal it in Finder, kill the process, or close its exact tmux pane or Ghostty tab.
It never opens a socket. Session metadata stays in
~/.moonglade/state
with user-only permissions, and your prompts and model responses are never
stored — not locally, not anywhere.
A libproc scan at about 2 ms per sweep on a five-second heartbeat, off the main thread.
Event-driven throughout: kernel exit notifications and debounced directory observation.
Every line of the app, the hooks and this installer is on GitHub, under the MIT licence.
Either way you end with the app in /Applications,
your agent hooks wired, and moonglade doctor
reporting a clean install.
Downloads the latest release, checks it against the published checksums, installs it. No Xcode needed.
curl -fsSL https://moonglade.josemi.me/install | sh
Compiles it on your machine. Needs Swift 6.0+. Also the path for Intel Macs, which the published build does not cover.
git clone https://github.com/ixjosemi/Moonglade.git cd Moonglade ./scripts/install.sh