An honest mirror of your git habits — stats and jabs from your own commits.
$ commit-mirror
commit-mirror
total commits 247
unique authors 3
time span 412 days
avg subject words 3.2
short subjects 108 (≤3 words)
conventional prefixes
187/247 commits use prefixes (76%)
fix ████████████████████ 71
feat █████████████ 46
chore ████████ 29
refactor █████ 18
docs ███ 12
test ██ 11
when you commit
Mon ████████████ 34
Tue ████████████████ 46
Wed ████████████████████ 58
Thu ███████████████ 44
Fri ██████████ 29
Sat ████ 14
Sun ██████ 22
hours of day (UTC)
...
22h ████████ 18
23h ██████████ 22
00h ████████ 17
01h ██████ 13
the mirror speaks
• 29% of commits are fixes — your codebase is held together by hope and the word `fix`
• average subject 3.2 words. Future-you is going to hate present-you
• 70 commits between 22:00 and 05:00. sleep is a feature, not a bug
• 76% of commits use conventional prefixes. someone here reads the docsA small tool that reads git log in any repo and tells you what it sees:
prefixes you use, hours you work, ratio of fix: commits, and a few lines
of unsolicited feedback.
pip install commit-mirrorPython 3.9+. No dependencies beyond the standard library.
commit-mirror # analyze current dir
commit-mirror ~/code/myrepo # any path
commit-mirror -n 100 # last 100 commits only
commit-mirror --seed 42 # deterministic jabs (for CI / screenshots)from commit_mirror import analyze_repo
stats = analyze_repo("~/code/myrepo")
print(stats.total, stats.fix_ratio, stats.busiest_weekday)CommitStats exposes: total, authors, prefixes, by_hour, by_weekday,
avg_subject_words, short_subjects, fix_ratio, night_owl_count,
weekend_warrior_count, busiest_weekday, busiest_hour.
Because the truest summary of your engineering year is in your commit log, and nobody ever looks at it. Run this once a quarter. Write better commits.
git clone https://github.com/stix2112333-stack/commit-mirror
cd commit-mirror
pip install -e ".[dev]"
pytestMIT.