Browser-based OBS remote control built with Svelte + Vite.
This project talks directly to OBS via obs-websocket-js (v5) and does not need a Flask backend.
http://localhost:5173/#ws://192.168.1.103:4455/controlobs-websocket v5 enabledTools -> obs-websocket Settings)npm install
npm run dev
Open:
http://localhost:5173/Live demo: http://obsremote.dcoderz.site
npm run dev - start local dev servernpm run build - production buildnpm run preview - preview production buildnpm run check - Svelte + TypeScript checksThis app uses hash-based routing logic in src/lib/hashNavigation.ts:
#/ -> connection page#ws://<host>:<port>/control -> control page for a specific OBS target#/control, #/host/port/control)Defined in src/lib/obs/storage.ts:
sessionStorage key obs_ws_session - active connectionlocalStorage key obs_ws_persisted - optional persisted connectionlocalStorage key obs_user_shortcuts - shortcut definitionssrc/routes/Connection.svelte - connection UIsrc/routes/Control.svelte - switcher UIsrc/lib/connection/connectionPage.ts - connection page behaviorsrc/lib/control/controlPage.ts - control page behaviorsrc/lib/obs/client.ts - OBS websocket connection lifecyclesrc/lib/obs/obsOperations.ts - API-like OBS operations layersrc/styles/connection.css - connection stylingsrc/styles/control.css - control stylingws://<host>:<port>.