Releases: bitfocus/companion
Bitfocus Companion v4.2.2
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.2.2 - Release Notes
🐞 BUG FIXES
- add keepalive interval for client websocket
- improve emulator behaviour when websocket closes
- revert: limit environment variables exposed to internal actions
- only search labels in dropdown fields
- unable to edit color inputs as hex
- bluetooth support for blackmagic controllers
- open help links in a new windows
- isVisibleExpression clone error
- loupedeck ct bad key map
- sidebar dom issues
- better suppress some common/excessive errors
Full Changelog: v4.2.1...v4.2.2
Bitfocus Companion v4.2.1
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.2.1 - Release Notes
🐞 BUG FIXES
- crash at launch on linux arm64 #3826
- docs search urls incorrect #3824
- expression variables not updating in ui #3825
- emulator not showing pincode entry #3827
- toggling never lock for surface not applying
- support ajaz akp153 #3840
- preserve additional environment variables for modules
- limit environment variables exposed to internal actions
- preserve sqlite wal when upgrading config #3835
Full Changelog: v4.2.0...v4.2.1
Bitfocus Companion v4.2.0
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.2.0 - Release Notes
This is a slightly smaller release than usual, focussing more on smaller improvements.
End of support for macOS 11
This version of Companion requires macOS 12 or later
Rebuilt Documentation
The Companion User Guide has been rewritten to use a new rendering system.
This allows us to host a new publicly available version of the documentation online which is versioned per release, as well as building it in a simplified form within Companion
The new tools allow us to do more with the documentation and will make it easier for us to keep up to date too!
Improved Expression Editor
The expression editor input field has been rebuilt, making it easier to use with functionality you would expect from a code editor. This includes functions and keyword suggestions, and better handling of multi-line expressions.
And more
- The old xkeys $(internal:tbar) and similar variables have been removed, and they should now be bound to custom variables in the config of each surface (#3716)
- Require macos 12
- Convert docs to docusaurus (#3741)
- Rebuild emulator pincode locking
- Add options to to restrict page access (#3736)
- Enhanced expressions:
- Refined connection management:
- Surface improvements:
- Merge surface remote and discover pages (#3677)
- Support resolve speed editor #3525
- Support more variants of Mirabox 293S
- Support for Mirabox Streamdock N3 (#3686)
- Add repeating button-presses to contour-shuttle shuttle ring (#3492)
- Improve vec-footpedal surface implementation
- Support complex surface layouts over satellite api (#3611)
- Support swipe to change page on Stream Deck + (#3721)
- Support touch strip variables for Loupedeck Live (#3790)
- Draw button 'error' state as a red warning triangle (#3675)
- Remove deprecated bank field from tcp bank_bg_change message #2779
- Include timestamps and source in module debug logs
- Add version number variables #3714
- Rework update check api, improving reliability
🐞 BUG FIXES
- ember+ api issues with some clients
- limit env vars passed to modules
- improve error handling for module executeAction
- "Sentry DSN not located" error in launcher (#3758)
- Align the display name of
surface_set_positionwith the UI terminology (#3761) - Avoid flooding modules with large objects, batch entity updates to resolve issues with large configs
- preserve original types of custom variable values from osc and ember+ apis
- improve version number handling for release vs beta builds
- Page up button/Page down button don't set page-history (#3683)
- Reduce frequency of pincode lock state logging (#3792)
- Loupedeck Live pincode lock layout
Full Changelog: v4.1.6...v4.2.0
Bitfocus Companion v4.1.6
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.6 - Release Notes
🐞 BUG FIXES
- Setting local variables for another control failing #3813
- Unable to select module beta version for connection #3815
- Suppress some logged errors about local variable names
- Avoid spamming log with surface lock state messages #3792
Full Changelog: v4.1.5...v4.1.6
Bitfocus Companion v4.1.5
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.5 - Release Notes
🐞 BUG FIXES
- reordering pages not persisting #3727
- Local variable actions not working on triggers #3788
- support stream deck mini (discord edition) #3778
- elgato plugin not handling multiple clients correctly #3775
- elgato plugin not cleaning up on connection close #3767
- suppress module SecurityWarnings in a better way
Full Changelog: v4.1.4...v4.1.5
Bitfocus Companion v4.1.4
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.4 - Release Notes
🐞 BUG FIXES
- Expression variables not getting value immediately following import
- Import page not scrolling correctly
- Import single page unable to create new page
- Unable to select any file to import on iOs #3676
- Surfaces not remembering state when using lockout all
- Failures when installing modules not being displayed
- Missing tooltips in module versions table
- Surfaces table upgrade icon position
- Allow larger module archives
- Fix some links within the getting started docs #3720
- Performance improvements for module entity events
Full Changelog: v4.1.3...v4.1.4
Bitfocus Companion v4.1.3
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.3 - Release Notes
🐞 BUG FIXES
- Crash at startup when checking instance statuses
Full Changelog: v4.1.2...v4.1.3
Bitfocus Companion v4.1.2
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.2 - Release Notes
🐞 BUG FIXES
- surface import/export errors with
last_page_idorname#3650 - stream deck mini not working with network dock #3682
- don't assign elgato network dock an index in the surfaces table
- very old contour shuttle pro v1 has an XKey vendor ID (#3658)
- Template literal parsing in some expressions has unbound recursion #3655
- disabled module count incorrect at startup #3679
- connection status variables showing empty instead of disabled at startup #3652
- Surface Groups should always show "Current Page" (#3685)
- hide deprecated modules from add panel if no versions are installed #3684
- Preset previewStyle is overridden by feedback (#3673)
- ensure invalid version doesnt crash connections page
- ios safari downloading exports with bad extension #3676
- ensure modules being installed look like connections
- ember+ api not including custom variables (#3681)
Full Changelog: v4.1.1...v4.1.2
Bitfocus Companion v4.1.1
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.1 - Release Notes
🐞 BUG FIXES
- Version warning showing in the header
- Pages not being deleted properly during reset
- Partial import resetting unexpected portions of the system #3625 #3639
- Unable to drag some collections around
- Unexpected error logged when aborting an
internal: Waitaction #3645 - UI not loading in older Chromium (~121)
- Ember+ api reporting hidden variables #3646
- DEBUG-INSPECT not working for all modules
Full Changelog: v4.1.0...v4.1.1
Bitfocus Companion v4.1.0
📦 Downloads available at
💵 Donate to the project at
- open collective https://opencollective.com/companion
Companion v4.1.0 - Release Notes
Ending support for macOS 11
This is the last version of Companion to support macOS 11. Starting with Companion 4.2 you will need to be running macOS 12 or later.
UI improvements
This release focuses on polishing the UI.
A major addition is "collections" — a way to group connections, triggers, or custom variables so you can manage or enable/disable them together. Collections make organising complex setups and toggling related items during events much easier.
We also made a number of small adjustments to improve clarity and flow, such as reworking table layouts in many places.
These changes prioritise organisation and usability so you can work more quickly.
Local variables
On each button or trigger you can now define local variables. These variables are scoped to that single button or trigger — they do not exist outside of it. Local variables can be configured in a few ways:
- Work like custom variables (can hold a static value and be changed by actions).
- Be expression-driven (value is the result of an expression evaluated when needed).
- Take the value of a feedback.
A key point: not all actions and feedbacks support local variables. Supported items will show a globe icon to indicate compatibility. We're working to broaden support; modules will add compatibility over time and further improvements are planned for 4.2.
Improving support for expressions
Expressions let you build more complex configurations and transform data flowing into or out of connections. They allow you to normalise, combine, or conditionally modify values before they're consumed or sent.
The new Expression Variables page lets you define variables computed from expressions. These can be referenced wherever connection or custom variables are accepted; their value is calculated from the expression you provide.
Expression variables can:
- Return a computed value from an expression.
- Depend on other variables, feedbacks, connection state, or local variables defined on a button/trigger (so you can break complex logic into sub-expressions or take input from feedbacks).
- Be used anywhere standard variables are used (actions, feedbacks, connection fields, etc.).
Notes:
- Circular dependencies between variables are possible but discouraged; they will be rate-limited and can incur a notable performance cost.
Custom backup rules
Companion now supports custom backup rules, allowing you to schedule backups, and keep more restore points.
You can pick how often to run, where to store them, choose how many to keep (auto-pruned), and select the file format.
Tip: Saving backups to a synced folder (Dropbox, OneDrive, or similar), automatically keeps an off-site copy — great for extra safety and easy access across machines.
And more
- Various UX improvements
- Connections, triggers and custom variables can be added to 'collections' for grouping
- Connections and triggers can be enabled/disabled by their collections
- Connections, triggers and surfaces tables have had their contents rearranged to flow more naturally
- Surfaces has been reworked to utilise a right panel for the selected surface.
- Any right hand panels of pages have been refined
- Version number has moved into the sidebar instead of header
- Improve clarity of beta module versions
- Layout improvements of some pages on mobile
- Indicate whether custom-variable value is valid while typing
- Improved layout of the launcher window, including a new settings window
- Add filter/search to triggers page
- Improved import page
- Improve emulator list page
- Added Expression Variables. Similar to Custom Variables, but their value is the result of an expression that executes when needed.
- Add new 'while loop' action
- Ability to define 'local variables' on buttons and triggers.
- Not all actions or feedbacks support these, this will improve over time
- Additional expression functions
- arrayIndexOf & arrayLastIndexOf
- Button step can be driven from an expression
- Multiple connections from the Elgato Stream Deck software are now supported.
- Support for Logitech MX Creative Console (buttons, not wheel)
- Support for MiraBox HSV293S
- Importing configs can be performed more granularly, without needing to reset everything
- Variables for installation name
- Expansion of the Ember+ api
- Expose variables
- Allow setting custom-variable values
- Expose action recorder
- Support for 'secret' field types in connection config
- Attempt to keep screen awake in emulator/tablet views
- Support for defining custom backup rules
- Syslog support for logging
- Improve docker image command syntax
- UI can be hosted under a subpath when behind a reverse proxy
- Replace the library used for communication with the UI
- This improves the type safety and code quality of this api and makes it easier for us to work with.
- There should be no notable impact to users
🐞 BUG FIXES
- Surface page settings not being persisted correctly in exports
- Load PNG button not always accepting files
- Help tooltips not always showing
- Some internal actions incorrectly claiming to support expressions
- Some dropdown fields not updating their options when expected
- Duplicating triggers first execution incorrect
- Improve drag and drop behaviour in action/feedback lists
- Sanitise page ids at startup, to ensure the config is sane
- Better handling when no compatible versions of a module are available to be installed
Full Changelog: v4.0.3...v4.1.0