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" | Browser Source | src/layer.tsx | Transparent visual overlay on stream |
"designer" | Fullpage designer overlay | src/designer.tsx | Split-pane designer with live preview |
Common combinations
{ "targets": ["editor", "layer"] }
The most common setup. The editor lets the streamer configure settings; the layer displays the overlay in the stream.
{ "targets": ["editor"] }
Configuration-only. Useful for bot modules or integrations that have no visual overlay output.
{ "targets": ["layer"] }
Layer-only widget. No custom editor UI - settings come from config_schema in lumio.config.json and the host auto-generates a settings panel. Most system extensions use this pattern.
{ "targets": ["layer", "designer"] }
Layer with a fullpage designer. The designer provides a split-pane view with live preview alongside configuration fields. Designer fields can be defined via designer_schema in lumio.config.json (host-side form) or via a custom designer.tsx using SDK Editor Components.
No viewer target
There is no target for viewers: Lumio has no viewer page, and a manifest that lists "interactive" is rejected. Viewers interact through chat commands and channel point rewards handled by a bot module, which can push the result to the editor and layer surfaces. See Viewer Input.
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 | Browser Source iframe |
"designer" | src/designer.tsx | Fullpage designer overlay |
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 Browser Sources pointing to the removed layer surface will show an error until the user removes them.