Open Live — Companion Module Setup Guide

Open Live Companion module default page layout

This guide covers installing and configuring the Open Live Bitfocus Companion module, importing the default Stream Deck layout, and a reference for all available preset buttons.


Requirements

Requirement Version
Bitfocus Companion 3.0 or later
Open Live backend Running and reachable

No Node.js or build tools needed — the module ships pre-built.


1. Installation

  1. Download and install Bitfocus Companion.

  2. Go to the GitHub repository, click Code → Download ZIP, and extract it to a dedicated folder on your machine.

Avoid extracting into a large folder such as Downloads — Companion scans the entire developer modules directory on startup, which can cause it to hang.

  1. Open Companion. Go to Settings → Developer modules and set the path to the folder you extracted the module into (the folder that contains companion-module-eyevinn-open-live-main, not the module folder itself).
Companion Settings — Developer modules path
  1. Go to Connections, search for Open Live or Eyevinn, and click Add.
Companion Connections — search for Open Live

2. Connecting to Open Live

After adding the connection, Companion opens the module configuration panel.

  1. Enter your Open Live URL — for example:
  2. Local development: http://localhost:8080
  3. OSC-hosted: your Open Live service URL from the OSC dashboard

  4. If you are connecting to an OSC-hosted instance, enter your OSC PAT (Personal Access Token). See the Open Live Setup Guide for instructions on creating a PAT.

  5. Click Save. The connection indicator turns green and the module fetches your active productions.

Companion connection config — Open Live URL and OSC PAT fields

3. Default Page Layout

The module ships with a ready-made Companion config at:

companion-module-eyevinn-open-live-main/config/open-live-default.companionconfig

Import it via File → Import in Companion to get a fully configured four-page Stream Deck layout.

Companion File → Import dialog Companion Import Buttons

Page 1 — Productions

Lists all active productions on the Open Live backend. Tap a production to select it and jump to the video control page. A green indicator shows when a slot has an active production; a red dot appears when other controllers are connected.

Companion Page 1 — Productions landing layout Companion Page 1 — Productions landing layout

Page 2 — Video Control (M/E)

The main vision mixing page. Use this during a live production.

  • Row 1 — TAKE, AUTO transition, FTB, DSK, and overlay alpha controls.
  • Row 2 (red) — Program/CUT bus: tap a source to hard-cut it directly to program. Tapping the current program source is a no-op.
  • Row 3 (green) — Preview bus: tap a source to stage it on preview.
Companion Page 2 — Video Control M/E layout Companion Page 2 — Video Control M/E layout - Stream Deck

Page 3 — Audio Mixer

Per-channel strip controls for channels 1–7.

  • Row 0 — Mute toggle
  • Row 1 — Volume up
  • Row 2 — Volume down
  • Row 3 — Fader (rotary encoder)

Button labels resolve dynamically from the production's channel names via Companion variables.

Companion Page 3 — Audio Mixer layout Companion Page 3 — Audio Mixer layout - Stream Deck

Page 4 — Audio X

X-button pattern for controlling one channel at a time with a single set of action buttons.

  • Row 0 — Channel selector (MAIN, Ch1–Ch16). Hold to select; release to deselect.
  • Row 1 — MUTE X, VOL ▲ X, VOL ▼ X, X FADER (rotary).
Companion Page 4 — Audio X layout Companion Page 4 — Audio X layout - Stream Deck

4. Preset Buttons

All preset buttons are available in the Companion Presets panel and can be dragged onto any page. They are organised into categories — drag the ones you need onto your layout, or import the default config in section 3 to get a ready-made layout.

Button What it does
← BACK Disconnects from the current production and returns to the productions landing page.

Productions

Button What it does
Production 1–31 Tapping a slot connects to that production and jumps to the video control page. The button turns dark grey when the slot has an active production. A red dot appears in the bottom-right corner when one or more other controllers are connected.
REFRESH Re-fetches the list of active productions from the backend.
Production Listing

Video — Program (PGM)

Tally indicators for slots 1–16. These buttons have no action — they are purely visual. The button turns red when that source slot is on program.

PGM tally indicators — source 1 lit red on program

Video — Preview (PVW)

Selector buttons for slots 1–16. Tapping a button stages that source on preview. The button turns bright green when on preview. It dims when the source is on program (you cannot preview what is already on air).

PVW selector buttons — source 2 lit green on preview

Video — Transitions

Button What it does
TAKE Hard-cuts the current preview to program immediately.
FADE 0.5s / 1s / 2s Fades the current preview to program over 500 ms, 1 s, or 2 s.
PUSH L 0.5s / 1s / 2s Slides the current preview in from the right over the chosen duration.
PUSH R 0.5s / 1s / 2s Slides the current preview in from the left.
PUSH UP 0.5s / 1s / 2s Slides the current preview in from the bottom.
PUSH DN 0.5s / 1s / 2s Slides the current preview in from the top.
FADE / PUSH L / PUSH R / PUSH UP / PUSH DN (custom) Same transitions with a 1 s placeholder duration — edit the button to set your own duration.
FTB Toggles Fade to Black. Turns red when the output is faded to black.
Transition preset buttons — TAKE, FADE, PUSH variants, FTB

Video — DSK

Four DSK layer toggle buttons (DSK 1–4). Each button is dimmed when no DSK layer is configured for that slot, full brightness when configured, and turns orange when the layer is currently visible.

DSK toggle buttons — DSK 1 lit orange when visible

Video — OVL Alpha

Five overlay opacity buttons: OVL 0%, 25%, 50%, 75%, 100%. Tapping one sets the overlay alpha immediately.

OVL Alpha Buttons

Audio — Channels

Per-channel strip controls for MAIN and channels 1–16. Each channel has four buttons:

Button What it does
[Name] MUTE Toggles mute on that channel. Turns orange when muted. Dims when the channel does not exist in the current production.
[Name] ▲ Nudges the channel volume up by 5% (multiplicative).
[Name] ▼ Nudges the channel volume down by 5%.
[Name] FADER For rotary encoders — rotate to adjust volume, press to toggle mute. Turns orange when muted.

Button labels use the channel names from the production. In the default config, Companion variables resolve these automatically.

Audio channel strip buttons — mute, up, down, fader for each channel

Audio — X Buttons

A space-saving pattern for controlling one channel at a time with a shared set of action buttons. Select a channel first; the X buttons then act on whichever channel is selected.

Button What it does
MAIN / Ch 1–16 (selector) Selects that channel as the X-button target. Turns orange when selected. Dims when the channel does not exist.
MUTE X Toggles mute on the selected channel. Turns orange when the selected channel is muted.
VOL ▲ X Nudges the selected channel volume up.
VOL ▼ X Nudges the selected channel volume down.
X FADER For rotary encoders — rotate to adjust the selected channel volume, press to toggle mute. Turns orange when muted.
Audio X buttons — channel selectors in row 0, action buttons in row 1

5. Building from Source

If you want to modify the module or contribute to development.

Prerequisites

Tool Version
Node.js 18 or later
npm Included with Node.js
Git Any recent version
git clone https://github.com/Eyevinn/open-live-companion-module.git
cd open-live-companion-module
npm install
npm run dev

npm run dev watches for changes and rebuilds dist/main.js automatically on every save. Companion picks up the new build when you reload the connection. Use npm run build for a one-off build before committing.

The compiled output is written to dist/main.js. Commit this file alongside any source changes — Companion loads the pre-built dist, not the TypeScript source.

Note: The repo tracks a stub at node_modules/@companion-module/base/package.json. If npm run build fails with module resolution errors, remove the stub, reinstall, and build:

bash rm -rf node_modules/@companion-module/base npm install npm run build git checkout -- node_modules/


6. Intercom Module

The Open Intercom Companion module lets you control intercom calls from a Stream Deck — push to talk, mute, volume, and speaking indicators — alongside your Open Live video controls.

For a full guide on setting up and using Open Intercom, see the Open Intercom User Guide.

How it works

Unlike the Open Live module, Companion acts as the server here — it binds a local WebSocket port and waits for the intercom browser tab to connect. The browser frontend opens ws://localhost:12345 (or whichever port you configure) and all state flows through that connection. Only one browser session can be connected at a time.

Installation

  1. In Companion, go to Connections, search for Open Intercom, and click Add. The module is available directly in Companion — no download required.

For local development, see the GitHub repository and follow the setup instructions in the Open Intercom User Guide.

Companion Connections — search for Open Intercom Companion Connections — Open Intercom Config
  1. The connection config has two fields:
Setting Default Notes
WebSocket Bind Interface 0.0.0.0 Leave as default to accept connections on all interfaces
WebSocket Port 12345 Must be a free port on the machine running Companion
  1. Click Save. Companion starts listening on the configured port.

  2. Open the intercom frontend in a browser and point it at ws://localhost:12345 (replace localhost with Companion's hostname if the browser is on a different machine). The connection indicator in Companion turns green when the browser tab connects.

Companion intercom connection — green indicator when browser is connected

Adding intercom buttons to Page 2

For a full reference of all available actions and presets, see the Open Intercom User Guide.

A quick way to get started is to add a mute (input) and deafen (output) button directly from the presets panel onto Page 2 alongside your video controls.

  1. In Companion, go to Page 2 and click Presets in the top toolbar.
  2. Select the Open Intercom connection from the preset source dropdown.
  3. Find the Call 1 Buttons category. Drag Toggle Input Mute 1 onto a free button slot — this mutes and unmutes your microphone on call 1.
  4. Drag Toggle Output Mute 1 onto another slot — this mutes and unmutes your speaker (deafen) on call 1.
Intercom mute and deafen buttons on Page 2 alongside video controls Intercom mute and deafen buttons on Page 2

Both buttons include feedback out of the box — they change colour automatically to reflect the current mute state.