9:41
2 burning · 1 idle
LOCALHOST
3h 02m
41m

Know which agent needs you,
with Ember for Mac

A menu bar light for Claude Code, Codex, Gemini, Copilot and Grok. It taps you when one is stuck on a yes, and keeps your dev servers one Kill away.

Download for Mac Free. No account, no tracking, nothing phoning home.
9:41
2 burning · 1 idle
LOCALHOST
3h 02m
41m

One light in the bar. That’s the app.

Watches Claude Code, Codex, Gemini, Copilot, Grok, and your dev servers too.

One icon. Three states.
Burning while an agent works, idle when it stops, needs you when it’s waiting for a yes. The bar shows the most urgent session; the panel shows them all, grouped by agent.
Click a row. You’re in that terminal.
Terminal, iTerm2, Ghostty, the Claude app or the ChatGPT app, found by walking the process tree. A Codex thread shows its own name on the row.
Dev servers, one Kill away.
Anything listening from inside your repos shows up under LOCALHOST with its port and uptime. Click to open, Kill to stop, Kill all when it’s late.
A banner, a sound. Or nothing.
One sound for needs you, another for done, both off until you want them. Nothing fires for a window that’s already in front of you.
Six styles. Any colour.
Ember, Robot, Breathe, Comet, Bars and Ring, all on one grid and one stroke. Monochrome by default, or whatever colour you fancy.
Hooks, not polling.
Each agent’s own hooks tell Ember what’s happening. No network, no Accessibility permission, nothing peeking at your screen, and every timer stops when the panel closes.

Good questions, quick answers.

How does it know what an agent is doing?

Hooks. Claude Code, Codex, Gemini CLI, Copilot CLI and Grok Build all fire them at the interesting moments of a session. Ember installs them once, into each tool’s own hooks file, all pointing at one tiny helper that drops a JSON file per session into a folder the app watches. That’s genuinely the whole trick. No polling, no network, no Accessibility permission, nothing peeking at your screen. The helper never prints and always exits clean, so even a hook that fails can’t take your session down with it. Smoke detector, not supervisor.

Which agents does it support?

Claude Code, 2.1 or newer. Codex, both the CLI and the ChatGPT app. Gemini CLI, Copilot CLI and Grok Build, each through its own hooks file. They all land in the same panel with the same three states, grouped by agent. Settings only lists the tools that are actually on your Mac, so nothing is offered you can’t use.

Does it slow down my Mac?

No. Nothing runs while you’re not looking: the panel’s monitors and timers get torn down the moment it closes, and there’s no loop in the background twiddling its thumbs. Native Swift, one file watcher, and a port scan that only exists while the panel is open.

What does it need?

macOS 14 or later and at least one agent. Download, open, and on the first run the panel points you at Settings, where Install next to an agent writes its hooks in one click and Remove takes them out again. That’s the whole setup, honestly.

Where do I get help or report a bug?

Found a bug? Want another agent in there? Ping Stijn. Ember is made by one person, so your mail lands straight with the developer. Email Stijn.

Leave them running. Go make coffee.

Download Ember