Fork me on GitHub

git + webcam = lulz.

lolcommits takes a snapshot with your webcam every time you git commit code, and archives a lolcat style image with it. It's selfies for software developers. git blame has never been so much fun.

About lolcommits

The single most useful piece of software known to mankind.

Infinite uses

Animate your progress through a project and watch as you age. See what you looked like when you broke the build. Keep a joint lolrepository for your entire company.


Thanks to the great open-source community, lolcommits now works on MacOSX, Linux, and even (gasp!) Windows.


Lolcommits allows a growing list of plugins to perform additional work on your lolcommit image after capturing. Submit your own with a pull-request today!

Animated Gifs!

Configure lolcommits to generate an animated gif with each commmit for extra lulz!

Open source

Hack it to do what you wish. lolcommits is licensed under the LGPL-3, for full neckbeard compliance.

Okay fine, it's just for fun

Hey, that's a good thing, capiche? Stop taking everything so seriously.

Sample images

See many more (and add your own!) on the People Using Lolcommits wiki page.



You'll need ImageMagick installed. Homebrew makes this easy. Simply do:

brew install imagemagick

Then simply do:

[sudo] gem install lolcommits

If you're using RVM (or rbenv), you can/should probably omit the sudo, but the default MacOSX Ruby install is dumb and requires it.

Don't have Homebrew already? It's a miracle you're using a Mac to develop software then! Follow these installation instructions first.


Install dependencies using your package manager of choice, for example in Ubuntu:

apt-get install mplayer imagemagick libmagickwand-dev

Then install the lolcommits gem:

gem install lolcommits

For more detailed Linux installation instructions, check the Linux installation wiki page.


Here be dragons! You'll need some more detailed instructions to get the dependencies installed.

View details »


Enabling and basic usage

From within any git repository, simply do a lolcommits --enable. From that point on, any git commit will automatically trigger a lolcommit capture! All lolcommits are stored in ~/.lolcommits by default, placed in a subdirectory by project name, and with a filename matching the commit hash.

You can also enable lolcommits across all your local git repos. Follow these steps to achieve this using git init and the init.templatedir setting.

Don't worry about it too much, half the fun of lolcommits is forgetting it's installed!

Other commands

Ok, if you insist... Since you know about --enable, common sense suggest there is also a repository specific --disable, hopefully you can guess what that does. Other handy common commands include --last, which will open for display your most recent lolcommit image, or --browse, which pops open the directory containing all the lolcommit images for your current repository. You can always do --help for a full list of available commands.

Advanced configuration

Want to do something cray cray like adjusting camera delay, enabling an add-on or animating commit gifs? Check out how to configure commit capturing or check out our small but growing list of plugins. If you like to manage things with Boxen, try this module.


Try our trouble-shooting FAQ, or take a read through our wiki for more information. If you think something is broken or missing, raise a GitHub issue (and please take a little time to check if we haven't already addressed it).