GitHub Repo Pruner: a GUI for cleaning up your local repos
A PyQt6 desktop app that helps you review and selectively delete local GitHub repositories to reclaim disk space.
If you're anything like me, you have a local directory with hundreds of cloned GitHub repos, many of which you haven't touched in months or years. At last count I had over 400 repositories in my ~/repos directory, and I'm fairly certain at least a third of them are experiments that went nowhere, forks I cloned once to look at, or projects I've since abandoned. Periodically going through them in a file manager and deciding what to keep versus what to delete is the kind of tedious housekeeping task that I keep postponing until disk space forces my hand. So I built GitHub Repo Pruner to make the process almost enjoyable — or at least fast enough that it doesn't feel like a chore.
Helps to discard old repositories from a local filesystem (for Linux)
A deliberate design for quick decisions
It's a PyQt6 desktop application with a deliberately minimal interface. You point it at your base repos directory, then choose one of two modes: alphabetical (work through every repo in order) or random (it picks repos at random, which keeps things interesting). For each repo, you see the name and get two buttons: Delete or Keep. That's the entire interaction. The app remembers your base directory path between sessions and shows you a running count of how many repos remain. I deliberately left out features that would slow down the decision loop — there's no preview of the repo contents, no git log display, no size calculations. The theory is that you either recognise the repo name and know whether you need it, or you don't recognise it, which is itself a signal. If you need to investigate further, you can always skip it and come back later.
The surprisingly effective randomisation trick
The random mode turned out to be more useful than I expected. When you go alphabetically, you tend to get fatigued after a while — there's something soul-crushing about working through a list that starts with 'a' and knowing you have 25 more letters to go. Random ordering keeps you on your toes and distributes the cognitive load more evenly. You might get a clearly disposable experiment followed by a project you need to think about followed by an obvious keeper, and that variety prevents the decision fatigue that makes alphabetical review feel like a slog. It's a small UX insight but it made a genuine difference to how long I could sustain a cleanup session before quitting. I've been using it every few weeks to keep the repo sprawl under control, and each session takes about fifteen minutes to review a few dozen repos. The app is on GitHub.
Helps to discard old repositories from a local filesystem (for Linux)