Busy Light app icon — a traffic light

Your Mac knows when you’re busy.
Now everyone else can too.

A free macOS menu bar app that controls your Home Assistant scenes — perfect for a busy light outside your door.

🔴 Busy ⌥⇧⌘R
🟠 Concentrating ⌥⇧⌘Y
🟢 Free ⌥⇧⌘G
Off ⌥⇧⌘O
💡 Webcam Lights On
Webcam Lights Off

Your scenes, one click away in the menu bar.

New to Home Assistant? It’s free, open-source software that lets you control all your smart home devices from one place. Learn more at home-assistant.io

Why I Built This

I have ADHD, and when I’m focused, the switching costs of someone popping in with “just a quick question” are really high for me. I wanted a “busy light” to put on the outside of my home office door, so my partner could see at a glance whether it was OK to interrupt.

There are plenty of USB busy lights on the market, but my door is far enough from my desk — and any outlet (in this old house) — that I needed something battery-powered and remote-controllable. So I built one that connects over Wi-Fi to Home Assistant.

I still needed a convenient way to switch lighting scenes from my Mac. None of the existing Home Assistant control apps were quite what I wanted, so I made my own software too.

The bonus of going through Home Assistant is that the app can activate any scene — not just a light. Toss whatever you want into a scene: dim the office, change lighting colors, turn on a fan. It’s yours to customize.

How It Works

Step 1

Connect

Enter your Home Assistant URL and paste a long-lived access token.

Step 2

Pick Your Scenes

Busy Light fetches your scenes from Home Assistant. Choose which ones you want in your menu bar.

Step 3

You’re Set

Switch scenes from your menu bar, or let the app handle it automatically.

Features

Automatic Triggers

Detects your webcam, mic, screen lock, and Focus mode. Your light changes the moment a call starts — no manual switching needed.

Not Just Lights

It triggers any Home Assistant scene — not only lights. Start the coffee maker, play an announcement, turn on a fan. If HA can control it, Busy Light can trigger it.

Keyboard & Shortcuts

Assign global hotkeys to any scene for instant switching, and control from Shortcuts.app or AppleScript.

A Closer Look

Scenes settings tab showing a list of scenes with emoji, names, and keyboard shortcuts

Build your custom scene list with emoji, names, and shortcuts.

Triggers settings tab showing webcam, mic, screen lock, and focus mode toggle options

Set up automatic triggers for your webcam, mic, screen lock, and Focus mode.

Ideas for How to Use It

Busy Light is flexible — here are some ways people use it.

📹

Video calls

Light goes red automatically when your webcam turns on. Back to green when the call ends.

🧑‍💻

Deep focus

Set to “concentrating” with a hotkey — your household knows you’re in the zone.

🎤

Recording

Podcasting, streaming, or recording a screencast? Nobody walks in.

🚩

Therapy or private sessions

Signal that you absolutely cannot be interrupted right now.

🏢

Shared offices

Visual availability signal without the awkward headphones-on-means-busy guessing game.

🧒

Parenting + WFH

Kids learn the traffic light system fast. Red means wait, green means come on in.

The Busy Light hardware: an LED ring in a 3D-printed enclosure mounted on a door frame

The Hardware (Optional!)

I built a battery-powered LED indicator using an ESP32 chip with ESPHome, housed in a 3D-printed enclosure that hooks over a door. It shows up in Home Assistant as a simple RGB light.

The hardware project is open source too — feel free to build your own, remix it, or just use it as inspiration. But you don’t need my hardware. Busy Light works with any light, LED strip, or device that Home Assistant can control.

Hardware Repo

Open Source

Busy Light is released under the MIT license. The code is on GitHub — contributions, issues, and ideas are welcome.

System requirements: macOS 14.0 (Sonoma) or later

Signed and notarized by an Apple developer, so it just works — no Gatekeeper warnings.

Support the Project

Busy Light is free and always will be. If it saves you from a few interruptions, consider buying me a coffee?

Support on Ko-fi

Ready to try it?

Privacy Policy

Busy Light respects your privacy. Here’s the short version:

  • No analytics or tracking. The app doesn’t phone home, collect usage data, or talk to any server other than your own Home Assistant instance.
  • No account required. There’s no sign-up, no cloud service, nothing to opt out of.
  • Your token stays on your Mac. Your Home Assistant access token is stored in the macOS Keychain — the same secure storage your Mac uses for passwords and certificates.
  • Camera and mic detection, not access. Busy Light detects whether your webcam or mic is in use by another app. It never accesses the camera or microphone itself, and no audio or video data is ever captured or transmitted.
  • Local only. All settings are stored locally in standard macOS preferences. Nothing leaves your machine except scene activation requests sent directly to your Home Assistant instance over your local network.

Busy Light is open source — you can read the code yourself and verify all of the above.