Automates ImageOptim, ImageAlpha, and JPEGmini for Mac to make batch optimisation of images part of your automated build process.
npm install --global imageoptim-cli
Usage: imageoptim [OPTIONS] [PATTERNS]...
Arguments:
[PATTERNS]... Glob patterns of images or directories to optimise
Options:
-a, --imagealpha Enable ImageAlpha
-j, --jpegmini Enable JPEGmini
-I, --no-imageoptim Disable ImageOptim
--quality <MIN-MAX> ImageAlpha quality range from 0-100 [default: 65-80]
--speed <N> ImageAlpha speed from 1 (brute-force) to 10 (fastest) [default: 1]
--number-of-colors <N> ImageAlpha palette size from 2-256 [default: 256]
--batch-size <N> How many images to process at a time [default: 3000]
--dry-run List images which would be optimised, without optimising them
--json Output newline-delimited JSON instead of human-readable text
--verbose Output debug logging
-S, --no-stats Do not display file size savings and quality loss information
-C, --no-color Output to the terminal without colors
-h, --help Print help
-V, --version Print version
# Run ImageOptim.app over every image in current directory
imageoptim
# Run ImageAlpha.app and ImageOptim.app over every PNG in current directory
imageoptim --imagealpha '**/*.png'
# Run JPEGmini.app and ImageOptim.app over every JPG in current directory
imageoptim --jpegmini '**/*.jpg' '**/*.jpeg'
# Run JPEGmini.app over every JPG in current directory
imageoptim --jpegmini --no-imageoptim '**/*.jpg' '**/*.jpeg'
# Run ImageOptim.app over every image in a specific directory
imageoptim '~/Desktop'macOS only. Each app is optional and must be installed separately:
- ImageOptim — free
- ImageAlpha — free
- JPEGmini, JPEGmini Lite, or JPEGmini Pro — paid
JPEGmini has no API or command line interface, so this tool automates its GUI. For that to work, the program running imageoptim-cli (such as your terminal) needs permission to control your computer under System Settings → Privacy & Security → Accessibility.
This is a Rust rewrite of the original TypeScript + AppleScript implementation, distributed on npm as platform-specific binaries. See the justfile for available commands:
just test # run all tests
just lint # cargo check, fmt, clippy
just build-local # build and install the npm packages for this machine
just test-local # smoke test the locally built npm package