Skip to main content
Version: 0.3

Bitfocus Companion

ShowRevue has two independent Companion integrations:

FeatureDirectionWhat it does
Companion ModuleCompanion → ShowRevueControl transport, navigation, messaging from a Stream Deck or surface
Variable FeedbackCompanion → ShowRevuePull live variable values from Companion and display them in overlay text

Use native connections when they exist

ShowRevue has direct, purpose-built integrations for GrandMA3, GrandMA2, ETC Eos, and QLab. Use those for lighting cues and media cues — they are lower-latency and require no Companion in the chain.

Variable Feedback is the right tool when ShowRevue doesn't yet have a native integration for a piece of gear — for example, an ATEM switcher program input, a Disguise show variable, an MA3 custom attribute, or any other data your Companion setup already knows about. If ShowRevue adds a native integration for something you are currently piping through Companion, switch to the native path.


Companion Module

The Companion module lets you control ShowRevue from Stream Decks and other Companion-compatible surfaces.

Install

Download the .tgz from the Companion/ folder in the source repo and install it from Companion → Modules → Install from file.

Configure the module

  • Host — the Mac running ShowRevue
  • Port8001, which is the default ShowRevue remote-control port

Available preset groups

  • Transport — Record, Stop, Play, Pause
  • Navigation — Next or previous cue, next or previous timecode segment, ±5 seconds, next or previous frame
  • Loop — Set in or out, go to in or out, toggle, enable, disable, stop, clear
  • Messaging — Mask on, off, toggle, clear message, and configured message presets

See the Companion project README for the full action and variable reference.


Variable Feedback

ShowRevue can poll Companion's HTTP API to read live variable values and display them in overlay text widgets.

How it works

ShowRevue polls http://<companion-host>:<port>/api/variable/<connection>/<name>/value on a configurable interval. When a variable changes, the new value is substituted wherever $(connection:variable) appears in a text field.

Variable IDs use Companion's native format:

FormatExampleEndpoint
connection:variableatem:pgm1_input/api/variable/atem/pgm1_input/value
custom:variablecustom:song_title/api/custom-variable/song_title/value

Setup

In ShowRevue:

  • Open Preferences → OSC Input → Companion.
  • Enable Companion integration.
  • Set Host to the machine running Companion (use 127.0.0.1 if Companion is on the same Mac).
  • Set Port to Companion's HTTP API port — default is 8000.
  • Set Poll interval200 ms is a good default; lower values increase responsiveness at a small CPU cost.
  • Confirm the status indicator shows Connected.

In Companion:

  • Make sure HTTP API access is enabled (it is by default in Companion 3+).
  • No other configuration is needed — ShowRevue reads variables directly via HTTP.

Variable discovery

On first connect, ShowRevue automatically seeds the Variable Library with Companion's built-in internal:* variables (time, date, page, uptime). These appear in autocomplete immediately.

Your module variables (ATEM, Disguise, custom variables, etc.) must be added manually:

  1. Open the Companion web UI → go to Connections → [your module] → Variables and copy the variable name exactly as shown (e.g. atem:pgm1_input).
  2. Paste it into the add field in Preferences → OSC Input → Companion → Variable Library and click Add. Both formats work: atem:pgm1_input and $(atem:pgm1_input).

Once a variable appears in the library, it starts polling immediately and shows its live value. You can also use it by typing $(atem:pgm1_input) directly into any ShowRevue text field — it will be added to the library automatically.

The table shows each variable's current value and when it last changed. The variable count shown in the header reflects how many variables ShowRevue is currently tracking.

Bulk import

Some Companion builds expose a /api/variable-definitions endpoint that ShowRevue uses to import all variables at once. If your Companion version supports it, all variables will appear automatically on first connect without any manual setup.

Use variables in text fields

Type $( in any ShowRevue text field to open the autocomplete list of known variable IDs. Select one to insert it.

$(atem:pgm1_input)
$(custom:show_title)
$(companion:selected_page_name)

The live value is substituted in:

  • Overlay custom text widgets — burned into the recorded video and visible on the live preview
  • Live message presets — text shown on operator displays

If a variable is unknown or Companion is unreachable, the placeholder resolves to an empty string.

Variable Library table

Preferences → OSC Input → Companion → Variable Library shows all tracked variables:

ColumnDescription
Variable IDThe connection:name identifier
ValueCurrent live value from Companion
Last ChangedHow long ago the value last changed

Use the search bar to filter by ID or value. Select one or more rows and click Remove Selected to stop tracking them.

Troubleshooting

SymptomCheck
Status shows red / not connectedConfirm Companion is running and the host/port matches
Variable resolves to emptyConfirm the variable ID is spelled correctly — check Companion's variable list
Variable stopped working after Companion changeConnection was probably renamed in Companion. The variable ID prefix must match the connection label exactly. Remove the old ID from the Variable Library and re-add it with the new connection name.
Value is staleLower the poll interval; confirm the Mac and Companion machine are on the same network
Variables missing from autocompleteAdd them manually in the Variable Library, or reference $(connection:var) in a text field to trigger incremental discovery
Only internal:* variables appearYour module variables need to be added manually — find the IDs in Companion's web UI under Connections → [module] → Variables