rhythm.lighting docs
Search docs… ⌘K

The iOS app

How the app is organized and what each surface controls.

The app is a thin client over the LightHub. Anything you can do in the app can be done by talking to the hub directly — the app just makes it pleasant.

Three surfaces

  • Now — current state of every room, real-time.
  • Scenes — saved combinations you can recall by tap or schedule.
  • Plan — the circadian engine and schedule editor.

Data flow

The app reads from and writes to the hub over your local network. When you're away, requests are relayed through api.rhythm.lighting with end-to-end encryption — the cloud never sees plaintext device state.

Underneath, every surface is just talking to the hub's REST API, and it gets live updates back over a server-sent events stream — so when a button is pressed or a room changes, the app reflects it without polling.

  app  (this)
   |  REST  (state, actions, config)
   |  SSE   (live room + motion + status updates)
   v
  LightHub
   |  circadian engine  ->  per-room target (brightness + color)
   v
  integrations          ->  Hue · Home Assistant · Matter
   v
  your bulbs

The hub is the source of truth

The hub owns the state, the schedule, and the engine; the app is one client of many. The same REST API drives the macOS/Linux server and the Home Assistant add-on, so anything the app does, an automation or your own script can do too. The app just makes it pleasant.