EX

ExifCleaner

Cross-platform tool to remove metadata from images

Photo Management ★ 2.7k stars Easy setup MIT

ExifCleaner is a free, open-source desktop application for removing EXIF and other metadata from photos and other files via drag and drop. It helps protect privacy by stripping location and device data before sharing images.

Key features

  • Drag-and-drop metadata removal
  • Batch processing
  • Cross-platform desktop app
  • Privacy protection

Pros & cons

Strengths

  • Simple to use
  • Works offline

Trade-offs

  • Desktop tool, not a server
  • Not a full gallery

ExifCleaner replaces

Last reviewed Sep 13, 2026 · 762 words

The one way to hurt yourself with ExifCleaner is to point it at your photo library. It does exactly what it says, removing every scrap of EXIF, IPTC, and XMP data from a file, and that data is precisely what Immich and PhotoPrism use to know when and where a photo was taken. Run it on the originals and your timeline collapses into "date modified". Run it on the copy you are about to send to a stranger, and it is doing the job it was built for.

It is ExifTool with a drag-and-drop window

ExifCleaner is an Electron desktop app for Windows, macOS, and Linux. The actual metadata work is done by a bundled copy of ExifTool, the Perl program that has been the reference tool for reading and writing image metadata for two decades; that is why the catalogue lists Perl as the language despite the app shell being JavaScript. You drop files onto the window, it shows what tags each one carried, and the cleaned file overwrites the original in place. Batch drops work, and because ExifTool understands hundreds of formats, so does ExifCleaner: JPEG, PNG, HEIC, TIFF, most camera raws, MP4 and MOV video, and PDF.

Releases have been infrequent for some years. That matters less than it would for a server, because the app has no network surface and the hard part is ExifTool, which is actively maintained. It works today on current desktops, and there is nothing to keep patched.

Where it sits in a self-hosted photo workflow

Not on the server. It is a "self-hoster's" tool only in the sense that people who run their own photo library also care about what leaves it. The pattern I use: the library on Immich keeps every tag, because the tags are the metadata I want to search by. When a photo goes somewhere I do not control, I export a copy, drop it on ExifCleaner, and send the clean copy.

Which destinations need it is worth thinking through. Mastodon strips metadata on upload, and Pixelfed does by default. A Matrix room, an email attachment, a Nextcloud share link, a marketplace listing, a forum, and a rental application do not. Phone screenshots carry no location but the original camera photo behind them does. Immich's share links have a toggle to hide metadata in the viewer; if downloads are enabled, assume the original file still carries the GPS tag. The threat-modelling post is the longer version of this argument, but the short one is that a home address embedded in a photo of your dog is a strange thing to hand a stranger for free.

The CLI does the same job for scripts

Once you have watched ExifCleaner do its thing a few times, you will want the same operation on a server or in a script, and that is just ExifTool:

exiftool -all= -tagsfromfile @ -orientation -overwrite_original photo.jpg

The -tagsfromfile @ -orientation part is the detail ExifCleaner handles for you: a phone photo stores rotation as a tag rather than rotating pixels, so stripping everything can leave the image on its side. Copying the orientation tag back keeps it upright while dropping GPS, camera serial, lens, and software tags. Add -P to keep the file's modification time, and -r on a directory to recurse. On a photo export folder that is a one-line cron job.

What it is not

It is not a gallery, not a sync target, and not a way to anonymise a whole library, and the catalogue is right to say so. It also does not touch the content of the image: faces, street signs, and a reflection in a window are not metadata. And it removes rather than edits; if you want to keep the capture date but drop the location, use ExifTool with -gps:all= instead, which is a five-second change to the command above.

What I'd do

Install ExifCleaner on the laptop, not the server, and use it for the handful of photos a month that go to people or sites you do not trust with your location history. Leave the library untouched so Immich can do its job. For anything repeatable, an export folder plus the ExifTool one-liner in cron covers it, and the photos category page has the library side of the setup. This is a small tool that does one thing correctly, and the correct number of times to run it on your originals is zero.

Similar photo management apps