AC Bridge

Claude Code status light with the smart bulb you already own

Last updated

The short answer AC Bridge turns the smart bulb or plug you already own into a Claude Code or Codex status light, so you stop watching the terminal. The light changes colour while the agent is working, when it needs permission and when it has finished. It uses the agents' official hooks and drives 16 brands over your home network: nothing to solder, no script to write.

At a glance

Agents
Claude Code and the OpenAI Codex CLI, side by side.
Devices
16 brands on your LAN, the devices your Home Assistant already runs, and SmartThings through Samsung's cloud.
Computer
Windows, macOS or Linux, with Claude Code or Codex already installed.
Price
a 7-day free trial, no card needed, then £2.99 a month to keep going.
A home office at dusk, the desk lamp glowing red beside a monitor, tagged Needs permission
Generated image: one room at dusk in example colours. The desk lamp turns red when Claude Code needs permission, violet when a plan is ready, green when it has finished and blue while it is working; the tag names each state.

It is a physical light in your room, not Claude Code's status line (the customisable text bar at the bottom of the terminal). Watch the 66-second film of the lights at work.

What each status light colour means

These are six common states in the example colours our homepage uses. Read them as an example legend: you pick the colours, per project, and a state can also run an effect (flash, pulse, candle) or switch a plug. Some call it a Claude Code status indicator, or a traffic light for the agent: one glance tells you what it is doing.

State Example When Claude Code reports it
Working breathes blue You submit a prompt (UserPromptSubmit). It holds until the next state arrives, such as a question or the end of the turn.
Needs permission flashes red Claude Code's Notification hook reports permission_prompt while a permission request is waiting for you.
Needs input soft orange pulse Claude asks you a question with its AskUserQuestion tool (a PreToolUse hook), or sends an agent_needs_input notification.
Plan ready glows violet Claude presents a plan for your approval (ExitPlanMode, also through PreToolUse).
Context low turns yellow The context window fills past a threshold you set on the profile. AC Bridge works this one out itself from the session's usage.
Finished turns green Claude finishes responding and hands control back to you (Stop).

These are example colours, not defaults. A new profile starts blank. Claude Code can trigger 29 states in all, including idle, error, compacting and subagent finished; they are listed under states and effects in the docs. Your lighting profiles decide the rest: which device, which colour, which effect, for which project.

How the Claude Code status light works

Claude Code has hooks: commands it runs at fixed points in a session. AC Bridge uses them as the official docs describe, so nothing is scraped from your terminal. Every event is explained in our Claude Code hooks guide.

  1. The app installs a small plugin that registers for the events a light cares about: SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Notification, Stop, SubagentStop, PreCompact and SessionEnd, among others.

  2. Each event is mapped to a state, which the plugin hands to the AC Bridge hub running on your computer.

  3. The profile bound to that project folder decides what each device does, with no cloud round trip for a LAN device.

  4. When the session ends or you press Stop, the lights and plugs AC Bridge changed go back as close to how it found them as each device allows. A device it never touched is left alone.

  5. You change nothing in your prompts or code. Open Claude Code or Codex in the project folder as you normally would, and the light follows the session.

Set it up

Setup is five steps: install the app, sign in, add your lights with Scan, make a profile, then bind it to a project folder and press Start. The getting-started steps in the docs walk through each one.

Where the permission light comes from On Claude Code, AC Bridge takes needs permission from the Notification hook's permission_prompt matcher. Claude Code also has a PermissionRequest hook; the AC Bridge Claude Code plugin does not use it today. The other hook states in the table each come from an event that marks the thing happening.

When a hook does not fire

Stop fires at the end of every turn, but not when you interrupt Claude; an API error fires StopFailure instead. In a terminal, the permission_prompt and idle_prompt notifications, like Claude Code's built-in alerts, fire only when you appear to be away from the keyboard. And Claude Code's idle_prompt arrives about 60 seconds after Claude finished responding, and only if you have not typed in that time; AC Bridge sets its own idle state a moment after a turn ends, so it does not wait on that.

A Codex status light too

What Codex reports

Codex has hooks of its own, and AC Bridge wires into them the same way. On Codex the permission light comes from its PermissionRequest hook. Codex also reports working (UserPromptSubmit), finished (Stop), compaction, subagents, context low and the session ending: 19 states in all. Codex has no hook for needs your input, so that state is Claude Code only.

One thing to do in Codex

Codex runs a new or changed hook only after you trust it in /hooks, so once AC Bridge has installed or updated its hooks, open /hooks in Codex and trust them. Codex's own notify setting fires on agent-turn-complete only, which is why it cannot tell you a permission prompt is waiting. Claude Code and Codex can also run at the same time, each with its own profile, as the next section explains.

Several sessions, one light or many

A profile is bound to a project folder and names the devices it drives, and a folder can hold one Claude profile and one Codex profile side by side.
You choose the setup: give each project its own lamp, or let one lamp follow several projects. For example, one lamp follows the website repo and another follows the API.

When two sessions want the same light, the most recent session wins by default. To give a session a light of its own, give its profile a device of its own. Lighting profiles in the docs show how a profile binds to a folder.

Supported brands of smart lights

16 brands are driven directly on your LAN. Scan in the app finds what is on your network; the notes say what, if anything, each one needs first.

Beyond the LAN brands

Home Assistant adds the devices your Home Assistant already runs: sign in from the app in your browser (a long-lived access token is the fallback), and its lights, plugs, switches and more become available to a profile. SmartThings is supported through Samsung's cloud API rather than on your LAN; you link it by signing in to your Samsung account.

What each device can show

What a device can show depends on what it is. There are nine effects: Flash, Strobe, Pulse, Fade, Loop, Candle, Rainbow, Siren and Meter. A colour bulb gets all nine, a dimmable white bulb four, a light that cannot dim two, and a plug switches on and off — which still makes a fine status light if it powers a lamp.

Can a Philips Hue or Govee bulb be your Claude Code status light?

Yes. Both are among the 16 brands AC Bridge drives on your home network, so a Hue or Govee colour bulb you already own can breathe blue while Claude Code or Codex works, flash red when it needs permission and turn green when it has finished. What each one needs first (every brand's note is under Supported brands):

A desk lamp glowing blue on a shelf beside a monitor in a dim home office
Generated image: a desk lamp glowing blue, an example colour, while a Claude Code session is working.
  • Philips Hue — AC Bridge talks to your Hue Bridge, not to the bulbs, so you need the bridge.
  • Govee — Govee's LAN API, or Govee's cloud with your own key.
  • Home Assistant for the rest — sign in once and the lights it already controls become available to a profile.

Why a light instead of a sound or a notification

Claude Code and Codex take minutes to finish and stop to ask you things. The usual answer is a Notification or Stop hook that plays a sound or pops up a desktop notification, and that works while you are at the desk and listening. A light works from across the room, with headphones on, while you cook or watch a film, and it adds no extra ping to compete with chat and email. With the example colours above you glance up and know: green, it finished; red, it needs permission; orange, it is waiting for your answer. If a sound or a desktop notification is all you want, our guide to Claude Code notifications shows how to set one up.

Busy light or status light? A busy light, sometimes called a presence light, shows the people around you whether you are available, busy or on a call, taken from your status in a calling or chat app. A status light shows you what your coding agent is doing, so you know when it needs you. They answer different questions: one is for the people around you, the other is for you.

Questions people ask

Do I need a hub or bridge?

For Philips Hue, yes: AC Bridge goes through its Hue Bridge. LIFX, WiZ and WLED are found on the network with no account. For the rest, see Supported brands.

Can a smart plug be a status light?

Yes. A plug switches on and off, so plug a lamp into it and give it the one state you care about most, such as needs permission or finished. Scan finds plugs on your network as well as lights. A colour bulb can show more, because it can give each state its own colour.

Does it work with Codex?

Yes. Codex has its own hooks and AC Bridge uses them, covering 19 states. A Codex status light too lists what it reports and the one trust step it needs.

What makes the light change?

A hook firing: a prompt submitted, a question asked, a turn finished. The colour table names the hook behind each state.

Do I need an API key?

No. AC Bridge drives the Claude Code or Codex you already run, through their official hooks, so there is no API key to buy. You do need an AC Bridge account to start the free trial.

What it costs

One plan, AC Bridge Pro: a 7-day free trial with no card needed, then £2.99 a month. Add a card before the trial ends to keep going; without one the trial just ends and nothing is charged. Cancel any time from your account.

LAN devices are driven straight from your machine and their keys never leave it; your account, settings, device list, usage counts and session states sync through our servers. Your prompts, code and session transcripts are never collected. Privacy policy.

Try it on your own lights Start the 7-day free trial, or read the setup docs first.