Lumea v2.9.0

Every strip.
One colour.

Desktop control for ELK-BLEDOM and MELK Bluetooth LED strips.1 Drive them all at once, with effects, music mode and your PC’s RGB. No phone, no vendor app, no account.

Lumea with three strips connected: the colour picker, presets, brightness, effects and the device list

Highlights

Five things to know.

Every strip at once

Tick the desk, the shelf and the TV. One colour reaches all three together.

Rainbow.
Breathe.
Cycle.

Effects

Animations that run the same on every strip and every USB device.

♪

Music mode

The lights follow whatever your PC plays. No microphone, no virtual driver.

MSI.
SteelSeries.

PC RGB, Windows

The motherboard, the keyboard and the mouse, next to your strips.

Remote control

Your phone as the remote. Pair once with a QR code.

Control

Scan. Tick. Connect.

Scan lists the strips nearby. Tick the ones you want and press Connect. Then choose the target with the Editing chips, all of them or just one, and use the colour picker, brightness and power. Commands go out in parallel, so the strips change together.

Strips at once

Many

One picker, every ticked device

Saved presets

12

Right-click a dot to store the colour

Idle release after

1 min

So the strips stop competing with your headphones

All three strips selected under Editing Only the shelf selected under Editing Lumea in the dark theme

All sends to every ticked strip: the desk, the shelf and the TV backlight change together.

Click a strip’s chip, or its row, and you edit just that one, with its own colour, brightness and power loaded.

Light and dark, following the system or fixed.

Desk.
Shelf.
TV.

Aliases

Name each strip. Names survive a restart.

Presets

Twelve dots. Left-click applies, right-click saves.

−%

Brightness

The colour itself, dimmed. The same on every strip.

Tray

Close the window. Lumea keeps running.

Polite with
Bluetooth.

By design

No connection on launch. Let go when idle.

Effects and music

Lights that move.

Effects and music mode are computed by Lumea and sent as colour frames, so they work the same on every strip and every USB device. Only one runs at a time.

Effects

3

Rainbow, Breathe, Cycle, with a speed control

Music modes

4

Pulse, Spectrum, Beat, Flow

Bluetooth strips get

~12 fps

USB devices follow more closely

The Rainbow effect running, with the speed control

Speed appears while an effect runs, and the dot at the end of the row shows the colour being sent right now.

Rainbow

Turns through the colour wheel, from your colour.

Breathe

Fades the picked colour in and out.

Cycle

Glides through your twelve presets.

Pulse.
Spectrum.
Beat. Flow.

Music mode, a plugin

The lights follow the system audio.

0 mics

How it listens

A loopback of the system audio. Nothing else.

Your PC's RGB, too.

The whole desk, one colour.2

Two plugins put an MSI Mystic Light board, a SteelSeries Apex 3 and a Rival 650 in the device list, always connected. Tick them to join All. No MSI Center, no SteelSeries GG, no kernel driver.

How it drives the board →

The MSI board, the Apex 3 and the Rival 650 in the device list beside a strip

Plugins

Add only what you use.

Settings › Manage plugins lists optional add-ons. Install one, switch it on, and it runs inside Lumea, no restart. Updates come from the same page, without a new Lumea release.

Restart to install

0

Switch it on and it runs

Pairing PIN

6 digits

Or scan the QR; five wrong PINs lock out

Plugin updates

1 click

On the Plugins page; no Lumea release needed

The plugins page with Remote control on and its pairing QR Settings: theme, tray icon, usage stats, plugins, updates

Remote control on: scan the QR, or open the address and type the PIN.

Theme, the tray icon, usage stats, plugins and updates. Lumea updates itself, by swapping the exe on Windows and through Homebrew on a Mac that installed it that way.

MSI Mystic LightYour MSI motherboard’s RGB and its headers as a device in the list, driverless. Windows.
Music modeThe lights follow whatever your PC plays: Pulse, Spectrum, Beat or Flow. Windows and macOS 13+.
Random colorShows the live state and sets a random color. A small example plugin.
Remote controlControl Lumea from your phone, tablet or another computer on the same network.
SteelSeriesApex 3 keyboard and Rival 650 mouse lighting as devices in the list, driverless. Windows.

Remote control

Colour, presets, effects and music, from your phone.

Several
PCs.

One page, every PC

Each one announces itself. Switch between them.

class Plugin

Write your own

A folder of Python with a Plugin class.

Inside

Python. Qt. Bluetooth LE.

One Qt event loop with asyncio on it, no threads. One class speaks to a single strip, a device manager fans commands out to many, and the protocol encoders are pure functions. Plugins load from GitHub at run time and use one API.

Threads of its own

0

asyncio on the Qt loop, through qasync

Drivers installed

0

Bluetooth LE and USB HID

Written in

Python

PySide6, bleak, qasync. MIT licensed.

main.pyEntry point: QApplication and the qasync loop
ble.pyscan(), one strip, and the many-strip fan-out
protocol.pyPure byte encoders, only verified frames
ui.pyThe whole app: devices, editor, presets, effects, tray, settings
plugin_host.pyDownloads, loads and runs plugins
plugin_api.pyLumeaAPI, the one surface plugins use

Or run it from source.

Python 3.11 or later; if pip finds no PySide6 wheel for the newest one, use 3.11 to 3.13. On macOS the interpreter’s own bundle needs a Bluetooth usage string, and Lumea shows the one-time fix in its status line if it is missing.

Source on GitHub →
[lumea]
# from a clone of the repo
$ pip install -r requirements.txt
$ python main.py

Two builds

Get Lumea.

Lumea for Mac

Apple silicon

Download
$ brew tap ugurcandede/tap
$ brew install --cask lumea
Tap
ugurcandede/tap
Gatekeeper
Cleared by the cask; the zip: Open Anyway
Music mode
macOS 13 or later

Lumea for Windows

One executable

Download
Lumea-windows.exe, no installer
SmartScreen
More info, Run anyway
PC RGB
MSI, SteelSeries2
Updates
The exe swaps itself

Bluetooth on, and a strip that advertises as ELK-BLE, MELK or ELK-BULB.1 Anonymous usage stats can be switched off in Settings.3

Specifications

What it needs. What it does.

PlatformsmacOS on Apple silicon, Windows
Written inPython 3.11+, PySide6, bleak, qasync
StripsELK-BLE, MELK, ELK-BULB over Bluetooth LE
TargetsAll ticked strips, or any you pick
Presets12, saved per install
EffectsRainbow, Breathe, Cycle
Music modePulse, Spectrum, Beat, Flow (plugin; Windows, macOS 13+)
PC RGBMSI Mystic Light, SteelSeries Apex 3, Rival 650 (plugins, Windows)
InstallHomebrew cask or .exe
LicenseMIT

FAQ

Questions, answered.

Read the guide →

Will my strip work?

If its Bluetooth name starts with ELK-BLE, MELK or ELK-BULB, Lumea lists it. Power and colour use the frames confirmed on these controllers. If yours shows up but doesn’t respond, please open an issue with its name.

My strip doesn’t show up
  • Make sure Bluetooth is on and the strip has power.
  • Close the phone app. Most of these controllers accept one connection at a time; if your phone is connected, the strip stops advertising.
  • On macOS, check System Settings › Privacy & Security › Bluetooth and allow Lumea.
Why doesn’t Lumea connect on launch?

On purpose. Lumea lives in the tray; grabbing Bluetooth every time it opens would be rude to everything else using it. Scan, then Connect — it takes a second.

My Bluetooth headphones stutter

A busy Bluetooth radio can do that. Lumea releases its links after a minute without changes, so idle strips don’t compete with your audio; the next colour you pick reconnects them. Effects and music mode keep the links busy while they run.

Why doesn’t the app show the strip’s real colour?

These strips never report their state back — not the colour, not whether they are on. Lumea shows the last command it sent, and remembers it per strip. If you change the colour with the remote or the phone app, Lumea can’t know.

Where are the strip’s built-in effects and native brightness?

Their command bytes differ between ELK-BLEDOM variants and haven’t been confirmed on real hardware, so Lumea doesn’t send them — a guessed command does nothing at best. Brightness dims the colour instead, and the effects (Rainbow, Breathe, Cycle) are animated by Lumea itself.

Does music mode work on macOS?

Yes, on macOS 13 and later: the Music mode plugin captures the system audio through ScreenCaptureKit, so no virtual audio driver. macOS asks for the Screen & System Audio Recording permission the first time; allow Lumea and relaunch it.

Why does music mode want to record my screen?

Because macOS has no audio-only permission: Screen & System Audio Recording is the one way an app can hear what the system plays, and it covers the screen as well. Lumea reads the audio alone — the screen isn’t looked at, recorded or sent anywhere, and the microphone isn’t involved.

A plugin says Needs a newer Lumea or Needs a plugin update

Lumea and each plugin declare the plugin API version they speak. Needs a newer Lumea means the plugin was written for a newer app than yours: update Lumea from Settings › About. Needs a plugin update means the installed copy predates your Lumea: press Update on the Plugins page. Plugins are published from the repository, so they update without a new Lumea release.

Does Lumea collect any data?

Once a day it sends an anonymous ping to Google Analytics: a random install id, the app name and version; days missed offline are sent late, at most two. No device names, no addresses, no colours. Turn it off any time by unchecking Send anonymous usage stats in Settings.

Why does Windows warn me / why isn’t the Mac app notarized?

Neither build is signed with a paid certificate. On Windows choose More info → Run anyway on the SmartScreen prompt; on macOS install with Homebrew, which takes care of Gatekeeper, or allow the first launch under System Settings › Privacy & Security › Open Anyway.

Do the MSI and SteelSeries plugins work on macOS?

No. Both drive the hardware through hidapi, which Lumea bundles on Windows only; on a Mac they install and run but add no device. The strips, effects, music mode and the remote work the same on both systems.

Is it safe for my MSI motherboard?

Lumea only sends the static-colour report, never effect or mode bytes — those are undocumented and have bricked some boards. The writes are volatile: a reboot restores your BIOS lighting. Boards that don’t match the verified controller are detected and left untouched.

From lumea/docs/faq.md

More from ~/apps

Next door.