lolcommits /lolcommits

:camera: git-based selfies for software developers

★ 4,818⑂ 247👁 36⑃ 240● 195▤ 78
RubyCreated 2011-10-02lolcommits.com
4,818
stars
+0+-1+-3
247
forks
36
watchers
240
prs
195
issues
78
releases
–
discussions

README

lolcommits






 git-based selfies for software developers

lolcommits takes a snapshot with your webcam
every time you git commit, archiving a
"LOLcat" style image. Git blame has
never been so much fun!

 Sample images



Feel free to add your own lolcommit to the People Using
Lolcommits
page!


 Requirements

 Ruby = 3.1
 A webcam
 ImageMagick
 ffmpeg (optional) for animated gif capturing


 Installation

 macOS

You'll need ImageMagick installed. Homebrew makes this easy.

	brew install imagemagick

Then install with:

	gem install lolcommits

Optionally add ffmpeg if you plan on capturing animated gifs or videos.

	brew install ffmpeg

 Linux

Install dependencies using your package manager of choice. For example in
Ubuntu:

    sudo apt-get install mplayer imagemagick libmagickwand-dev

For Ubuntu 14.04 or newer, you'll need to manually install ffmpeg, as it no
longer ships with the base image (download
here).

Then install with:

    gem install lolcommits

For more details, see Installing on
Linux.

 Windows - here be dragons!

It works, but you'll need to follow some extra instructions to get dependencies
installed. See Installing on
Windows.


 Usage

 Enabling and basic usage

Within any git repository, simply run

    lolcommits --enable

Now any git commit will automatically trigger a lolcommit capture! lolcommits
are stored in ~/.lolcommits with a short sha filename and organized into
folders for each git repo.

Follow these
steps
to enable lolcommits across all your repos; using git init and the
init.templatedir setting.

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


 Other commands

OK, if you insist... Since you know about --enable, common sense
suggests 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, or --browse, which pops open the
directory containing all the lolcommit images for your current
repository.

Use --help for a full list of available commands.

TIP: Any extra args you pass with --enable are auto-appended to
the git hook capture command. For example;

    lolcommits --enable --delay 2 --animate 4 --fork

Configures capturing of an animated gif (4 secs) after a 2 sec delay in a forked
process.


 Capture configuration options

lolcommits has some capture options for additional lulz. You can enable
these via environment variables like so;

 LOLCOMMITS_DEVICE set a webcam device - except windows
  (non-animated) captures
 LOLCOMMITS_VIDEO (in seconds) set time for capturing a video -
  requires ffmpeg
 LOLCOMMITS_ANIMATE (in seconds) set time for capturing an animated
  gif - requires ffmpeg
 LOLCOMMITS_DELAY (in seconds) set delay time before capturing (for
  slow webcams to warmup)
 LOLCOMMITS_FORK fork lolcommit runner (capture command forks to a
  new process, speedily returning you to your terminal)
 LOLCOMMITS_STEALTH disable al

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON