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.