dev utility
gitstats icon

gitstats.

analyze git repository history locally.

gitstats parses your git log to generate insights about your codebase. it runs entirely on your machine and never sends data to a remote server.

what it is

gitstats is a local cli for git analytics. it calculates lines of code per author, tracks commit frequency over time, and generates a heatmap of the most frequently modified files. it requires no signup and no remote access.

most git analytics tools are saas products that demand read access to your private GitHub repositories. handing over your source code just to see a commit graph is a security risk. gitstats does the exact same math locally using your existing .git directory.

engineering managers and tech leads use this to identify bottlenecks and knowledge silos. if one file has been modified 400 times in a month by ten different people, gitstats highlights it so you know where to focus your refactoring efforts.

core features

~

local processing

analyzes your .git directory entirely on your machine. no remote access or tokens required.

~

author metrics

calculates lines added and deleted per contributor. ignores massive automated commits if configured.

~

churn heatmap

identifies files that are modified most frequently. highlights potential technical debt and unstable modules.

~

commit velocity

graphs commit frequency over days, weeks, or months. shows when your team is actually working.

~

export to json

outputs raw statistical data for custom reporting. build your own dashboards without our ui.

how to use it

generate a churn report for the last 30 days.

// input

gitstats churn --since 30.days

// output

1. src/config.js (42 modifications)
2. src/auth/login.js (18 modifications)
3. package.json (12 modifications)

it parsed the local git log and identified the files that are changing too frequently.

why we built it

management always wants metrics on developer productivity, which usually leads to installing invasive tracking software. we built gitstats to provide basic repository metrics without giving third parties access to our source code.

we learned that lines of code is a terrible metric for productivity, but file churn is an excellent metric for technical debt. if a single configuration file is modified every day, gitstats makes that obvious.

frequently asked questions

does it handle renamed files?

yes. it uses git's built-in rename tracking to follow files across directory changes.

can i exclude certain authors?

yes. you can pass a list of emails to ignore. useful for filtering out dependabot or automated deployment scripts.

does it work on large repositories?

it parses the log linearly. a repository with 100,000 commits will take a few seconds to process.

can i merge multiple authors into one?

yes. you can define an alias map to merge different email addresses belonging to the same developer.

// find out which file is causing all the merge conflicts.