USB LED strips
WS2812B and SK6812 RGBW chips over CH340 / CH341 / FT232 / PL2303 / CP2104 USB-serial controllers at 115200 baud — running theLumaSync v1 serial frame or the opt-in Adalight profile.
Supported chipsets →Open source · Tauri 2 · MIT
LumaSync mirrors your screen to WS2812B / SK6812 RGBW LED strips over USB, WLED boards over Wi-Fi, and Philips Hue Entertainment areas — all from one source. Local-only, brand-agnostic, MIT-licensed.
macOS · Windows · Linux

All at once
WS2812B and SK6812 RGBW chips over CH340 / CH341 / FT232 / PL2303 / CP2104 USB-serial controllers at 115200 baud — running theLumaSync v1 serial frame or the opt-in Adalight profile.
Supported chipsets →Drive ESP32 / ESP8266 boards running WLED firmware via the DDP protocol — auto-discovered on the LAN over mDNS or paired by static IP. Loopback, multicast, and broadcast addresses are rejected up-front.
WLED setup →DTLS 1.2 PSK streaming to any Entertainment Area at up to 20 Hz, withHue Zones, AR-locked sizing, and per-bulb gamut clipping for accurate colour.
How Hue streaming works →Same screen source drives every sink. Pick per mode — USB, WLED, Hue, or any combination — switched from the tray.
Ambient mode
Tuned for latency, not flash. The telemetry pill shows live capture and send rates so you can see when the pipeline is healthy and when it isn't — no mystery numbers.
Read about performance →

Room map editor
Drag your TV, furniture, and USB strips onto a grid. Hue channels project onto normalized coordinates. Undo / redo, snap guides, keyboard shortcuts.
Calibration docs →Lives in the menu bar
Single window hides to tray on close. Compact 320×480 mode for quick toggles, full 900×620 mode when you want to configure. Auto-starts on login, if you want it to.
First-setup walkthrough →

Platform support
Primary development target. Universal DMG (Apple Silicon + Intel). v1.5.3 fixes a 1.5.2 launch crash on Macs without Xcode.
Signed MSI installer, winget in progress. All three sinks fully functional.
Native X11 screen capture (xcap). AppImage / deb / rpm ship every release; Flathub submission underway. Tray behaviour still varies by desktop environment.
Open · signed · auditable
MIT licensed
Source at voyvodka/LumaSync. Fork it, ship it, read it.
Updates signed with minisign
Every binary is signature-verified before replacing the on-disk version. How updates work.
Credentials stay local
Hue bridge pairing and everything else lives in~/.config/lumasync/app.json on your machine.
Picking an ambilight tool
LumaSync is the open-source desktop ambient-lighting app for Philips Hue and WS2812B LED strips. It sits in a different category from each of the alternatives below — pick the comparison that matches what you already own. Not to be confused with theSync-on-Luma RGB SCART signal used in retro consoles or the lumalabs.ai video tools.
vs Philips Hue Sync
Hue Sync Box is HDMI hardware for TV-centric rooms. LumaSync drives Hue from a computer — different category, different problem.
Read comparison →
vs WLED
WLED is firmware on an ESP32 board with its own Wi-Fi web UI. LumaSync is the desktop app — often run alongside WLED, not instead of it.
Read comparison →
vs Hyperion
Hyperion is the RPi-first ambilight stack with a deep config surface. LumaSync runs on the computer you already use, no Pi required.
Read comparison →
vs Prismatik
Prismatik is the legacy Lightpack-era driver. LumaSync is built from scratch for current hardware — Hue Entertainment, Tauri 2, signed updates.
Read comparison →
Transparent about scope
No vaporware, no silently-aging footnotes. What shipped, what's queued, and what we've explicitly rejected — read end-to-end.
rkyvout-of-bounds read) reached LumaSync through an unused optional dependency of tauri-plugin-log, whose 2.9 release drops that chain entirely; the cargo audit gate is greenglib 0.18 → 0.19 migration to clear the remainingRUSTSEC-2024-0429 Linux-runtime warning (gated on Tauri / gtk-rs upstream)No dates promised. The LedSink abstraction (v1.4) and the WLED bridge (v1.5) make the OpenRGB track tractable.
These are rejections, not "not yet" items.
Honest filter