Skip to content
@openlamp

OpenLamp

100% local stage-light control for musicians and makers — Tuya / WLED lamps from a Stream Deck or MIDI, zero cloud

OpenLamp — local stage-light control

Instant, 100% local stage-light control for musicians and makers — drive cheap consumer smart LED lamps — WLED (recommended) or Tuya / Smart Life — from a Stream Deck, a MIDI controller or the command line, with ~45 ms response on WLED and zero cloud at runtime.

Made by BenLab with the help of Claude.

The family — one repo per layer

Each layer lives in its own repo so no layer is impacted by the others. Two independent paths reach the lamps — the engine (direct, ~45 ms) and Home Assistant — and a shared, firmware-independent asset layer dresses the UIs on both.

        your lamps   ·   WLED (recommended) / Tuya
          ▲                              ▲
          │ direct local API, ~45 ms     │ via Home Assistant
   ┌──────┴─────────────┐        ┌───────┴────────────────┐
   │   openlamp-engine  │        │  HA "wled" integration │
   │   OLS · API :8377  │        └───────┬────────────────┘
   └──▲──────────▲──────┘                │ entities
 in-proc│      /cmd│              ┌───────┴────────────┐
   ┌────┴───┐ ┌────┴───────┐      │   wled-assets-card │
   │frontend│ │ openlamp-  │      │   (Lovelace card)  │
   └───┬────┘ │ midi       │      └───────┬────────────┘
       │      └────────────┘              │
       └─────────── consume ──────────────┘
                        │
              ┌─────────┴───────────┐
              │      wled-assets    │  localized names + illustrations (CC0)
              └─────────────────────┘

Core engine

Repo Layer Depends on For whom
openlamp-engine drivers · OpenLamp State contract · local API · headless daemon · CLI nothing every control surface below
engine-js Node.js port of the engine (same contract, interchangeable behind the API) JS-first stacks (npm / Stream Deck SDK)

Control surfaces

Repo Layer Depends on For whom
openlamp-midi MIDI overlay (virtual port → engine /cmd API) engine musicians with physical MIDI controllers (Ampero Control, FCB1010, Launchpad, nanoKONTROL2…)
wled-assets-card Home Assistant Lovelace card — dresses HA's wled light with localized names + illustrations, one-tap apply HA wled integration · wled-assets Home Assistant users

Shared content (firmware-independent — any WLED client can consume it)

Repo What Consumed by
wled-assets localized effect/palette names (8 languages) + palette illustrations + effect motion previews — CC0 wled-assets-card · any WLED client
streamdeck-wled-icons 216 animated effect GIFs + 111 palette/control icons as Stream Deck Marketplace packs (under @Beennnn) Stream Deck profile designers

The WLED-compat endpoint (/json/state) ships inside the engine's local API — it lets any WLED-aware tool drive OpenLamp lamps; no control surface depends on it. The Home Assistant card is fully independent of the engine: it rides HA's own WLED integration and only shares the wled-assets layer with the other frontends.

One host at a time

A Tuya lamp accepts a single local connection and every engine host binds port 8377. Run either the Stream Deck plugin or the headless daemon (openlamp-engine/daemon.py), never both:

  • deck sessions → the plugin (Stream Deck app running);
  • CLI / MIDI-only sessions → the daemon (run-headless.sh).

Design notes

  • OLS is WLED-compatible on purpose: 8-bit values (0–255), state-patch semantics (omitted fields unchanged). One contract, many lamp brands.
  • MIDI is 7-bit (0–127), scaled up ×2 by the bridge — plenty for stage cues.
  • Everything local, offline-friendly (built for stages with a travel router).

Popular repositories Loading

  1. midi midi Public

    MIDI overlay for LumiDeck — drive smart lamps (and more) from Ableton, Bome or any cheap MIDI controller. Part of the LumiDeck stack.

    Python

  2. engine engine Public

    OpenLamp core engine — WLED/Tuya drivers, OLS state contract, groups, snapshots, animations, local API, headless daemon + CLI

    Python

  3. openlamp openlamp Public

    OpenLamp — 100% local stage-light control for musicians and makers. Hub repo: architecture, the OLS contract, and the repo-family map

  4. .github .github Public

    Org profile README for OpenLamp

  5. engine-js engine-js Public

    Node.js port of the OpenLamp engine — same OLS contract, interchangeable behind the local API

    JavaScript

  6. wled-assets wled-assets Public

    Shared client-side assets for WLED palettes & effects: localized names, palette illustrations, effect motion previews. Vendor-neutral, CC0. Any WLED client can consume it.

    HTML

Repositories

Showing 10 of 16 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…