A fast, lightweight tool to optimize your images. No upload limits. Works offline.
No accounts, no uploads, no queue. A native Rust engine does the work on your machine.
The whole pipeline is Rust: decode, quantize, encode, parallel across every core. That's our benchmark corpus, compressed, on a laptop.
Everything runs locally. Smart crop and upscaling use on-device models, so nothing is uploaded. No size limits, no one else's servers.
Drop a directory and apply the same settings to hundreds of images. Per-file results stream in as they finish.
PNG, JPEG, WebP, AVIF and JPEG XL (HEIC opens too), encoded by OxiPNG, jpegli, libwebp, SVT-AV1 and libjxl. The best open codec for each job.
Adjust, frame, and scale before a single byte is compressed.
Brightness, contrast, saturation, hue, gamma, blur, sharpen. The GPU renders each change as you drag, on the full-resolution image. No preview lag.
Aspect-ratio and freeform crop, plus smart crop: it detects the subject (or the faces) and frames around them. Detection runs entirely on your Mac.
Lanczos filtering in linear light, the correctness detail most tools skip. Upscaling runs on-device too, accelerated by Core ML.
Zefft's lossy PNG engine is written from scratch: a perceptual palette search driven by a quality feedback loop. Against pngquant on a 118-file corpus, both chained with OxiPNG:
| Zefft | pngquant | |
|---|---|---|
| Time (118 files) | 16.46s | 55.4s |
| Output size | 44.17 MB | ~46 MB |
| Space saved | 67.2% | ~66% |
| Quality (DSSIM) | 0.000888 | 0.001074 |
Lower DSSIM = closer to the original, perceptually.
890 KB down to 326 KB. Drag the divider to compare.
Fig. 1: village_mountain.png · byte counts are the files Zefft wrote; previews are served resized for the web.
Enough for real work
One-time purchase