Quit Lightroom to release file locks
Close Lightroom Classic, or open Plug-in Manager and Disable KeywordLens. This frees any locked files so the overwrite is clean.
Upgrading is an in-place file overwrite. You keep the same keywordlens/ folder, so Lightroom keeps the plug-in registered and your catalog, settings, and credentials carry over untouched.
Because the folder name stays keywordlens/, you do not remove and re-add the plug-in. Lightroom reloads the new code in place.
KeywordLens also checks for this version on plug-in load (when enabled in Advanced settings) and tells you when a newer build is available. Network or website outages stay silent.
Close Lightroom Classic, or open Plug-in Manager and Disable KeywordLens. This frees any locked files so the overwrite is clean.
Grab the latest keywordlens-v*.zip from the downloads page. You do not need to delete your existing install first.
Use the command-line extraction below so existing files are overwritten and your data files are left in place. Extract into the same parent directory that already contains keywordlens/.
From inside keywordlens/, run setup again so the backend runtime (server/venv) and pack-builder modules match the new code.
Reopen Lightroom (or Plug-in Manager -> Enable / Reload Plug-in). A small "KeywordLens backend ready" bezel confirms the new backend restarted.
The -o / -Force flags overwrite existing files. Anything not in the ZIP — most importantly server/.env — is left untouched. Replace vX.Y.Z and the destination path with your own.
unzip -o ~/Downloads/keywordlens-vX.Y.Z.zip -d ~/Tools/
Expand-Archive -Force -Path keywordlens-vX.Y.Z.zip -DestinationPath C:\Tools\
From inside keywordlens/, re-run setup: macOS bash setup/setup.sh, Windows powershell -ExecutionPolicy Bypass -File .\setup\setup.ps1.
Everything that lives outside the install folder, plus secrets excluded from the release archive, carry over automatically:
~/.keywordlens/keywordlens.db — catalog, analysis state, and the FTS5 search index.~/.keywordlens/server.log — backend log history.~/.keywordlens/offline-packs/ — installed offline location packs (when configured there).server/.env — Azure service-principal credentials, excluded from the ZIP at build time so an in-place extract cannot wipe them.macOS Finder Replace wipes the folder. Do not use Archive Utility or Finder's Replace button when extracting on top of an existing keywordlens/. Replace deletes the destination first, taking server/.env with it. Use the unzip -o command above, or click Keep Both and copy server/.env across by hand.
Locale-string changes need a full restart. When release notes mention translated-string changes, fully quit and reopen Lightroom. Lightroom Classic loads TranslatedStrings_*.txt once per process, so Reload Plug-in is not enough.
If the plug-in loads but the backend never becomes ready, run this repair flow from the install root (keywordlens/).
bash setup/setup.sh, Windows powershell -ExecutionPolicy Bypass -File .\setup\setup.ps1.server/src/main.py and tools/pack-builder/routes_pack_builder.py exist, plus a Python runtime (server/venv/ or a system Python on PATH).New to KeywordLens, or setting it up on a fresh machine? Start with the install guide. For day-to-day usage and troubleshooting, see the manual.