losslessly
github.com
Spec sheet
- Purpose
- losslessly is a command-line image optimizer that recompresses PNG, JPEG, GIF and WebP files and minifies SVG markup.Read 4 Oct 2026 · github.com
- Product
- losslessly is a command-line tool that recompresses PNG, JPEG, GIF and WebP files and minifies SVG markup.Read 12 Oct 2026 · github.com
- License
- The repository is released under the MIT license.Read 12 Oct 2026 · github.com
- Maker
- The GitHub profile identifies the maker as Kamil Doroszewicz and lists Poland as the location.Read 4 Oct 2026 · github.com
- Automation
- The --check option writes nothing and exits with code 1 if any file could shrink, enabling CI checks.Read 4 Oct 2026 · github.com
- CI and hooks
- A --check mode can fail CI when files could shrink, and the README shows integration with lefthook pre-commit hooks.Read 12 Oct 2026 · github.com
- Data handling
- The README describes processing local files in place and replacing a file only when the result is smaller.Read 4 Oct 2026 · github.com
- Formats
- It searches directories recursively for PNG, APNG, JPEG, GIF, WebP and SVG files, with extensions in either case.Read 12 Oct 2026 · github.com
- GIF limit
- It leaves a GIF alone when its frames exceed the supported palette color count or when a frame turns opaque pixels transparent again.Read 12 Oct 2026 · github.com
- Image integrity
- PNG, JPEG and WebP output decodes to the same pixels as the input, while GIF output preserves rendered frames and timing.Read 4 Oct 2026 · github.com
- In-place optimization
- It replaces a file only when the optimized result is smaller and otherwise leaves it byte-for-byte untouched.Read 12 Oct 2026 · github.com
- Installation
- Prebuilt binaries are offered for macOS and Linux on x86_64 and arm64, and Windows on x86_64; it can also be installed with Cargo.Read 12 Oct 2026 · github.com
- Integrity checks
- It checks file magic bytes against extensions and reports decoding errors without changing files it cannot process.Read 12 Oct 2026 · github.com
- Lossless behavior
- PNG, JPEG and WebP output decodes to the same pixels as input, while GIF output preserves rendered frames and timing.Read 12 Oct 2026 · github.com
- Metadata
- EXIF, ICC profiles, XMP and comments are preserved unless the --strip option is used.Read 12 Oct 2026 · github.com
- Notable limits
- It does not do lossy compression or format conversion, and AVIF and JPEG XL are not on its roadmap.Read 4 Oct 2026 · github.com
- Safety
- Writes use a temporary file in the same directory and rename it over the original, so the original remains if the process dies mid-write.Read 12 Oct 2026 · github.com
- Scope
- Lossy compression and format conversion are out of scope, and AVIF and JPEG XL are not on the roadmap.Read 12 Oct 2026 · github.com
- Source install
- Source installation requires a Rust toolchain and C compiler.Read 4 Oct 2026 · github.com
- SVG precision
- SVG output uses svgo's default numeric precision, so it does not have a bit-level guarantee.Read 12 Oct 2026 · github.com
- Tuning
- PNG compression supports effort levels 0–6, and the optional Zopfli mode is slower but produces somewhat smaller files on most images.Read 12 Oct 2026 · github.com
- WebP limit
- It skips lossy and animated WebP files; only lossless still images are re-encoded.Read 12 Oct 2026 · github.com
Where Specifiction places it
- Image Compression Software#85 of 856.9