#heatmap #tui #git #git-cli

app githeat

๐Ÿ”ฅ Terminal-based Git contribution heatmap โ€” filterable by author, path, time, and extension

1 unstable release

new 0.1.0 May 22, 2025

#673 in Development tools

MIT license

15KB
206 lines

Githeat โ€” Git Contribution Heatmap

githeat is a terminal-based tool that visualizes Git commit activity by file or author using a dynamic TUI interface. It's written in Rust and powered by git2, ratatui, and clap.

๐Ÿš€ Features

  • ๐Ÿ”ฅ Heatmap of file or author commit activity
  • ๐Ÿ“… Filter by time (--since, --since-date)
  • ๐Ÿง‘โ€๐Ÿ’ป Group by author or file
  • ๐Ÿงน Sort output by commit count (--sort)
  • ๐ŸŽฏ Filter by path or extension (--path, --ext)
  • โฌ†๏ธ Limit to top N entries (--top)
  • ๐Ÿ“ค Export to JSON or Markdown (--export)

๐Ÿงช Commands

๐Ÿ”น Basic Usage

githeat                       # Default file heatmap
githeat --by-author           # Author contribution heatmap

๐Ÿ”น Time Filtering

githeat --since 30            # Last 30 days
githeat --since-date 2025-01-01  # Since specific date

๐Ÿ”น Sorting & Limiting

githeat --top 10              # Top 10 files or authors
githeat --sort asc            # Sort by ascending commit count
githeat --sort desc           # Sort by descending (default)

๐Ÿ”น Filtering by File

githeat --ext rs              # Only .rs files
githeat --path src            # Only files in src/

๐Ÿ”น Exporting

githeat --export json         # Export to githeat_export.json
githeat --export md           # Export to githeat_export.md

๐Ÿ”น Combine Filters

githeat --by-author --since-date 2025-01-01

githeat --path src --ext rs --top 5 --sort desc --export json

๐Ÿ–ฅ๏ธ Local Usage (Development Mode)

From your project folder:

cargo run -- --by-author
cargo run -- --path src --top 5 --sort desc

๐Ÿ“ฆ Make githeat a Global Command

๐Ÿ”ง Install it globally

cargo install --path .

This installs the binary into:

C:\Users\<your_username>\.cargo\bin

๐Ÿงญ Add to PATH (Permanent)

  1. Open Environment Variables in Windows
  2. Under User Variables, edit Path
  3. Add this new entry:
C:\Users\<your_username>\.cargo\bin
  1. Click OK and restart PowerShell

โœ… Now use from anywhere:

githeat --since 14 --top 5

๐Ÿ”ง Dev Notes

  • Built with Rust 2021
  • Depends on: git2, ratatui, crossterm, clap, serde, serde_json
  • TUI is rendered via ratatui
  • git2 parses repo history and diffs

๐Ÿ“„ License

MIT โ€” ยฉ 2025 Andrew Alvarez


Contributions, issues, and PRs welcome!

Made with โค๏ธ for developers who ship.

Dependencies

~15โ€“23MB
~364K SLoC