Free and open source · Mac, Windows, Linux

From memory card to finished photo.One app, on your own computer.

Import, cull, search and edit in one window. The library stays a plain folder on your own disk, and the finished photos mirror to your own Immich server.

  • Cull before anything is copied
  • Search by description
  • Syncs to Immich
  • No account, no cloud
The Rollfilm library: photos grouped by month, with a filter bar for album, rating, colour label, tag, camera and date.
The path

Five steps, one window

Nothing is exported halfway to be finished somewhere else.

01 Import

Nothing is copied until you say so

Point at a card, a camera or a folder. The review opens while the copy is still running.

  • Rate and compare before anything lands in the library
  • Near-duplicates flagged before a single file is copied
  • A second library folds in with its stars, tags, albums and edits intact
The import review step: staged photos grouped by day, each with stars and a colour label, and an Add to library button at the bottom.

02 Cull

Keep the good ones, lose the rest

Stars, colour labels and tags from the keyboard, then filter down to what you meant.

  • Album, rating, colour, tag, camera, lens, focal range and date, on a bar you can pin open
  • Selects gathers keepers from anywhere, ready to export as one ZIP
  • Deletions go to the Trash and come back exactly as they were
The filter bar open above the library grid, with album, rating, colour, tag, camera, lens, focal length and date controls.

03 Find

Describe the photo. Rollfilm finds it.

Type “sunset at the beach”. A local model does the looking, so nothing leaves your machine.

  • Search by a similar photo, not only by words
  • A map of everywhere you have shot, and smart albums that build themselves
  • Statistics on the cameras, lenses and focal lengths you actually use
Semantic search: typing a description returns matching photos.

04 Edit

An editor for RAW and JPEG, where the photos already are Experimental

Non-destructive throughout. What the preview shows is what gets exported, and the original is never written to.

  • Tone, curves over a live histogram, colour mixer, grading wheels, film looks
  • Masks: radial, linear, brush, luminance and colour, or let it select the sky, water, greenery, people, buildings and ground
  • Compare against the original, split by a line you drag or side by side
The editor: the photo on the left and the panel list on the right, from transform and film simulation down through tone, curves, colour, details, effects, masks and presets.

05 · Keep

Yours, and still yours in ten years

Plain files in a folder you chose, a database that travels with them, and a backup you can open without this app.

Self-contained

Database and thumbnails live inside the library folder, so the whole thing moves when the folder moves.

One zip, everything in it

Backup writes every photo plus all ratings, tags, albums and edits into a single file. Restore is one step.

Read-only sources

Point at a NAS or an old archive drive and browse it in place. Nothing is copied and nothing is modified.

The last step

Ends where Immich begins

Rollfilm is the desk you work at, Immich is the shelf everyone else looks at. Cull and edit locally, and the finished photos appear on your server. The local library stays the original, always.

  • Three modes: ask on import, selective, or mirror everything
  • Runs in the background, uploading what is missing, mirroring albums and passing deletions on
  • Matched by checksum, so the server does not fill up with duplicates
  • JPEGs only: your negatives stay at home
Rollfilm Immich Your machine Your server
Data sheet

At a glance

Key facts about Rollfilm
What it isAn end-to-end desktop photo manager: import, cull, search, edit, sync
PlatformsmacOS (Apple Silicon, .dmg), Windows 10 or later (.exe), Linux (.AppImage)
PriceFree. No account, no subscription, no tracking
LicenceOpen source, MIT
Where photos liveA library folder you choose, on your computer or a NAS. Self-contained, so it moves with the folder
SearchNatural-language and similar-photo search, computed locally with a CLIP model
Safety netTrash with restore, backup to a single zip, one-click library repair
File typesJPEG and RAW, with RAW+JPEG pairs shown as one photo
EditingNon-destructive, on RAW and JPEG alike: tone, curves over the histogram, colour mixer, grading wheels, masks including AI subject selection, film simulations
LookThree light and dark skin pairs, Graphite, Slate and Ink, with a Light, Dark or Auto switch
Server neededNone. No Docker, no self-hosting setup
Network useA one-off search-model download on first start, plus your own Immich server if you connect one
Built withElectron, React and TypeScript on a bundled Python and FastAPI backend with SQLite
Download

Take it home

A normal desktop app. Pick your system.

Pick your system above. What it needs to open opens here, with the download underneath it. Or .

macOS warns about every download. When you open Rollfilm, macOS puts up a warning and refuses to start it. Nothing is wrong with the app. Your browser attaches an invisible marker to everything it downloads, and macOS blocks marked apps that were not signed with a paid Apple developer account. Rollfilm is a free project without one.

Taking the marker off is the whole fix. The order matters, because the app has to be in Applications before the command can reach it:

  1. Download the .dmg with the button below.
  2. Open the .dmg and drag Rollfilm into your Applications folder, replacing the copy already there if you are updating.
  3. Paste this into Terminal and press return:
    xattr -dr com.apple.quarantine "/Applications/Rollfilm.app"
  4. Now open Rollfilm.

Every update needs this again. The marker is attached to the download, not to the app, so each new .dmg arrives with a fresh one and step 3 has to be repeated. There is no click-only way round it either: because Rollfilm carries no signature at all, rather than one from a developer macOS has not heard of, it is reported as damaged and Privacy & Security offers no Open Anyway button. Right-clicking the app and choosing Open used to work instead, but Apple removed that in macOS Sequoia.

Download for macOS Apple Silicon · .dmg

Windows warns about the installer. Rollfilm is not signed with a paid certificate, so SmartScreen calls the publisher unknown and stops it. Nothing is wrong with the file, and it takes two clicks to get past.

  1. Download the .exe with the button below, then open it.
  2. A blue window appears: Windows protected your PC. Click More info.
  3. A Run anyway button appears under the text. Click it.
  4. The installer runs as normal, and Rollfilm opens when it is done.

Only the installer is stopped, not Rollfilm itself, so you go through this once per install. SmartScreen judges each file on its own, so an update is a new file and may well ask again.

Download for Windows .exe installer

Linux does not warn at all. Nothing to approve and nothing to unblock. There is only one thing to know: an AppImage is a single file that carries the whole app, and Linux will not run a file you downloaded until you mark it as a program.

  1. Download the .AppImage with the button below.
  2. Mark it as a program. In your file manager: right-click it, open Properties, and under Permissions tick Allow executing file as program. Or do the same in Terminal:
    chmod +x ~/Downloads/Rollfilm-*.AppImage
  3. Double-click it to start Rollfilm, or run ~/Downloads/Rollfilm-*.AppImage in Terminal.

Every update needs step 2 again, because the file you download is a new one and arrives without the permission. Nothing is installed system-wide either: the AppImage runs from wherever you put it, and deleting the file removes Rollfilm. If it quits with an error mentioning libfuse.so.2, your distribution ships FUSE 3 while AppImages expect FUSE 2. On Debian and Ubuntu sudo apt install libfuse2 fixes it; on anything else, start the file once with --appimage-extract-and-run.

Download for Linux .AppImage

Latest release: 0.1.45 · Older versions and the source are on GitHub. A card showing an older number means that platform's installer for the latest release is not built yet.

Questions

Asked often enough

What is Rollfilm?

Rollfilm is a free, open-source desktop app for macOS, Windows and Linux that takes a photo the whole way: import from a card, cull, search, edit RAW and JPEG non-destructively, and optionally sync the results to your own Immich server. The library lives on your own computer or NAS, there is no account and nothing is uploaded to a cloud service.

Is Rollfilm free?

Yes. Rollfilm is free of charge and the source code is published under the MIT license. There is no paid tier, no subscription and no account. Donations are welcome but optional.

Does Rollfilm need a server, Docker or an internet connection?

No. Rollfilm is a normal desktop application you install like any other program. There is no server and no Docker. The only time it needs the internet is the one-off download of the search model on first start, and afterwards for your own Immich server if you choose to connect one.

Where are my photos stored?

In a library folder that you pick on first start. The database, thumbnails and import staging live in a hidden .photomanager subfolder inside it, so the whole library is self-contained and moves with the folder. You can point the app at a different folder later to switch libraries.

How does searching photos by description work?

Rollfilm runs a local CLIP model on your machine and stores the resulting embeddings in its own database. Typing something like “sunset at the beach” or “dog in the snow” matches photos by what they look like, without any tagging first. No image and no search term ever leaves your computer.

Does Rollfilm work with Immich?

Yes. Enter your Immich host and API key in the settings and choose a sync mode: ask on import, selective sync for the photos and albums you flag, or full sync for everything. A background loop uploads what is missing, mirrors albums, matches assets by checksum so Immich does not fill up with duplicates, and propagates deletions. Only JPEGs are uploaded, RAW files stay in your local library, and automatic sync can be paused on a metered connection.

Can Rollfilm read RAW files?

Yes. Rollfilm reads RAW files, keeps them paired with their JPEG siblings as a single tile, and gives every RAW a sensible starting correction so it does not look flat on screen. You can switch that off and see the RAW exactly as the camera recorded it.

Is Rollfilm an alternative to Lightroom or Apple Photos?

It covers the same path from memory card to a searchable, edited library, but it is a personal project rather than a Lightroom replacement. The library, search, organizing and Immich sync are solid; the develop module is experimental. Compared with Apple Photos or Google Photos, Rollfilm has no cloud, no account, works on all three desktop platforms and keeps your files in a plain folder you control.

Can I merge a second Rollfilm library into my main one?

Yes. If you took a laptop and a small library travelling and culled the trip there, Import a library folds that folder into your main one and carries the work across: stars, colour labels, tags and every edit come with each photo, albums and tags merge by name rather than duplicating, and RAW+JPEG pairs stay paired. A photo the main library already has keeps its file and only takes over the newer ratings and edits. The other drive is only ever read.

Is a deleted photo really gone?

No. Deleting an imported photo moves it to the Trash with its stars, tags, albums and edits intact, and Restore brings it back exactly as it was. Only Delete forever on the Trash page removes the original file from your library folder. Photos from an external source are never deleted at all, because their files are not yours to remove. There is also a backup that writes every photo plus all ratings, tags, albums and edits into a single zip you can restore from.

Can Rollfilm browse photos on a NAS without importing them?

Yes. An external source points at a folder, for example on a NAS or an old archive drive, and indexes it read-only. The files stay exactly where they are and are never modified, and each source is re-scanned at startup or on demand.

Why does macOS refuse to open Rollfilm?

The app is not code-signed with a paid Apple certificate — the membership costs 99 € a year and Rollfilm is an unpaid hobby project — so Gatekeeper blocks the first launch. What actually triggers it is an attribute called com.apple.quarantine that your browser attaches to anything it downloads. Because the app carries no signature at all, rather than one from a developer macOS has not heard of, it is reported as damaged and Privacy & Security offers no Open Anyway button, so the attribute itself has to go. Do not take the dialog's offer to move it to the Trash: that button is the only one it shows, but nothing is wrong with the file, so choose Cancel. Move Rollfilm into your Applications folder and run xattr -dr com.apple.quarantine "/Applications/Rollfilm.app" in Terminal. The marker belongs to the download rather than to the app, so every update arrives with a fresh one and that line has to be run again after each one. (Right-click → Open used to work instead; Apple removed that in macOS Sequoia.) On Windows, SmartScreen shows a similar warning: choose More info, then Run anyway.

Can I help, or report something broken?

Please do. Bugs and ideas belong in the issue tracker, and pull requests are welcome. It is a personal project, so replies can take a while.

Why it exists

Built by one person, for a real need

I wanted a simple way to keep my own photos in order. Every tool I tried was either too complicated or could only do part of the job, so I built the thing I was missing.

It was never meant to compete with the big photo programs. Rollfilm should stay small and fast: the things I actually use, in one window, on my own machine.

And to be open about how it is made: this is a full vibe-coded project. The whole app was built with AI as the pair programmer, which is exactly why it grew as fast as it did.

Pasqual Kreher

The library is a folder you can open in Finder. Nothing about that changes if this project ever stops.
The point of the whole thing