lumio dev
Run an extension locally with the mock Lumio host. From the project directory:
pnpm install
lumio dev
The CLI builds the available src/editor.tsx and src/layer.tsx surfaces and the server bundle with esbuild, watches their sources, and serves the sandbox at http://127.0.0.1:3100/. It writes development bundles under .lumio/dev/; dist/ stays reserved for lumio build. The terminal accepts commands: type /help for the list, or type plain text to send a chat message.
The sandbox and terminal share one session. Switching between editor and layer, firing an event, running a bot-module handler, and calling a server function all use the same mock host, storage, player, rewards, viewers, and local server runtime. A bot module can run with no visual target; when it also declares editor or layer, its handlers and surfaces run together. --bot-module opens with the chat panel first; it does not start a separate simulator.
Sandbox
The browser shows the available surfaces and panels for events, chat, rewards, music, scenarios, local data, server calls, and logs. Source edits rebuild the affected bundle and refresh the preview. Changes to lumio.config.json and files under lumio/mocks/ reload the session; a platform API or a real account is not needed.
The mock host answers the SDK's Worker RPC calls. Server functions and bot-module handlers run in the devkit's local V8 replica. Mock values and event presets can live in lumio/mocks/; see Testing extensions. An invalid event field is reported before your extension receives the event.
Use the terminal while the session is running:
/event twitch:follower user_name=Alice
/event @big-sub
/chat @moderator:alice !points 100
/reward "Hydrate" --user alice --platform kick
/timer reminder
/view layer
/status
For a second terminal, use lumio trigger. It sends commands to this project's running session and supports repeatable event loads.
Options
| Flag | Default | Purpose |
|---|---|---|
--port <port> | 3100 | Local sandbox port |
--open | off | Open the sandbox in a browser |
--bot-module | off | Show chat first |
--platform <platform> | twitch | Default chat platform: twitch, youtube, or kick |
--role <role> | everyone | Default chat user's role |
--seed <n> | 1 | Reproducible generated event fields |
--no-cooldown | off | Disable local command cooldowns |
--view editor|layer | first available | Surface shown first |
lumio dev --automation-node uses the automation-node simulator. The shared sandbox described here is for extension surfaces and bot modules.
Local and deployed behavior
The local session models host RPC, event payloads, trigger matching, and server-handler limits. It does not create an install or call the staging API. Deployment still needs lumio build and lumio deploy; account permissions, connected platforms, persistent production data, and the per-extension runtime origin are exercised only in a deployed Lumio installation. Test those parts in an installed extension after the local flow passes.