Videos, photos, PDFs and audio. Drop a folder on squish, answer a few questions — or just hit Enter — and get everything back smaller.
curl -fsSL https://get.squish-compressor.com | bash
Paste it in Terminal, open a new window, type squish. No admin password, no account, no tracking.
squish looks at what's in the folder and only asks about what it found. The recommended setting is always one Enter away.
Typically 60–80% smaller with no visible difference. Or give a size — “under 25 MB” — and squish makes it fit.
Shrink and resize photos and screenshots. Keeps rotation and dates; transparent PNGs stay transparent.
Scans and slide decks that are too big to email become small enough to send — text stays sharp.
Turn huge WAV and FLAC recordings into small files for sharing, podcasts or voice memos.
Your originals are never modified. Everything lands in a new compressed folder right next to them.
squishThen drag a folder into the Terminal window — or press Enter to pick it in Finder.
Format, how much to shrink, maximum size… Each question has a sensible default — Enter accepts it.
A progress bar per file, then a summary of what you saved. The output folder opens on its own.
Common jobs, one line each. Add -y to skip the questions and use recommended settings.
For Discord, email attachments or messaging apps.
$ squish -t video -s 25 ~/Movies/ClipsPick WebP and 1920 px when asked: often 90%+ smaller.
$ squish -t image ~/Pictures/ShootEverything, subfolders included, structure preserved.
$ squish -y -r /Volumes/ArchiveResults go wherever you like with -o.
$ squish -o ~/Desktop contract.pdfsquish is MIT-licensed. Use it, change it, ship it in your own projects — no account, no telemetry, no catch.
Everything is optional — squish asks for what it needs. These are for when you already know what you want.
| Option | What it does |
|---|---|
| squish [folder|files…] | Compress a folder (or files). Without anything, squish asks. |
| -y, --yes | Don't ask; use the recommended settings. |
| -r, --recursive | Include subfolders, keeping the same structure in the output. |
| -o, --output DIR | Put results in DIR instead of a compressed folder next to the originals. |
| -t, --type LIST | Only some kinds of files: video, image, pdf, audio (comma-separated). |
| -s, --size MB | Videos: make each one fit under this size, using two-pass encoding. |
| --update | Download and install the latest version. |
| --uninstall | Remove squish and any tools it downloaded. |
| -h, -V | Help, version. |
| Kind | Questions | Recommended |
|---|---|---|
| Videos | Balanced / Strong / Gentle / Target size · H.264 or H.265 · resolution 1080p, 720p, 480p · keep or remove sound · normal or fast | Balanced, H.264, original size |
| Images | Keep format / JPEG / WebP · Balanced / Strong / Gentle · longest side 4K, 2560, 1920 or 1280 px | Same format, Balanced, original size |
| PDFs | Balanced (150 dpi) / Strong (72 dpi) / Gentle (300 dpi) | Balanced |
| Audio | MP3 / AAC / Opus · Balanced / Strong / Gentle | MP3, Balanced |
No. squish only reads them. Results always go to a new compressed folder (or the folder you give with -o).
squish never hands you a bigger file. If the compressed version would be heavier, the original is copied into the output folder as is, so the folder is complete.
Yes — press Ctrl-C. Run the same command again later and squish skips everything that's already done.
squish uses FFmpeg for videos, audio and most images, and Ghostscript for PDFs. If one is missing, squish offers to install it (via Homebrew, or a standalone FFmpeg download on macOS) the first time it's needed. For even smaller PNGs, install pngquant and squish uses it automatically.
No catch. squish is open source under the MIT license: free for personal and commercial use, forever. It's a small shell script that drives well-known free tools.
H.264 plays on absolutely everything. H.265 makes files roughly 40% smaller again at the same quality and plays on Apple devices, recent phones, TVs and computers — but encoding takes longer.
Inside WSL (Windows Subsystem for Linux), yes. There's no native Windows version.
squish --update fetches the latest version. squish --uninstall removes it.