finds.dev← search

// the find

asottile/git-code-debt

★ 621 · Python · MIT · updated Jul 2026

A dashboard for monitoring code debt in a git repository.

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →