Spotify Wrapped, but for your Git history. Beautiful terminal visualizations of your coding year.
Project description
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
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 rich
Then clone or download this repository:
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
- Parses
git logoutput with--numstatfor file-level statistics - Computes time patterns, streaks, language breakdown, and more
- Determines your "coder personality" based on commit patterns
- 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:
License
MIT License — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file git_wrapped-1.0.0.tar.gz.
File metadata
- Download URL: git_wrapped-1.0.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f2eb58a99c59940476833a9c417e6ffdac361175f7903b9531b9ee564fa21b1
|
|
| MD5 |
19a17d4534706309c51359385a159741
|
|
| BLAKE2b-256 |
233fb87f82e91b0681268ec6783d8d07fa9257a49e4546a9ff79320edc7501b2
|
File details
Details for the file git_wrapped-1.0.0-py3-none-any.whl.
File metadata
- Download URL: git_wrapped-1.0.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41c4e02d444e6b4a7cdde091268bc61011c57ecc48ff352df1b01121456f241e
|
|
| MD5 |
37f9c5524836fff29bb3aecb7970fe48
|
|
| BLAKE2b-256 |
7e7f3e15b322056bd5aa513336ce30bca62f34360a4266b8621bc15ce29c40f8
|