LuaLS type stubs for the Lightroom Classic SDK
Provides ---@meta annotations for all 59 public modules of the Adobe Lightroom Classic SDK, enabling type checking and autocompletion in editors powered by LuaLS (lua-language-server).
Features
- Full coverage of Lightroom Classic SDK (LrSdkVersion 6.0 – 10.0)
- 59 modules:
LrApplication,LrCatalog,LrPhoto,LrExportSession, and more - Lua 5.1 compatible (Adobe's embedded Lua runtime)
- Works with any LuaLS-powered editor (VS Code, Cursor, Windsurf, etc.)
Installation
Option A — VS Code Extension (recommended)
Search for "lightroom-sdk-types" in the Extensions panel and install.
LuaLS will automatically recognize the stubs — no configuration needed.
Option B — Manual (.luarc.json)
- Clone or download this repository
- Add to your plugin's
.luarc.json:
{
"workspace.library": [
"/path/to/lightroom-sdk-types/types"
]
}
Usage
Once installed, LuaLS provides full type information for all Lightroom SDK APIs:
local LrApplication = import 'LrApplication'
local LrPhoto = import 'LrPhoto'
-- Autocompletion and type checking works for all SDK calls
local catalog = LrApplication.activeCatalog()
local photos = catalog:getAllPhotos()
for _, photo in ipairs(photos) do
local path = photo:getRawMetadata('path') -- string
end
Coverage
| Module | Description |
|---|---|
LrApplication |
Application-level functions |
LrCatalog |
Catalog access and write operations |
LrPhoto |
Photo metadata and operations |
LrExportSession |
Export session management |
LrExportRendition |
Per-photo rendition during export |
LrFilterContext |
Export filter provider context |
LrDialogs |
Modal dialogs |
LrView |
UI view construction |
LrPathUtils |
File path utilities |
LrTasks |
Async task management |
LrLogger |
Logging utilities |
| ... | 59 modules total |
Full list: types/
For AI-assisted development
The types/ stubs are compact (10–20× smaller than the original HTML docs) and can be passed directly to AI coding agents as API context:
# Pass only the stubs you need — saves context budget
types/LrPhoto.lua (~50 lines) vs LrPhoto.html (~800 lines)
types/LrExportSession.lua (~60 lines) vs LrExportSession.html (~1000 lines)
SDK Version
Covers Lightroom Classic SDK 6.0 – 10.0.
Generated from the official Adobe Lightroom Classic SDK HTML documentation.
License
MIT
Disclaimer
This project is an independent, community-maintained tool and is not affiliated with or endorsed by Adobe Inc.
Type annotations are derived from the public Lightroom Classic SDK API signatures. The stubs contain no verbatim text from Adobe's documentation — only function names, parameter names, and types, which are functional elements of the public API.
Adobe, Lightroom, and related marks are trademarks of Adobe Inc.