A fast command-line tool to explore Git activity — heatmaps, churn, authorship, and more.
gmap helps you understand your Git repository at a glance — not just what changed, but when, how much, and by whom. Visualize commit activity over time, spot churn-heavy files, explore contributor dynamics, and more — all from your terminal.
Built for developers who live in the CLI and want quick, powerful insights.
- Heatmap View: Weekly commit activity with line additions, deletions, and churn
- Churn Analysis: File-level change volume over time
- Timeline Sparklines: See growth and change at a glance
- Export Mode: Output structured JSON for further analysis
- Interactive TUI: Terminal UI with search, filtering, and keyboard navigation
Install via crates.io:
cargo install gmapRun the interactive TUI on any Git repository:
gmap heat --tuiUse Tab or arrow keys to switch views. Press h for help.
When you’re dropped into a new codebase, or even trying to clean up your own, questions like these matter:
- Which files change the most?
- Who made most of the changes last month?
- Are there dormant areas of the code?
- What’s the trend of contributions over time?
- Where is most of the churn?
Traditional git log and git blame don’t answer these efficiently. gmap does.
| Key | Action |
|---|---|
← → |
Switch views |
Tab |
Cycle through sections |
/ |
Search |
Esc |
Exit search |
h |
Toggle help overlay |
q |
Quit |
gmap [OPTIONS] <COMMAND>| Command | Description |
|---|---|
heat |
Weekly commit heatmap (default view) |
churn |
File-level change volume |
export |
Export full stats as JSON |
help |
Show help message |
| Flag | Purpose |
|---|---|
--repo <path> |
Git repo location (defaults to .) |
--cache <db> |
Use or persist a cache DB |
--since <date> |
Analyze starting from date |
--until <date> |
Up to this date |
--include-merges |
Include merge commits |
--binary |
Include binary files |
--tui |
Launch terminal UI |
-h, --help |
Show help |
-V, --version |
Show version info |
Date values support:
--since and --until accept any of:
- Exact date in
YYYY-MM-DD(e.g.2024-01-01) - RFC3339 datetime (e.g.
2024-01-01T00:00:00Z) - Relative time:
X days agoX weeks agoX months ago
- Git revisions (e.g.
HEAD~10,abcdef1,main, or any valid commit, branch, or tag)
Note:
1 year ago,yesterday,last month, and natural language liketodayornoware not supported.