Very cool, but if I'm prompting / looping an AI agent as my main development process, what is the use case here? I feel the biggest help would be to make Reviewing PRs from the terminal easier, I care less about commit logs and status.
I actually made something that has that exact purpose, making reviewing easier. https://github.com/lnenad/difiko
Ziggity – A terminal UI for Git, written in Zig
61–70 of 76 posts
Re: Ziggity – A terminal UI for Git, written in Zig
#62Honest feedback: This is AI generated TUI slop made with claude. I've been seeing a sad trend of these things being built with AI with no care and will be just abandoned in less than a month. Why should I use this when I can use lazygit which is more popular and has been around and battle tested for years?
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).
So to answer your question: You should not switch to Ziggity if you are fine with Lazygit. But if you are a proficient Git user, handle largit Git projects, and you have used Lazygit for a while and noticed a few things were "suboptimal"; then you should give Ziggity a try.
Re: Ziggity – A terminal UI for Git, written in Zig
#63Hi HN, I've been building Ziggity, a keyboard-driven terminal UI for Git. It's inspired by lazygit (which I used daily), but written from scratch in Zig rather than being a port. Why another one? Two reasons, honestly. There were a few areas of lazygit I wanted to improve on for my own workflow, and I wanted a real project to build in Zig, which is genuinely powerful and fast, and a joy once it clicks. It compiles to…
I can't really tell why this comment got flagged, so I've vouched it. Maybe I've missed some context
Re: Ziggity – A terminal UI for Git, written in Zig
#64I wonder when is the 900,000 lines single commit coming for Rust rewrite
Re: Ziggity – A terminal UI for Git, written in Zig
#65Earlier quoted context omitted.
you dropped your /s
/s isn't necessary, sarcasm shouldn't be signposted.
Re: Ziggity – A terminal UI for Git, written in Zig
#66This is huge. I've always wanted to use Git in the terminal but never been happy with the underlying language that other TUIs were written in. Now that I know that I'm using developer-managed memory I can be much more comfortable and confident changing between branches, pushing, and pulling, and even merging code. Thanks Simone!
This is just a copy of LazyGit the original and long player git in tui
Re: Ziggity – A terminal UI for Git, written in Zig
#67This is huge. I've always wanted to use Git in the terminal but never been happy with the underlying language that other TUIs were written in. Now that I know that I'm using developer-managed memory I can be much more comfortable and confident changing between branches, pushing, and pulling, and even merging code. Thanks Simone!
lazygit works great and fast enough
Re: Ziggity – A terminal UI for Git, written in Zig
#68just use lazygit, i don't see why i would care if it's zig/go/rust or whatever compiled language
Re: Ziggity – A terminal UI for Git, written in Zig
#69i appreciate that it’s not more rust slop, but i never understood the need for a git frontend.
I started using lazygit a couple years ago, never looked back. It’s great
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
Re: Ziggity – A terminal UI for Git, written in Zig
#70Can we have an honor code policy of no LLM agents used in development if you want to present on Hacker News.
The way I think of it is if we have a forum for painters and then someone just keeps sharing GenAI paintings that he did not actually paint. It’s ridiculous, I want to look at stuff humans painted, not AI.
Yes software does have use, and LLM companies have managed to make it so that anyone can build useful software for themselves if they want. So what’s left, is software as an art to appreciate, and I can’t appreciate AI generated art or software whether it is “good”, “functional”, “idiomatic”, “elegant” whatever. We still watch humans play chess, not computers play against each other though sometimes they can be interesting.
I’m not a “Luddite”, I’m unhappy with the way American AI companies have gone about this, if they released open weights it would be better.
But AI fundamentally changes the meaning of developing software, the way a compiler doesn’t. There’s no building software once you’re using LLM, just as there’s no playing chess when you have a chess engine to help you. And maybe AI code will not look like slop in the future, doesn’t matter, I still don’t really care if an AI built it.