[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7748":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":15,"starSnapshotCount":15,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},7748,"lolcommits","lolcommits\u002Flolcommits",":camera: git-based selfies for software developers","https:\u002F\u002Flolcommits.com",null,"Ruby",4811,249,36,40,0,3,59.49,"GNU Lesser General Public License v3.0",false,"main",true,[23,24,25,26,27],"git","git-addons","humor","selfie","webcam","2026-06-12 04:00:35","# lolcommits\n\n[![CI](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Flolcommits\u002Flolcommits\u002Fci.yml?branch=main&style=flat&label=CI)](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Depfu](https:\u002F\u002Fimg.shields.io\u002Fdepfu\u002Flolcommits\u002Flolcommits.svg?style=flat)](https:\u002F\u002Fdepfu.com\u002Fgithub\u002Flolcommits\u002Flolcommits)\n[![Gem](https:\u002F\u002Fimg.shields.io\u002Fgem\u002Fv\u002Flolcommits.svg?style=flat)](http:\u002F\u002Frubygems.org\u002Fgems\u002Flolcommits)\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Flolcommits\u002Flolcommits)\n\n> git-based selfies for software developers\n\n[lolcommits](https:\u002F\u002Flolcommits.github.io\u002F) takes a snapshot with your webcam\nevery time you git commit, archiving a\n\"[LOLcat](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLolcat)\" style image. Git blame has\nnever been so much fun!\n\n## Sample images\n\n\u003Cimg src=\"https:\u002F\u002Flolcommits.github.io\u002Fassets\u002Fimg\u002Fgallery.jpeg\" alt=\"Gallery\ngrid of captured lolcommit images\" \u002F>\n\nFeel free to add your own lolcommit to the [People Using\nLolcommits](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FLolcommits-from-around-the-world%21)\npage!\n\n\n## Requirements\n\n* Ruby >= 3.1\n* A webcam\n* [ImageMagick](http:\u002F\u002Fwww.imagemagick.org)\n* [ffmpeg](https:\u002F\u002Fwww.ffmpeg.org) (optional) for animated gif capturing\n\n\n## Installation\n\n### macOS\n\nYou'll need ImageMagick installed. [Homebrew](https:\u002F\u002Fbrew.sh) makes this easy.\n\n\tbrew install imagemagick\n\nThen install with:\n\n\tgem install lolcommits\n\nOptionally add ffmpeg if you plan on capturing animated gifs or videos.\n\n\tbrew install ffmpeg\n\n### Linux\n\nInstall dependencies using your package manager of choice. For example in\nUbuntu:\n\n    sudo apt-get install mplayer imagemagick libmagickwand-dev\n\nFor Ubuntu 14.04 or newer, you'll need to manually install ffmpeg, as it no\nlonger ships with the base image ([download\nhere](http:\u002F\u002Fffmpeg.org\u002Fdownload.html)).\n\nThen install with:\n\n    gem install lolcommits\n\nFor more details, see [Installing on\nLinux](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FInstalling-on-Linux).\n\n### Windows - here be dragons!\n\nIt works, but you'll need to follow some extra instructions to get dependencies\ninstalled. See [Installing on\nWindows](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FInstalling-on-Windows).\n\n\n## Usage\n\n### Enabling and basic usage\n\nWithin any git repository, simply run\n\n    lolcommits --enable\n\nNow any git commit will automatically trigger a lolcommit capture! lolcommits\nare stored in `~\u002F.lolcommits` with a short sha filename and organized into\nfolders for each git repo.\n\nFollow [these\nsteps](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FEnabling-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 even 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.\n\nUse `--help` for a full list of available commands.\n\n**TIP**: Any extra args you pass with `--enable` are auto-appended to\nthe git hook capture command. For example;\n\n    lolcommits --enable --delay 2 --animate 4 --fork\n\nConfigures capturing of an animated gif (4 secs) after a 2 sec delay in a forked\nprocess.\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 ~\u002F.lolcommits)\n* `LOLCOMMITS_CAPTURE_DISABLED` disables lolcommit capturing in the\n  commit hook (when set as 'true')\n\nOr apply arguments directly on the git hook capture command (located in\nyour repository's `.git\u002Fhooks\u002Fpost-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 layout, font styles (type, size, color etc.) or\nadd a transparent overlay to your images. Simply configure the default loltext\nplugin with this command:\n\n    lolcommits --config -p loltext\n\nTo find out more about styling, read about the [loltext\noptions](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FConfigure-Commit-Capturing#loltext-options).\n\nUse `lolcommits --devices` to list all attached video devices available for\ncapturing.\n\nFinally, `lolcommits --help` has details on all available arguments.\n\n\n### Videos\n\nYou can tell lolcommits to capture an mp4 video (instead of an image).\n[ffmpeg](https:\u002F\u002Fwww.ffmpeg.org) is required and can be installed like\nso;\n\n* macOS - `brew install ffmpeg`\n* Linux - [follow this\n  guide](https:\u002F\u002Fwww.ffmpeg.org\u002Fdownload.html#build-linux)\n* Windows - [follow this\n  guide](https:\u002F\u002Fffmpeg.org\u002Fdownload.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:\u002F\u002Fcdn2.usa.bugleblogs.com\u002Fblogs\u002F000\u002F000\u002F003\u002Fde0eb9aa695.gif\n\"Example animated lolcommit gif\")\n\n**NOTE**: If both `LOLCOMMITS_ANIMATE` and `LOLCOMMITS_VIDEO` options are set,\nthe video 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 share\nyour lolcommits with others.\n\nThe default `loltxt` plugin simply appends your commit message and sha to the\ncaptured image. Others can post to Twitter, Tumblr or HTTP Post anywhere. You\ncan even translate your commit messages to\n[lolspeak](http:\u002F\u002Fwww.urbandictionary.com\u002Fdefine.php?term=lolspeak).\n\nCheck them out on our [plugins\npage](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FConfiguring-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? Follow [this plugin developers\nguide](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits-sample_plugin#developing-your-own-plugin).\n\n\n## Timelapse\n\nWatch your face rapidly decay while you program! Enjoy (or despair) with:\n\n    lolcommits --timelapse\n    # or for just today's lolcommits\n    lolcommits --timelapse --period today\n\n## Development\n\nCheck out this repo and run `bundle install` to install dependencies.\n\n### Tests\n\nCucumber is used for testing. Run the full suite with:\n\n    $ cucumber\n\nSome MiniTest unit tests can also be ran with:\n\n    $ rake test\n\n### Linting\n\n[Rubocop](https:\u002F\u002Fgithub.com\u002Frubocop\u002Frubocop) is used for linting, and a git\n[quickhook](https:\u002F\u002Fgithub.com\u002Fdirk\u002Fquickhook) can be installed to check this on\na pre-commit.\n\n    $ rubocop\n\n    $ quickhook install\n\n### Docs\n\nGenerate docs for this gem with:\n\n    $ rake rdoc\n\n## Troubles?\n\nTry our trouble-shooting\n[FAQ](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki\u002FFAQ), or take a read through\nour [wiki](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fwiki).\n\nIf you think something is broken or missing, please raise a [Github\nissue](https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fissues).\n\n## History\n\nOriginally created by [@mroth] in 2011 (as a joke project for [Hack && 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:\u002F\u002Fgithub.com\u002Fmatthutchinson\n[@mroth]: https:\u002F\u002Fgithub.com\u002Fmroth\n[Hack && Tell]: https:\u002F\u002Fhackandtell.org\n[contributors]: https:\u002F\u002Fgithub.com\u002Flolcommits\u002Flolcommits\u002Fgraphs\u002Fcontributors\n\n## License\n\nThe program is available as open source under the terms of\n[LGPL-3](https:\u002F\u002Fopensource.org\u002Flicenses\u002FLGPL-3.0).\n","lolcommits 是一个基于 Git 的自拍工具，专为软件开发者设计。每当用户执行 git commit 操作时，它会通过用户的网络摄像头自动拍摄一张照片，并以 LOLcat 风格保存下来。该项目使用 Ruby 语言开发，依赖于 ImageMagick 和可选的 ffmpeg 来处理图像和生成动画 GIF。lolcommits 适合那些希望在开发过程中增添一些趣味性的程序员或团队使用，不仅能够记录下每次提交代码时的状态，还能作为团队内部的一种轻松交流方式。",2,"2026-06-11 03:14:11","top_language"]