Free & open source · MIT macOS & Linux

Compress anything from your terminal.

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.

~ — zsh

    
Vacation48 items

One command for every heavy file.

squish looks at what's in the folder and only asks about what it found. The recommended setting is always one Enter away.

Videos

Typically 60–80% smaller with no visible difference. Or give a size — “under 25 MB” — and squish makes it fit.

mp4 mov mkv avi webm m4v wmv mts…
→ MP4 · H.264 or H.265

Images

Shrink and resize photos and screenshots. Keeps rotation and dates; transparent PNGs stay transparent.

jpg png heic webp tiff bmp gif
→ same format, JPEG or WebP

PDFs

Scans and slide decks that are too big to email become small enough to send — text stays sharp.

pdf
→ 300, 150 or 72 dpi images

Audio

Turn huge WAV and FLAC recordings into small files for sharing, podcasts or voice memos.

wav flac aiff m4a mp3 ogg…
→ MP3, AAC or Opus

How it works

Your originals are never modified. Everything lands in a new compressed folder right next to them.

Type squish

Then drag a folder into the Terminal window — or press Enter to pick it in Finder.

Pick with the arrow keys

Format, how much to shrink, maximum size… Each question has a sensible default — Enter accepts it.

Get your files back

A progress bar per file, then a summary of what you saved. The output folder opens on its own.

Recipes

Common jobs, one line each. Add -y to skip the questions and use recommended settings.

Fit videos under 25 MB

For Discord, email attachments or messaging apps.

$ squish -t video -s 25 ~/Movies/Clips

Photos for the web

Pick WebP and 1920 px when asked: often 90%+ smaller.

$ squish -t image ~/Pictures/Shoot

A whole drive, no questions

Everything, subfolders included, structure preserved.

$ squish -y -r /Volumes/Archive

One scanned PDF to email

Results go wherever you like with -o.

$ squish -o ~/Desktop contract.pdf

Free and open source. For good.

squish is MIT-licensed. Use it, change it, ship it in your own projects — no account, no telemetry, no catch.

  • One readable fileThe whole tool is a single shell script. Open it and read every line before you run it.
  • Nothing leaves your computerFiles are compressed locally with FFmpeg and Ghostscript. squish never uploads anything.
  • Built in the openReport bugs, suggest features or send a pull request — contributions are welcome.
# LICENSE MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software […] to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute […]

Options

Everything is optional — squish asks for what it needs. These are for when you already know what you want.

OptionWhat it does
squish [folder|files…]Compress a folder (or files). Without anything, squish asks.
-y, --yesDon't ask; use the recommended settings.
-r, --recursiveInclude subfolders, keeping the same structure in the output.
-o, --output DIRPut results in DIR instead of a compressed folder next to the originals.
-t, --type LISTOnly some kinds of files: video, image, pdf, audio (comma-separated).
-s, --size MBVideos: make each one fit under this size, using two-pass encoding.
--updateDownload and install the latest version.
--uninstallRemove squish and any tools it downloaded.
-h, -VHelp, version.

The choices, explained

KindQuestionsRecommended
VideosBalanced / Strong / Gentle / Target size · H.264 or H.265 · resolution 1080p, 720p, 480p · keep or remove sound · normal or fastBalanced, H.264, original size
ImagesKeep format / JPEG / WebP · Balanced / Strong / Gentle · longest side 4K, 2560, 1920 or 1280 pxSame format, Balanced, original size
PDFsBalanced (150 dpi) / Strong (72 dpi) / Gentle (300 dpi)Balanced
AudioMP3 / AAC / Opus · Balanced / Strong / GentleMP3, Balanced

Questions

 

Will it ever touch my original files?

No. squish only reads them. Results always go to a new compressed folder (or the folder you give with -o).

What if a file can't get any smaller?

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.

Can I stop halfway?

Yes — press Ctrl-C. Run the same command again later and squish skips everything that's already done.

What do I need installed?

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.

Is it really free? What's the catch?

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.

What's the difference between H.264 and H.265?

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.

Does it work on Windows?

Inside WSL (Windows Subsystem for Linux), yes. There's no native Windows version.

How do I update or remove it?

squish --update fetches the latest version. squish --uninstall removes it.

Copied — paste it in Terminal