Skip to main content

Your coding fingerprint โ€” local git analytics dashboard for all your repos.

Project description

๐Ÿบ huntd

Your coding fingerprint โ€” local git analytics dashboard for all your repos.

PyPI Downloads Python License


Scan every git repo on your machine. Get streaks, heatmaps, language trends, project health scores, and more โ€” all in one interactive terminal dashboard.

WakaTime costs $9/mo. GitHub Wrapped is once a year. huntd is free, local, instant, and sees everything.

Install

pip install huntd

Quick Start

# Interactive TUI dashboard
huntd ~/code

# One-shot summary (no TUI)
huntd ~/code --summary

# JSON output (pipe to jq, scripts, etc.)
huntd ~/code --json

# Scan current directory
huntd

What You Get

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ huntd โ€” your coding fingerprint โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚   Repos: 14    Commits: 4,847    Languages: 8                                โ”‚
โ”‚   Current streak: 14 days    Longest: 31 days                                โ”‚
โ”‚   Most active: Tuesdays at 10pm    Avg: 3.2/day                              โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

                                   Top Repos
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Repo         โ”ƒ Commits โ”ƒ Language  โ”ƒ        Health โ”ƒ  +Lines โ”ƒ -Lines โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ cloud-dash   โ”‚     847 โ”‚ Python    โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘ 95 โ”‚ +15,847 โ”‚ -1,204 โ”‚
โ”‚ pulse-mobile โ”‚     623 โ”‚ Go        โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 85 โ”‚  +8,619 โ”‚   -820 โ”‚
โ”‚ data-engine  โ”‚     412 โ”‚ Rust      โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 80 โ”‚  +6,074 โ”‚   -503 โ”‚
โ”‚ api-gateway  โ”‚     203 โ”‚ TypeScriptโ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘ 70 โ”‚  +2,876 โ”‚   -118 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

                              Languages
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Language   โ”ƒ Lines Changed โ”ƒ                           โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ Python     โ”‚        15,823 โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  62% โ”‚
โ”‚ Go         โ”‚         5,628 โ”‚ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  22% โ”‚
โ”‚ Rust       โ”‚         2,519 โ”‚ โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘   9% โ”‚
โ”‚ TypeScript โ”‚           827 โ”‚ โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘   3% โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Features

Feature Description
Multi-repo scanning Recursively finds every git repo under a directory
Coding streaks Current and longest streak computed from local commits
Contribution heatmap GitHub-style activity grid across all repos (TUI mode)
Language breakdown Lines changed per language with trend bars
Project health scores 0-100 score based on recency, README, branches, cleanliness
Activity patterns Busiest day, busiest hour, average commits per day
Top repos ranking Sorted by commit count with language and health
Interactive TUI Navigate panels with keyboard (Textual-powered)
Summary mode --summary for a quick Rich-formatted printout
JSON export --json for scripting and pipelines

How It Works

  1. Scan โ€” Recursively finds all .git directories under the target path
  2. Extract โ€” Runs optimized git log commands in parallel (8 threads) across all repos
  3. Analyze โ€” Computes streaks, heatmaps, language stats, health scores, and activity patterns
  4. Display โ€” Renders an interactive dashboard or summary

All data comes from local git history. No API keys. No accounts. No cloud. No cost.

Output Modes

# Interactive dashboard (default)
huntd ~/code

# Static summary โ€” great for screenshots
huntd ~/code --summary

# JSON โ€” pipe to jq, save to file, feed to scripts
huntd ~/code --json
huntd ~/code --json | jq '.repos[] | select(.commits > 100)'

# Version
huntd --version

Health Score

Each repo gets a 0-100 health score based on:

Factor Points Criteria
Commit recency 0-40 Last commit within 7d (40), 30d (30), 90d (20), 1yr (10)
Total commits 0-20 100+ (20), 50+ (15), 10+ (10), 1+ (5)
Has README 0-15 README file present in repo root
Branch hygiene 0-15 1-5 branches (15), 6-10 (10), 11+ (5)
Clean tree 0-10 No uncommitted changes

Why Not X?

Tool Limitation
WakaTime Cloud-only, $9/mo, tracks editor time not git history
GitHub Wrapped Annual only, GitHub repos only, no local/private repos
onefetch Single repo snapshot, not interactive
git-quick-stats Single repo, text dump, no dashboard
tokei / scc Line counting only, no history or trends

huntd is the first tool to combine multi-repo scanning + streaks + heatmaps + language trends + health scores in one interactive dashboard. Free. Local. Instant.

Development

git clone https://github.com/TRINITY-21/huntd.git
cd huntd
pip install -e ".[dev]"
python -m pytest tests/ -v

Support

If this project is useful to you, consider supporting it.

Buy Me A Coffee

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

huntd-0.2.0.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

huntd-0.2.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file huntd-0.2.0.tar.gz.

File metadata

  • Download URL: huntd-0.2.0.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for huntd-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d330be6fd19ec8b7e9cac922d2c9477c9dcf95c13b01c2158ab36f359f85f596
MD5 8fed765b53d7f50e1f573b7863095c16
BLAKE2b-256 2e5e921196f73ea6454c583f50ce0134f3457b25ba86093ce57a8ccd46addb46

See more details on using hashes here.

File details

Details for the file huntd-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: huntd-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for huntd-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc03705e4f0ab161e16d7379b1c1adbcf4d970995b03da8494e2ef6b5c4a11c9
MD5 896ad1fcf6c5b833641e4dd59d43cbc2
BLAKE2b-256 48a90533ed27da56a497927ad866f6c30462e08c41d214f66182657357a41600

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page