Web remote & boards Field-tested
Open http://<machine>:8090/remote from any phone, tablet or laptop on the studio LAN (type
the http:// explicitly; there is no page at the bare root). The page is served from the
plugin’s Resources/WebRemote.html on every request - hot-editable, no recompile.
Boards & modules
A board is a tab; a module is a card on its 4-column grid (width 1-4; phones stack). The default Studio board is synthesized - your first edit materializes it, and deleting it restores stock. Module library: Health · Audio mixer · Scenes · Presets 1-16 · Cameras + Go Live · Transport · Record · SDI output · Timing & speed · Show triggers (Blueprint) · TV / screen router · Quick media shelf · Custom controls · Section label.
Editing happens on the page itself: ✎ Edit → add tabs, add modules, drag by the ≡ handle, rename/resize, 🗑 remove → SAVE BOARDS. Boards persist project-side and travel in show files. Long-press any trigger button to copy its Stream Deck URL.
Latency
Commands land in ≈25 ms (one LAN POST + a frame); indicators poll at 4 Hz, audio meters at 10 Hz. A CONNECTION LOST banner appears if the editor goes away.
HTTP API
Everything the page does is plain HTTP on the same port - usable from Bitfocus Companion, scripts, or anything that can POST:
| Route | Method | Does |
|---|---|---|
/remote | GET | The control-board page |
/api/state | GET | Full UI state JSON (tally, presets, scenes, TVs, NDI list…) |
/api/trigger?name=Cam.2 | POST | Fire any bus trigger |
/api/logical?name=X&v=1 · /api/scalar?name=X&v=0.5 | POST | Set bus values |
/api/tv?name=Wall&source=SDI:2 | POST | Route a screen (optional &fade=) |
/api/boards | GET / POST | Read / save board layouts |
/api/audio/levels | GET | Live meter levels |
/api/audio?src=SDI:1&volume=… · /api/audio/add?device=… · /api/audio/remove?src=… | POST | Mixer control |
/api/upload?name=x.png | POST | Upload media to the Quick Media shelf |
Content-Length is present (curl -X POST -d "x" "http://host:8090/api/trigger?name=Play").