Protocol spec
Canonical HTTP, WebSocket, and BLE contract. Versioned, additive within a major.
A tiny OS that turns a $5 microcontroller into an AI-aware, scriptable LED lamp. Flash it once, set it up from the web, drop it into your home — Home Assistant, Homebridge, Node-RED, or just a browser tab. Stays on your network. Never phones home.
Free, open, and yours to tinker with — Apache 2.0. Coming from WLED? Here is what is different.
One file per shape and chip. Pick your board and your lamp's form and you get exactly the files it needs. Flash once over USB with esptool; after that every update goes over the air.
Or skip the tools entirely. Plug in the board, pick it below, hit Flash from browser — firmware and effects land in one click, straight from Chrome or Edge.
Pick a board and a form to see its files.
Once the initial *-flash.bin is on the chip, every subsequent
update can be pushed wirelessly through /ota in any browser
or through the POST /api/ota endpoint. Dual OTA partitions
give you a free rollback on failure.
Designed around AI from the ground up — combined with the good old features any decent lamp should have.
shade() DSL; the firmware compiles them to bytecode for fast on-device playback. Save, edit, play — all without a server./control, /compose, /stream, /draw, /js, and /config. No app required.user / creator / admin). Hand them out via QR or over Bluetooth client-to-client. Revoke any time./draw, or from any app’s Draw tab. Save up to 30 drawings on the lamp and let the built-in carousel effect cycle through them.The wire contract between client and lamp is open and stable. HTTP for control, WebSocket for streaming, BLE for onboarding — pick the transports your project needs and target the spec directly. The firmware doesn't care whether the bytes come from our app, a CLI, or your own SDK.
Canonical HTTP, WebSocket, and BLE contract. Versioned, additive within a major.
Bearer tokens, user / creator / admin roles, share-key endpoints. Multi-tenant from day one.
Firmware source under Apache 2.0 lives next to these docs in the repository. All four specs are also on this site: browse the documentation.