I've used Lazygit daily for almost four years. It's a fantastic project, and I suggest donating to Jesse as he did a great job.In my daily job a heavily use Git and a few things bothered me, so I decided to create my own project. Go is not a language I wanted to explore, while I had this interest in giving Zig a try, so eventually I picked it and was blown away by how fast it can be. There's a file called ENHANCEMENTS_OVER_LAZYGIT.md (https://github.com/simoarpe/ziggity/blob/main/docs/ENHANCEME...) but I'll soon merge it into the main README. At my daily job, I handle huge git projects, and use Ziggity daily now, and I'm much more productive.
I can name a few improvements over Lazygit in random orders:
- Text selection with automatic copy, it works super smoothly and it's useful when you need to quickly copy a commit hash, a portion of code, a diff, or a branch name.
- Force-push with lease, it's something that should be always used when force pushing. If you work in a large codebase it should always be your first attempt after a rebase, and that's how Ziggity works. It will ask to fallback to normal force-push if it didn't work, but you'll remain in control.
- Git actions are async without leaving the TUI: this is in my opinion the biggest improvement over Lazygit, and it makes me much more productive, Lazygit was continuously switching to prompt and asking to press to return back to the TUI. There are also good reasons for this but as a general philosophy I wanted something different, and more optimized.
- I've implemented the 50/72 rule (https://dev.to/noelworden/improving-your-commit-message-with...) for the commits and I can finally prepare good commits, where I highlight when a title is too long and there's a shadow for the linewrap. They are both configurable so I'm not forcing this option.
- I have also implemented the correct behavior a couple of other features that are currently broken on Lazygit, the most serious one for example is that switching branch by name is completely broken and you'll end up in commit in a detached state (try yourself if you don't believe me).
If you decide to give Ziggity a try, I'm happy to receive feedback
7/21/2026
at
6:55:43 PM
thanks for the info; will give it a tryfyi, a couple of features that lazygit does not have, or that aren't easily done in lazygit and which pycharm does quite well (I've used _many_ git tools, and IMO pycharm's internal implementation is still the best, but I switched to lazygit because I dropped pycharm for zed).
- diff any branch against any other branch (lazygit relies on certain branches being marked or inferred as main branches against which you can diff)
- see a file's git history (and which branches those commits are on), drill into the commits
- github (or gitlab, codeberg, etc.) support: open commit in github (easiest way to share commit with a co-worker, for example)
by insane_dreamer
7/21/2026
at
7:02:50 PM
Thanks! Super valuable feedback!
I'll make sure to implement these features in the near future.
The branch diff is already there and works quite nice.
by TheSorcerer
7/21/2026
at
8:37:00 PM
another feature that pycharm has (and Zed though not as well implemented): insert the filename into the commit text.zed inserts the filename but doesn't allow you to edit the commit (so it's all or nothing), pycharm allows you to edit the commit prepopulated with the filename if only one file is staged.
another enhancement is that neither pycharm or zed can handle inserting multiple filenames into the commit. so while editing the commit, you could potentially have keys to insert the staged filenames, i.e., by pressing a meta+number key combo where ctrl+1 inserts the first filename in the staged list, ctrl+2 the second, 1-9. just an idea.
by insane_dreamer