Customizable Git commit punchcard visualizations
Clojure Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

CLI tool to create Git commit punchcard visualizations of local repos with customizable styling. SVG output via heatmap viz module. Visualizations can be filtered by author (regexp) and date range.




git clone
cd punchcard

./punchcard \
  --repo <path> \
  --author "email-regexp" \
  --title "Diagram title" \
  --gradient "yellow-green-blue" \
  --ramp 0.66 \
  --reverse 1 \
  --from "2017-01-01 00:00" \
  --to "2018-01-1 00:00" \
  --bg black \
  --fg white \
  --out <path>


The only required argument. Repository path.
Optional author email regexp. If given, must be in quotes and visualization will only consider commits by authors matching the expression. E.g. .* will only match contributions from gmail addresses.
Optional start date in YYYY-mm-dd hh:MM format (inclusive)
Optional end date in YYYY-mm-dd hh:MM format (exclusive, open interval)
–gradient gradient preset ID. Default: yellow-green-blue
gradient ramp exponent (default: 1), if < 1 gradient will emphasize smaller values in the heatmap, if > 1 larger values
if given as --reverse 1 will reverse gradient direction
Output path. Default: punchcard.svg
Optional title / headline string. Defaults to repo path
valid CSS color string for background (default: transparent)
valid CSS color string for text/axes (default: black)

Further layout & styling options are available via the layout map in the source code.


  • Clojure 1.8
  • Leiningen


Copyright © 2017 Karsten Schmidt // ASL2.0 licensed