{"id":13412423,"url":"https://github.com/lolcommits/lolcommits","last_synced_at":"2025-12-17T04:37:59.272Z","repository":{"id":1016512,"uuid":"2499845","full_name":"lolcommits/lolcommits","owner":"lolcommits","description":":camera: git-based selfies for software developers","archived":false,"fork":false,"pushed_at":"2025-04-06T19:58:24.000Z","size":2212,"stargazers_count":4765,"open_issues_count":40,"forks_count":245,"subscribers_count":40,"default_branch":"main","last_synced_at":"2025-04-13T19:39:11.996Z","etag":null,"topics":["git","git-addons","humor","selfie","webcam"],"latest_commit_sha":null,"homepage":"https://lolcommits.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lolcommits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-10-02T15:25:44.000Z","updated_at":"2025-04-13T03:30:32.000Z","dependencies_parsed_at":"2023-07-05T21:16:15.737Z","dependency_job_id":"88b0a000-2140-465e-a1ac-d351eff82bb4","html_url":"https://github.com/lolcommits/lolcommits","commit_stats":{"total_commits":1022,"total_committers":75,"mean_commits":"13.626666666666667","dds":0.5988258317025441,"last_synced_commit":"adf69de46a2a2ca9caf5dadb0bb6339bdb427e52"},"previous_names":["mroth/lolcommits"],"tags_count":112,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolcommits%2Flolcommits","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolcommits%2Flolcommits/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolcommits%2Flolcommits/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lolcommits%2Flolcommits/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lolcommits","download_url":"https://codeload.github.com/lolcommits/lolcommits/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254243362,"owners_count":22038046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","git-addons","humor","selfie","webcam"],"created_at":"2024-07-30T20:01:24.493Z","updated_at":"2025-12-17T04:37:54.203Z","avatar_url":"https://github.com/lolcommits.png","language":"Ruby","funding_links":[],"categories":["Ruby","Git Related"],"sub_categories":[],"readme":"# lolcommits\n\n[![CI](https://img.shields.io/github/actions/workflow/status/lolcommits/lolcommits/ci.yml?branch=main\u0026style=flat\u0026label=CI)](https://github.com/lolcommits/lolcommits/actions/workflows/ci.yml)\n[![Depfu](https://img.shields.io/depfu/lolcommits/lolcommits.svg?style=flat)](https://depfu.com/github/lolcommits/lolcommits)\n[![Gem](https://img.shields.io/gem/v/lolcommits.svg?style=flat)](http://rubygems.org/gems/lolcommits)\n\n\u003e git-based selfies for software developers\n\nlolcommits takes a snapshot with your webcam every time you git commit,\narchiving a \"[LOLcat](https://en.wikipedia.org/wiki/Lolcat)\" style image. Git\nblame has never been so much fun!\n\nBy default these lol images are stored with a short SHA filename in a\n`~/.lolcommits` directory created just for you.\n\n## History\n\nOriginally created by [@mroth] in 2011 (as a joke project for [Hack \u0026\u0026 Tell]),\nlolcommits has grown considerably, has a plugin ecosystem and is now maintained\nby [@matthutchinson].\n\nThanks to all the [contributors] and users throughout the years!\n\n[@matthutchinson]: https://github.com/matthutchinson\n[@mroth]: https://github.com/mroth\n[Hack \u0026\u0026 Tell]: https://hackandtell.org\n[contributors]: https://github.com/lolcommits/lolcommits/graphs/contributors\n\n## Sample images\n\n\u003cimg src=\"https://lolcommits.github.io/assets/img/gallery.jpeg\" /\u003e\n\nPlease add your own lolcommit to the [People Using\nLolcommits](https://github.com/lolcommits/lolcommits/wiki/Lolcommits-from-around-the-world%21)\npage!\n\n\n## Requirements\n\n* Ruby \u003e= 3.1\n* A webcam\n* [ImageMagick](http://www.imagemagick.org)\n* [ffmpeg](https://www.ffmpeg.org) (optional) for animated gif capturing\n\n\n## Installation\n\n### macOS\n\nYou'll need ImageMagick installed.\n[Homebrew](https://brew.sh) makes this easy.\n\n\tbrew install imagemagick\n\nThen install with:\n\n\tgem install lolcommits\n\n### Linux\n\nInstall dependencies using your package manager of choice, for\nexample in Ubuntu:\n\n    sudo apt-get install mplayer imagemagick libmagickwand-dev\n\nFor Ubuntu 14.04 or newer, you need to manually install ffmpeg since it\nno longer ships with the default Ubuntu sources ([downloads\nhere](http://ffmpeg.org/download.html)).\n\nThen install with:\n\n    gem install lolcommits\n\nFor more details, see [Installing on\nLinux](https://github.com/lolcommits/lolcommits/wiki/Installing-on-Linux).\n\n### Windows - here be dragons!\n\nIt works, but you'll need some more detailed instructions to get the\ndependencies installed. See the wiki page for [Installing on\nWindows](https://github.com/lolcommits/lolcommits/wiki/Installing-on-Windows).\n\n\n## Usage\n\n### Enabling and basic usage\n\nWithin any git repository, simply run `lolcommits --enable`. From that\npoint on, any git commit will automatically trigger a lolcommit capture!\nBy default, all lolcommits are stored in `~/.lolcommits` and placed in a\nsubdirectory by project name, with a filename matching the commit hash.\n\nFollow [these\nsteps](https://github.com/lolcommits/lolcommits/wiki/Enabling-Lolcommits-for-all-your-Git-Repositories)\nto enable lolcommits across all your repos; using `git init` and the\n`init.templatedir` setting.\n\nDon't worry about it too much, half the fun of lolcommits is forgetting\nit's installed!\n\n\n### Other commands\n\nOK, if you insist... Since you know about `--enable`, common sense\nsuggests there is also a repository specific `--disable`, hopefully you\ncan guess what that does.\n\nOther handy common commands include `--last`, which will open for\ndisplay your most recent lolcommit, or `--browse`, which pops open the\ndirectory containing all the lolcommit images for your current\nrepository. You can always do `--help` for a full list of available\ncommands.\n\n**NOTE**: Any extra arguments you pass with `--enable` are appended to\nthe git post-hook capture command. For example;\n\n    lolcommits --enable --delay 5 --animate 4 --fork\n\nWill configure capturing of an animated gif (4 secs) after a 5 sec delay\nin a forked process. See the section below for more capture\nconfiguration options.\n\n\n### Capture configuration options\n\nlolcommits has some capture options for additional lulz. You can enable\nthese via environment variables like so;\n\n* `LOLCOMMITS_DEVICE` set a webcam device - **except windows\n  (non-animated) captures**\n* `LOLCOMMITS_VIDEO` (in seconds) set time for capturing a video -\n  **requires ffmpeg**\n* `LOLCOMMITS_ANIMATE` (in seconds) set time for capturing an animated\n  gif - **requires ffmpeg**\n* `LOLCOMMITS_DELAY` (in seconds) set delay time before capturing (for\n  slow webcams to warmup)\n* `LOLCOMMITS_FORK` fork lolcommit runner (capture command forks to a\n  new process, speedily returning you to your terminal)\n* `LOLCOMMITS_STEALTH` disable all notification messages when capturing\n* `LOLCOMMITS_DIR` set the output directory used for all repositories\n  (defaults to ~/.lolcommits)\n* `LOLCOMMITS_CAPTURE_DISABLED` disables lolcommit capturing in the\n  commit hook (when set as 'true')\n\nOr they can be set with arguments to the capture command (located in\nyour repository's `.git/hooks/post-commit` file).\n\n* `--device {name}` or `-d {name}`\n* `--video {seconds}` or `-v {seconds}`\n* `--animate {seconds}` or `-a {seconds}`\n* `--delay {seconds}` or `-w {seconds}`\n* `--fork`\n* `--stealth`\n\nYou can configure lolcommit text positions, font styles (type, size,\ncolor etc.) or add a transparent overlay to your images. Simply\nconfigure the default loltext plugin with this command:\n\n    lolcommits --config -p loltext\n\nTo find out more about styling, read about the [loltext\noptions](https://github.com/lolcommits/lolcommits/wiki/Configure-Commit-Capturing#loltext-options).\n\nUse `lolcommits --devices` to list all attached video devices available\nfor capturing.\n\nFinally, run `lolcommits --help` for details on all the available\narguments.\n\n\n### Videos\n\nYou can tell lolcommits to capture an mp4 video (instead of an image).\n[ffmpeg](https://www.ffmpeg.org) is required and can be installed like\nso;\n\n* Linux - [follow this\n  guide](https://www.ffmpeg.org/download.html#build-linux)\n* macOS - `brew install ffmpeg`\n* Windows - [follow this\n  guide](https://ffmpeg.org/download.html#build-windows)\n\nTo enable, use the `-v {seconds}` option or set the `LOLCOMMITS_VIDEO`\nenvironment variable with the number of seconds to capture.\n\n\n### Animated Gifs\n\nAnimated gifs can take a while to generate (depending on the number of\nseconds you capture and the capabilities of your machine).\n\nTo enable, use the `-a {seconds}` option or set the `LOLCOMMITS_ANIMATE`\nenvironment variable with the number of seconds to capture. If you find\nanimated capturing takes too long, try setting `LOLCOMMITS_FORK=true`.\n\n![Example animated lolcommit\ngif](http://cdn2.usa.bugleblogs.com/blogs/000/000/003/de0eb9aa695.gif\n\"Example animated lolcommit gif\")\n\n**NOTE**: If both `LOLCOMMITS_ANIMATE` and `LOLCOMMITS_VIDEO` options are set, the\nvideo duration takes precedence and is applied to both captures.\n\n\n### Plugins\n\nA growing number of plugins are available, allowing you to transform or\nshare your lolcommits with others. The default plugin simply appends\nyour commit message and sha to the captured image. Others can post to\nTwitter, Tumblr (and other services), or even translate your commit\nmessages to\n[lolspeak](http://www.urbandictionary.com/define.php?term=lolspeak).\nCheck them out on our [plugins\npage](https://github.com/lolcommits/lolcommits/wiki/Configuring-Plugins).\n\nTo list all installed plugins use:\n\n    lolcommits --plugins\n\nInstalled plugins can be easily enabled, configured or disabled with the\n`--config` option:\n\n    lolcommits --config\n    # or\n    lolcommits --config -p loltext\n\nInterested in developing your own plugin? Follow [this simple\nguide](https://github.com/lolcommits/lolcommits-sample_plugin#developing-your-own-plugin)\nat the Lolcommits Sample Plugin README.\n\n\n## Timelapse\n\nWatch your face decay while you program, with an animated timelapse gif!\n\n    lolcommits --timelapse\n    # or for just today's lolcommits\n    lolcommits --timelapse --period today\n\n## Troubles?\n\nTry our trouble-shooting\n[FAQ](https://github.com/lolcommits/lolcommits/wiki/FAQ), or take a read\nthrough our [wiki](https://github.com/lolcommits/lolcommits/wiki). If\nyou think something is broken or missing, please raise a [Github\nissue](https://github.com/lolcommits/lolcommits/issues) (and please\ncheck if we haven't [already\naddressed](https://github.com/lolcommits/lolcommits/issues?q=is%3Aissue+is%3Aclosed)\nit).\n\n\n## License\n\nThe program is available as open source under the terms of\n[LGPL-3](https://opensource.org/licenses/LGPL-3.0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flolcommits%2Flolcommits","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flolcommits%2Flolcommits","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flolcommits%2Flolcommits/lists"}