Releases: ninoleto/companion-module-ninoleto-lrbridge
Release list
LRBridge Companion Module v0.4.2
Native Bitfocus Companion control for Adobe Lightroom Classic through LRBridge.
Version 0.4.2 adds a complete ready-to-use preset library while retaining the native Companion actions, live Lightroom slider variables, and context-aware feedback introduced in v0.4.1.
What this repository contains
This repository contains the Bitfocus Companion module for LRBridge.
It does not contain LRBridge itself.
LRBridge is a separate Windows application and Adobe Lightroom Classic plugin. LRBridge must run on the same computer as Lightroom Classic.
LRBridge repository: https://github.com/ninoleto/LRBridge
The communication flow is: Bitfocus Companion → LRBridge → Adobe Lightroom Classic
Feedback returns through: Adobe Lightroom Classic → LRBridge → Bitfocus Companion
What this module does
The LRBridge Companion Module lets users control Adobe Lightroom Classic from Bitfocus Companion using buttons, rotary encoders, pages, variables, feedbacks, browser surfaces, and supported hardware controllers.
Typical uses include:
- Control Lightroom Develop sliders from Companion.
- Use Loupedeck Live or Razer Stream Controller as a Lightroom controller.
- Use Elgato Stream Deck buttons for Lightroom controls.
- Use Companion rotary encoders for Lightroom sliders.
- Display current Lightroom slider values on Companion buttons.
- Refresh displayed values when another photo is selected in Lightroom.
- Run Lightroom actions such as Auto Tone and Auto White Balance.
- Control Lightroom from another computer over LAN.
- Build custom Lightroom control pages without relying on keyboard shortcuts.
What is new in v0.4.2
Version 0.4.2 adds a complete preset library for supported Lightroom controls.
For every supported numeric Lightroom slider, the module provides four ready-to-use presets:
- Rotary control
- Decrease button
- Reset button
- Increase button
Rotary presets are configured so that:
- Turning left decreases the slider by 1.
- Turning right increases the slider by 1.
- Pressing the rotary resets the slider.
- The current Lightroom slider value is displayed on the button.
Additional preset improvements:
- Presets are organized into individual sections for each Lightroom control.
- Short labels are used to fit controls on smaller hardware buttons.
- Rotary presets use automatic text sizing for longer control names.
- Neutral slider values use a neutral background.
- Positive values can display a blue background.
- Negative values can display a red background.
- Controls where positive and negative colors could be misleading remain visually neutral.
- Auto Tone and Auto White Balance show an amber
WAITindication during the LRBridge cooldown period. - Preset descriptions include the Companion live-value variable code for users creating custom buttons.
This release also adds command presets for:
- Lens Profile ON
- Lens Profile OFF
- Remove Chromatic Aberration ON
- Remove Chromatic Aberration OFF
What to download
Normal Companion users should download:
ninoleto-lrbridge-0.4.2.tgz
Do not download the automatically generated Source code zip or Source code tar.gz unless you are a developer and want to build the module manually.
Required software
This module requires:
- Bitfocus Companion
- Adobe Lightroom Classic
- LRBridge v0.5.1 or newer
LRBridge must be installed and running on the same computer as Adobe Lightroom Classic.
Normal user installation
- Download
ninoleto-lrbridge-0.4.2.tgzfrom this release. - Open Bitfocus Companion.
- Go to the Modules page.
- Click Import module package.
- Select
ninoleto-lrbridge-0.4.2.tgz. - Add a new connection named LRBridge.
- Enter the LRBridge host address and ports.
Default LRBridge ports:
- Command API Port:
17891 - Feedback / Web Controller Port:
17892
If Import module package is unavailable, Companion must be started with restricted module imports enabled.
Connection host guide
LRBridge must run on the same computer as Adobe Lightroom Classic.
Companion and LRBridge on the same computer
Use:
- Host:
127.0.0.1 - Command API Port:
17891 - Feedback / Web Controller Port:
17892 - Feedback Timing: Normal, recommended
Companion and LRBridge on different computers
Use the LAN IP address of the computer running LRBridge and Lightroom Classic.
Example setup:
- Companion runs on a Linux computer.
- Lightroom Classic and LRBridge run on a Windows computer.
- The Windows computer has LAN address
192.168.1.55.
Companion connection settings:
- Host:
192.168.1.55 - Command API Port:
17891 - Feedback / Web Controller Port:
17892 - Feedback Timing: Normal, recommended
Do not use 0.0.0.0 as the Companion connection host.
0.0.0.0 is used by servers to listen on all available network interfaces. Companion should connect to 127.0.0.1, a real LAN address.
Confirmed working
- Adjust Lightroom slider
- Reset an individual Lightroom slider
- Run LRBridge action
- Auto Tone
- Auto White Balance
- Lightroom slider feedback variables
- Immediate feedback after native Companion slider actions
- Context-aware feedback refresh after changing photos
- Ready-to-use rotary presets
- Ready-to-use decrease, reset, and increase buttons
- Imported
.tgzmodule installation in Companion - Local network control
Current public action list
The module intentionally exposes only three action types:
- Adjust Lightroom slider
- Reset Lightroom slider
- Run LRBridge action
The action list is deliberately kept small so the module remains safe and predictable during real Lightroom editing work.
Live slider feedback
The module provides Companion variables containing current Lightroom slider values.
Examples:
$(LRBridge:slider_exposure)
$(LRBridge:slider_contrast)
$(LRBridge:slider_temperature)
$(LRBridge:slider_tint)
$(LRBridge:slider_highlights)
$(LRBridge:slider_shadows)
$(LRBridge:slider_whites)
$(LRBridge:slider_blacks)
$(LRBridge:slider_texture)
$(LRBridge:slider_clarity)
$(LRBridge:slider_dehaze)
$(LRBridge:slider_vibrance)
$(LRBridge:slider_saturation)
HSL / Color Mixer examples:
$(LRBridge:slider_hueadjustmentred)
$(LRBridge:slider_hueadjustmentorange)
$(LRBridge:slider_hueadjustmentyellow)
$(LRBridge:slider_hueadjustmentgreen)
$(LRBridge:slider_hueadjustmentaqua)
$(LRBridge:slider_hueadjustmentblue)
$(LRBridge:slider_hueadjustmentpurple)
$(LRBridge:slider_hueadjustmentmagenta)
The exact connection prefix depends on the name of the LRBridge connection in Companion.
Use Companion's variable picker to insert the correct variable into a custom button.
Important feedback note
Use the native LRBridge Companion actions and presets when immediate slider feedback is required.
Native actions:
- Adjust Lightroom slider
- Reset Lightroom slider
- Run LRBridge action
Generic HTTP actions can still send commands directly to LRBridge, but this module cannot detect when an unrelated Generic HTTP action is executed.
Because of this, Generic HTTP actions do not trigger the module's immediate feedback refresh.
For the best results, use the native actions and presets included with this module.
Context-aware photo feedback
LRBridge v0.5.1 provides a /context endpoint.
The module checks this endpoint to detect:
- Selected photo changes
- Lightroom module changes
- Develop-state changes
When LRBridge reports a context change, the Companion module performs a one-time refresh of Lightroom slider variables.
This allows Companion, Loupedeck, Stream Deck, Razer Stream Controller, and browser pages to display the correct values after another photo is selected in Lightroom.
Constant background polling of every Lightroom slider remains disabled by default.
Feedback timing
The module provides three feedback timing options:
- Fast, experimental
- Normal, recommended
- Safe, slower
Normal is recommended for most users.
Fast can occasionally read an older Lightroom value on slower computers or large Lightroom catalogs.
Safe waits longer and can be more reliable on slower systems or demanding catalogs.
Lens Profile and Chromatic Aberration limitation
LRBridge v0.5.1 does not provide authoritative feedback for the current state of these Lightroom checkboxes.
The presets therefore send explicit commands:
LENS ONsends value1.LENS OFFsends value-1.CA ONsends value1.CA OFFsends value-1.
These buttons send commands only. They do not display the current Lightroom checkbox state.
Real checkbox-state feedback may be added in a future LRBridge release.
Intentional limitations
This release intentionally does not include:
- Reset all sliders
- Reset slider group
- Keyboard shortcut sending
- Direct Lightroom keyboard emulation
- Operating-system-level Lightroom automation
Reset All and Reset Group are excluded because they can be risky during real Lightroom editing work.
Keyboard shortcuts should be handled separately, for example through Vicreo Hotkey, unless LRBridge later adds a safe Lightroom-specific shortcut system.
The module remains focused on safe Lightroom API control, useful presets, and reliable feedback through LRBridge.
Supported Companion surfaces
The module and presets can be used with:
- Loupedeck Live
- Razer Stream Controller
- Elgato Stream Deck
- Companion browser surfaces
- Other Companion-compatible buttons and rotary encoders
The exact layout and visual appearance depend on the capabilities and button size of the selected Companion surface...
LRBridge Companion Module v0.4.1
LRBridge Companion Module v0.4.1
Context-aware Bitfocus Companion module for LRBridge.
This release adds native Bitfocus Companion control and live Lightroom slider feedback for LRBridge, a separate local HTTP bridge for controlling Adobe Lightroom Classic.
LRBridge repository:
https://github.com/ninoleto/LRBridge
This repository is not LRBridge itself. It is only the Bitfocus Companion module that sends commands to LRBridge and reads Lightroom feedback values from LRBridge.
The module is designed for Lightroom control workflows using Bitfocus Companion, Loupedeck Live, Razer Stream Controller, Elgato Stream Deck, encoders, button panels, browser devices, automation systems, scripts, and remote control setups.
What this module is
LRBridge Companion Module connects Bitfocus Companion to Adobe Lightroom Classic through LRBridge.
LRBridge runs on the same computer as Lightroom Classic and exposes local HTTP APIs.
This Companion module runs inside Bitfocus Companion and lets users build Lightroom control surfaces with buttons, encoders, pages, variables, and live feedback values.
Typical use cases:
- Control Adobe Lightroom Classic from Bitfocus Companion.
- Use Loupedeck Live or Razer Stream Controller as a Lightroom controller.
- Use Stream Deck buttons for Lightroom slider and action control.
- Use Companion encoders for Lightroom Develop sliders.
- Show current Lightroom slider values as Companion variables.
- Refresh slider values when changing photos in Lightroom.
- Control Lightroom remotely over LAN or Tailscale.
- Build custom Lightroom automation workflows without relying on keyboard shortcuts.
What to download
For normal Companion users, download:
ninoleto-lrbridge-0.4.1.tgz
Do not download Source code zip or Source code tar.gz unless you are a developer and want to build the module manually.
Required LRBridge version
This release requires:
LRBridge v0.5.1 or newer
LRBridge v0.5.1 adds the context and feedback behavior required by this Companion module.
Required LRBridge repository:
https://github.com/ninoleto/LRBridge
Normal user installation
- Download ninoleto-lrbridge-0.4.1.tgz from this release.
- Open Bitfocus Companion.
- Go to the Modules page.
- Click Import module package.
- Select the downloaded ninoleto-lrbridge-0.4.1.tgz file.
- Add a new connection named LRBridge.
- Set the LRBridge host and ports.
Default LRBridge Command API port: 17891
Default LRBridge Feedback / Web Controller API port: 17892
Connection host guide
LRBridge must run on the same computer as Adobe Lightroom Classic.
If Companion and LRBridge are running on the same computer, use:
Host: 127.0.0.1
Command API Port: 17891
Feedback / Web Controller Port: 17892
Feedback Timing: Normal, recommended
If Companion is running on another computer, use the LAN IP address of the computer running LRBridge:
Host: 192.168.1.x
Command API Port: 17891
Feedback / Web Controller Port: 17892
Feedback Timing: Normal, recommended
Example:
Companion on Linux/Ubuntu
LRBridge and Lightroom on Windows PC
Windows PC LAN IP: 192.168.1.55
Companion connection:
Host: 192.168.1.55
Command API Port: 17891
Feedback / Web Controller Port: 17892
Feedback Timing: Normal, recommended
Do not use 0.0.0.0 as the Companion connection host. 0.0.0.0 is used by servers to listen on all network interfaces. Clients should connect to 127.0.0.1 or to the real LAN IP address.
Confirmed working
- Adjust Lightroom slider
- Reset individual Lightroom slider
- Run LRBridge action
- Auto Tone / Auto White Balance actions
- Slider feedback variables
- Feedback update after native Companion slider actions
- Context-aware slider refresh after changing photos in Lightroom
- Imported .tgz module package installation in Companion
Current public action list
This release intentionally exposes only three action types:
- Adjust Lightroom slider
- Reset Lightroom slider
- Run LRBridge action
The public action list is kept small on purpose so the module remains safe and predictable for real Lightroom editing workflows.
Live slider feedback
This release adds live slider feedback support through LRBridge.
The module provides Companion variables for Lightroom slider values, for example:
$(LRBridge:slider_exposure)
$(LRBridge:slider_contrast)
$(LRBridge:slider_temperature)
$(LRBridge:slider_tint)
$(LRBridge:slider_highlights)
$(LRBridge:slider_shadows)
$(LRBridge:slider_whites)
$(LRBridge:slider_blacks)
$(LRBridge:slider_texture)
$(LRBridge:slider_clarity)
$(LRBridge:slider_dehaze)
$(LRBridge:slider_vibrance)
$(LRBridge:slider_saturation)
HSL / Color Mixer Hue examples:
$(LRBridge:slider_hueadjustmentred)
$(LRBridge:slider_hueadjustmentorange)
$(LRBridge:slider_hueadjustmentyellow)
$(LRBridge:slider_hueadjustmentgreen)
$(LRBridge:slider_hueadjustmentaqua)
$(LRBridge:slider_hueadjustmentblue)
$(LRBridge:slider_hueadjustmentpurple)
$(LRBridge:slider_hueadjustmentmagenta)
Use Companion's variable picker to insert the exact variable name with the correct connection prefix.
Important feedback note
Use the native LRBridge Companion actions if you want immediate slider feedback.
Native actions:
- Adjust Lightroom slider
- Reset Lightroom slider
- Run LRBridge action
Generic HTTP actions can still send commands to LRBridge, but this module cannot know when a generic HTTP action was pressed. Because of that, generic HTTP actions do not trigger immediate Companion variable refresh.
For best results, use the native LRBridge actions provided by this module.
Context-aware photo feedback
LRBridge v0.5.1 provides a /context endpoint.
This module polls /context to detect:
- selected photo changes
- Lightroom module changes
- develop-state changes
When LRBridge reports a context change, this module refreshes slider feedback variables once.
This is designed for editing workflows where the user changes photo in Lightroom and wants Companion, Loupedeck, Stream Deck, or Razer Stream Controller pages to show the correct current slider values for the newly selected photo.
Constant background all-slider polling is disabled by default.
Feedback timing
The module exposes one simple timing option:
Feedback Timing
Available presets:
- Fast, experimental
- Normal, recommended
- Safe, slower
Normal is recommended for most users.
Fast can read old Lightroom values on slower machines or heavy catalogs.
Safe is slower, but can be more reliable on heavier Lightroom catalogs or slower systems.
Expected LRBridge API routes
The module expects LRBridge v0.5.1 or newer to provide these routes.
Command API, usually port 17891:
/status
/context
/adjust?slider=Exposure&amount=1
/reset?slider=Exposure
/action?action=setAutoTone
Feedback / Web Controller API, usually port 17892:
/api/feedback/request?slider=Exposure
/api/feedback/value?slider=Exposure
/api/feedback/request-many?sliders=Exposure,Contrast
/api/feedback/all
Available sliders and actions depend on the installed LRBridge version.
Intentional limitations
This release intentionally does not include:
- Reset all sliders
- Reset slider group
- Keyboard shortcut sending
- Direct Lightroom keyboard emulation
- OS-level Lightroom automation
Reset all and reset group actions are excluded on purpose because they can be risky in real Lightroom editing workflows.
Keyboard shortcuts should be handled separately, for example with Vicreo Hotkey, unless LRBridge later adds a safe Lightroom-focused shortcut system.
This module should remain focused on LRBridge API control and LRBridge feedback.
Developer installation
Developers can clone the repository and build manually:
corepack enable
corepack prepare yarn@4.17.0 --activate
yarn install
yarn build
yarn package
For Companion developer-module testing, place the module folder inside Companion's developer modules folder and set Companion's developer module path to the parent folder.
Example module folder:
/home/user/companion-module-dev/companion-module-ninoleto-lrbridge
Example developer module path:
/home/user/companion-module-dev
Notes for future maintainers and AI assistants
This repository contains the Bitfocus Companion module for LRBridge.
LRBridge itself is a separate local bridge application for controlling Adobe Lightroom Classic through HTTP:
https://github.com/ninoleto/LRBridge
Do not confuse this repository with the LRBridge app. This module only runs inside Bitfocus Companion and communicates with LRBridge.
Before changing this module, preserve these rules:
- Keep the public action list simple.
- Do not re-add reset all or reset group actions without a clear safety reason.
- Do not mix generic keyboard shortcuts into this module.
- Prefer LRBridge API actions over OS-level automation.
- Keep LRBridge itself as the source of truth for Lightroom behavior.
- Keep command API traffic on port 17891 by default.
- Keep feedback API traffic on port 17892 by default.
- Use native Companion actions for immediate feedback.
- Do not rely on generic HTTP actions for slider feedback.
- Keep background all-slider polling disabled by default.
- Prefer context-triggered one-shot refresh over constant polling.
- If new sliders or actions are added, update choices and documentation together.
- Test changes in Companion with a real LRBridge connection before release.
Preserve the design goal: this module should stay focused on safe Lightroom control through LRBridge, with simple actions, useful feedback variables, and minimal risky automation.
Keywords
Adobe Lightroom Classic control surface
Lightroom Companion module
Bitfocus Companion Lightroom
Loupedeck Lightroom control
Razer Stream Co...
v0.3.0 - Experimental Lightroom slider feedback
v0.3.0 - Experimental Lightroom slider feedback
This is an experimental feedback release of the LRBridge Bitfocus Companion module.
The module now supports native Lightroom slider value feedback from LRBridge.
What is new
- Added Lightroom slider feedback variables
- Added action-triggered feedback for native LRBridge slider actions
- Added separate feedback/web controller port setting
- Added default LRBridge command port 17891
- Added default LRBridge feedback/web port 17892
- Added Auto Tone / Auto White Balance cooldown after slider movement
- Background all-slider feedback is disabled by default
- Action feedback debounce default is 500 ms
Important
Feedback works only when buttons use the native LRBridge Companion actions.
Use:
- LRBridge -> Adjust Lightroom slider
- LRBridge -> Reset Lightroom slider
- LRBridge -> Run LRBridge action
Generic HTTP buttons can still move Lightroom sliders, but they do not trigger this module's action-based feedback.
Recommended settings
- LRBridge Host / IP: IP address of the Lightroom PC
- Command API Port: 17891
- Feedback / Web Controller Port: 17892
- Background All Slider Feedback Poll Interval: 0
- Action Feedback Debounce: 500 ms
Known limitation
When changing photos inside Lightroom, Companion will not automatically refresh all slider values yet unless background all-slider feedback is enabled.
A future LRBridge update should expose selected-photo change information, so the Companion module can refresh all slider values once when the selected photo changes.
Package
Normal users should download and install:
ninoleto-lrbridge-0.3.0.tgz
The source code archives are mainly for developers.
v0.1.0 - Initial LRBridge Companion module
Initial experimental Bitfocus Companion module for LRBridge.
This release adds native Bitfocus Companion control for LRBridge, a separate local HTTP bridge for controlling Adobe Lightroom Classic.
LRBridge repository:
https://github.com/ninoleto/LRBridge
This repository is not LRBridge itself. It is only the Companion module that sends HTTP commands to LRBridge.
What to download
For normal Companion users, download:
ninoleto-lrbridge-0.1.0.tgz
Do not download Source code zip or Source code tar.gz unless you are a developer and want to build the module manually.
Normal user installation
- Download ninoleto-lrbridge-0.1.0.tgz from this release.
- Open Bitfocus Companion.
- Go to the Modules page.
- Click Import module package.
- Select the downloaded ninoleto-lrbridge-0.1.0.tgz file.
- Add a new connection named LRBridge.
- Set the LRBridge host and port.
Default LRBridge API port: 17891
Connection host guide
LRBridge must run on the same computer as Adobe Lightroom Classic.
If Companion and LRBridge are running on the same computer, use:
Host: 127.0.0.1
Port: 17891
If Companion is running on another computer, use the LAN IP address of the computer running LRBridge:
Host: 192.168.1.x
Port: 17891
Example:
Companion on Linux/Zorin
LRBridge and Lightroom on Windows PC
Windows PC LAN IP: 192.168.1.11
Companion connection:
Host: 192.168.1.11
Port: 17891
Poll interval: 1000 ms
Do not use 0.0.0.0 as the Companion connection host. 0.0.0.0 is used by servers to listen on all network interfaces. Clients should connect to 127.0.0.1 or to the real LAN IP address.
Confirmed working
- Adjust Lightroom slider
- Reset individual Lightroom slider
- Run LRBridge action
Current public action list
This first release intentionally exposes only three action types:
- Adjust Lightroom slider
- Reset Lightroom slider
- Run LRBridge action
Expected LRBridge API routes
The module currently expects LRBridge to provide these API routes:
- /status
- /adjust
- /reset
- /action
Expected endpoint patterns:
/adjust?slider=Exposure&amount=1
/reset?slider=Exposure
/action?action=setAutoTone
Available sliders and actions depend on the installed LRBridge version.
Intentional limitations
This release intentionally does not include:
- Reset all sliders
- Reset slider group
- Keyboard shortcut sending
- Direct Lightroom keyboard emulation
- Live slider value feedback
Reset all and reset group actions are excluded on purpose because they can be risky in real Lightroom editing workflows.
Keyboard shortcuts should be handled separately, for example with Vicreo Hotkey, unless LRBridge later adds a safe Lightroom-focused shortcut system.
Developer installation
Developers can clone the repository and build manually:
corepack enable
corepack prepare yarn@4.17.0 --activate
yarn install
yarn build
For Companion developer-module testing, place the module folder inside Companion's developer modules folder and set Companion's developer module path to the parent folder.
Example module folder:
/home/nino/companion-module-dev/companion-module-ninoleto-lrbridge
Example developer module path:
/home/nino/companion-module-dev
Notes for future maintainers and AI assistants
Before changing this module, preserve these rules:
- Keep the public action list simple.
- Do not re-add reset all or reset group actions without a clear safety reason.
- Do not mix generic keyboard shortcuts into this module.
- Prefer LRBridge API actions over OS-level automation.
- Keep LRBridge itself as the source of truth for Lightroom behavior.
- If new sliders or actions are added, update choices and documentation together.
- Test changes in Companion with a real LRBridge connection before release.
Status
Experimental v0.1.0 pre-release.