Skip to main content

git_count

A powerful Git commit activity visualization tool with detailed repository insights, beautiful ASCII charts, and advanced visualizations.

PyPI Downloads Python Version

Installation

pip install git-count

Features

Core Features

  • Visualize git commit activity with ASCII bars
  • Group commits by day, month, or year
  • Filter commits by author
  • Date range filtering
  • Directory-specific analysis
  • Detailed repository insights
  • Commit streak tracking (current and longest streaks)
  • File churn analysis (identify hotspot files)
  • Code velocity metrics (lines added/removed per period)
  • Multiple output formats (text, JSON, CSV, SVG)

Advanced Visualizations

  • GitHub-style Contribution Heatmap - 365-day calendar view of commit activity
  • Sparklines - Compact trend visualization for commit patterns
  • Box Plots - Statistical distribution of commit activity
  • Violin Plots - Density visualization for hourly/daily patterns
  • SVG Export - Publication-ready vector graphics
  • Emoji Mode - Visual indicators for enhanced readability
  • Desktop Notifications - Milestone alerts for achievements
  • Progress Bars - Real-time feedback for large repository analysis

Usage

# Basic usage
git-count

# Show commits by month
git-count -p month

# Filter by author
git-count -a "uday"

# Show commits since a specific date
git-count -s "2023-01-01"

# Show detailed repository insights
git-count -i

# Output as JSON
git-count -o json

# Show most frequently changed files
git-count -c

# Show code velocity (lines added/removed)
git-count -v

# Show velocity by month
git-count -v -p month

Options

Basic Options

  • -p, --period: Group commits by period (day/month/year)
  • -a, --author: Filter commits by author
  • -s, --since: Show commits more recent than a specific date
  • -u, --until: Show commits older than a specific date
  • -d, --directory: Analyze commits in a specific directory
  • -m, --max-commits: Limit the number of commits to display
  • -o, --output: Output format (text/json/csv/svg)

Analysis Options

  • -i, --insights: Show detailed repository insights
  • -c, --churn: Show most frequently changed files (hotspots)
  • -v, --velocity: Show code velocity (lines added/removed per period)
  • -H, --heatmap: Show GitHub-style contribution heatmap

Visualization Options

  • -e, --emoji: Enable emoji mode for visual indicators
  • --sparkline: Show sparkline trends in insights
  • --boxplot: Show box plot for commit distribution
  • --violinplot: Show violin plot for hourly/daily patterns

Utility Options

  • -n, --notify: Send desktop notifications for milestones
  • -q, --quiet: Disable progress bars
  • -V, --version: Show version number
  • -h, --help: Show help message

Advanced Examples

# Show GitHub-style contribution heatmap
git-count -H

# Enable emoji mode for better visuals
git-count -i -e

# Full analysis with advanced visualizations
git-count -i -c -v --sparkline --boxplot --violinplot -e

# Show heatmap with emoji mode
git-count -H -e

# Export to SVG for presentations
git-count -o svg

# Get desktop notifications for milestones
git-count -i -n

# Combine multiple filters with visualizations
git-count -a "uday" -s "2024-01-01" -p month -i --sparkline -e

# Export data for further analysis
git-count -o json > commits.json
git-count -o csv > commits.csv

# Analyze specific directory changes
git-count -d src/ -p month -H

# Get insights for team productivity with emoji mode
git-count -i -s "2025-01-01" -e

# Find hotspot files changed by a specific author
git-count -c -a "uday" -s "2024-01-01" -e

# Full analysis: insights + churn + velocity + heatmap
git-count -i -c -v -H -p month -e

Customization

You can customize colors and emoji settings by creating a ~/.gitbarsrc configuration file:

[colors]
reset = \033[0m
title = \033[1;36m
date = \033[0;32m
number = \033[0;33m
bar = \033[0;34m
alert = \033[0;31m

[emoji]
enabled = true

What You'll See

Insights Mode (-i)

  • Project timeline and age
  • Average commits per day
  • Current and longest commit streaks
  • Most active hours and days
  • Commit types distribution (features, fixes, docs, etc.)
  • Top contributors
  • Activity patterns with visual charts
  • NEW: Sparkline trends (--sparkline)
  • NEW: Box plot distribution (--boxplot)
  • NEW: Violin plot patterns (--violinplot)

Contribution Heatmap (-H)

  • GitHub-style 365-day calendar view
  • Color-coded intensity levels (gray to red)
  • Weekly and monthly patterns
  • Visual commit frequency distribution

Churn Mode (-c)

  • Most frequently changed files ranked by number of commits
  • Visual bar chart of file change frequency
  • Identifies code hotspots

Velocity Mode (-v)

  • Lines added/removed per period with color-coded bars
  • Total lines added, removed, and net change
  • Trend indicators with emoji mode

Emoji Mode (-e)

  • 🔥 Hot files and streak indicators
  • 🚀 Velocity and activity metrics
  • ⭐ Top contributors with 🏆 trophy for #1
  • 📈 Trending up, 📉 trending down indicators
  • ✨ Enhanced visual experience

SVG Export (-o svg)

  • Publication-ready vector graphics
  • Responsive and scalable charts
  • Professional color schemes
  • Embeddable in documentation

Desktop Notifications (-n)

  • 🎉 Milestone alerts (100, 500, 1000+ commits)
  • 🔥 Streak achievements (30+ days)
  • Non-intrusive notifications

Requirements

  • Python 3.8+
  • Git must be installed and repository must be a valid Git repository

License

MIT License

Metadata

Release files for git-count 0.4.0

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-count 0.4.0
File Size Uploaded
git_count-0.4.0.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for git-count 0.4.0
File Interpreter ABI Platform
git_count-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.8 kB

Release files / git_count-0.4.0.tar.gz

Download URL git_count-0.4.0.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b57e04eed546075b62113b3af8f76a7d8cf981cd7a0ca511a1219eec401c10f8
BLAKE2b-256 checksum
How to use checksums
d8a1005c040f68b749899ccc7b72a8343df27ce7a76dd88d7808f6eeb653abe3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / git_count-0.4.0-py3-none-any.whl

Download URL git_count-0.4.0-py3-none-any.whl
Size 14.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
70bd693a2334e7fdc399b660e656d8d9f62836958c56eb620f3a8f4153080656
BLAKE2b-256 checksum
How to use checksums
9e5545f52d667565b081aafb81576df66991579cac0347c9758affb8dd90a873
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.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