Show HN: A lightweight Git history explorer written in Go
kokada Thursday, December 11, 2025I am a fan of gitk and its simplicity, however as https://github.com/NixOS/nixpkgs/ is getting larger each day, it is becoming almost impossible to use it. I just did a quick test with commit e16041020b082ca847b3658ee1b69f8e6a4323b1 and after a few seconds the memory usage got close to 20GiB and I couldn't click on it (but the UI was still updating). This is probably because gitk tries to eagerly load all commits in memory, works fine for small/medium repositories, but nixpkgs is just too big.
I rarely want to check an old commit (and for that case, I generally don't use gitk anyway), and since I was interested in https://pkg.go.dev/modernc.org/tk9.0 for a while and had a free month of ChatGPT+ to test, I decided to try and vibecode an alternative of gitk writing with Go and modernc.org/tk9.0. So here it is.
The idea here is not to be a full featured replacement for gitk, but to re-implement the things I use. I tried to influence some of the architecture ideas to avoid the performance issues that the original have, so instead of loading all commits in memory it will load it in batches of 1000 (you can increase this using `-limit` flag but I recommend not setting this too high) at a time. Originally I also wanted to use only Go, but in the end I needed to use `git` for a few specific operations to keep it running fast (by default it still uses a pure Go implementation, but building it with `-tags=gitcli` is recommended).
In the end I got what I wanted, a small, self contained app that reproduces most of the features that I want.