e x i f u s e — A Photo Management REPL

Exifuse is a small command line tool for Windows, Linux, macOS, and WSL, that lets you breezily browse large numbers of photos and their EXIF data, clean up and re-structure your library, and create a your own extensions ad hoc.

Sounds too good to be true? That’s because it is—there are some major caveats:

  • The setup will be involved.

  • You will have to wrestle with the command line—no GUI in sight.

  • To unlock its full potential, you might have to learn some new concepts and syntax.

Is it worth learning, though? Consider this example use case: you have a folder myphotos with countless subfolders and tens of thousands of arbirarily named files like IMG_0045.jpg all over the place. Now, run the following command:

$ exifuse myphotos --hardlinker mynewview

This creates a new folder mynewview. It contains hardlinks to all original photos, organized in a new folder structure by year/month, with new photo file names starting with a nicely sortable EXIF date. Because these are not copies, but hardlinks, essentially no disk space is used. Yet these hardlinks act like regular files, and you can browse and preview them in file explorers, back them up, or generally do what you want to do with the—now tamed—files.

One more example: after starting Exifuse in interactive mode, you will find yourself in a so-called REPL, for Read-Eval-Print-Loop—an interactive way to invoke commands and view their results. With a photo test.jpg in your current folder, you can type:

> ex = exify("test.jpg")
> ex.T[press <Tab> twice]

—and tab completion will show you all EXIF tags starting with “T”. Evaluating the full name of a tag will show its value.

But these were just two examples. Exifuse provides several such “ease of life” usage primitives that you can flexibly combine to tackle your specific use cases.

A brief technical note: Exifuse relies heavily on outstanding open source software like Exiftool and Julia. Exifuse, in essence, is a Julia-REPL-pimped Exiftool. A grateful shout-out to them!

How to Get Going?

It’s probably not a bad idea to briefly read about the Motivation. It tries to explain the rationale of some choices made here.

Next up: check out the Setup chapter; it walks you through the required installs. Then you will be able to go though the introductory tutorials—how to navigate your library and how to inspect your photos. These mini-tutorials should also gently introduce you to the Julia language, should you be unfamiliar with it.

The main manual will then outline how Exifuse ticks, how typical routines like finding duplicates or creating custom library views work, and how you can extend and customize it to your liking.

A few appendices will deal with topics like the so-called hardlinks. (They are not used as much as they should, possibly because for a long time Windows did not provide them. Exifuse quite likes them; I hope you will too.)

Brace yourself.. yet still: Enjoy!