Features
Drag & Drop
Drop image files or folders directly onto the app window. No file pickers, no terminal — just drag and convert.
Quality Slider
Adjust WebP compression quality from 1 to 100. Fine-tune the trade-off between file size and visual fidelity.
Per-File Savings
See exactly how much space each converted image saves, with percentage and byte reduction shown per file.
Menu Bar Icon
Quick access from the macOS menu bar. Convert images without switching to a full window.
Launch at Login
Set the app to start automatically when you log in, so it's always ready when you need it.
Always on Top
Pin the conversion window above other apps for easy drag-and-drop while browsing files in Finder.
Batch Processing
Convert entire directories of images in a single command. Supports JPG, JPEG, PNG, GIF, BMP, TIFF, and existing WebP files.
Smart Skipping
Compares file modification times to skip images that haven't changed since the last conversion. Only re-converts what's needed.
Concurrent Workers
Processes up to 4 images in parallel using worker threads for maximum throughput on multi-core machines.
Atomic Writes
Writes to temporary files first, then renames on success. If a conversion fails mid-write, no corrupt output is left behind.
Color Space Aware
Detects and preserves sRGB color profiles during conversion. Images maintain their intended color appearance in WebP output.
EXIF Auto-Rotation
Reads EXIF orientation tags and auto-rotates images during conversion so WebP output always displays correctly.
macOS App
Native SwiftUI desktop app with drag-and-drop conversion. Drop image files or folders onto the window and watch them convert in real time. Requires the lazywebp CLI installed globally via npm.


Frequently Asked Questions
What image formats does towebp support?
JPG, JPEG, PNG, GIF, BMP, TIFF, and WebP. The CLI scans the input directory for files matching these extensions (case-insensitive) and converts each one to WebP format.
How does the skip logic work?
Before converting, towebp compares the modification time (mtime) of the source file against the existing output file. If the output is newer than the source, conversion is skipped. This makes repeated runs fast — only new or modified images get re-converted.
Can I use the macOS app without the CLI?
No. The macOS app is a native SwiftUI wrapper that calls the lazywebp CLI under the hood. You need to install the CLI globally via npm first, then the app uses it for the actual image conversion.
What quality setting should I use?
The default is 90, which works well for most use cases. For photographs where file size matters more, try 80-85. For graphics, illustrations, or UI screenshots where sharpness is critical, use 90-95.
Does it preserve original files?
Yes. towebp never modifies or deletes source files. It writes converted WebP files to the output directory using atomic writes — data goes to a temporary file first, then gets renamed only after successful conversion.
How does concurrent processing work?
towebp runs up to 4 parallel worker threads using sharp's built-in concurrency. Each worker picks up the next file from the queue, so all CPU cores stay busy during large batch conversions.
