Batch-compress images from your terminal — JPEG, PNG, WebP & AVIF. Runs locally, no upload, no account. Perfect for build scripts and CI pipelines.
Install Try the web app →Run it once with npx (no install):
# compress every image in ./images, write to ./images/compressed
npx https://quickshrink.orthogonal.info/cli/quickshrink.tgz ./images
Or install it globally so quickshrink is always on your PATH:
npm install -g https://quickshrink.orthogonal.info/cli/quickshrink.tgz quickshrink ./images -o ./dist --format webp --quality 80
# Convert a folder to WebP, cap width at 1600px (great for web) quickshrink ./photos -o ./web --format webp --max-width 1600 # Recurse into subfolders, keep the structure quickshrink ./assets -o ./out --recursive # Preview what would happen, write nothing quickshrink ./photos --dry-run
| Flag | What it does |
|---|---|
-o, --out <dir> | Output directory (default: ./compressed) |
--format <fmt> | jpeg | png | webp | avif (default: keep original) |
--quality <1-100> | Encoder quality (default: 80) |
--max-width / --max-height | Resize down, never up |
--recursive | Walk subfolders |
--dry-run | Show the plan, write nothing |
Running compression inside serverless functions or a CI runner where you can't install native libs? A hosted QuickShrink API (metered, key-based) is in private beta. Star the web app and check back, or email [email protected] to join the beta.