AC Bridge

AC Bridge docs: status lights for Claude Code and Codex

Last updated

AC Bridge, also written acbridge, is a desktop app that turns Claude Code and Codex session states into colours and effects on your smart lights and plugs. It runs on Windows, macOS and Linux.

What AC Bridge does

In one paragraph AC Bridge shows what Claude Code and Codex are doing on the lights you already own, so a glance at the room tells you when an agent needs you. A profile maps session states to what your devices do. Bind one to a project folder and its sessions drive those devices. 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)

Before you start
  • Price: £2.99 a month after a 7-day free trial. No card is needed to start; add one before the trial ends to keep going, or let it end and pay nothing. Cancel any time from your account. Pricing · start the trial.
  • Computer: Windows, macOS or Linux, with Claude Code or Codex installed on the same machine. AC Bridge works through the agent you already run, so there is no API key to buy.
  • Installers are in your account after sign-in; the app needs an active trial or plan.

Getting started

Want screenshots? How to set up AC Bridge, step by step walks through each step below in the app.

  1. Install the app.

    Sign in, open your account and get your build from the Download tab: Windows 10 or 11 (64-bit), macOS (Apple silicon or Intel) or Linux (x64 .deb, .rpm or AppImage).

  2. Finish first-run setup.

    Sign in. The app checks for Claude Code or Codex and installs the plugin that reports session state (see hook events). You can re-run setup later.

  3. Add your devices.

    Scan finds the lights, plugs and LED strips on your network from 16 brands, and offers to open the firewall port device discovery needs. Integrations links the rest: Home Assistant, a Hue Bridge (press its link button), SmartThings, Tuya, Meross and eWeLink (a one-time key fetch), an MQTT broker, and a Govee API key for Govee plugs and appliances.

  4. Make a profile.

    A new profile starts blank. Pick the states you care about and choose what each one does. Start with three: working, needs permission, finished.

  5. Bind it and press Start.

    Bind the profile to a project folder, press Start and open Claude Code or Codex there as usual. Your lights follow the session.

First launch

macOS

Updating on a Mac

  1. Quit AC Bridge before you replace it. If its icon is in the menu bar, click it and choose Quit AC Bridge. Closing the window is not always enough. If the app is still open, replacing it fails with “The operation can't be completed because the item AC Bridge is in use”.
  2. Download the new dmg from the Download tab of your account, open it and drag AC Bridge to Applications. If your Mac says an older item named “AC Bridge” already exists, choose Replace.
  3. Open AC Bridge from Applications. If your Mac says it is an app downloaded from the internet, choose Open.
  4. Your Mac may also ask for your login password for a Keychain item named @bridge/app Safe Storage. Enter it and choose Always Allow.

Hook events AC Bridge uses

AC Bridge reads each session's state through the agent's own hook system (the Claude Code hooks reference, the Codex hooks docs), and the app's first-run setup wires both agents. Nothing is scraped from your terminal.

Claude Code

Setup installs the AC Bridge plugin, and the plugin registers its own hooks.

Claude Code event State
SessionStartstarted, or resumed.
SessionEndended.
UserPromptSubmitworking.
PreToolUseneeds your input (AskUserQuestion), plan ready (ExitPlanMode), workflow started.
PostToolUsekeeps the context reading fresh; working again once you answer.
PostToolUseFailureerror.
Notificationby type: permission_prompt is needs permission, agent_needs_input needs your input, agent_completed task completed and idle_prompt idle. Claude Code sends idle about a minute after Claude finished responding, if you have not typed since; AC Bridge usually sets it sooner.
Stopfinished, at the end of every turn.
StopFailureerror.
SubagentStartsubagent started.
SubagentStopsubagent finished.
PreCompactcompacting.
PostCompactcompaction done.
PermissionDeniedpermission denied.
TaskCompletedtask completed.

Codex

Setup adds its entries to ~/.codex/hooks.json beside your own hooks. Codex runs a new hook only once trusted: after setup, or an update that adds an event, type /hooks and trust the AC Bridge hooks, or that event stays silent. Your notify setting is left alone.

Codex event State
SessionStartstarted, or resumed.
SessionEndended.
UserPromptSubmitworking.
PermissionRequestneeds permission, the moment Codex asks for approval.
PostToolUsekeeps the context reading fresh.
PreCompactcompacting.
PostCompactcompaction done.
SubagentStartsubagent started.
SubagentStopsubagent finished.
Stopfinished.

Claude Code: what the hooks leave out

The plugin takes needs permission from the permission_prompt notification, not the PermissionRequest hook. Context, permission-mode and model changes have no hook; the bridge works them out from the session. Setup's own edits to ~/.claude/settings.json are a statusLine entry (it chains any status line you have, and feeds the context and usage readings) and a narrow permissions allow-list for its device tools; the hooks live in the plugin, not that file.

States and effects

A profile rule pairs the state that triggers it with the effect your device runs. A Claude Code profile offers 29 states and a Codex profile 19, because the two agents report different things; the editor lists only the states the agent you chose can produce. Twelve main states are listed first (eight on a Codex profile) and the rest fold under Advanced states. The Claude Code status light page gives an example colour and hook for six states.

Session state When it fires
started / resumedA session begins, or picks up an earlier one.
workingThe agent is actively doing something.
needs permissionWaiting for your approval. On Codex, as soon as Codex asks.
needs your inputIt asked a question and is waiting for the answer. Claude Code only.
plan readyA plan is ready for your review.
idleThe turn ended and nothing has happened since. On Claude Code, AC Bridge sets it a moment after the turn, unless you type or Claude asks something; Claude Code's own idle notification is a backstop.
finished / task completedThe turn, or the task, is done.
endedThe session closed.
errorSomething failed.
rate limitedA state for your Claude plan's usage limit (the 5-hour or weekly window). Claude Code profiles list it.
Session state When it fires
context low / context criticalThe session is running out of context window.
compacting / compaction doneThe context is being compacted, and has finished.
permission deniedYour permission rules blocked a tool call without asking.
usage high / cost highPlan usage or session spend passed your threshold. Claude Code only.
long runWorking without a break past your minutes threshold.
subagent started / subagent finishedA sub-task was spawned, or completed.
plan mode / auto-accept mode / bypass permissions / normal modeThe permission mode changed.
model changedThe session switched model.
review changedYour pull request's review state changed (approved, changes requested). Claude Code only.
workflow startedA multi-agent workflow began.

Effects

Nine effects, plus plain colour, brightness and on/off. The editor offers only what a device advertises, and filters the one-tap presets (Alert, Police, Party, Candle, Sunrise, Breathe) the same way. Breathe and Candle need no colour, so they work on a dimmable white bulb.

Device Effects it gets
Colour lightAll nine.
Dimmable white lightFour: Flash, Strobe, Pulse, Candle.
Light that cannot dimTwo: Flash, Strobe.
PlugNone.
Effect What it does
FlashA set number of on/off blinks, at an on and off time you pick.
StrobeRapid blinking at a set rate, for a set duration.
PulseBreathes between low and high brightness. Needs no colour.
FadeA glide between colours, over seconds or a five-minute sunrise.
LoopCycles a list of colours, holding and cross-fading each one.
CandleA warm, irregular flicker at a colour temperature you pick. Needs no colour.
RainbowSweeps the full hue circle.
SirenAlternates two colours at a set rate.
MeterMaps a live value, such as context remaining, onto colour stops and keeps tracking it.

Lighting profiles

A profile is a named set of rules, state → what these devices do: colour, brightness, on/off, an effect or a scene.

The bridge will not start

In order, because each one rules out the next:

  1. Is your subscription active?

    Local device control needs an active plan or trial: check your account. A lapsed plan pauses automation and deletes nothing.

  2. Is this machine signed in?

    Sign in from the app.

  3. Is first-run setup finished?

    It is a one-time, per-account step. Finish it in the app.

  4. Is the port in use?

    The bridge serves a local control API on 127.0.0.1. If a previous copy of the app is still running, quit it and open the app again.

  5. Re-check setup.

    In the app, open Account & System, then the System tab. Bridge setup lists each step (the agent plugin, the hooks, the firewall rule and the rest), its state, and a command to run by hand if it fails. Re-check setup runs the checks again.

Devices found but not controllable Ten of the 16 LAN brands need no account or key (newer Kasa models are the exception), though Govee, Yeelight and Roku need local control switched on first. The rest need a one-time step: a sign-in or key fetch (Tapo, Tuya, Meross, eWeLink) or a button press (Hue Bridge, Nanoleaf). Open Integrations and link the provider, then re-run Scan: the device moves from "found" to "ready to connect".

Codex does not change the lights Codex skips a hook until you trust it. Type /hooks inside Codex, trust the AC Bridge hooks, then start a new session.

Still stuck? Email support@ac-bridge.com — a person reads it. Include what you tried and what the app's Bridge setup shows.

Guides