Skip to main content

git-wrapped

Spotify Wrapped, but for your Git history.

git-wrapped analyzes your repository's commit history and generates a beautiful, colorful terminal report — complete with activity heatmaps, coding personality insights, streak tracking, and fun facts about your development habits.

Demo

git-wrapped demo

Stats, Heatmap & Activity Charts

Languages, Streaks, Coder DNA & Fun Facts

Features

  • The Numbers — Total commits, files changed, lines added/deleted, net impact
  • Activity Heatmap — GitHub-style contribution calendar rendered in your terminal
  • When You Code — Hour-of-day and day-of-week activity bar charts
  • Top Files — Most frequently modified files leaderboard
  • Languages — Programming language breakdown with visual bars
  • Streaks & Records — Longest streak, current streak, busiest day
  • Coder DNA — Fun personality assessment based on your coding patterns (Night Owl, Early Bird, Weekend Warrior, Feature Machine, and more)
  • Fun Facts — Holiday commits, longest/shortest commit messages, productivity stats
  • JSON Export — Export raw stats for sharing or further analysis

Installation

pip install git-wrapped

Or install from source:

git clone https://github.com/stackmasteraliza/git-wrapped.git
cd git-wrapped
pip install -e .

Usage

Run inside any git repository:

# Analyze the current repo (all time)
git-wrapped

# Analyze a specific year
git-wrapped --year 2025

# Analyze a specific repo
git-wrapped --path ~/projects/my-cool-project

# Filter by author
git-wrapped --author "Jane Doe"

# Disable animations for instant output
git-wrapped --no-animate

# Export as JSON
git-wrapped --json > my-wrapped.json

# Combine options
git-wrapped --path ~/work/api --year 2025 --author "me@email.com" --no-animate

You can also run it as a Python module:

python -m git_wrapped --year 2025

CLI Options

Flag Description
--path, -p Path to the git repository (default: .)
--year, -y Year to analyze (default: all time)
--author, -a Filter by author name or email
--no-animate Skip loading animation and section pauses
--json Output raw statistics as JSON
--version, -v Show version number

Coder Personalities

Based on your commit patterns, git-wrapped assigns you one of these personalities:

Personality Trigger
Night Owl 30%+ of commits after 10 PM
Early Bird 45%+ of commits before noon
Weekend Warrior 30%+ of commits on Sat/Sun
Streak Master 14+ day commit streak
Feature Machine 3x more additions than deletions
Code Surgeon Deletions approach additions
Balanced Builder Even mix of all patterns

Requirements

  • Python 3.8+
  • Git installed and in PATH
  • Terminal with color support (most modern terminals)

Dependencies

  • rich — Beautiful terminal formatting

That's it! Only one external dependency.

How It Works

  1. Parses git log output with --numstat for file-level statistics
  2. Computes time patterns, streaks, language breakdown, and more
  3. Determines your "coder personality" based on commit patterns
  4. Renders everything with Rich panels, tables, and styled text

Built With GitHub Copilot CLI

This project was built using GitHub Copilot CLI as part of the GitHub Copilot CLI Challenge on DEV. Copilot CLI assisted with:

  • Scaffolding the project structure
  • Writing the git log parser and statistics engine
  • Designing the Rich-based terminal visualizations
  • Debugging edge cases in date/streak calculations

Here are some examples of Copilot CLI in action during development:

Copilot CLI explaining git log format

Copilot CLI helping calculate commit streaks

Copilot CLI helping count commits by hour of day

Copilot CLI helping render a colored heatmap with Rich

License

MIT License — see LICENSE for details.

Metadata

Release files for git-wrapped 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for git-wrapped 1.0.1
File Size Uploaded
git_wrapped-1.0.1.tar.gz 17.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for git-wrapped 1.0.1
File Interpreter ABI Platform
git_wrapped-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 35.4 kB

Release files / git_wrapped-1.0.1.tar.gz

Download URL git_wrapped-1.0.1.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3ae0b438213d5063e739ae693ff2785d8ba002c42038b455eb996e31a49c8fc9
BLAKE2b-256 checksum
How to use checksums
fd818fa9c3665effac4f8fd1b2af4e68dc486a2ecdb1c03e248e2de1bdd69885
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release files / git_wrapped-1.0.1-py3-none-any.whl

Download URL git_wrapped-1.0.1-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
561b7d1375dd8e8ecd7ff8a8be9ed44f5d0ec3961259ecc8393cbfa3b9e38e5c
BLAKE2b-256 checksum
How to use checksums
357106ac130bdcfa593b75e66e2c18e92edee1dc5a7497bf4903c2c4a9a5f36c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page