How bitfocus/companion-module-streamlabs-desktop works
This is a Bitfocus Companion module for controlling a local Streamlabs Desktop instance. The workflow begins with a Companion action, passes through the module instance and its authenticated SockJS/JSON-RPC connection, and invokes Streamlabs services; returned state and events update the in-memory mirror, which drives Companion feedbacks and variables. The README documents scene and collection control, visibility, stream/recording, replay, studio mode, audio, performance, and generated presets. The excerpts show the main orchestration and transport, but not every service call, so unsampled wiring is represented only where documented.
Main entry points: main.ts Module instance · connection.ts SlobsConnection · state.ts State mirror · actions.ts Action definitions
Components 13
Companion controls
- Companion
- Action definitions
src/actions.ts - Feedback definitions
src/feedbacks.ts - Variable definitions
src/variables.ts - Generated presets
src/presets.ts
Module runtime
- Module instance
src/main.ts - Connection config
src/config.ts - State mirror
src/state.ts - Status utilities
src/util.ts
API transport
- SlobsConnection
src/slobs/connection.ts - Protocol types
src/slobs/types.ts
Streamlabs Desktop
- Streamlabs Desktop
Other components
- Operator
Connections 21
- Operator → Companion: operates
- Companion → Action definitions: invokes
- Action definitions → Module instance: calls actions
- Module instance → Connection config: reads fields
- Module instance → SlobsConnection: creates and calls
- SlobsConnection → Streamlabs Desktop: JSON-RPC requests
- Streamlabs Desktop → SlobsConnection: events and replies
- SlobsConnection → Module instance: emits updates
- Module instance → State mirror: syncs state
- Module instance → Status utilities: formats status
- Module instance → Action definitions: registers definitions
- Module instance → Feedback definitions: registers definitions
- Module instance → Variable definitions: registers definitions
- Module instance → Generated presets: builds presets
- Feedback definitions → State mirror: reads state
- Variable definitions → State mirror: reads sources
- Generated presets → State mirror: reads state
- Companion → Feedback definitions: evaluates
- Companion → Variable definitions: exposes values
- Companion → Generated presets: displays
- SlobsConnection → Protocol types: uses types