Developing a RAW file is a pipeline an agent can write: decode with LibRaw, apply exposure, tone curve and colour as stored settings, keep a SQLite catalog of ratings and keywords, export JPEGs. Free projects such as darktable, RapidRAW and RAWmakase show the shape, and a basic personal editor is a weekend. What it won't match is Adobe's camera and lens profiles, the AI masking and denoise, and a 1 TB library that follows you to a phone. The real test is trust: a rendering bug on a shot you can't retake costs more than $12 a month.
Before you buildTry Lightroom's free mobile app first, and darktable or RawTherapee if all you need is to develop RAW files: paying $11.99 mostly buys the 1 TB of synced cloud storage and the AI tools.
Build me a local RAW photo library and editor to replace Adobe Lightroom. Requirements: - Python 3.11 with FastAPI and a single-page front end in vanilla JS (no build step). `python app.py` serves http://127.0.0.1:4760 and listens on that address only. Single user. No accounts, no telemetry, local-first; the app makes no outbound network calls. - Library: PHOTOS_DIR in .env is scanned recursively for RAW files (.cr2, .cr3, .nef, .arw, .raf, .orf, .rw2, .dng) and JPEGs. Originals are never modified, moved or renamed. A rescan adds new files and flags missing ones instead of deleting them. - Storage: sqlite3 in ./data/catalog.db: path, capture time, camera, lens, ISO, rating 0-5, flag (pick or reject), colour label, keywords and the edit settings as JSON. Thumbnails and 2048 px previews are cached in ./data/cache/. - Edits: decode with `rawpy` (camera white balance, 16-bit) and apply the settings in NumPy: exposure, contrast, highlights, shadows, whites, blacks, temperature and tint, vibrance, saturation, a point tone curve, crop and straighten, and sharpening. Settings are stored per photo, never baked in. - Develop view: the preview, a histogram and sliders. Each change re-renders the 2048 px preview in under 500 ms on this machine. Add undo, a before/after toggle, copy and paste of settings between photos, and named presets. - Library view: a thumbnail grid with star rating, pick/reject and keyword shortcuts, filters, and search over keywords, camera and lens. - Export: full-resolution JPEG or 16-bit TIFF with the edits applied, sRGB, EXIF copied from the original with `exiftool`, an optional long-edge size and a filename template, in batch over the selection. - Import a Lightroom Classic catalog (.lrcat is SQLite): read folders, ratings, flags, colour labels and keywords only, print what it found and ask before writing. Develop settings are not converted. - Out of scope: AI masks and denoise, lens profile corrections, cloud sync, phone apps, tethering, print, panorama and HDR merge, and any attempt to match Adobe's colour rendering. - README: setup, which cameras LibRaw decodes, the size of the cache, the measured preview time, and a plain note that colours will differ from Lightroom's.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Adobe Lightroom.
Add import of Lightroom edits to the photo editor in this folder. Requirements: - For each photo, look for a sidecar `.xmp` next to the file and read the `crs:` settings: Exposure2012, Contrast2012, Highlights2012, Shadows2012, Whites2012, Blacks2012, Temperature, Tint, Vibrance, Saturation and the tone curve points. - Map each key to our own setting and scale; print a table of mapped, approximated and ignored keys per photo before writing anything. - Imported settings are marked "from Lightroom" and never overwrite settings already edited here unless I tick a box. - Say in the UI and the README that the result will not look identical to Lightroom's. - Update the README.
Add a culling mode to the photo editor in this folder. Requirements: - A full-screen view per photo with the keys P (pick), X (reject), 1-5 (rating) and the arrow keys; flagging a photo advances to the next unflagged one. - Compute a blur score per photo (variance of the Laplacian on the preview) at import and show it as a badge; a filter lists photos below a threshold I set. - Z jumps to 100% zoom on the sharpest region of the frame. - Compare mode: two photos side by side with synchronised zoom and pan. - Rejects are only flagged in the catalog; a button writes their paths to a text file. Never move or delete an original. - Update the README.
Add local adjustment masks to the photo editor in this folder. Requirements: - Mask types: linear gradient, radial gradient and a brush with size, feather and flow, drawn on the 2048 px preview and stored as vector data or a small alpha PNG in ./data/masks/. - Each mask has its own exposure, contrast, highlights, shadows, temperature and saturation sliders, applied in NumPy only where the mask is non-zero. - Masks stack in order, can be inverted, and each has a visibility toggle. - Export renders the masks at full resolution from the same stored data. - A test proves a mask at 0% opacity gives a pixel-identical result to no mask. - Update the README.
Add a watch-folder import to the photo editor in this folder. Requirements: - Watch PHOTOS_DIR with `watchdog`; a new file appears in the library within 10 seconds, but only after its size has stayed the same for 3 seconds. - Rules in ./rules.json: when the camera model matches X, apply preset Y and keyword Z at import. - A log page lists the last 200 imports and the rule that fired for each. - Rules only write settings and keywords to the catalog; the original file is never touched. - Update the README.
Photographers pay for one catalog that follows them from camera to laptop to phone, with Adobe's colour science and AI masking built in and a cloud copy of the originals. Years of edits sit in Adobe's own format, so leaving means exporting finished files and starting a new catalog.
Estimate · Runs on your own computer, so the only running cost is storage and backups for the originals; the upper figure is an allowance for a cloud backup of your choice. The build session is token usage on your agent plan.
Checked 2026-10-19 against Adobe Lightroom's docs: 1, 2, 3, 4, 5, 6, 7, 8
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free (mobile app) | $0 | $0 | Free Lightroom app for capturing, editing and sharing photos on iOS and Android. |
| Lightroom | $11.99 | $9.99 | Lightroom on mobile, desktop and web plus Lightroom Classic, 1 TB of cloud storage and 250 generative credits a month; no Photoshop. |
| Photography | $19.99 | — | Lightroom, Lightroom Classic and Photoshop, 1 TB of cloud storage and 1,000 generative credits a month. |
| Creative Cloud Pro | $69.99 | — | 20+ apps including Lightroom and Photoshop, 100 GB of storage, 4,000 generative credits a month and unlimited standard AI image and vector features. |
| Lightroom for teams | $37.99 | — | Lightroom with 1 TB of storage, Adobe Express Premium and business features. |
The Lightroom mobile app is free on iOS and Android; the premium tools, the desktop apps and the cloud storage need a plan, and Adobe offers a free trial.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Adobe's AI tools: subject and sky masks, generative remove and the monthly credits behind them, Camera and lens profiles tuned for each model, so colours look right out of the box.
About $11.99 a month on the Lightroom (1 TB) plan, $143.88 a year (checked 2026-10-19).
Adobe's AI tools: subject and sky masks, generative remove and the monthly credits behind them; Camera and lens profiles tuned for each model, so colours look right out of the box; 1 TB of synced cloud storage and the phone and web apps over the same library; Photoshop hand-off on the Photography plan; Years of edits in Lightroom's catalog, which won't convert one-to-one. If any of those matter to you, keep paying.
Yes: darktable (open source), RawTherapee (open source), RapidRAW (open source).