Skip to main content
Glama

LrC-AVG — Lightroom Classic Autonomous Vision Gateway

LrC-AVG lets Claude, in Claude Desktop, edit a photo in Lightroom Classic, raw or JPEG or any other format Lightroom develops (see Supported formats), the way a photographer does: set a few Develop sliders, look at the result, measure it, adjust again, up to a capped number of passes. It uses only Lightroom's own Develop settings, so every change shows on the sliders, sits in History as a named step, and can be undone. A local engine measures each render (clipping, histogram, pass-to-pass changes) and keeps every pass within clipping limits; Claude's vision makes the aesthetic calls.

One setup file installs everything: a Lightroom plugin, the engine that Claude Desktop starts (an MCP server), and the Deck, a small window that follows an edit. Other AI apps can start the engine too: see Other AI apps.

Built and tested on one Windows 11 PC with Lightroom Classic 15.5.1 and 15.6. Where this page states how something behaves, the evidence is listed under Sources.

What you need

  • Windows 10 or 11, 64-bit (tested on Windows 11 only).

  • Lightroom Classic 15.0 or later (see Supported Lightroom versions).

  • Claude Desktop, signed in, and started at least once in this Windows account, or another AI app from docs/CLIENTS.md. The AI model must be able to see images.

  • Nothing else: the setup brings its own copy of Node.js, and no administrator rights are needed.

Related MCP server: rawtherapee-mcp-server

Supported Lightroom versions

LrC-AVG supports Lightroom Classic 15.0 and later, and was tested on 15.6. Earlier versions may work but are untested. On a version older than 15.0 or newer than 15.6, nothing is blocked: the HUD says so once when an edit starts, and Claude sees the same notice when it reads the photo's details. If a newer Lightroom no longer offers a setting LrC-AVG uses, Claude is told which one is not available and the edit stays open. A photo on a process version newer than LrC-AVG knows can be described but not edited.

Supported formats

Lightroom develops every file through one of two pipelines: raw (camera raw files and raw DNGs) or rendered (JPEG, TIFF, PNG and the others below). LrC-AVG reads which one a photo uses from its Develop settings, not from its file name, so a .dng can be either. Both get the same sliders and intents. Two things differ:

  • White balance: on a raw photo, temperature is in Kelvin; on a rendered photo, temperature and tint are relative, -100 to +100.

  • Profiles: a raw photo takes the Adobe and camera-matching profiles; a rendered photo takes Color or Monochrome. Each intent names one of each.

Each format below was tested on one Windows 11 PC with Lightroom Classic 15.6. A full session means: the intent's starting settings, two passes, an exact revert, a sync onto another photo, and a preset made from it.

Format

Pipeline

Tested

Camera raw (Nikon NEF)

raw

Full session on 11 photos, virtual copies included

DNG

raw

Full session on 3 photos

DNG (rendered, e.g. from Photoshop)

rendered

Full session on 2 photos

JPEG

rendered

Full session on 6 photos; all 11 intents on one JPEG; one Claude Desktop chat

TIFF (8-bit, 16-bit, 32-bit HDR, CMYK)

rendered

Full session on 4 photos, one of each

PSD

rendered

Full session on 2 photos

PSB (Photoshop Large Document)

rendered

Full session on 1 photo

PNG

rendered

Full session on 1 photo

AVIF (HDR)

rendered

Full session on 1 photo

JPEG XL

rendered

Full session on 1 photo

HEIC / HEIF

rendered

On 1 photo: every slider's limits written and read back, Color and Monochrome, an export, and put back; not in the full-session test

  • Older photos: Lightroom's process versions 5 and 6 edit as they are. Four photos on version 5, raw and JPEG, were in the test. An older process version is refused; Claude says so.

  • Between raw and rendered: a sync from a raw photo onto a JPEG (or back) copies everything except white balance and the profile, and says it left those two out.

  • HDR photos (the 32-bit TIFF, the HDR AVIF) edit like the others, with exposure limited to ±5.

  • Video is not supported: Lightroom does not develop it.

Install

  1. Download LrC-AVG-Setup-<version>.exe from the latest release.

  2. Double-click it. Windows will probably show Windows protected your PC. Click More info, check that the app is LrC-AVG-Setup-<version>.exe, then click Run anyway. Why the setup is not signed explains this.

  3. If Lightroom Classic or Claude Desktop is open, the setup asks you to close them. Close them, then click Retry.

  4. Click through the setup. It installs into your own Windows account, so Windows does not ask for an administrator.

  5. At the end, a message says what the setup did with Claude Desktop's settings. Click OK, then Finish.

  6. Start Lightroom Classic and Claude Desktop again.

The setup does three things:

  • It puts the plugin into Lightroom's plugin folder, %APPDATA%\Adobe\Lightroom\Modules\LrC-AVG.lrplugin. Lightroom lists it as LrC-AVG (Autonomous Vision Gateway), switched on.

  • It adds an entry named lrc-avg to Claude Desktop's settings file and keeps a backup of the old file next to it. Your other entries stay as they are.

  • It installs the program files, with the Deck, into %LOCALAPPDATA%\LrC-AVG, and adds LrC-AVG to Windows' installed apps.

To check the download, compare its SHA-256 with the SHA256SUMS.txt file on the release page. In File Explorer, hold Shift, right-click the setup and choose Copy as path. Then in PowerShell type Get-FileHash and paste the path, for example Get-FileHash "D:\Downloads\LrC-AVG-Setup-<version>.exe". Your Downloads folder may not be under C:\Users\<you>.

Updating: download the new setup and run it the same way. It replaces the old version and keeps your settings, intents and logs.

Other ways to install

The setup is the way for most people. These are the others, each with the date it was last tested:

Way

For

Tested

The setup (above)

Claude Desktop, with the Deck

2026-10-17, install, update and uninstall on one PC

Claude Desktop extension (.mcpb) and the plugin zip

Claude Desktop without the setup and without the Deck

2026-10-27, on one PC that has Node.js 24 installed

Claude Code plugin, from a copy of this repository

Developers

2026-10-27

An entry in another AI app's settings

The apps in Other AI apps

Per app, in docs/CLIENTS.md

Claude Desktop extension. From the release after v1.1.0 on (v1.1.0 has only the setup):

  1. From the latest release, download lrc-avg-<version>.mcpb and LrC-AVG.lrplugin-<version>.zip.

  2. Unzip the zip into a folder you keep, for example %USERPROFILE%\LrC-AVG. Lightroom loads the plugin from that folder, so do not delete it.

  3. In Lightroom, choose File > Plug-in Manager, click Add, and choose the LrC-AVG.lrplugin folder from step 2. Lightroom lists it as LrC-AVG (Autonomous Vision Gateway).

  4. In Claude Desktop, open Settings > Extensions and drag the .mcpb file onto it. Leave the Tool profile setting at full (Tool profiles).

Use the extension or the setup, not both: with both, Claude Desktop runs two LrC-AVG engines and Lightroom has two copies of the plugin under the same id. If the setup is installed, do not add the zip.

Claude Code plugin. In PowerShell, in a copy of this repository: npm install, npm run build, then claude --plugin-dir <the repository folder>. Add the plugin from plugin\LrC-AVG.lrplugin in the Plug-in Manager, as docs/DEVELOPMENT.md describes.

Check that it works

In Lightroom, choose File > Plug-in Extras > LrC-AVG - Status. Outside a chat, it reads LrC-AVG status: ENGINE NOT CONNECTED (normal outside a chat). That is normal: the engine connects at Claude's first LrC-AVG tool call and lets go after a minute without one. During a chat it reads LrC-AVG status: READY.

If something goes wrong

  • If Status says BRIDGE NOT RUNNING, quit Lightroom (File > Exit), start it again, then choose the menu item again.

  • If Status says RESTART LIGHTROOM TO FINISH THE UPDATE, quit Lightroom and start it again.

  • If Status says the AI client has not started LrC-AVG yet, or Claude says it has no LrC-AVG tools: quit Claude Desktop (right-click the Claude icon in the system tray > Quit) and start it again. If that does not help, run the setup again and read its last message.

  • If Claude answers ENGINE_BUSY ("Another LrC-AVG engine ... is using the Lightroom bridge"), another chat, Cowork or Code task, or another AI app is using LrC-AVG. Go back to that one and end its edit if it has one open, wait a minute, then ask again here. See One Claude surface at a time under Known limitations.

  • If there is no LrC-AVG - Status under File > Plug-in Extras, open File > Plug-in Manager, select LrC-AVG (Autonomous Vision Gateway) and click Enable.

  • To report a problem, choose LrC-AVG - Status first: it saves its text as %LOCALAPPDATA%\LrC-AVG\status.txt. Then open an issue and attach that file.

Why the setup is not signed

Windows trusts a program more when its publisher has signed it with a code-signing certificate. LrC-AVG is a free project by one person, and a certificate costs money every month, so the setup is not signed yet. Free signing for open-source projects (SignPath Foundation) is planned once people use LrC-AVG: issue #171.

What that means for you:

  • SmartScreen shows Windows protected your PC for the downloaded setup. More info > Run anyway starts it. Every new version starts out unknown to SmartScreen again.

  • Smart App Control blocks unsigned programs, and Windows has no "Run anyway" for it. If it is on (Windows Security > App & browser control > Smart App Control), LrC-AVG cannot be installed on that PC for now.

  • The setup is built from this repository's source by GitHub Actions (.github/workflows/release.yml), and the release page lists its SHA-256.

What leaves your PC

  • The engine and the plugin talk to each other only on this PC (127.0.0.1). The engine makes no internet connections, and LrC-AVG sends no usage data.

  • To judge an edit, the AI looks at preview JPEGs of your photo (1600 pixels on the long side by default). Your AI app sends them, with your chat, to its AI provider (Anthropic for Claude), as it does with any image you share in a chat.

  • Your original files are never changed. Every edit is a Develop setting in your Lightroom catalog.

Other AI apps

LrC-AVG is a standard MCP server, so other MCP clients can start it as well: Claude Code, OpenCode, Hermes Agent and Antigravity CLI were tested on 2026-10-16. Entries for Codex CLI, Cursor, VS Code (GitHub Copilot) and Windsurf are written from those apps' documentation and have not been tested. The setup writes only Claude Desktop's entry. The entries for the others, with the paths the setup installs to, are in docs/CLIENTS.md.

Tool profiles

LrC-AVG has 65 tools. A long tool list costs the AI context and makes a wrong pick likelier, above all for smaller models (issue #165). So the engine offers two profiles:

Profile

Tools the AI sees

full (the default)

Every tool

edit

The 16 tools a chat needs to edit the selected photo: lr_help, lr_get_active_photo_context, lr_get_preview, lr_list_intents, lr_save_intent, lr_begin_session, lr_step, lr_set_regions, lr_approve_pass, lr_select_variant, lr_end_session, lr_list_masks, lr_create_mask, lr_edit_mask, lr_delete_mask, lr_crop

The edit list is less than half the size of the full one: 56,984 characters of tool list against 133,038, measured when the engine had 62 tools [handle: tools/list of the built engine under each profile, over the MCP SDK's in-memory transport, 2026-10-28]; how many tokens that is depends on the model [inference]. Under edit, a call to another tool is refused with a message saying that the full profile has it. lr_help names the profile in force (tool_profile).

To use the edit profile with Claude Desktop, quit Claude Desktop, then run in PowerShell:

& "$env:LOCALAPPDATA\LrC-AVG\resources\node\node.exe" `
  "$env:LOCALAPPDATA\LrC-AVG\resources\engine\dist\setup\setup-cli.js" --tools edit

and start Claude Desktop again. --tools full goes back. Running the setup again, an update included, keeps the profile you chose. Other AI apps: add "LRC_AVG_TOOLS": "edit" to the env of the lrc-avg entry (docs/CLIENTS.md). The .mcpb bundle offers the profile as a setting when it is installed [unverified: not yet tried in Claude Desktop].

LrC-AVG and Automaat/lightroom-mcp

LrC-AVG began as a fork of Automaat/lightroom-mcp and is meant to complement it, not replace it. Of the 68 tools upstream has at commit 1040453, 54 have an lr_* equivalent here; the rest are planned or wait for a decision. On top of that, LrC-AVG adds the measured, guarded edit loop, the looks, the HUD and the provenance logs. The tool-by-tool map, and how to run both servers side by side (they use different plug-in ids and ports), are in docs/PARITY.md (section "Using both servers"). How we follow upstream's changes: docs/UPSTREAM_SYNC.md. Code taken from upstream is credited in each half's THIRD_PARTY_NOTICES.md.

Your first session

  1. In Lightroom, select one photo (in Library or Develop), raw or JPEG or any format in Supported formats.

  2. In Claude Desktop, start a new chat and type: Tune the active photo for golden hour landscape.

  3. If Claude Desktop asks whether LrC-AVG may use a tool, allow it.

What happens next:

  • The engine saves a Develop snapshot of the photo, named AVG pre-session …. Aborting goes back to it.

  • The HUD, a small floating window, opens in Lightroom and follows the session (below).

  • Your words come first. Claude starts from an intent (a set of starting values, below) only when one fits what you asked for, and leaves it when you ask for something else; with no intent, pass 0 changes nothing but clipping.

  • Pass 0 sets the intent's camera profile, lens corrections and starting values. Claude then makes up to 8 more passes (the Max passes setting). Before each pass it looks at a fresh render and the engine's measurements. Each pass is one History step, named AVG <id> pass n/N.

  • The engine caps how far each slider moves per pass, and keeps clipping within limits: by default at most 0.5 % of pixels blown out and 1.0 % crushed to black. Blown out means two or more colour channels at the top; a saturated colour with one channel at the top (bright orange leaves, a red sign) is not corrected, and Claude is told which channel it is.

  • The session ends when Claude accepts the edit, or when you click Accept or Abort in the HUD.

Claude Desktop shows the renders Claude looks at only inside the tool-call boxes in the chat: click a box to expand it. The photo in Lightroom shows the same edit.

What else you can ask

  • Other looks. Eleven intents come with the engine: Black and white; Landscape — blue hour, forest shade, golden hour, midday high contrast, overcast flat light; Neutral technical correction; Night — stars and Milky Way; Pet — fur detail; Portrait — natural light, skin first. Ask "Which intents are there?" to see them, with your own.

  • Variants. "Make three golden-hour variants of this photo." The engine makes virtual copies AVG <intent> A, B and C with different looks and shows them side by side. You pick one, with Pick A/B/C in the HUD or in the chat, and the remaining passes go to your pick. Select the original photo, not a virtual copy, before you ask. Every intent except Neutral technical correction has variants.

  • Sync a burst. After a session you accepted: "Sync this edit to the selected photos." It copies the settings to the photos selected in Lightroom, up to 500. For a burst of the same scene, Claude can instead match each photo's brightness to the edited one. A request works for about 30 seconds; Claude then asks again for the photos left, until all are done. Each photo gets its own snapshot AVG pre-sync … first.

  • Vignette and grain. "Add a soft dark vignette and a little grain." Claude uses the Effects panel's Post-Crop Vignetting sliders (Amount, Midpoint, Roundness, Feather, Highlights and the Style, by number 1 to 3) and its Grain sliders (Amount, Size, Roughness), on raw and rendered photos alike.

  • Black-and-white mix and Calibration. "Make it black and white and darken the blue sky." Once the photo has a black-and-white profile (Adobe Monochrome on a raw photo, Monochrome on a JPEG or other rendered photo), Claude uses the B&W panel's eight colour sliders, Red to Magenta. The Calibration panel's Shadows Tint and the Red, Green and Blue Primary Hue and Saturation work on any photo.

  • Save a preset. "Save this photo's settings as a preset called …". It is saved in the group LrC-AVG, and Lightroom lists it after a restart.

  • Save your own intent. Describe the look you want and ask Claude to save it as an intent. Claude shows you the intent first and saves it only after you approve. An intent names one profile for raw photos and one for JPEG, TIFF, PNG and the other rendered photos ("profile": { "raw": "Adobe Landscape", "rendered": "Color" }), and keeps white-balance starting values for each in "priors_by_pipeline", because a raw photo's temperature is in Kelvin and a JPEG's is relative. Intent files written for engines before 0.22.0 are skipped with a warning that says how to rewrite them.

  • Save an edit as a look. Select a photo you have edited the way you like and ask "Save this edit as a look called my_look." Claude shows you the look first and saves it only after you approve. A look keeps the photo's profile, tone and presence (exposure, contrast, highlights, shadows, whites, blacks, texture, clarity, dehaze, vibrance, saturation), white balance, tone curves, HSL, colour grading, vignette and grain, B&W mixer and calibration. Pass 0 then writes those values on the next photo you edit with it, and Claude adjusts from there (Looks says how). Sharpening, noise reduction, lens corrections and crop stay with each photo. A look's white balance applies only to photos of the same kind as the one you saved it from (raw, or JPEG and the other rendered formats), because the units differ.

  • Copy, rename or delete your intents. "Copy golden hour as my_golden_hour with warmer shadows", "Delete my_golden_hour." Claude asks you before it saves or deletes. Only your own intents can be deleted; deleting one that replaced a bundled intent brings the bundled one back.

  • Find, rate and keyword photos. "Find my five-star photos from September 7 with the keyword heron", "Which collections do I have?", "Rate the selected photos three stars", "Add the keyword pond to these photos." Claude searches by file name, keywords, star rating, capture date and collection, and sets star ratings and keywords on at most 100 photos per request. Claude tells you which photos will change first. Ratings and keywords are not Develop settings: History and snapshots don't cover them, but Claude can put the earlier values back on request.

  • Keywords in a hierarchy. "Which keywords do I have under Places?", "Add Places > Europe > Paris to these photos." Claude lists your keyword tree and writes a nested keyword as a path, parent first with | between the levels (Places|Europe|Paris), creating the levels that are missing. A plain name means the top-level keyword of that name.

  • GPS positions. "Set the location of these photos to 48.5818, 7.7509", "Remove the GPS position from this photo." Claude sets or removes the latitude and longitude of at most 100 photos per request, with each photo's earlier position in the answer. LrC-AVG does not write the altitude.

  • Where a photo was taken and where its file is. "Where was this photo taken?", "Which folder are the selected photos in?" Search results, the selected photos and the photo open in Develop come with each photo's GPS position (empty for none); search results and the selected photos also come with the file's path. This needs plugin 0.21.0; with an older plugin Claude says so.

  • Pick flags, titles and captions. "Flag these photos as picks", "Reject the blurry ones", "Give these photos the title Heron at dawn and a caption." Claude sets the pick flag (pick, reject or none) and the IPTC title, caption and headline of at most 100 photos per request, with each photo's earlier values in the answer. Like ratings, these are not Develop settings: History and snapshots don't cover them.

  • What a photo already has. "What title, flag and keywords do these photos have?", "Is this photo in a stack?" Claude reads each photo's title, caption, headline, flag, keywords, GPS position and stack.

  • Photos of one folder. "Find the photos in D:\Photos\2026\2026-09-07", with or without its subfolders. Give the folder's full path.

  • Look through a shoot. "Show me the photos of this folder one by one", "Which of these is sharpest?" Claude can see any photo of the catalog by its id, without selecting it, about 3 seconds each.

  • AI Denoise. "Denoise the selected photos at 50." Lightroom Classic 15 or later. For each photo Lightroom switches to Develop and selects it, then goes back to where you were. Each photo Denoise changes first gets a snapshot AVG pre-denoise …, which puts it back. Lightroom computes Denoise in the background (its Activity Center shows it), about 10 seconds a photo, so Claude works through a large selection over several requests.

  • Colour range, depth range and brush masks. In an edit: "Brighten only the orange of the leaves", "Darken the background by distance", "Paint a brush stroke along the horizon and lift it." A colour range copies its colour from a Color Range you click in Lightroom (Tools > Create New Mask > Color Range); a brush is painted from strokes Claude draws (no erase); a depth range works only on photos with depth data, such as iPhone Portrait photos.

  • Collections. "Create a collection 2026-10-04 in the set 2026 > Trips and put the selected photos in it." Claude creates a collection (and any missing collection sets), and adds photos to it or takes them out, up to 500 per request. Photos cannot be added to a smart collection: Lightroom fills it by its rules. Claude can also make a smart collection from search filters and delete a collection after you confirm (version 1.5.0, not yet tried in Lightroom).

  • Remove photos, undo, settings by Lightroom key (not yet tried in Lightroom). "Remove these three copies from the catalog" (the files stay on disk; a master only together with all its virtual copies; Lightroom Classic 14.3 or later), "Undo Lightroom's last step", "Set LensManualDistortionAmount to 10": settings by Lightroom's own key names, a snapshot first, outside a session and without its per-round limits. Each asks for your go-ahead where it cannot be undone.

  • More catalog and Develop tools (version 1.5.0, not yet tried in Lightroom). Colour labels, renaming keywords, the folder list, IPTC creator, copyright and location, a metadata export to a JSON file, searching by camera, lens, ISO and more; Develop presets listed, compared, exported and applied; Auto Tone and Auto White Balance, Reset, process version, snapshots and virtual copies; sharpness and statistics for up to 20 photos. Each tool that changes a photo takes a snapshot first or gives the earlier values back. The full list: docs/PARITY.md.

  • Export. "Export the five-star photos of the collection Ella's Wedding to a new folder Ella Wedding Exports on my desktop, as PNG files that fit 2040 x 1080." Claude exports with your edits as JPEG, PNG or TIFF, full size or resized, or the original file. A file of the same name already in the folder gets a new name (name-2.png) unless you ask to overwrite or skip it.

  • Import. "Import the photos on G:\DCIM that are not in the catalog yet, copied into D:\Photos\2026." Claude imports the photo files of a folder, where they are or copied first (never overwriting), and skips files the catalog already holds at that path. A photo imported earlier from another folder is not recognised as the same photo.

  • Import into dated folders. "Import G:\DCIM copied into D:\Photos, in yyyy-mm-dd folders, renamed yyyymmdd-name, and show me the plan first." Copies can go into folders and names made from the capture date (tokens {yyyy} {mm} {dd} {name}), XMP sidecars renamed with them; a dry run lists where each file would go and changes nothing. The engine reads the date from NEF, DNG and other TIFF-based raws, TIFF and JPEG; a file it cannot read (CR3, RAF, HEIC, PNG, PSD) is listed as failed and not copied.

  • Stack brackets at import (not yet tried in Lightroom). "Import G:\DCIM and stack the brackets, frames within 2 seconds." Frames shot close together are stacked as they are imported, the first frame on top. A photo already in the catalog is not stacked, and stacks cannot be undone or made later from Claude: use Photo > Stacking in Lightroom.

  • Export and import work for about 30 seconds per request, then Claude goes on with another request until all are done. Each imported photo is listed with the file it came from (source), the file the catalog holds (path, the copy when copying first) and its capture time (empty if Lightroom has not read it yet).

Sync, presets, ratings, keywords, GPS positions, collections, exports and imports are not available while a session is open.

Looks

A look is an intent that carries a style: your own edit, a preset, or one you describe. Claude starts each photo from it and then adapts it to that photo.

  • Save an edit as a look. Select a photo you edited the way you like and ask "Save this edit as a look called warm_film." Claude shows you the look and saves it only after you approve. Besides the sliders listed above, it keeps the photo's AI masks that Lightroom finds by itself (subject, sky, background, the landscape kinds, and every person's skin, hair, clothes and other parts), by kind, name and slider values, not their shape. Masks of one person, gradients, brushes and ranges stay with the photo.

  • Make a look from a preset. "Make a look from my preset Warm Evening." Claude reads the preset's settings and shows you the look first. Settings the look cannot hold, such as a preset's masks, are listed and left out.

  • Reference photos. A look saved from an edit remembers that photo. During a session the engine compares each pass with it, and with any other photos you name ("use my collection Favourite Sunsets as references"). Claude sees how far the photo is from them; nothing is forced toward them.

  • How a look treats the tones. Each look has a tone mode, and you can ask for another one in a session ("use Lightroom's Auto for the tones"):

    • adapt (looks saved from an edit): the look's exposure, contrast, highlights, shadows, whites, blacks, texture, clarity and dehaze are a starting point, and Claude adapts them to the photo, using the reference photos as a guide.

    • set (the bundled intents, and looks you describe): the values are written as they are, and Claude adjusts from there.

    • auto: Lightroom's own Auto Tone sets the tones first, then the look's colour and character go on top. The Auto step shows in History under Lightroom's own name; Abort and revert put the photo back as for any other session.

  • Classic methods. Three bundled looks follow a classic method: classic_zone_system (Ansel Adams' Zone System: a full tonal scale, then dodging and burning), classic_high_key and classic_low_key (chiaroscuro). Each names the measured ranges its method expects, for example "the darkest 5% reach Zone II". Every pass reports whether the photo is inside each range (look_checks); nothing is refused for them. You can add such checks to your own looks.

  • Masks in a session. When a look has masks, Claude makes them on each photo and adjusts them to it; each mask uses one pass.

  • Looks in the prompt menu. Each look is also a prompt, look-<name>, in the AI app's menu of prompts, in apps that show MCP prompts. Claude Desktop shows none in its + menu [stated: Jim, 2026-10-31, docs/reports/phase10/PHASE10.md "Observed"], so there you ask for the look by name in the chat. Pick one with a photo selected in Lightroom to edit it with that look.

  • Not sure which look? Ask for an edit without naming one, and Claude may suggest two or three looks that fit, or none.

The HUD

The HUD opens by itself when an edit starts (if it is not open already), and from File > Plug-in Extras > LrC-AVG - Show Vision Gateway HUD. It takes the keyboard when it opens: click Lightroom's main window before you use keyboard shortcuts.

Below, <AI> stands for the name of the AI client you edit with (for example Claude Code or OpenCode), or "the AI" when the client gives no name or no engine is connected.

From top to bottom it shows:

  • The headline: whose turn it is. <AI> is working. Nothing needed from you. while the AI works. When something is needed from you it starts with "Your turn": Your turn: pick a copy, or tell <AI> which one.; Your turn: approve pass n so <AI> can go on.; Your turn: <AI> thinks the edit is done.; Your turn: select the edit's photo again. After an edit ends: Done: the edit is kept. or Done: the photo is back as it was.

  • The buttons (below).

  • A feedback line: what your last click did (for example "Accept sent; waiting for <AI>."), or the plugin's latest note.

  • Photo: the file name (and copy name).

  • Camera: ISO, shutter speed, aperture, lens and lens-profile status.

  • Step: what is happening, for example Setting profile, lens corrections and baseline; Applying pass 2 of 8; Rendering a preview; Measuring the preview; <AI> is looking at the result; Waiting for your pick; Waiting for your approval; <AI> thinks the edit is done; Accepted; Aborted. From pass 1 on, the label is followed by the pass, for example "(pass 2 of 8)".

  • The selection line: Selection: the edit's photo., or Target changed: … if you select a different photo during the edit.

  • Changes in the latest pass: a grid with the slider, before, after and change, up to 12 rows. Sliders carry the names Lightroom's Develop panel shows, such as Orange Saturation.

  • The clipping sentence: Clipping: within limits., or one sentence saying what the guardrails did, for example that a pass was undone, a clipping was corrected, or a slider was held back.

  • The settings the edit uses (between edits, the settings page's).

  • The connection line: Connected to <AI> · <model>. (the model the AI named when the edit began; Connected to <AI>. without one), Not connected to <AI>., or LrC-AVG is not running in Lightroom. The HUD keeps the name from the last edit after the AI disconnects. The Deck shows the same <AI> · <model> under its step line.

A line that is too long for the window continues on a second line, and ends with "..." if it still does not fit.

Buttons:

Button

What it does

Pick A / B / C

Variants mode, while a pick is awaited: continue on that copy.

Approve pass n

Approve-each-pass mode, while pass n waits for you (below).

Accept

Ends the session and keeps the edit, once the running step has finished.

Abort

Stops the running step before its next write, then puts the photo back to the AVG pre-session … snapshot. It is the last button. While Lightroom computes an AI mask, Abort ends the wait within a few seconds; it puts the photo back only if the mask's result has shown, otherwise it leaves the photo as it is and names the snapshot: wait until the mask's shape shows in Lightroom before you click that snapshot.

The buttons are greyed out while the engine is not connected, and while the HUD checks an edit after a reconnect. After a click they all stay off until the engine answers that click, or for at most 10 s. When an edit ends, the HUD stays open and shows the outcome until you close it or the next edit starts.

Menu items

Under File > Plug-in Extras, in this order:

Menu item

What it does

LrC-AVG - Status

Says whether the plugin's bridge runs and whether the engine is connected; shows the plugin and engine versions, the Claude Desktop entry, whether the Deck is installed and its version, the ports and the plugin log, and saves the same text as %LOCALAPPDATA%\LrC-AVG\status.txt to attach to a GitHub issue.

LrC-AVG - Show Vision Gateway HUD

Opens the HUD.

LrC-AVG - Pick A, Pick B, Pick C

The HUD's Pick buttons.

LrC-AVG - Approve Pass

The HUD's Approve pass n.

LrC-AVG - Accept Edit

The HUD's Accept.

LrC-AVG - Abort Edit

The HUD's Abort.

Each of the last five waits up to 20 s for the engine, and for an edit being checked after a reconnect, and reports in the HUD's feedback line. If it cannot send, the line says why, for example "Pick A not sent: no pick is waiting."

There are no keyboard shortcuts.

Settings

File > Plug-in Manager, select LrC-AVG (Autonomous Vision Gateway): the LrC-AVG settings section. Values are saved as you change them, and the AI's next session reads them; a session already open keeps its own. Claude can override a value for one session if you ask (for example "use 6 passes"), and an intent's own clipping limits come before the page's.

Setting

Default

Allowed

Mode

Autonomous

Autonomous, Approve each pass

Max passes per photo

8

1-16, not counting pass 0

Variant count

3

2-3 copies in Variants mode

Step decay per pass

1.0, 0.6, 0.4, 0.25

1 to 8 numbers, each above 0 and at most 1: the share of each slider's per-pass maximum that pass 1, 2, 3, … may use

Highlight clipping, % of pixels

0.5

0-100; pixels at 253 or above

Shadow crushing, % of pixels

1.0

0-100; pixels at 2 or below

Preview long edge, pixels

1600

800-1920

Preview JPEG quality

75

60-90

Temp preview folder

%TEMP%\LrC-AVG\previews

shown only; cannot be changed

Intents folder

blank: LrC-AVG\intents in your Documents folder (usually C:\Users\<you>\Documents\LrC-AVG\intents)

any folder

Log folder

blank: %LOCALAPPDATA%\LrC-AVG\logs

any folder

Receive port / Send port

8765 / 8766

1024-65535, different from each other and not 8767 (the engine's own); used from the next Lightroom start

If you opened this section before 1.2.0, it stored Max passes 4 then. 1.2.0 changes a stored 4 to 8 once, the first time the engine or this page reads the settings; a 4 you set after that stays.

A value that is not valid is not used: the default takes its place, and the bottom of the section lists it with the reason. A changed log folder does not hide older sessions: the engine remembers every log folder it has used.

Approve each pass

Set Mode to Approve each pass to see each pass before Claude makes the next one.

  • Pass 1 needs no approval.

  • From pass 2 on, Claude's next pass waits up to 40 s for Approve pass n in the HUD.

  • If you have not approved by then, nothing is written, and Claude is told to let you know the pass waits for your approval. Click Approve pass n in the HUD, or approve in the chat; Claude then records your approval and goes on.

  • In Variants mode, picking a copy approves the pass it was picked at.

In testing, Claude also asked in the chat before each pass on its own.

Undoing an edit

  • During a session: Abort, in the HUD or the menu.

  • Afterwards: in Develop, the Snapshots panel has AVG pre-session … for each session and AVG pre-sync … for each synced photo; the History panel has every pass as its own step.

  • Virtual copies from Variants mode stay in the catalog, including the ones you did not pick. After the session, ask Claude to remove the ones you do not want: it asks you first, and needs Lightroom Classic 14.3 or later. Or select them in Library, choose Photo > Remove Photos…, then Remove.

  • Lightroom's own undo. Between sessions, Claude can undo Lightroom's last step (Edit > Undo) after you agree. It undoes whatever was last, which may be your own change.

Where files go

Folder

What is there

%LOCALAPPDATA%\LrC-AVG\logs

engine-<yyyymmdd>.jsonl, a record of every tool call (see "Which log folder" below)

%LOCALAPPDATA%\LrC-AVG\logs (or the log folder set on the settings page)

<yyyymmdd>-<id>.json, each session's full log; <yyyymmdd>-<id>.recipe.json, each accepted session's final settings

Documents\LrC-AVG\intents in your Documents folder, wherever Windows keeps it (usually C:\Users\<you>\Documents\LrC-AVG\intents), or the intents folder set on the page

Your own intents, <id>.json. One with the id of a bundled intent replaces it. The bundled intents stay inside the installed engine. The folder is outside AppData on purpose: with Claude Desktop from the Microsoft Store, Windows keeps files saved under AppData inside Claude's own data, where File Explorer and other programs do not see them. Older versions saved intents in %LOCALAPPDATA%\LrC-AVG\intents or inside Claude's own data (%LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Local\LrC-AVG\intents). The first time the engine uses this folder as its default, it looks once at those two places, if either exists: it copies the intents that are missing into this folder, leaves the old files where they are, and writes migrated-from-appdata.txt in this folder, which lists what it copied (nothing, when this folder had every intent). While that file is there it does not look again, so an intent you delete or rename here does not come back; delete the file to make it look again. The first list of intents after a copy reports what was copied. An intent in the old schema v1 is skipped with a warning; ask Claude to rewrite it as schema v3 and save it over the old file.

%LOCALAPPDATA%\LrC-AVG

The program: LrC-AVG Deck.exe, the uninstaller, and resources\ with Node.js, the engine and a copy of the plugin; status.txt from LrC-AVG - Status; setup-result.txt, the setup's last message

%APPDATA%\Adobe\Lightroom\Modules\LrC-AVG.lrplugin

The plugin Lightroom loads

%APPDATA%\Adobe\CameraRaw\Settings

Presets LrC-AVG saves, <name>.xmp (Lightroom's own preset folder)

%TEMP%\LrC-AVG

previews\, the renders (deleted when a session ends and when the engine starts); bridge.log, the plugin's log; bridge_status.json

%USERPROFILE%\.lrc-avg

bridge_token and bridge_ports.json, written by the plugin at each Lightroom start; log_folders.json, the log folders used

Claude Desktop's folder

claude_desktop_config.json with the lrc-avg entry, and the backups the setup made (claude_desktop_config.json.backup-<time>)

Which log folder. Session logs and recipes go to the Log folder on the settings page, or to %LOCALAPPDATA%\LrC-AVG\logs when it is blank. If the LRC_AVG_LOG_DIR environment variable is set for the engine (in a client's lrc-avg entry), that folder is used instead of both. The record of tool calls, engine-<yyyymmdd>.jsonl, is written to LRC_AVG_LOG_DIR or %LOCALAPPDATA%\LrC-AVG\logs, not to the settings-page folder. Each session's start names its own log file (log_path), so you can ask the AI where the log of a session is. With Claude Desktop from the Microsoft Store, Windows keeps what its engine writes under %LOCALAPPDATA% inside Claude's own data (%LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Local\LrC-AVG\logs), so File Explorer does not show those logs at %LOCALAPPDATA%\LrC-AVG\logs. A Log folder outside AppData on the settings page puts the session logs and recipes where you can see them; the tool log stays in Claude's own data.

Uninstall

  1. Quit Lightroom Classic.

  2. Open Settings > Apps > Installed apps, find LrC-AVG, and choose … > Uninstall.

  3. The uninstaller has a box, Delete the application data:

    • Leave it unticked to keep your session logs and recipes in %LOCALAPPDATA%\LrC-AVG, for a later install.

    • Tick it to delete them too, with %TEMP%\LrC-AVG and %USERPROFILE%\.lrc-avg.

    • Either way, your intents in Documents\LrC-AVG\intents stay: the uninstaller does not touch your Documents folder.

  4. If it says the LrC-AVG engine is running, click OK to close it.

  5. Quit Claude Desktop from the tray icon and start it again.

The uninstaller removes the program, the plugin from Lightroom's plugin folder, and the lrc-avg entry from Claude Desktop's settings. Entries you added to other AI apps (docs/CLIENTS.md) stay; delete them there.

Your edits stay in the Lightroom catalog: History steps, snapshots, virtual copies and presets are Lightroom's own, and uninstalling does not touch them. The plugin's settings stay in Lightroom's preferences.

Known limitations

  • One PC tested: Windows 11, Lightroom Classic 15.5.1 and 15.6.

  • Windows only. macOS is deferred as future development and is not being worked on (decision D4, 2026-10-28, issue #207).

  • The .mcpb extension without Node.js: it was tested on a PC that has Node.js 24 installed. Whether it runs on a PC without Node.js has not been tested.

  • Process version: a photo on a Lightroom process version older than version 5 is refused. Update the photo to the current process version in Develop first, or ask Claude to (version 1.5.0).

  • Missing originals: a photo whose original file Lightroom cannot find is refused, even when it has a smart preview. Claude tells you the file name and its last known folder. Reconnect the file in Lightroom (Library > Find All Missing Photos), then ask again. A sync skips such a photo and syncs the rest. If the file goes missing during an edit, the HUD says so, and Abort still puts the photo back.

  • Masks: linear, radial, luminance, colour range, depth range, brush and AI masks. Colour range, depth range and brush masks are made whole: Claude can change their sliders, name, visibility and inversion, not their shape, and does not combine them with other parts; depth ranges are not yet checked in Lightroom. A mask of two parts is made only in the forms checked in Lightroom: a linear with a radial added, subtracted or intersected; a radial with an AI part (sky, subject, …) added, subtracted or intersected; an AI mask with a radial added; a linear minus a linear; a radial minus a radial; a radial intersected with a luminance part. Only sky was checked among the AI kinds. Claude names any other form it was asked for and leaves the mask as it was. Brush and Color Range masks you made yourself are kept, and take the same edits.

  • Crop and straighten: Claude crops and straightens inside an edit. It is not yet checked in Lightroom, and photos turned a quarter turn, JPEG and other rendered photos are not checked by the planned check either. Mirrored photos are refused. HDR photos edit, with exposure limited to ±5.

  • One Claude surface at a time. Use LrC-AVG from one chat, Cowork task or Code task at a time, and from one AI app at a time. Claude Desktop runs more than one LrC-AVG engine (in testing, the chat and a Cowork task each had their own), and only one engine at a time can talk to Lightroom. It keeps Lightroom until a minute after its last LrC-AVG call, and for as long as its edit is open. Any other surface gets ENGINE_BUSY until then: end the edit in the first one, wait a minute, then ask again. In testing, a Cowork task got ENGINE_BUSY twice, each time within a minute of the chat's call (report).

  • One session at a time. Sync, presets, ratings, keywords and GPS positions are not available until it ends.

  • Keep Plug-in Manager closed during a session. Lightroom pauses the plugin while Plug-in Manager or a menu is open (2.5 to 15 s in testing). The engine waits up to 60 s for the plugin during a session, but a long pause during a session has not been tested.

  • Approve and Claude Desktop: whether Claude Desktop waits the full 40 s for an Approve has not been tested (in testing, Claude asked in the chat instead of waiting).

  • Long calls answer within 50 s. A tool call that is still working after 50 s (a slow export, an AI mask) answers that Lightroom is still working; the work goes on, and the AI gets the result when it makes the same call again. Whether every client's model makes that call again has not been tested.

  • If the engine disconnects during an edit (for example, Claude Desktop is quit), the HUD says "Not connected to <AI>" and names the AVG pre-session … snapshot to apply in Develop > Snapshots. When the AI connects again, the HUD shows "Checking this edit with <AI>..."; if the AI no longer has the edit, it says so and the same snapshot line stays.

  • The HUD takes the keyboard when it opens. Every HUD button has a menu item. Inside the HUD, Tab moves to the first button that is switched on, and Space or Enter clicks it.

  • A long note or clipping sentence can end in "..." in Lightroom, cut off at the window's right side. A later change fixes it.

  • Renders show only inside the expanded tool-call boxes in Claude Desktop, not in Claude's answer.

  • Presets: a new preset shows only after Lightroom restarts. Only the group "LrC-AVG" has been tested. Adobe camera profiles (Adobe Color, Adobe Landscape, …) are left out of presets, as are temperature and tint while white balance is As Shot, and vignette and grain.

  • Virtual copies from Variants mode are never removed by LrC-AVG.

  • Sync: at most 500 photos; Claude works through them about 30 seconds at a time.

  • Keywords: a plain name always means the top-level keyword of that name, for adding and removing alike, even when a nested keyword has the same name; give the path to reach a nested keyword. Upper and lower case count as the same. A keyword removed from photos, and every level created, stays in the Keyword List; delete it there if you no longer want it. The keyword list Claude reads is kept for 2 minutes, so a keyword you add or rename in Lightroom yourself shows after at most 2 minutes, or at once if you ask Claude to read the keywords again.

  • Keyword paths and GPS positions have not yet been tried in Lightroom. Keywords and GPS positions need plugin 0.10.0.

  • Stacks: Claude can read a photo's stack but cannot make or break one: Lightroom's plugin interface has no way to stack photos already in the catalog. Use Lightroom's own stacking commands.

  • Flags, titles, captions, headlines, reading them back and the folder search need plugin 0.22.0. The folder must be one Lightroom's Folders panel lists; any other folder gets the answer that the catalog has no such folder. Searching a folder's subfolders has not yet been tried in Lightroom.

Development

Building from source, the development install and the project's checks: docs/DEVELOPMENT.md.

Sources

The evidence behind the behaviour this page describes. Paths are in this repository unless they are URLs. Marks as in .claude/rules/02-sourcing.md: [handle: …] can be checked; [unverified] has not been observed yet; [inference] is reasoning; [community] is a user report.

Section

Claim

Source

Version

Tested PC and versions

[handle: docs/reports/phase5/PHASE5.md "Numbers", "Plugin, engine, connect time": LrC 15.5.1; "Draft for LR_SDK_NOTES": Windows 11]; LrC 15.6 [handle: docs/reports/phase6/lrc-version-check/check.txt section 1]

Supported Lightroom versions

15.0 the supported baseline, earlier versions untested; 15.6 the newest tested

[stated: Jim, 2026-10-03, "Set version 15.0 as the baseline, but note that it might work on earlier versions (untested.)"]; [handle: docs/reports/phase6/lrc-version-check/check.txt section 1, "Lightroom 15.6"]

Supported Lightroom versions

The notice outside 15.0-15.6, once in the HUD and in lr_get_active_photo_context; a setting Lightroom no longer reports named as not available, the edit kept open; a newer process version read but not edited

[handle: engine/src/bridge/lightroom.ts; engine/src/mcp/errors.ts readbackError, featureUnavailable; engine/src/params/map.ts checkProcessVersion]; tested against the simulated Lightroom [handle: engine/tests/lrc-baseline.test.ts]; in a Lightroom outside 15.0-15.6 [unverified]

What you need, Install

One setup with its own Node.js, the plugin, the engine and the Deck; installed per user, no administrator

[handle: tools/setup/build.ts:1-12; tools/setup/node-pin.json (Node 24.11.1 win-x64); hud/src-tauri/tauri.setup.conf.json installMode: currentUser]; the install on Windows 11 [handle: docs/reports/phase9/local-install.md "Numbers"]; Windows 10 [unverified]

Install

The setup from the latest GitHub release; SmartScreen's Windows protected your PC, More info > Run anyway

[unverified] until the first release is downloaded from GitHub (vault PHASE9_PLAN.md "PR 3"): a local build showed no prompt because it carries no Mark of the Web [handle: docs/reports/phase9/local-install.md "Observed", Jim after run 1b]

Install

The request to close Lightroom and Claude Desktop with Retry; the message about Claude Desktop's settings; the restart line

[handle: hud/src-tauri/windows/hooks.nsh:80-131]; the message box and the wizard's last page [handle: docs/reports/phase9/local-install.md "Observed", run 1b]

Install

Plugin into Modules, listed and switched on; the lrc-avg entry with a backup, other entries kept; program files in %LOCALAPPDATA%\LrC-AVG; LrC-AVG in installed apps

[handle: hooks.nsh:105-125; engine/src/setup/apply-config.ts:41-55; hud/src-tauri/tauri.conf.json productName]; listed and "Installed and running" without a click [handle: docs/reports/phase9/local-install.md "Numbers", run 1b]

Install

An update replaces the old version and keeps the data

[handle: hooks.nsh:133-178, no removal when a new setup runs the old uninstaller]; the upgrade over a running install [handle: docs/reports/phase9/local-install.md "Numbers", run 1, before the last fixes]

Install

SHA256SUMS.txt beside the setup; Get-FileHash gives SHA-256

[handle: tools/setup/build.ts main; .github/workflows/release.yml]; (Get-FileHash README.md).Algorithm printed SHA256 (PowerShell 7, 2026-10-17)

Install

Lightroom loads the plugin at its start

[handle: plugin/LrC-AVG.lrplugin/Info.lua LrForceInitPlugin]

Other ways to install

The setup tested 2026-10-17: install, update and uninstall

[handle: docs/reports/phase9/local-install.md (status accepted)]

Other ways to install

The .mcpb installed in Claude Desktop with every tool working, and the Claude Code plugin loaded with claude --plugin-dir, on 2026-10-27, on a PC with Node.js 24

[stated: Jim, 2026-10-27, docs/reports/phase11/DISTRIBUTION.md "Run 1"]; the PC's Node.js [handle: docs/reports/phase11/DISTRIBUTION.md "Smoke test", Node 24.11.1]

Other ways to install

v1.1.0 has only the setup and SHA256SUMS.txt; the .mcpb and the plugin zip come with the next release

[handle: gh release view v1.1.0 --json assets, 2026-10-29, printed LrC-AVG-Setup-1.1.0.exe, SHA256SUMS.txt]; the next release's assets [stated: Jim, 2026-10-29, "Go on all.", the plan's decision 4 (a)]

Other ways to install

npm run package writes the .mcpb and LrC-AVG.lrplugin-<version>.zip, whose root holds the LrC-AVG.lrplugin folder

[handle: engine/src/devtools/package-cli.ts:68-70; engine/src/devtools/mcpb-manifest.ts]

Other ways to install

The zip's plugin shows as LrC-AVG (Autonomous Vision Gateway)

[handle: engine/src/setup/plugin-id.ts productInfoLua (moved from tools/setup/), applied to the zip by engine/src/devtools/package-cli.ts, both from the branch fix/distribution-artefacts]; [unverified] in Lightroom from the zip

Other ways to install

Two engines and two plugins under one id when both the setup and the extension are installed

Two engines: [inference: the setup's lrc-avg entry and the extension each start one]; what Lightroom does with two plugins of one id [unverified]

Other ways to install

The drag onto Settings > Extensions

[unverified: Jim's run installed the .mcpb, the click path was not written down (docs/reports/phase11/DISTRIBUTION.md "Run 1")]

Other ways to install

The Claude Code plugin: .claude-plugin/plugin.json starts engine/dist/mcp/main.js, so it needs npm run build

[handle: .claude-plugin/plugin.json mcpServers; docs/reports/phase11/DISTRIBUTION.md "Purpose" item 2]

Other AI apps

Four apps tested 2026-10-16; Codex CLI, Cursor, VS Code and Windsurf from their documentation, not tested

[handle: docs/CLIENTS.md status table and the doc URLs there]; Codex not run through on 2026-10-29: it could not refresh its sign-in [handle: npm run clients:probe with LRC_AVG_PROBE_CLIENTS=codex, 2026-10-29, Codex answered "Your access token could not be refreshed"]

If something goes wrong

The Status headlines and the "has not started LrC-AVG yet" line; status.txt

[handle: plugin/LrC-AVG.lrplugin/MenuStatus.lua:114-156, 132]; Plug-in Manager's Enable button [unverified]

Why the setup is not signed

Not signed for cost; SignPath Foundation once people use it

[stated: Jim, 2026-10-17, "it is just a waste of money, I might as well wait to see if it is downloaded by anyone and then do the SignPath signing if so"]; issue #171; SignPath's conditions [handle: https://signpath.org/terms]

Why the setup is not signed

Smart App Control blocks unsigned programs with no override

[handle: https://support.microsoft.com/en-us/topic/what-is-smart-app-control-285ea03d-fa88-4d56-882e-6698afdb7003, read 2026-10-17: "There is currently no way to bypass Smart App Control protection for individual apps"]; the Windows Security path [unverified]; each new version unknown to SmartScreen again [inference: unsigned reputation goes by the file]

What leaves your PC

Engine and plugin on 127.0.0.1 only; no internet connections from the engine; no usage data

[handle: engine/src/bridge/client.ts:52; vault PRD.md NFR-4; grep -rn "fetch(|node:https|node:http" engine/src found nothing, 2026-10-17]

What leaves your PC

Previews go to the AI as images, 1600 px by default; the client sends them to its provider

[handle: engine/src/mcp/server.ts:64; plugin/LrC-AVG.lrplugin/Prefs.lua:37]; what the client does with them is [inference]

Check that it works

Status headlines and contents

[handle: plugin/LrC-AVG.lrplugin/MenuStatus.lua]; the headline outside a chat in Lightroom 15.6 [handle: docs/reports/phase9/local-install.md "Numbers", run 1b]

Check that it works

The engine connects at the first tool call and lets go after 60 s without one

[handle: engine/src/mcp/main.ts:6-7, IDLE_RELEASE_MS; docs/reports/phase5/PHASE5.md "Numbers", "Bridge back after each chat"]

Your first session

Snapshot name, pass 0, History step names, per-pass caps, clipping limits and defaults

[handle: engine/src/mcp/defs-session.ts lr_begin_session, lr_step; engine/src/mcp/defs-help.ts HELP_TEXT item 5, clip_baseline]; AC-4 held on every pass of the Phase 5 check [handle: PHASE5.md "Numbers", "AC-4"]

Your first session

The golden-hour chat ran on six photos

[handle: PHASE5.md "Numbers", "The six golden-hour chats"]

Your first session

Renders show only inside the expanded tool-call box

[handle: docs/reports/phase0/S3.md "Analysis"; stated by Jim there]

What else you can ask

The bundled intents (eleven starters, three classic-method looks) and which have variants

[handle: engine/intents/*.json label, variants]

What else you can ask

Variants, copy names, the pick

[handle: engine/src/mcp/defs-help.ts HELP_TEXT "Variants mode", defs-session.ts lr_select_variant]; the HUD pick in Lightroom [handle: PHASE5.md "Numbers", "AC-3"]

What else you can ask

Sync: limit 500, about 30 s per request, snapshots, not during a session

[handle: engine/src/sync/types.ts:18, engine/src/library/files.ts:42, engine/tests/sync-budget.test.ts; engine/src/mcp/defs-propagation.ts lr_sync_series]

What else you can ask, Known limitations

Vignette and grain: the nine sliders, limits on both pipelines, left out of presets

[handle: engine/src/params/canonical.ts (Effects entries), docs/reports/phase8.5/effects.md "Numbers" (verdict Go); engine/src/presets/select.ts leaveOut; engine/tests/params-effects.test.ts]; the slider names as Lightroom shows them, and Claude using them in a chat, [unverified] until Jim checks with engine 0.32.0

What else you can ask, Known limitations

Presets: group, folder, shown after a restart, what is left out; only the "LrC-AVG" group tested

[handle: defs-propagation.ts lr_create_preset_from_active; engine/src/presets/folder.ts; docs/reports/phase4/S7.md "Consequences"; docs/reports/phase4/WB.md]; groups other than "LrC-AVG" [unverified]

What else you can ask

Saving an intent only after approval

[handle: engine/src/mcp/defs-intents.ts lr_save_intent]

What else you can ask

Save an edit as a look: what it keeps, values written as they are, white balance per kind of photo

[handle: engine/src/mcp/look-capture.ts LOOK_GROUPS; engine/tests/look-capture.test.ts (simulated Lightroom, both pipelines)]; in Lightroom and Claude Desktop [unverified] until Jim uses engine 1.3.0

Looks

Masks kept by kind, name and sliders without shape; a preset's look and what is left out; the source photo as reference; the three tone modes, the Auto step's History name, revert after Auto; a mask uses a pass; prompts per look; 2-3 looks offered

[handle: engine/src/mcp/look-capture.ts captureMasks, presetLook; engine/src/intents/schema.ts TONE_MODES, LOOK_MASK_KINDS; engine/src/session/auto-tone.ts, look-brief.ts; plugin/LrC-AVG.lrplugin/DevelopTools.lua:13-15; engine/src/mcp/prompts.ts, defs-help.ts INSTRUCTIONS; engine/tests/session-tone-modes.test.ts, engine/tests/look-authoring.test.ts (simulated Lightroom)]; the look session, the source photo as reference, the Auto step and revert after Auto observed in Lightroom [handle: docs/reports/phase10/PHASE10.md "Numbers"]; the look prompts are not shown in Claude Desktop (same report, "Observed")

Looks

The three classic-method looks, their sources, and checks reported each pass, never refused

[handle: engine/intents/classic_zone_system.json, classic_high_key.json, classic_low_key.json (brief names each source); engine/src/metrics/reference-gap.ts lookChecks; engine/tests/look-checks.test.ts, engine/tests/session-bundled-intents.test.ts (simulated Lightroom)]; in Lightroom [unverified] until npm run phase10:check

Your first session, What else you can ask

Your words first; no intent; copy, rename, delete; bundled not deleted

[handle: defs-session.ts lr_begin_session, defs-intents.ts lr_delete_intent; engine/tests/session-no-intent.test.ts, engine/tests/intents.test.ts "deletes the user's own intents only"]; with Claude in Lightroom [unverified] until Jim's chat after engine 0.25.0

Where files go

Claude Desktop from the Microsoft Store keeps what its engine saves under %LOCALAPPDATA% in its own data, so the intents folder moved to Documents

[handle: docs/reports/phase8.5/issue108/msix-intents-folder.txt:23-30; docs/reports/phase9/issue180.md "Pre-run findings"]; that it is MSIX virtualization [handle: https://learn.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes "Common file system operations"]; that the engine of Claude Desktop now saves to Documents and File Explorer shows it [unverified] until Jim's npm run intents:check

Where files go

The intents folder is Documents\LrC-AVG\intents, Documents as Windows' User Shell Folders value "Personal" gives it; the copy from the two older places, once (the marker is written after every look, also when nothing was copied), never overwriting

[handle: engine/src/intents/folder.ts documentsFolder, defaultUserIntentsDir; engine/src/intents/migrate.ts; engine/tests/intents-folder.test.ts, engine/tests/intents-migrate.test.ts]; the registry value read on the dev PC [handle: docs/reports/phase9/issue180.md "Pre-run findings"]; a moved Documents folder (OneDrive) [unverified]

Where files go

The logs of Claude Desktop from the Microsoft Store are in its own data

[handle: docs/reports/phase9/issue180.md "Pre-run findings": ...\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\LrC-AVG\logs\engine-20261017.jsonl]; that a Log folder outside AppData escapes it [inference]: the doc redirects only AppData

What else you can ask

An intent's profile per kind of photo, white balance per kind, older files skipped with a warning

[handle: engine/src/intents/schema.ts, engine/src/intents/loader.ts check; engine/tests/intents.test.ts "checks schema v2 per pipeline"; engine/tests/session-bundled-intents.test.ts]; Kelvin vs relative [handle: docs/reports/phase8/S10.md "Observed"]; on rendered photos in Lightroom [unverified] until the Phase 8 check

What else you can ask, Known limitations

Search filters, collections, ratings and keywords: limit 100, before and after values, not during a session, exact names, removed keywords kept

[handle: engine/src/mcp/defs-catalog.ts; engine/src/library/write.ts MAX_PHOTOS; plugin/LrC-AVG.lrplugin/Library.lua; docs/reports/phase6/catalog-tools-smoke/smoke.txt]; in Lightroom [handle: docs/reports/phase6/catalog-tools-check/check.txt]

What else you can ask

History and snapshots don't cover ratings and keywords

[inference]: they are catalog metadata, written with setRawMetadata and addKeyword, not applyDevelopSettings (Library.lua)

What else you can ask, Known limitations

Keyword paths, the | separator, the ambiguity rules, levels created and kept; GPS set or removed, altitude not written, limit 100; neither tried in Lightroom yet

[handle: engine/src/mcp/defs-catalog.ts lr_set_keywords, lr_list_keywords, lr_set_gps; engine/src/library/keywords.ts; plugin/LrC-AVG.lrplugin/KeywordTree.lua, Library.lua setGps; engine/tests/catalog-keywords-gps.test.ts]; the separator [upstream claim: Automaat KeywordTree.lua:3-6 at 11c0b93]; in Lightroom [unverified]

Known limitations

The keyword list kept 2 minutes, read again after the tools' own keyword changes or on request

[handle: plugin/LrC-AVG.lrplugin/KeywordTree.lua KeywordTree.paths; engine/tests/lua-keyword-cache.test.ts; docs/reports/phase11/PERF.md (why: a full read took 10.7 s)]; in Lightroom [unverified]

What else you can ask

Collections, export, import: limits 500, smart collections refused, rename/overwrite/skip, copy without overwriting, skipped by path only, 30 s per request, removal from the catalog by lr_remove_photos, not during a session; source and capture_time per imported photo (plugin 0.21.0)

[handle: engine/src/mcp/defs-files.ts; engine/src/library/files.ts; plugin/LrC-AVG.lrplugin/Transfer.lua; engine/tests/catalog-files.test.ts, engine/tests/catalog-where.test.ts]; in Lightroom 15.6 [handle: docs/reports/phase6/automaat-files-check/check.txt]; LrSelection.removeFromCatalog from SDK 14.3 removes the selection from the catalog [handle: D:\Developer\LightRoom Classic Dev Kit\API Reference\modules\LrSelection.html:641-643], which lr_remove_photos uses (plugin/LrC-AVG.lrplugin/Remove.lua); in Lightroom [unverified] until npm run develop-catalog:check; source and capture_time in Lightroom [unverified]; Claude Desktop's own time limit for a call [unverified]: it logged answers to calls of up to 171 s with no cancel [handle: docs/reports/phase8.5/desktop-call-limit.md]

What else you can ask, Known limitations

Pick flags, title, caption, headline (2000 characters, "" empties), reading them with keywords, GPS and the stack, the folder search with subfolders, limit 100, plugin 0.22.0; no stack write

[handle: engine/src/mcp/defs-metadata.ts, engine/src/library/metadata.ts, plugin/LrC-AVG.lrplugin/Metadata.lua, Library.lua folderPhotos; engine/tests/catalog-metadata.test.ts, against the simulated plugin]; the SDK calls in Lightroom 15.6, and no SDK call stacking photos already in the catalog [handle: docs/reports/phase8.5/S11.md "Observed (Jim)", "Consequences"]; through the tools in Lightroom: folder search, flag, title and a two-line caption written, read back and put back [handle: PR #152 comment "Lightroom check", 2026-10-13]; a folder outside the catalog answered UNKNOWN_FOLDER (same comment); that the Folders panel lists the catalog's folders is [inference]; getPhotos with subfolders [unverified]

What else you can ask

GPS position in search results, the selected photos and the photo in Develop, path in the first two, plugin 0.21.0, a notice with an older plugin

[handle: plugin/LrC-AVG.lrplugin/Photos.lua describe opts.where; engine/src/library/search.ts WHERE_PLUGIN; engine/tests/catalog-where.test.ts, against the simulated plugin]; in Lightroom [unverified] until Jim's chat

The HUD

Window order, headlines, step labels, connection line, click lines, undo line, wrapping onto a second line

[handle: plugin/LrC-AVG.lrplugin/HudView.lua:200-210; HudText.lua:39-96, HudText.lua:162-172]; in Lightroom 15.6 [handle: docs/reports/phase6/hud-p1-check/check.txt section 3]

The HUD

Greyed buttons, 10 s, 12 rows, the selection line, Pick/Approve titles

[handle: HudView.lua:134-168; HudState.lua:24, 29, 228-237]; the buttons, the 10 s and the rows in Lightroom [handle: vault PRD.md §6.3 "Lines as built"]

The HUD

Grid in Lightroom's slider names; the clipping sentence

[handle: engine/src/params/labels.ts:10, 44; engine/src/hud/payload.ts:112-170; HudText.lua:75]; names matched Jim's Develop panel [handle: labels.ts:2-3, stated: Jim, 2026-10-03]; the sentences in Lightroom [unverified]

The HUD

The ended HUD stays open until closed or the next edit starts

[handle: plugin/LrC-AVG.lrplugin/Hud.lua:14-16; stated: Jim, 2026-10-03, HudState.lua:27-28]; in Lightroom 15.6 [handle: docs/reports/phase6/hud-p1-check/check.txt section 3]

The HUD, Known limitations

After a reconnect: "Checking this edit with Claude...", then "no longer open in Claude" with the snapshot to apply; a click for an edit Claude no longer has is answered with how the edit ended

[handle: HudText.lua:43-44, 72-73; HudState.lua:34, 179-182; Hud.lua:17-19; engine/src/hud/events.ts:9-13; publisher.ts:119-127]; the reconnect lines in Lightroom 15.6 [handle: docs/reports/phase6/hud-p1-check/check.txt section 3]; the answer to a click is tested by vitest [handle: engine/tests/hud-unknown-session.test.ts]

The HUD

Opens by itself; takes the keyboard when it opens

[handle: PHASE5.md "Numbers", "HUD opened by itself"; docs/reports/phase5/S8.md "Numbers", "Keyboard stayed with the main window"]

The HUD

Abort and Accept timing and behaviour

[handle: PHASE5.md "Numbers", "AC-2"; vault PRD.md §6.3 "Buttons as built"]

Menu items

Titles, order (Pick A-C and Approve Pass added); 20 s wait, including for an edit being checked; reports in the HUD

[handle: Info.lua:25-34; HudClick.lua:98, 100-102, 113]; the first three items and the wait in Lightroom [handle: PHASE5.md "Numbers", "Menu items"]; Pick B, Approve Pass and the names Accept Edit / Abort Edit in Lightroom 15.6 [handle: docs/reports/phase6/hud-p1-check/check.txt section 3]

Menu items, Known limitations

No keyboard shortcuts

[handle: vault PHASES.md Phase 9 (was Phase 6) "Carried from Phase 5", hotkeys]

Settings

Labels, defaults, ranges, the invalid-value list

[handle: plugin/LrC-AVG.lrplugin/Prefs.lua:33-46, PluginInfoProvider.lua]

Settings

Saved as edited; read by the next session; the mode reached the engine

[handle: docs/reports/phase5/S8.md "Consequences"; PHASE5.md "Numbers", "Settings page reached the engine"]

Settings

Argument > intent > page > default; folders remembered

[handle: engine/src/mcp/defs-help.ts HELP_TEXT item 5; engine/src/settings/log-folders.ts]

Approve each pass

Pass 1 free, 40 s wait, AWAITING_APPROVAL, approval in chat, a pick approves its pass

[handle: defs-session.ts lr_step, lr_approve_pass; PHASE5.md "Numbers", "Approve", "Wait in vain"]

Approve each pass

Claude asked in the chat before each pass

[handle: PHASE5.md "Numbers", "Approve chat"]

Undoing an edit

None of 19 likely removal names was found on the catalog and photo objects; Photo > Remove Photos… > Remove removed only the copies; removal by Claude and Lightroom's own undo (decisions D2, D3)

[handle: docs/reports/phase4/S7.md "Verdict" item 2, 19 names tried; docs/reports/phase0/S6.md:37, stated by Jim]; LrSelection.removeFromCatalog (14.3) [handle: D:\Developer\LightRoom Classic Dev Kit\API Reference\modules\LrSelection.html:641-643] and LrUndo.undo (6.0) [handle: API Reference\modules\LrUndo.html:393], used by lr_remove_photos and lr_undo_last_step, in Lightroom [unverified]

Where files go

Log, recipe and tool-log names and folder

[handle: engine/src/log/tool-log.ts:5-7, session-log.ts:4-7]

Where files go

Which log folder: LRC_AVG_LOG_DIR, then the page, then the default for session logs and recipes; the tool log the env variable or the default only; log_path at begin

[handle: engine/src/settings/folders.ts:49-51 log(); engine/src/log/tool-log.ts:13-18 defaultLogDir; engine/src/session/begin.ts:264; engine/tests/batch1-logs-begin.test.ts]

Where files go

Bundled intents read in place, user intents override

[handle: engine/src/intents/loader.ts load(); vault PHASE6_PLAN.md decision 3]

Where files go

%TEMP%\LrC-AVG, %USERPROFILE%\.lrc-avg contents

[handle: Prefs.lua:157-158; plugin/LrC-AVG.lrplugin/Log.lua:2; Endpoint.lua:2-4; log-folders.ts:19]; previews purged at session end and start [handle: vault PRD.md NFR-6; main.ts:10]

Uninstall

Installed apps; the Delete the application data box and what it deletes; closing the engine; the program, the plugin and the Claude Desktop entry removed, other clients kept; edits stay

[handle: hud/src-tauri/windows/hooks.nsh:35-62, 133-178]; the intents in Documents staying: the hook names no Documents path [handle: hooks.nsh:148-175], not run [unverified]; GONE: YES with the box unticked and ticked, the box and the close request shown [handle: docs/reports/phase9/local-install.md "Observed" and "Numbers", runs 1 and 1b]; the Settings menu wording [unverified]; edits staying is [inference]: uninstalling writes nothing to the catalog; the plugin settings in Lightroom's preferences [inference]

Known limitations, Supported formats

Process versions 5 and 6 edited, older ones refused

[handle: engine/src/params/canonical.ts:37, 43 (SUPPORTED_PROCESS_VERSIONS "15.4", "11.0"; labels "Version 6", "Version 5"); engine/src/params/pipeline.ts checkProcessVersion]; four version 5 photos edited in Lightroom [handle: docs/reports/phase8/PHASE8.md "Observed", Part 1]

Known limitations

Missing originals refused, sync skips them, the HUD line, Abort still puts back

[handle: engine/tests/offline-original.test.ts, against the simulated plugin]; in Lightroom [handle: docs/reports/phase8/offline.md "Observed", the re-run; docs/reports/phase8/PHASE8.md Part 1, ORIGINAL_MISSING]; the menu item [stated: Jim, 2026-10-09, "a menu item under Library that says 'Find all missing photos'"], its capitals [inference]

Known limitations

Crop and straighten inside an edit (lr_crop, issue #115); mirrored photos refused; not yet checked in Lightroom; quarter-turned and rendered photos outside the planned check

[handle: engine/src/session/crop.ts; engine/tests/session-crop.test.ts, engine/tests/params-crop-settings.test.ts, against the simulated plugin]; in Lightroom [unverified] until npm run crop:check (one landscape raw)

Known limitations

Windows only; macOS deferred as future development (D4)

[stated: Jim, 2026-10-28, issue #207 body, "Decided by Jim 2026-10-28", D4: "not likely to happen, defer as future development, not going to be worked on"]

Known limitations

The .mcpb tested only with Node.js installed

[handle: docs/reports/phase11/DISTRIBUTION.md "Smoke test" (Node 24.11.1) and "Run 1"]; on a PC without Node.js [unverified]

Your first session

Blown out = two or more channels at 253 or above; one channel alone is reported, not corrected (engine 1.1.0, issue #186)

[handle: engine/src/metrics/compute.ts clip_high_tone_pct; engine/src/session/guardrail.ts advisory; engine/tests/session-step.test.ts "leaves one-channel clipping alone"]; on the six golden fixtures any-channel clipping is 0-19.3 % and two-channel 0-0.71 % [handle: tests/golden/golden.json]; on the #186 photo in Lightroom [unverified] until Jim's chat

What else you can ask

A photo seen by id without selecting it (engine 1.1.0)

[handle: engine/src/mcp/tools-context.ts renderPhoto; engine/tests/preview-by-uuid.test.ts, against the simulated plugin]; on an original in Lightroom [unverified] until npm run denoise:check (S7 showed virtual copies only, Develop.lua target)

What else you can ask

AI Denoise: LrC 15, Develop and the selection put back, a snapshot per changed photo, about 10 s a photo (engine and plugin 1.1.0)

[handle: plugin/LrC-AVG.lrplugin/Denoise.lua; engine/src/mcp/tools-denoise.ts; engine/tests/catalog-denoise.test.ts, against a fake plugin]; the calls and the time [upstream claim: Automaat PR #288]; in Lightroom [unverified] until npm run denoise:check (docs/reports/phase9/upstream-ports.md)

What else you can ask, Known limitations

Colour range, depth range and brush masks: whole-mask edits only, one colour sample, no erase, depth on photos with depth data (engine 1.1.0)

[handle: engine/src/params/mask-range.ts, mask-brush.ts; engine/tests/params-mask-kinds.test.ts (the same fields as Jim's hand-made Color Range 1 and Brush 1, docs/reports/phase8.5/mask-carry/)]; one sample and no erase [upstream claim: Automaat PRs #324, #326]; the depth range's form [upstream claim: Automaat PR #334]; in Lightroom [unverified] until npm run masks:kinds

Your first session, Settings

Max passes 8 by default, 1-16 (engine and plugin 1.2.0)

[stated: Jim, 2026-10-25, vault PHASE10_PLAN.md row 3, decision Q3]; [handle: engine/src/session/rules.ts SESSION_DEFAULTS; engine/src/settings/page.ts and plugin/LrC-AVG.lrplugin/Prefs.lua maxPasses; engine/tests/session-pass-budget.test.ts]; the Deck shows its pass dots up to 8 passes only [handle: hud/ui/glyphs.ts]; a stored 4 from a page opened before 1.2.0 moved to 8 once [handle: plugin/LrC-AVG.lrplugin/Prefs.lua migrate, called by getPrefs and PluginInfoProvider.lua; engine/tests/lua-plugin.test.ts], in Lightroom [unverified]

Known limitations

Masks: the two-part forms, sky standing for every AI kind, hand-made brush and colour masks kept

[handle: engine/src/params/mask-combine.ts VERIFIED_FORMS, listed; docs/reports/phase8.5/mask-combine.md "Numbers" (10 of 10 verified); docs/reports/phase8.5/mask-carry.md "Observed" (Add, Subtract, Intersect, Brush, Color read back beside a new radial)]; every AI kind beyond sky [stated: Jim, 2026-10-12, "Every AI kind, same modes"; unprobed]

Supported formats

The two pipelines, read from the photo's settings, not its file name; a .dng either

[handle: engine/src/params/pipeline.ts:1-46; docs/reports/phase8/S10.md "Pre-run findings" item 1]

Supported formats

White balance Kelvin on raw, relative -100 to +100 on rendered; Color and Monochrome on rendered; one profile of each per intent

[handle: engine/src/params/canonical.ts:65-70; engine/src/params/camera-profiles.lrc15.json; engine/src/intents/schema.ts; docs/reports/phase8/S10.md "Numbers"]

Supported formats

The format table: tested PC and version, full sessions per format and photo counts, the 11 intents and the chat on a JPEG

[handle: docs/reports/phase8/PHASE8.md "Observed" (Lightroom Classic 15.6) and "Numbers", the per-format table, with one session log per photo in docs/reports/phase8/P8/sessions/]; the bit depths and CMYK from the file names [handle: PHASE8.md "Numbers"]

Supported formats

HEIC: every slider's limits written and read back, Color and Monochrome, export, put back; not in the full-session test

[handle: docs/reports/phase8/S10.md "Observed", run 2, IMG_0027.HEIC rows (limits 55+55, Color and Monochrome YES, export YES, put back YES); it was not in the "fixtures" collection when PHASE8.md ran: docs/reports/phase8/P8/p8_state.json photos]

Supported formats

Raw-to-rendered sync leaves out exactly white balance and the profile and says so

[handle: PHASE8.md "Observed", Part 3; engine/src/sync/transfer.ts]

Supported formats, Known limitations

HDR photos edit, exposure limited to ±5

[handle: PHASE8.md per-format table, sessions 338637 (32-bit TIFF), 2e5d8a (HDR AVIF)]; the ±5 limit [handle: docs/reports/phase8/S10.md "Numbers"; vault PHASE8_PLAN.md row 3, R3 A]

Supported formats

Video not developed by Lightroom

[handle: https://helpx.adobe.com/lightroom-classic/help/supported-file-formats.html, read 2026-10-08 (vault PHASE8_PLAN.md finding 6)]

Known limitations

Plug-in Manager pauses; the 60 s allowance untested; Desktop's hold untested

[handle: PHASE5.md "Consequences" item 2]; both [unverified]

Known limitations

A call still working at 50 s answers pending and hands the result to the same call made again

[handle: engine/src/mcp/deadline.ts CALL_DEADLINE_MS, createDeadline; engine/tests/mcp-deadline.test.ts, against the simulated plugin]; that every client's model calls again [unverified] until npm run clients:check

Known limitations

Undo line after a disconnect; Tab, Space and Enter; a long note cut with "..."

[handle: HudText.lua:72-73; HudView.lua:76-81]; all three in Lightroom 15.6 [handle: docs/reports/phase6/hud-p1-check/check.txt section 3]

Tool profiles

65 tools, 14 under edit

[handle: node -e on engine/dist/mcp/index.js and profiles.js at 40a6800, 2026-10-29, printed TOOL_DEFS.length 65, EDIT_TOOLS 14; the probe self-check printed "tools":65 the same day]

Tool profiles

full by default, edit the 14 named tools, LRC_AVG_TOOLS, the setup's --tools kept on a rerun, the .mcpb setting

[handle: engine/src/mcp/profiles.ts, engine/src/mcp/server.ts createServer, engine/src/setup/desktop-config.ts keepProfile, engine/src/devtools/mcpb-manifest.ts; engine/tests/tool-profiles.test.ts; the setup-cli.js path: hud/src-tauri/windows/hooks.nsh:26]; in Claude Desktop [unverified]

LrC-AVG and Automaat/lightroom-mcp

68 upstream tools at 1040453, 54 with an equivalent; plug-in ids and ports

[handle: docs/parity/upstream-tools-1040453.txt; docs/PARITY.md "Count" and "Using both servers", checked by engine/tests/parity-map.test.ts]; both plug-ins installed together [unverified]

What else you can ask

Smart collections refused by lr_add_to_collection; the 1.5.0 tools

[handle: engine/src/mcp/defs-files.ts:98; engine/src/mcp/defs-organize.ts, defs-develop.ts, defs-presets.ts]; in Lightroom [unverified] until docs/reports/phase11/PARITY-BATCH1-CHECKS.md is run

What you need

A vision-capable model is required

[inference]: the AI judges each pass by looking at the render the engine returns (lr_step, engine/src/mcp/defs-session.ts)

The HUD

The client's name and the model it names, "name · model" on the HUD's connection line and under the Deck's step line; "the AI" without a name

[handle: plugin/LrC-AVG.lrplugin/HudView.lua connectionLine, put; HudText.lua HudText.ai; hud/ui/view.ts fillAi, aiLine; hud/ui/render.ts bar, left; hud/ui/view.test.ts, hud/ui/render.test.ts, engine/tests/lua-plugin.test.ts]; in Lightroom and the Deck [unverified] until npm run clients:check

License

MIT — see LICENSE. Copyright (c) 2026 Jim Beebe.

NOTICE — third-party code

This project vendors and builds on Automaat/lightroom-mcp (npm @mskalski/lightroom-mcp):

  • Upstream: https://github.com/Automaat/lightroom-mcp

  • Vendored commit: a160e7aa250b3264694d88e51418f7f512f417de (2026-09-22)

  • License: MIT, Copyright (c) 2026 Marcin Skalski. The full license text ships unmodified at vendor/automaat/LICENSE (identical copy at vendor/automaat/server/LICENSE).

  • Vendored as a snapshot, not a GitHub fork: the upstream .git was removed and the files are otherwise unmodified; the two upstream Python files under vendor/automaat/skills/ are excluded from this repository's git (project rule: no Python).

  • Code ported from Automaat into engine/ or plugin/ will keep Automaat's copyright and permission notice (a THIRD_PARTY_NOTICES.md ships with each packaged half), as the MIT license requires.

Details and file-level provenance: docs/AUTOMAAT_SURVEY.md §1–2.

Adobe, Lightroom and Camera Raw are trademarks of Adobe Inc. This project is not affiliated with or endorsed by Adobe or Anthropic.

Related MCP Connectors

Related MCP Servers