Bitfocus Companion
The Bitfocus Companion action is an open-source live-production control integration that lets your action phrases fire Companion operations across mixers, stream decks, and other connected software targets using TCP/UDP, HTTP, or OSC. It routes your chosen method and command into the appropriate transport (socket, web request, or OSC message) so one action can trigger reliable control actions in live workflows.
Required Parameters
Method(TCP/UDP,HTTP, orOSC)Command(method-specific command)- TCP/UDP:
Host,Port(0–65535),Protocol(TCPorUDP) - HTTP:
Base URLandProtocol(HTTPorHTTPS) - OSC:
IP Address,Port(0–65535)
Commands
TCP/UDP: Surface Page Set
- Required inputs:
Surface ID,Page - Constraints/ranges:
Port0–65535, page is a text/integer field - Supported targets/options: surfaces + page index
TCP/UDP: Surface Page Up
- Required inputs:
Surface ID - Constraints/ranges: none beyond transport validation (
Port0–65535, valid transport) - Supported targets/options: surface navigation
TCP/UDP: Surface Page Down
- Required inputs:
Surface ID - Constraints/ranges: none beyond transport validation
- Supported targets/options: surface navigation
TCP/UDP: Location Press
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column (int); missing values prevent execution
- Supported targets/options: any valid Companion location
TCP/UDP: Location Down
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: any valid Companion location
TCP/UDP: Location Up
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: any valid Companion location
TCP/UDP: Location Rotate Left
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: any valid Companion location
TCP/UDP: Location Rotate Right
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: any valid Companion location
TCP/UDP: Location Set Step
- Required inputs:
Page,Row,Column - Constraints/ranges:
Stepis optional; if provided it is appended to the command - Supported targets/options: any valid Companion location
TCP/UDP: Location Style Text
- Required inputs:
Page,Row,Column - Constraints/ranges:
Textvalue optional; command still sends without it - Supported targets/options: any valid Companion location
TCP/UDP: Location Style Color
- Required inputs:
Page,Row,Column - Constraints/ranges:
Text Colorvalue optional - Supported targets/options: any valid Companion location
TCP/UDP: Location Style BG Color
- Required inputs:
Page,Row,Column - Constraints/ranges:
Background Colorvalue optional - Supported targets/options: any valid Companion location
TCP/UDP: Custom Variable Set
- Required inputs:
Variable Name - Constraints/ranges:
Valueis optional - Unsupported combinations: empty variable name blocks execution
- Supported targets/options: Companion custom variables
TCP/UDP: Surfaces Rescan
- Required inputs: none (no additional fields required)
- Constraints/ranges: none
- Supported targets/options: console-level command
HTTP: Location Press
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: Companion web API location endpoint
HTTP: Location Down
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: Companion web API location endpoint
HTTP: Location Up
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: Companion web API location endpoint
HTTP: Location Rotate Left
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: Companion web API location endpoint
HTTP: Location Rotate Right
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: Companion web API location endpoint
HTTP: Location Set Step
- Required inputs:
Page,Row,Column - Constraints/ranges:
Stepmay be empty; still sends path if provided or blank - Supported targets/options: Companion web API location endpoint
HTTP: Location Style Text
- Required inputs:
Page,Row,Column - Constraints/ranges:
Textis optional; sent via query parameter - Supported targets/options: Companion web API location styling endpoint
HTTP: Location Style Color
- Required inputs:
Page,Row,Column - Constraints/ranges:
Text Coloris optional - Supported targets/options: Companion web API location styling endpoint
HTTP: Location Style BG Color
- Required inputs:
Page,Row,Column - Constraints/ranges:
Background Coloris optional - Supported targets/options: Companion web API location styling endpoint
HTTP: Location Style Size
- Required inputs:
Page,Row,Column - Constraints/ranges:
Text Sizeis optional - Supported targets/options: Companion web API location styling endpoint
HTTP: Location Style JSON
- Required inputs:
Page,Row,Column - Constraints/ranges: all style fields optional; empty payload sends nothing.
- Unsupported combinations:
Custom Variable GetandModule Variable Getare defined but filtered out of the command picker (intentionally not surfaced in this build). - Supported targets/options: Companion web API style endpoint
HTTP: Custom Variable Set
- Required inputs:
Variable Name - Constraints/ranges:
Valueoptional - Unsupported combinations: variable name must be present to avoid empty command path
- Supported targets/options: Companion custom variables
HTTP: Custom Variable Get
- Required inputs:
Variable Name - Constraints/ranges: GET request with path-based variable access
- Unsupported combinations: available in runtime command map but hidden from picker (not shown in UI)
HTTP: Module Variable Get
- Required inputs:
Connection Label,Variable Name - Constraints/ranges: no additional validation in action code beyond URL encoding
- Unsupported combinations: available in runtime command map but hidden from picker (not shown in UI)
HTTP: Surfaces Rescan
- Required inputs: none
- Constraints/ranges: none
- Supported targets/options: Companion web API surfaces endpoint
OSC: Location Press
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: OSC
/location/.../press
OSC: Location Down
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: OSC
/location/.../down
OSC: Location Up
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: OSC
/location/.../up
OSC: Location Rotate Left
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: OSC
/location/.../rotate-left
OSC: Location Rotate Right
- Required inputs:
Page,Row,Column - Constraints/ranges: numeric parsing required for page/row/column
- Supported targets/options: OSC
/location/.../rotate-right
OSC: Location Set Step
- Required inputs:
Page,Row,Column - Constraints/ranges:
Stepoptional; if numeric it is sent as integer, otherwise string - Supported targets/options: OSC
/location/.../step
OSC: Location Style Text
- Required inputs:
Page,Row,Column - Constraints/ranges:
Textoptional - Supported targets/options: OSC location style path
OSC: Location Style Color
- Required inputs:
Page,Row,Column - Constraints/ranges: if provided as three numbers, color is sent as 3-part value; otherwise string
- Supported targets/options: OSC location style/color path
OSC: Location Style BG Color
- Required inputs:
Page,Row,Column - Constraints/ranges: if provided as three numbers, background color is sent as 3-part value; otherwise string
- Supported targets/options: OSC location style/bgcolor path
OSC: Custom Variable Set
- Required inputs:
Variable Name - Constraints/ranges:
Valueoptional - Unsupported combinations: empty variable name prevents execution
- Supported targets/options: OSC custom-variable endpoint
OSC: Surfaces Rescan
- Required inputs: none
- Constraints/ranges: none
- Supported targets/options:
/surfaces/rescanendpoint