finds.dev

asottile/git-code-debt

A dashboard for monitoring code debt in a git repository.

View on GitHub

★ 621PythonMITupdated Jul 2026

// the take

git-code-debt tracks how metrics like TODO count, import count, and curse words change over time in a git repo, then serves a small Flask dashboard with time-series graphs. It's a niche but genuinely useful tool for teams that want to catch slow-burn code rot — the kind that doesn't show up in any single PR review.

The extensible metric system is clean: subclass SimpleLineCounterBase, implement two methods, register your package — done. The incremental generation model (pick up from last commit) means you can schedule it cheaply. asottile maintains this well; CI is green, pre-commit is wired in, and the last push was this month despite the modest star count. SQLite as the backing store is the right call for a local dev tool — no infrastructure overhead.

The built-in metrics are pretty thin — TODO count, curse words, submodule count, lines in __init__.py. You'll need to write your own for anything that actually matters to your codebase, which means the real work is on you. The dashboard UI is frozen in 2014-era jQuery Flot; it works but you're not getting any modern interactivity. There's no multi-repo support — one config, one database, one repo. And the documentation for writing custom metrics stops at toy examples, so you're reading source to figure out how DiffParserBase actually delivers commits.

We read the README, the directory tree and a key source file in July 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
621
Forks
36
Language
Python
License
MIT
Last commit
15 Jul 2026

// nearby

If git-code-debt isn't quite it.

All repos →