Bulk compress a folder of JPEG photos to shrink file sizes for a website.
Convert PNG images to WebP or AVIF for smaller, modern web assets.
Resize and rotate images to exact dimensions as part of a build script.
Preview an image or compression result directly in a supported terminal.
| imfing/primage | browsersync/bslive | codeitlikemiley/snip-cli | |
|---|---|---|---|
| Stars | 7 | 7 | 7 |
| Language | Rust | Rust | Rust |
| Last pushed | — | 2026-07-19 | 2024-12-09 |
| Maintenance | — | Active | Stale |
| Setup difficulty | easy | hard | easy |
| Complexity | 2/5 | 2/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Primage is a command line tool for compressing, converting, and resizing images, built in Rust and designed to be fast. It supports the most common web image formats: JPEG, PNG, WebP, AVIF, and QOI, and it can read a wider range of formats, including GIF, TIFF, BMP, and a few others, before converting them out. The author describes it as bringing the same kind of workflow found in the browser tool Squoosh into a scriptable terminal command. Typical use is a single command per image: pointing primage at a photo along with a target format and quality setting produces a compressed or converted copy, and the tool prints how much smaller the result is. It can also resize images to an exact width or height, shrink them so the longest side fits within a limit, rotate them, and respects the orientation stored in a photo's EXIF metadata before applying any of those transforms. Because it accepts multiple input files, or a glob pattern like all JPGs in a folder, it works well for bulk jobs, and it processes batches in parallel across available CPU cores to keep things fast. One notable feature is the ability to preview images directly inside a compatible terminal, using the Kitty graphics protocol supported by terminals like Ghostty, kitty, WezTerm, and Konsole. This lets you see either the original image or what a specific compression setting will actually produce, without opening a separate image viewer. Under the hood, primage relies on established encoding libraries for each format, such as MozJPEG for JPEG, OxiPNG for PNG, libwebp for WebP, and ravif for AVIF, and release binaries bundle those libraries in so they run on a new machine without extra installation. It can be installed through Homebrew or Cargo, or downloaded as a prebuilt binary for macOS, Linux, or Windows. The project is licensed under the Apache License 2.0 and is still adding features, with JPEG XL decoding, AVIF decoding, and palette based color reduction listed as planned but not yet implemented.
A fast Rust command-line tool for compressing, converting, and resizing images like JPEG, PNG, WebP, and AVIF.
Mainly Rust. The stack also includes Rust, MozJPEG, OxiPNG.
Use freely for any purpose, including commercial use, as long as you keep the copyright and license notices.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.