A traffic light for
your vibe coding.

Aignals is a free, open-source macOS menu bar traffic light for vibe coding with Claude Code. Every session gets its own colored light — so you know at a glance which ones are working, which need a click, and which are waiting on you. Plus a daily quote, a work stopwatch, and Feishu notifications.

or brew install --cask aignals after brew tap Jesse1211/aignals

What the lights mean

The menu bar shows a compact count like 🔴2 🟡1 🟢3. Each session is one light:

WorkingClaude is running — sit tight.
PermissionBlocked on an approval prompt — go click Allow.
Your turnFinished its turn — it's waiting on you.
DisconnectedThe session died without a clean exit — dismiss it when done.

Make it yours

Four built-in themes, switchable any time from Settings → Theme. Try them live:

AIGNALS
111
my-app
Editing main.swift · 4m
🔊 📌
api-service
Waiting permission · 1m
🔊 📌
docs
Idle · 2m
🔇 📌
⚙️ Settings ▸⏻ Quit

Designed to stay out of your way

A glanceable count in the menu bar; everything else one click away.

📖 Daily motivation quote

A fresh quote at the top of the dropdown each day, from API Ninjas. Pick a category, hit refresh for another, and save the ones you love. Toggle it off any time.

⏱️ Work stopwatch

Clock in when you start, pause for breaks, clock out when you're done. It logs each day's real work time, survives restarts, and rolls over at local midnight — browse the daily history any time.

🔔 Feishu notifications

Get a Feishu (Lark) message the moment a session needs you — the same lights, now on your phone. Bring your own webhook.

🔊 Sound when it's your turn

A gentle, different chime when a session needs permission or input — never while it's just working. Mute per-session or globally.

✏️ Rename, pin & reorder

Give sessions real names, pin the important one to the top, drag the rest into the order you like. It persists.

⏱️ Live elapsed time

Each row ticks live, so you can see how long a turn has been running or how long it's been waiting on you.

🔌 It's just a file

Hooks write a tiny JSON file per session; the app watches it. Any tool that writes the file can drive the lights — not only Claude Code.

🧹 Clean install & uninstall

One click wires up the Claude Code hooks (absolute paths, no PATH surprises). One click removes everything again.

🍃 Tiny & native

A lightweight SwiftUI menu bar app. No Dock icon, no daemon, no telemetry. Free and open source.

Install

macOS 14+. The build is self-signed (free OSS — no paid notarization), so the first open needs a right-click.

brew tap Jesse1211/aignals
brew install --cask aignals
Get it. Download the .dmg from the latest release, or run the Homebrew commands above.
Open it. Drag Aignals into Applications, then right-click → Open the first time to bypass Gatekeeper.
Wire it up. Accept the first-launch prompt (or Settings → Install Claude Code Hooks). That's it — your sessions now light up the menu bar.

Update & uninstall

Homebrew tracks new releases automatically:

brew update
brew upgrade --cask aignals

Your settings and data in ~/.aignals (saved quotes, work log, config) are kept across updates — only the app is replaced. Not on Homebrew? Just download the newer .dmg and drag it over the old app.

Uninstall. The cleanest way is Settings → Uninstall Aignals… — it removes Aignals' Claude Code hooks, the CLI link, and (optionally) your data, then you trash the app. If you installed via Homebrew you can also brew uninstall --zap --cask aignals to remove the app + ~/.aignals, but that can't edit ~/.claude/settings.json — so run the in-app uninstall first (or remove Aignals' hook entries by hand) to fully clean up.