How to Control Backstage with the Bitfocus Companion Module

Last updated 28 July 2026

How to Control Backstage with the Bitfocus Companion Module

The Brainsalt Backstage module for Bitfocus Companion lets you control a Backstage media server from a Stream Deck, touch screen, or any Companion-supported surface. It connects over Backstage's JSON show-control protocol on TCP and gives you live feedback, variables, and ready-made button presets for all show-control entities.

The module is published to the official Bitfocus module store as Brainsalt: Backstage. It requires Companion 3.4 or later.

Before you start

  • Backstage is running on the target server
  • Bitfocus Companion 3.4 or later is installed on your control machine
  • The control machine can reach the Backstage server over TCP (default port 7400)
  • You know the Backstage server's IP address or hostname

Steps

1. Enable the show-control protocol in Backstage

Open Settings → Remote Control and check Enable Show-Control Protocol. Leave the Enable Bitfocus Companion sub-option checked (it is on by default). Click Apply / Restart Protocol Server to activate the listener.

The default TCP port is 7400. Change it here if your network requires a different port. If you have set an Auth Token, note it down — you will need it in Companion.

The show-control protocol is disabled by default. Backstage will not accept connections until you enable it and apply.

2. Install the module in Companion

In the Companion web UI, go to Connections. Click Add connection and search for Brainsalt: Backstage. The module is in the official store and installs automatically.

3. Configure the connection

After adding the connection, fill in three fields:

Field

Description

Default

Backstage IP / Hostname

IP address or hostname of the machine running Backstage.

127.0.0.1

Show-Control TCP Port

TCP port configured in Backstage's Remote Control settings.

7400

Auth Token

The auth token set in Backstage. Leave empty if no token is configured.

(empty)

Once configured, the module connects and subscribes to live status updates. The connection indicator turns green when active.

4. Use the discovered actions, feedbacks, and presets

The module automatically discovers all show-control entities in your Backstage project. No additional configuration is required — every stepper, sequencer, broadcast scheduler, calibrator, audio output, matrix mixer, NDI input, and node endpoint appears as a target in the module's action and feedback dropdowns.

The module also generates ready-made button presets for every discovered entity. Open Presets in Companion and drag them onto your buttons to get working controls with feedback in seconds.

5. (Optional) Add CompanionIO nodes for custom typed controls

For show-specific controls beyond the built-in entities, add CompanionIO nodes to your Backstage node graph (found in the UI category). Each CompanionIO node appears in Companion as a typed control with a matching widget: trigger buttons for Bang, faders for Float/Int, toggles for Bool, choice selectors for Enum, text fields for String, and color pickers for Color.

CompanionIO nodes are optional. The module works with all show-control entities without any nodes in the graph.

What the module controls

The table below summarises the actions, feedbacks, and variables the module exposes for each Backstage entity type.

Entity

Actions

Feedbacks

Variables

Steppers

Play, Pause, Stop, Restart, Bang, Next Step, Go To Step

State is (Playing / Paused / Stopped), At step number

State, current step, step count, step name

Sequencers

Play, Pause, Stop, Restart, Bang, Fade In, Fade In + Play, Fade Out, Fade Out + Pause, Fade Out + Stop, Seek (fraction), Jump (seconds), Set Tempo, Adjust Tempo, Set Fade, Adjust Fade

State is, Position above fraction

State, time (seconds and m:ss), duration, tempo, fade level

Broadcast Schedulers

Enable / Disable / Toggle, Force Entry, Clear Forced Entry

Enabled, Active entry is

Enabled state, active entry, next entry

Calibrators

Align, Black Level, Cancel, Restore Alignment Snapshot, Restore Black Level Snapshot

State is (Idle / Aligning / Black Level / Complete / Error)

State, progress %, message

Audio Outputs & Matrix Mixers

Set Volume (global or per channel), Adjust Volume, Mute / Unmute / Toggle

Muted, Volume above threshold

Volume, mute state

NDI Inputs

Route Source (select from discovered NDI sources, or unroute)

Routed source is

Routed source name

Node Endpoints

Send Value (generic, for Remote Control In / labelled datatype nodes / CompanionIO)

Value equals

Current value

CompanionIO Controls (typed)

Trigger Bang, Set/Adjust Number (Float/Int), Set Bool (on/off/toggle), Set/Step Enum, Set String, Set Color

Bool is ON, Enum choice is, Number above threshold, Color preview (sets button background)

Current value (formatted per type)

[USER-ACTION-REQUIRED: Attach a screenshot of the Companion connection page showing the Brainsalt: Backstage module configured and connected]

[USER-ACTION-REQUIRED: Attach a screenshot of Backstage Settings → Remote Control showing the Enable Show-Control Protocol and Enable Bitfocus Companion checkboxes]

Options explained

Setting

Description

Values / Range

Enable Show-Control Protocol

Master switch for the JSON show-control protocol in Backstage. Must be on for the Companion module to connect.

Checkbox (off by default)

Enable Bitfocus Companion

Sub-option that allows clients identifying as Companion. Disabling this blocks Companion specifically without affecting other show-control clients.

Checkbox (on by default)

TCP Port

The TCP port Backstage listens on for show-control connections.

165535 (default 7400)

Auth Token

Optional authentication token. When set in Backstage, the same token must be entered in the Companion connection settings. Applied live (no restart needed).

Text (empty = no auth)

Bind Address

Network interface Backstage listens on. Set to 127.0.0.1 to restrict to localhost only.

IP address (default 0.0.0.0 = all interfaces)

IP Allowlist

Comma-separated list of IPs or CIDRs allowed to connect. Applied live. Empty means any IP is allowed.

Text (empty = any)

Common Mistakes

  • Connection stays yellow / "Connecting" — The show-control protocol is disabled in Backstage. Open Settings → Remote Control, enable it, and click Apply / Restart Protocol Server.

  • Connection fails with "disabled" — The Enable Bitfocus Companion sub-checkbox is unchecked. The module identifies itself to Backstage, and this switch gates Companion connections specifically. Re-enable it in Settings → Remote Control.

  • No entities appear in action dropdowns — The Backstage project has no steppers, sequencers, or other show-control entities yet. Create a stepper or sequencer in Backstage; the module discovers new entities automatically.

  • Auth token mismatch — If Backstage has an auth token configured but the Companion connection does not (or vice versa), the connection will be rejected. Make sure both sides use the same token, or clear both.

  • Port/bind changes not taking effect — Changes to TCP port or bind address require clicking Apply / Restart Protocol Server in Backstage. The auth token and IP allowlist apply live without a restart.

Tips

  • Drag presets from the Presets tab instead of building buttons from scratch. The module generates transport buttons with state feedback and status displays for every discovered entity.

  • Use Adjust Volume and Adjust Tempo actions on encoder rotation events. They read the current value and add a step, making them ideal for hardware knobs.

  • CompanionIO nodes respect min/max/step metadata. Set these on the node in Backstage and the Companion actions will clamp and step values accordingly.

  • All entity names in Companion match their Backstage names exactly (case-sensitive). If you rename a stepper in Backstage, update your Companion buttons to match, or use the Allow custom option with a Companion variable.

  • The module subscribes to live status events. Button feedbacks and variables update in real time without polling — typically within 100 ms of a state change.

How to Control Backstage via the JSON Remote Control Protocol — Full reference for the underlying show-control protocol (message format, domains, actions, status fields).

Integrate with Backstage via the REST API — Alternative HTTP/REST integration for querying and controlling Backstage programmatically.

How to Use the Stepper Window — Create and manage steppers in Backstage, which are the primary show-control entity for multi-step sequences.