Targets
The targets field in lumio.config.json declares which surfaces your extension renders on. Only listed targets are bundled and deployed.
Available targets
| Target | Surface | Entry file | Purpose |
|---|---|---|---|
"editor" | Dashboard sidebar | src/editor.tsx | Configuration UI for the streamer |
"layer" | OBS Browser Source | src/layer.tsx | Transparent visual overlay on stream |
"interactive" | Standalone page /ext/\{slug\} | src/interactive.tsx | Audience interaction page |
Common combinations
{ "targets": ["editor", "layer"] }
The most common setup. The editor lets the streamer configure settings; the layer displays the overlay in OBS.
{ "targets": ["editor"] }
Configuration-only. Useful for bot modules or integrations that have no visual overlay output.
{ "targets": ["layer"] }
Display-only overlay. No configuration UI — the overlay uses default values or config_schema settings only.
{ "targets": ["editor", "layer", "interactive"] }
Full extension with audience participation. Viewers can interact via the standalone page.
{ "targets": ["editor", "interactive"] }
Interactive audience experience with editor configuration, but no OBS overlay layer.
Minimum requirement
At least one target is required. An extension with no targets is invalid.
Entry files
Each listed target requires a corresponding entry file:
| Target | Required file | Called by |
|---|---|---|
"editor" | src/editor.tsx | Dashboard overlay editor sidebar |
"layer" | src/layer.tsx | OBS Browser Source iframe |
"interactive" | src/interactive.tsx | Lumio webapp /ext/{slug} route |
If a target is listed in lumio.config.json but the entry file is missing, the build fails with an error.
Adding targets later
You can add targets to an existing extension by:
- Adding the target to
"targets"inlumio.config.json - Creating the corresponding entry file
- Running
lumio buildandlumio deploy
Removing a target from "targets" removes the surface from the deployed bundle. Existing OBS Browser Sources pointing to the removed layer surface will show an error until the user removes them.