Skip to main content

Targets

The targets field in lumio.config.json declares which surfaces your extension renders on. Only listed targets are bundled and deployed.

Available targets

TargetSurfaceEntry filePurpose
"editor"Dashboard sidebarsrc/editor.tsxConfiguration UI for the streamer
"layer"OBS Browser Sourcesrc/layer.tsxTransparent visual overlay on stream
"interactive"Standalone page /ext/\{slug\}src/interactive.tsxAudience 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:

TargetRequired fileCalled by
"editor"src/editor.tsxDashboard overlay editor sidebar
"layer"src/layer.tsxOBS Browser Source iframe
"interactive"src/interactive.tsxLumio 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:

  1. Adding the target to "targets" in lumio.config.json
  2. Creating the corresponding entry file
  3. Running lumio build and lumio 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.