DEV Community

Cover image for I stopped babysitting Claude Code. A lamp does it now.
AC Bridge
AC Bridge

Posted on AI-assisted

I stopped babysitting Claude Code. A lamp does it now.

If you run Claude Code or Codex on anything bigger than a one-line fix, you know the loop. You hand it a task, it starts working, and then you hover. Is it still going? Has it stopped to ask you something? Did it finish ten minutes ago?

Before, that meant one of three things: staying at the desk, being anchored to my phone, or putting up with notification pings that wake people up.

Now the lights in my house tell me what the agent is doing. I made an app for it, AC Bridge, and I've used it non-stop since.

A status light, not a notification

The idea is simple. The agent's state sets the colour of a light. Mine look like this:

  • Blue while it works
  • Red pulse when it needs permission
  • Orange when it's waiting for my input (Claude Code only)
  • Violet when a plan is ready to review
  • Green when it's done

Those are my picks, not rules. Every colour and effect is yours to choose.

A desk with a blue LED strip and lamp: the agent is working

That's the whole interface. No app to open, no badge to clear, no sound. I look up and I know.

I can actually leave the room now

This is the part I didn't expect. I have a fairly big smart home setup, so the status doesn't have to stay on my desk. It can show on the lights in whatever room I'm in.

Most evenings that means the kitchen. Before I go and cook, I just tell the agent: "I'm going to make dinner, flash the kitchen light when you're done." It knows which devices I have, so when the job is finished the kitchen light flashes and I know it's ready for me. Until then I don't think about it.

A kitchen at night with a warm pendant light over the hob

A gentle pulse during the film

The same goes for the lounge. If I'm watching a film with the family and the agent needs me, the light in the room gives a gentle pulse. Nobody else is disturbed, and it's enough to catch my eye.

When that happens I don't get up and walk to my PC. I reply from my phone with Claude Code's Remote Control (/rc), which lets me carry on the same session from the Claude app. I answer whatever it needs and go back to the film.

The view from the sofa: the desk light across the room changes colour as the agent works, needs permission, has a plan ready and finishes

Just tell the agent

This is the bit I use most. AC Bridge can tell Claude Code or Codex which devices you have, so you can ask for things in plain words, the way you'd ask a person:

  • "I'm going to watch a film, flash the lounge light when you're done."
  • "Flash the desk light when the tests pass."
  • "Turn the office lamp off when you've finished the migration."

The agent does it as a step in the task. Once the setting is on, there's nothing else to set up.

For things I want every time, I put rules in the instruction file the agent already reads: CLAUDE.md for Claude Code, AGENTS.md for Codex. I use them for the stages of a long job, along these lines:

## Lights
- When you finish a stage of the plan, flash the desk light green.
- If the tests fail, pulse the office light red.
- When the deploy is done, flash the kitchen light.
Enter fullscreen mode Exit fullscreen mode

Now the lights tell me how far through a long job the agent is, not just whether it has stopped.

It's one setting per profile in the AC Bridge app, "Make agent aware of devices in chat", and it's off until you switch it on. With it on, the agent is told which of the profile's devices it can use and what each one accepts. Locks, garage doors, valves and cameras are always refused, so the agent can drive your lights but never your front door.

Not anchored to my phone

Replying from my phone might sound like it defeats the point. It doesn't: my phone is how I answer the agent, not how I watch it. A notification is a door into the phone: you glance at it to see what Claude wants, and five minutes later you're reading something else. A light doesn't pull you in. It sits at the edge of your vision and tells you one thing, and I only pick the phone up when the light says I'm needed.

Nobody gets woken up

Notification pings are fine in an office. At home, a ping when a run finishes is a ping for everyone in the house, and late at night that means waking people up. A light is silent. It works at 1am exactly as well as it does at 1pm, and the only person it tells is the one who looks at it.

Why a light beats a ping

  • It stays. A ping is a moment: miss it and it's gone. The light stays red until you deal with the request, so when you walk back into the room you know straight away whether you missed something.
  • It works from anywhere. Peripheral vision does the job. You don't have to be looking at a screen, or even be in the same room as one.
  • It's silent. Nothing to mute at night, nothing to annoy anyone else.
  • It copes with several sessions. Each repo gets its own profile and colours, so Claude Code and Codex can run on different projects with a light each, or share one (by default the most recent session shows).
  • It doesn't ask for your attention. A notification wants a response. A light just answers the question when you look.

You don't need a big smart home

My setup is a lot more than you need.

A cheap bedside lamp glowing green on a nightstand

Even a cheap bedside lamp from Amazon with a cheap Wi-Fi colour bulb in it can transform your notifications. Put it somewhere you can see from the sofa or the kitchen and you have a status light.

AC Bridge works with 16 brands directly on your home network, including the inexpensive bulbs all over Amazon (Tapo, Kasa, WiZ, Govee, Tuya, Meross, Yeelight) as well as Philips Hue, LIFX, Nanoleaf, WLED, Shelly, SONOFF/eWeLink, Elgato, Roku and ESPHome. It can also use the devices your Home Assistant already runs, and SmartThings through Samsung's cloud. Bulbs with no built-in effects still get a pulse or a fade, because AC Bridge generates the effects itself.

How it works, briefly

Claude Code and Codex both run hooks at set points in a session: when the agent needs permission, when it's waiting for you, when it finishes, and more. AC Bridge sets those hooks up and turns the events into agent states (29 of them: Claude Code can trigger all 29, Codex 19). A profile for each repo decides what each light does in each state. The Claude Code hooks guide lists every event, with working examples, and the Codex notifications guide covers the Codex side.

Your lights are driven straight from your machine over your local network, and their keys never leave it. When you stop the bridge, the devices it changed go back as close to how it found them as each device allows, and anything it never touched is left alone.

If all you want is a sound or a desktop pop-up, here are the ways to get Claude Code notifications, most of them free.

Since I made it, I've used it non-stop

The best way I can describe the difference: I used to work around Claude Code, and now it works around me. I start a run, get on with my evening, and the house tells me when I'm needed.

If that sounds useful, have a look at how the Claude Code status light works or the AC Bridge site.

What would you put on a light? I'd love to hear which states you'd want to see from across the room.


AC Bridge is a paid app for Windows, macOS and Linux (7-day free trial, then £2.99 a month).

Top comments (2)

Collapse
 
zhang_jimmy_54a0414571400 profile image
zhang jimmy •

This is such a clever reframing of the agent-waiting problem — I love that the light stays red until you deal with a permission request, instead of a ping that disappears if you miss it. The per-stage flashing from CLAUDE.md is the part I'd steal first: knowing roughly where a long job is, not just that it stopped, changes how comfortable I feel leaving the room. One question: with a profile per repo, how do you avoid two projects flashing at once and getting confusing? Do you give each one a distinct colour, or keep one lamp as the 'currently watched' session?

Collapse
 
acbridge profile image
AC Bridge • • Edited

It's highly customisable, so you can set it up however suits you. Personally, I give each repo its own colour and use the effect to show the state. For example, my web repo is red: waiting for approval flashes red, and finished pulses red. My app repo is green and uses the same effects in green. The colour tells you which project it is, and the effect tells you what it needs.

If you have more than one lamp, you can give each repo its own lamp instead. Each repo's profile points at a different light, so the desk lamp is always your web project and the bedside lamp is always your app. That way two projects never share the same light. I'd still use the same effect for each state on every lamp, so a flash always means it's waiting for approval, whichever lamp is flashing.