Tim VanBenschoten

Code · Mac app and command-line tool

flatlink

DxO PhotoLab only shows the photos at the top of the folder you pick. flatlink builds one flat folder of links to every photo in the tree, so PhotoLab shows them all at once.

On the left, the folder tree Photos: 2026/2026-05-28/IMG_0001.CR3, 2026/2026-05-29/IMG_0042.CR3 and X100VI/DSCF1234.RAF. On the right, the flat folder PhotoLab-All, holding the links 2026__2026-05-28__IMG_0001.CR3, 2026__2026-05-29__IMG_0042.CR3 and X100VI__DSCF1234.RAF, each pointing at its original.

Photos filed in subfolders, by year, by day or by camera, never show up together in PhotoLab's folder browser. flatlink walks the whole tree and makes a link to every image in one flat folder. Open that folder in PhotoLab and it's all there.

Your photos are never moved, copied or changed. Each link is named after its path, so 2026/2026-05-28/IMG_0001.CR3 becomes 2026__2026-05-28__IMG_0001.CR3 and the links sort by folder. Running it again only adds new photos.

  • --dry-run shows what would change without changing anything.
  • --skip-paired-jpegs shows a RAW+JPEG shot once, as its RAW.
  • --prune removes links whose originals are gone, but refuses when the source looks like an unplugged drive.
  • Covers JPEG, TIFF, HEIC, PNG and 24 RAW formats, or just the extensions you pick.
  • Repoints links after photos move or a drive is renamed, keeping the names so edits stay attached.
  • Flatlink.app does the same from a window, and can watch folders and update the links after each import.
Runs onmacOS 14 or later · Universal
Version1.1.4 · Sept 29, 2026
PriceFree
LicenseMIT
Comes asCommand · Mac app
Link folderAPFS or Mac OS Extended

Install brew install tsvb/tap/flatlink brew install --cask tsvb/tap/flatlink-app

The first installs the command, the second the app. Or download Flatlink.app from the latest release. Both are signed and notarized and need no Python or other runtime.

PhotoLab follows the links and saves its .dop edits next to the link, not next to the original. That makes the link folder the home of your edits, so keep it and run flatlink into it again rather than rebuilding it. flatlink only ever adds or removes links, never a .dop.

The original, Photos/2026/2026-05-28/IMG_0001.CR3, is never touched. The link folder PhotoLab-All holds the link 2026__2026-05-28__IMG_0001.CR3 and, beside it, 2026__2026-05-28__IMG_0001.CR3.dop: your edits, a real file saved there by PhotoLab.

flatlink isn't affiliated with or endorsed by DxO. DxO and PhotoLab are trademarks of DxO Labs.

Does flatlink move, copy or change my photos?
No. It only creates or removes links inside the link folder. The originals are never touched.
Where does PhotoLab save my edits?
In a .dop file next to the link, in the link folder. Keep that folder and run flatlink into it again instead of rebuilding it.
Does it work on Windows or Linux?
No. It's macOS only, version 14 or later, on Apple silicon and Intel.
How do I undo it?
Delete only the links, for example find ~/Pictures/PhotoLab-All -maxdepth 1 -type l -delete. That leaves your saved edits in place.

← All projects