Optimise your images without any loss in quality
Requires macOS Monterey 12.0 or later
Last updated: 2026-07-08
Brutify reduces the file size of images with no loss in quality.
Drag in a folder—app assets, website images, game textures, email attachments—and Brutify gets on with the job, handing back perfectly optimised files. Don’t just optimise it, Brutify it!
-
Drag & DropDrop images or folders to optimise instantly
-
Parallel EnginesRuns all engines in parallel, keeps the smallest
-
Batch ProcessingHandle hundreds of images at once with aplomb
-
Three ModesFast, Slow, or Lossy and tune engines per mode
-
Format SupportJPEG, PNG, WebP, and entire folders
-
Undo & VersioningRevert any file back to its original with one click
-
Metadata SafePreserves EXIF, ICC, and XMP plus original file dates
-
Finder & Quick LookOptimise via right-click, Quick Look check in the app
-
Bring Your OwnDrop in extra engines and Brutify uses them
Supported Formats
- JPEG (.jpg, .jpeg)
- PNG (.png, .apng)
- WebP (.webp)
- GIF (.gif)—animation-aware, requires adding the gifsicle engine
- Folders—recursive directory processing
Optimisation Engines
Brutify runs every bundled engine that applies to a file in parallel, then keeps the smallest result.
Bundled engines—permissive licences, universal Apple Silicon and Intel binaries:
- PNG (lossless): ect, oxipng, zopflipng
- PNG (lossy): pngquant (classic BSD)
- JPEG: jpegtran and cjpeg (mozjpeg)
- WebP: cwebp
Tune Every Engine
- Settings has General and Tools tabs
- The Tools tab lists each engine per mode and shows its actual command-line parameters
- Turn engines on or off, or tick Edit parameters to customise the arguments—they run verbatim
- Help ▸ Tools lists every engine with its parameters and full licence text
Bring Your Own Engines
Some engines can’t be bundled—either their licences (GPL) prevent redistribution on the Mac App Store, or they’d add too much to the download size. Drop the binary into the Tools folder and Brutify will use it:
- PNG (lossy): pngquant (newer GPL3 version)
- JPEG (lossy): jpegoptim (GPL), cjpegli (left out for size, not licence)
- GIF: gifsicle (GPL)
Only engines Brutify already knows are picked up; arbitrary binaries are ignored. A user-supplied binary takes precedence over a bundled one—handy for trying a newer build.
Processing Modes
You decide which engines run in each mode from the Tools tab:
- Fast—Quick optimisation with good compression ratios. Truly lossless—no quality or chroma change.
- Slow—Maximum optimisation with more iterations and thorough recompression. Also fully lossless.
- Lossy—Allows quality reduction for maximum size savings
Status at a Glance
A coloured dot beside every file shows exactly where it stands:
- Green—optimised; a smaller file was written
- Red—the result came out larger, so your original was kept
- Grey (filled)—the file couldn’t be processed
- Grey (hollow)—pending, or already as small as it gets
- Spinner—currently being optimised
A Real File List
- Resizable, sortable columns: status, filename, path, original size, optimised size, savings %, and best tool
- Drag to reorder columns, or show and hide them from the View menu
- “Follow Processing” scrolls to the file currently being optimised
- Multi-select, with a right-click menu for Quick Look, Reveal in Finder, Remove, and Undo
Your Originals, Preserved
- Keeps EXIF, ICC, and XMP metadata by default—turn it off when you want the smallest possible file
- Retains each file’s original Date Created and Date Added
- Undo and macOS file versioning restore files and their dates exactly
Command Line
Optimise from the terminal—drop Brutify straight into your build scripts:
brutify --cli file1.jpg file2.png /path/to/folder/- Headless operation with real-time progress
- Per-file results and an aggregate savings summary
- Exit codes reflect success or failure
Hands-Off Automation
Wire Brutify into Open With, the Services menu, Automator, or Shortcuts and let it run itself—both options live in Settings and stay off until you want them:
- Quit after processing—optimise the handed-in files, then quit; a one-shot optimiser for your pipelines
- Run without a window—fully headless: no window, no Dock icon, just the work; a failure quietly opens the window so you can take a look
A Good Mac Citizen
Brutify is built to run hundreds of files without ever getting in your way.
- Kind on your CPU—parallel work is capped at one below your core count, keeping your Mac responsive
- Stays smooth—heavy per-file work runs off the main thread, so the interface stays responsive throughout, with a notification when a batch finishes
- Managed engines—every engine runs under a watchdog timeout, so a hung or runaway tool is skipped rather than stalling the whole batch
- Safe writes—results are written atomically and only swapped in when complete
- Originals first—your source file stays put until a smaller version is ready
- Fully offline—every bundled engine runs on your Mac; nothing is ever uploaded
- Properly sandboxed—Brutify only touches the files you grant it, remembered safely with security-scoped bookmarks
Light Footprint
- Only 4 MB app download size
- Less than 40 MB base memory footprint
- Native, multi-threaded engine manager
How It Compares
Here’s how this app compares to other similar apps.
| Brutify | Optimage | ImageOptim | |
|---|---|---|---|
| App Store | ✓ | – | – |
| Apple silicon | ✓ | – | – |
| Add your own engines | ✓ | – | – |
| Editable parameters | ✓ | – | – |
| Undo / versioning | ✓ | – | – |
| Lossy mode | ✓ | ✓ | ✓ |
| Finder integration | ✓ | ✓ | ✓ |
| Batch folders | ✓ | ✓ | ✓ |
| WebP support | ✓ | ✓ | – |
| App size | 4 MB | 63 MB | 19 MB |
With Keep for revert on, Brutify saves each original as a macOS file version before optimising, so you can restore it any time from
File ▸ Revert To. It’s off by default as it uses some extra disk space.This is separate from Undo: Undo always reverses the optimisations you just made, while Keep for revert preserves the untouched original—with its original dates—beyond the current session.
It’s space-efficient, too. macOS stores versions by deduplicating at the chunk level: unchanged parts are kept only once, so a file saved many times costs the shared data plus each version’s small changes—not the full size multiplied by the number of versions. Old versions are pruned automatically when space is needed.
Yes—in Fast and Slow modes. Brutify re-encodes the image more efficiently without touching a single pixel: no quality reduction, no chroma change, identical output. Only Lossy mode trades quality for bigger savings, and it’s never used unless you choose it.
Yes by default—EXIF, ICC, and XMP are all preserved, and each file keeps its original Date Created and Date Added. For the absolute smallest files, turn metadata off in Settings and Brutify will strip it.
- Fast—quick, lossless optimisation with good savings. The everyday choice.
- Slow—lossless too, but runs more iterations and thorough recompression for the smallest possible result.
- Lossy—allows some quality reduction for maximum savings, when that’s an acceptable trade.
You decide which engines run in each mode from the Tools tab.
Some images are already as compact as they can get. If every engine’s result comes out larger than your original, Brutify keeps the original untouched—you never end up with a bigger file. A file may also be skipped if it can’t be processed. The status dot beside each file shows which case applies.
Never. Brutify is fully offline—every engine runs locally on your Mac and nothing is ever sent anywhere. It’s also properly sandboxed, so it only touches the files and folders you explicitly grant it.
No. Brutify caps parallel work at one below your core count and runs the heavy lifting off the main thread, so your Mac stays responsive across hundreds of files. Each engine also runs under a watchdog timeout, so a stuck tool is skipped rather than stalling the whole batch.
You can bring them back! Right-click the toolbar, choose “Customize Toolbar…”, then drag the animal picker onto the toolbar.
First, be warned that this is a power user feature and it is not required unless you have very specific requirements.
To let Brutify run engines you supply yourself—the ones that can’t be bundled on the Mac App Store, such as
gifsicleorpngquant—you’ll need to un-sandbox the app.Note you’ll need to do this every time you update Brutify. This is an unsupported feature, so run it at your own risk.
Simply execute this command in the Terminal:
find /Applications/Brutify.app/Contents/MacOS -type f -exec codesign --force --sign - {} +In case this command fails with “resource fork, Finder information, or similar detritus not allowed”, execute this first:
/usr/bin/xattr -cr /Applications/Brutify.appBrutify will now run un-sandboxed and will be able to use the engine binaries you drop into its Tools folder.