Ruby/CLI: Automatic lossless reduction of all your images
Latest commit 58a7221 Oct 8, 2012 @grosser Merge pull request #12 from johnrees/patch-1
Failed to load latest commit information.
lib make url overwriteable + found the new url + document how to find the… Nov 19, 2011
spec notify users about renamed files Mar 15, 2011
.gitignore now singleton + cmd-line interface... Jan 24, 2009
Gemfile make compatible to new http-client version Apr 22, 2011
Gemfile.lock make compatible to new http-client version Apr 22, 2011
Rakefile gemify Mar 15, 2011 Update Oct 8, 2012
VERSION Version bump to 0.4.9 Nov 19, 2011
smusher.gemspec Regenerate gemspec for version 0.4.9 Nov 19, 2011

LOSSLESS image size reduction for jpg, png and gif in the cloud

  • no image libraries needed, everything done in the interwebs
  • less size (up to a 97% saving) = faster downloads = less bandwidth + happy users


install ruby + rubygems
sudo gem install smusher


Optimize a single image or a whole folder:

smusher /apps/x/public/images [options]
smusher /apps/x/public/images/x.png [options]
smusher /apps/x/public/images/*.png [options]

Options: -q, --quiet no output -c, --convert-gifs convert gifs to PNGs --service PunyPng use PunyPng for image optimizing, instead of SmushIt -v, --version display current version


smusher /apps/ts/public/images
  smushing /apps/rs/public/images/social/facebook_icon.png
  2887 -> 132                              = 4%

  smushing /apps/rs/public/images/social/myspace_icon.png
  3136 -> 282                              = 8%

  smushing /apps/rs/public/images/dvd/dvd_1.png
  5045 -> 4                                = 0%

PunyPng - usage limit

The default Smusher::PunyPng.api_key is used by all users and could already be full when you try to smush some images.

Create a .puny_png_api_key in your home directory with your own api key from PunyPng.


Any image that returns a failure code, is larger than before, or is empty will not be saved.


  • only optimize 'new' images -> save time when doing on already optimized folder


reduce images and minify css + js -> try reduce.



Michael Grosser
Hereby placed under public domain, do what you want, just do not hold me accountable...