Open source · Tauri 2 · MIT

Your screen, your lights. Locally.

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

LumaSync's full-mode Lights section showing Ambilight active, scene presets, the live edge-signal preview, and the Δ/Σ telemetry pill.

All at once

One pipeline. Three sinks.

WLED over Wi-Fi

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 →

Philips Hue Entertainment

DTLS 1.2 PSK streaming to any Entertainment Area at up to 20 Hz, with Hue Zones, AR-locked sizing, and per-bulb gamut clipping for accurate colour.

How Hue streaming works →

All three, synchronized

Same screen source drives every sink. Pick per mode — USB, WLED, Hue, or any combination — switched from the tray.

  • Live Δ/Σ telemetry
  • EN · TR i18n
  • Compact 320×480 / Full 900×620
  • OS keychain credentials
First-setup walkthrough →

Ambient mode

Real-time screen capture. 20 Hz update.

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 →
LumaSync ambient mode with the edge-signal preview and live telemetry overlay.
LumaSync's room map editor canvas with a TV anchor, furniture objects, a USB strip, and Hue channel overlays.

Room map editor

A canvas, not a config file.

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

Out of your way until you need it.

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 →
LumaSync compact mode — narrow window with mode tiles and scene picker. LumaSync full mode — main window with sidebar and Lights section open.

Platform support

Installs anywhere you already work.

macOS Full support

Primary development target. Universal DMG (Apple Silicon + Intel).

Windows Full support

Signed MSI installer, winget in progress. All three sinks fully functional.

Linux Supported

Native X11 screen capture (xcap). AppImage / deb / rpm ship every release; Flathub submission underway. Tray behaviour still varies by desktop environment.

Open · signed · auditable

No accounts. No telemetry. No cloud.

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

See how LumaSync compares.

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 the Sync-on-Luma RGB SCART signal used in retro consoles or the lumalabs.ai video tools.

All four comparisons in one place →

Transparent about scope

Roadmap honesty.

No vaporware, no silently-aging footnotes. What shipped, what's queued, and what we've explicitly rejected — read end-to-end.

Shipped

v1.5.2 — 2026-05-05

  • WLED bridge over Wi-Fi — DDP protocol with mDNS auto-discovery (_wled._tcp.local.) and IP guard against loopback / multicast / broadcast
  • Hue Zones — entertainment areas mapped to logical zones with zone-relative coordinates, AR-locked sizing, HSV picker, and live bounds visual
  • Linux X11 capture via xcap — LumaSync now ships on macOS, Windows, and Linux every release
  • SK6812 RGBW chip support with host-side W = min(R,G,B) extraction; expanded USB allowlist (PL2303, CH341, CP2104, FT232H)
  • OS keychain credentials — Hue username + PSK migrated from plaintext store to macOS Keychain / Windows CredMan / Linux Secret Service
  • Per-bulb Hue gamut clipping — A/B/C triangle clipping in the DTLS frame builder hot-path with luminance-preserving xy→RGB mapping
  • Beta update channel scaffold — opt-in updateChannel shell state with separate latest-beta.json endpoint
  • macOS lifecycle hardening — Cmd+Q, tray Quit, and Ctrl+C unified onto a single watchdog-bounded shutdown path; close-to-tray OS notification on first dismiss
  • Polling discipline — telemetry and Hue health checks pause when the window is hidden, resume on visibility (lower idle CPU and battery draw)
  • Frontend log bridge — webview console.* calls now write into the platform log file alongside Rust log entries
Full changelog →
Next

v1.6 — queued

  • Flathub submission for Linux — discoverable in GNOME Software / KDE Discover with verified runtime sandboxing
  • glib 0.18 → 0.19 migration to clear the remaining RUSTSEC-2024-0429 Linux-runtime warning (gated on Tauri / gtk-rs upstream)
  • Companion firmware repo — reference sketch with the v1.5 PING/PONG handshake for LumaSync v1 controllers
  • OpenRGB sink (v2.0 track) — peripherals, motherboards, fans on the same pipeline

No dates promised. The LedSink abstraction (v1.4) and the WLED bridge (v1.5) make the OpenRGB track tractable.

Never

DNA-conflicts

  • Daemon / headless mode — answered via a local HTTP API + Home Assistant
  • Cloud telemetry or Sentry-class reporting — privacy posture is load-bearing
  • Cloud scene gallery — local files and JSON export only
  • AI-prompt scene inference — cloud inference breaks the zero-network promise
  • Docker / headless Linux server distribution — tray-first DNA

These are rejections, not "not yet" items.

Honest filter

Not for you if…

Type to search. Up and down arrows to navigate, Enter to open.