Skip to content
 
 

Repository files navigation

Multi Companion

A Stream Deck plugin for connecting to up to 4 separate Bitfocus Companion connections at once, each with its own independent dynamic-page state. Point them at separate Companion instances, or reuse the same instance multiple times to run separate dynamic-paging surfaces against one server.

This is a fork of the official Bitfocus Companion Stream Deck plugin, rebuilt around the Satellite API to support multiple simultaneous connections instead of one.

Features

  • Up to 4 connections — each with its own name, host/port, and Satellite device ID, configurable from the plugin's config window.
  • Per-button connection assignment — every button picks which of the 4 connections it talks to from its own Property Inspector.
  • Apply to All — reassign every button currently visible on a Stream Deck to one connection in a single click, instead of editing each button individually.
  • New Page — switches a Stream Deck to one of 4 bundled, pre-built pages of dynamic buttons (one per connection slot), since the Stream Deck SDK has no API for a plugin to create a new profile at runtime. Cycles to the next connection each time it's pressed, and hides itself once all 4 have been used on that device.
  • Connection status, subscription warnings, and Satellite Device ID conflict detection are all surfaced directly in the UI.

Getting Started

  1. Set up a Stream Deck plugin development environment per Elgato's docs: https://docs.elgato.com/streamdeck/sdk/introduction/getting-started
  2. Install the Elgato Stream Deck CLI: npm install -g @elgato/cli
  3. Clone this repository and install dependencies: npm install
  4. Make your code changes as necessary.
  5. If you're editing a Property Inspector, refer to the SDPI documentation: https://sdpi-components.dev/
  6. Run npm run build to confirm everything compiles.
  7. If the plugin is already installed in the Stream Deck app, uninstall it first.
  8. Run npm run link, then npm run restart.
  9. While iterating, npm run watch recompiles automatically on save.

Debugging

Server-side logs live in ./net.slipz.companionmulti.sdPlugin/logs/.

To view client-side (Property Inspector) logs:

  1. Enable development mode: streamdeck dev.
  2. Open the Property Inspector for the action you're editing.
  3. Open http://127.0.0.1:23654 in a browser — it lists plugins whose dev tools you can open.
  4. Inspect the console/elements from there.

Packaging

To produce an installable .streamDeckPlugin file: npm run pack. This builds, bumps the build number in manifest.json (so a re-packaged plugin always installs as an update rather than being rejected as "already installed"), and packages it.

License

MIT — see LICENSE. Original plugin © Julian Waller, Håkon Nessjøen, and William Viker (Bitfocus AS). Fork modifications by slipz.

About

Companion plugin for the native Stream Deck application

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages