LumiDeck is the Stream Deck frontend of the OpenLamp
family. The engine (drivers, OpenLamp State contract, local API, headless daemon,
CLI) lives in openlamp-engine; the
MIDI overlay for stage controllers lives in openlamp-midi.
This repo vendors streamdeck/engine.py (the plugin embeds the engine in-process).
One host at a time: the plugin and the engine daemon both own each Tuya lamp's single local connection and both bind port 8377 — run one or the other, never both.
Advanced, 100% local light control from your Elgato Stream Deck — colors, scenes, snapshots, fades, blackout. No cloud, no lag.
LumiDeck's goal is to work with every smart lamp on the market, starting with the most affordable consumer ones: Tuya / Smart Life bulbs and lamps (often 2-4× cheaper than proprietary brands). LumiDeck removes their only drawback — the cloud — by talking to them directly on your LAN with persistent connections, as instantly as the official app.
LumiDeck is layered into sub-projects — see ARCHITECTURE.md:
core/ (standardized LED interface + OLS protocol), streamdeck/ (plugin),
the MIDI overlay now lives in its own repo: lumideck-midi. Each frontend talks only OLS to the core.
The first public alpha is coming here shortly (.streamDeckPlugin — double-click to
install, fully self-contained). Watch/star the repo to be notified.
LumiDeck also implements WLED support (local JSON API) plus OpenLamp State (OLS) — a WLED-compatible state-patch protocol with extensions. The code is written but I don't own WLED hardware: if you have a WLED bulb/strip, ten minutes of your testing would help more than anything. Open an issue or write to the address in the plugin.
Open a GitHub issue — that's the official support channel.
Built by BenLab with the help of Claude (Anthropic). Local Tuya protocol via the excellent tinytuya (MIT). Not affiliated with Tuya Inc., Elgato, or the WLED project — all trademarks belong to their owners.