Skip to content

LRBridge Companion Module v0.4.1

Choose a tag to compare

@ninoleto ninoleto released this 08 Jul 01:11

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

  1. Download ninoleto-lrbridge-0.4.1.tgz from this release.
  2. Open Bitfocus Companion.
  3. Go to the Modules page.
  4. Click Import module package.
  5. Select the downloaded ninoleto-lrbridge-0.4.1.tgz file.
  6. Add a new connection named LRBridge.
  7. 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:

  1. Keep the public action list simple.
  2. Do not re-add reset all or reset group actions without a clear safety reason.
  3. Do not mix generic keyboard shortcuts into this module.
  4. Prefer LRBridge API actions over OS-level automation.
  5. Keep LRBridge itself as the source of truth for Lightroom behavior.
  6. Keep command API traffic on port 17891 by default.
  7. Keep feedback API traffic on port 17892 by default.
  8. Use native Companion actions for immediate feedback.
  9. Do not rely on generic HTTP actions for slider feedback.
  10. Keep background all-slider polling disabled by default.
  11. Prefer context-triggered one-shot refresh over constant polling.
  12. If new sliders or actions are added, update choices and documentation together.
  13. 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 Controller Lightroom
Stream Deck Lightroom
LRBridge
Lightroom HTTP API
Lightroom automation
Lightroom slider feedback
Lightroom encoder control
Lightroom remote control
Lightroom Classic external controller

Status

v0.4.1 stable release for LRBridge v0.5.1 or newer.