Scene Control
Create, switch, and manage scenes with precision across your live workflow.
Programmatic control for OBS.
REST, WebSocket, and OSC control for scenes, presets, playlists, audio, streaming, overlays, recording, and automation. Build your own control surface and drive OBS like software, not a menu.
Powerful. Programmable. OBS.
Create, switch, and manage scenes with precision across your live workflow.
Apply and automate scene collections, side effects, and broadcast states.
Queue and schedule media playlists, hot-swap channels, and auto-advance items.
Receive real-time events for state changes, scene switches, and playback updates.
Control OBS over OSC for phones, tablets, and custom hardware interfaces.
Start, stop, pause, resume, and monitor recording and streaming from code.
Build and preview browser sources and control surfaces directly in the stack.
Update text, images, and browser overlays on the fly from your tools or UI.
Simple. Powerful. Open.
$ curl -X POST http://localhost:8080/presets/intermission/activate \ -H "Content-Type: application/json" \ -d '{}'
{
"preset": "intermission",
"actions": [
{ "action": "switch_scene", "scene": "Intermission" },
{ "action": "playlist_activate", "playlist": "intermission" }
]
}
Control. Orchestrate. Automate.
obs-relay is the control layer between your software and OBS Studio. Your app talks to obs-relay over REST, WebSocket, or OSC, and obs-relay handles scenes, playlists, overlays, audio, recording, and streaming behavior inside OBS.

This graphic captures the project at a glance: your software in, broadcast orchestration out. It communicates that obs-relay is not just a utility endpoint, but the programmable hub that coordinates the whole OBS workflow.
Everything OBS can do — now in your code. Start with the docs, use the setup guide, or jump into the browser GUI prototyper.