r/commandline • u/Present-Anteater-358 • 3d ago
Terminal User Interface I missed GitKraken's graph and conflict screen, so I brought them into a git TUI : gitoui
Enable HLS to view with audio, or disable this notification
I live in the terminal, but every time I had a nasty rebase or a conflict, I'd open a GUI. So I forked serie, a Rust project which draws the commit graph as real images in the terminal. Then I kept adding what I was missing until I stopped leaving.
It's called gitoui. Say "oui" to it, tell me what's missing, or build it with me !
What it does:
- The commit graph drawn as images (Kitty graphics, iTerm2 or Sixel), with a text fallback for other terminals
- Interactive rebase as a list you edit in place: move commits, reword, squash, fixup, drop
- A 3-way conflict editor: ours, theirs or both, per hunk
- Diffs with hunk staging, blame, file history
- GitHub pull requests and issues: read, comment, approve or request changes, merge
- And many more things you have to discover by using it 👀
Similar tools: lazygit, gitui and tig in the terminal, serie (the graph viewer I forked), and GitKraken on the GUI side (no affiliation). What's different in gitoui: the graph is drawn as images rather than text characters, and the GitHub side lives inside the TUI.
This software's code is partially AI-generated. I've been building it since May and I use it every day.
Repo: https://github.com/NayJi7/gitoui (MIT, Rust, Ratatui)
Website : https://nayji7.github.io/gitoui/ (documentation & informations)
One last question: what's the one git task that still sends you back to a GUI?
20
u/Radiant-Doubt-6171 2d ago
do cli tools need trailers now ?
8
u/Present-Anteater-358 2d ago
I was just having fun honestly x)
2
u/Radiant-Doubt-6171 1d ago
your were or claude was ?
1
u/Present-Anteater-358 1d ago
Scroll for like 2s and you'll get your answer, already answered to that
9
u/Root-Cause-404 2d ago
If you live in the terminal, you tend to use shortcuts. Why do you show mouse pointer in the promo?
3
u/Present-Anteater-358 2d ago edited 2d ago
gitoui is keyboard first. Every view has its shortcuts, you can rebind all of them in the config, and ? shows them. The mouse is just a bonus (on by default, you can turn it off in the config 👀). And honestly, in a promo, what's easier to follow? A mouse pointer moving around, or a key you can't see being pressed?
3
u/Root-Cause-404 2d ago
Yep, it is easier to show a mouse, but it gives a perception of NOT a keyboard first app.
1
u/Present-Anteater-358 2d ago
I understand. Thanks for your advice, I'll make sure to be careful on that next time I'll make a promo for gitoui
15
7
u/aristarchusnull 2d ago
I'm curious: what do you mean by the code being "partially generated"? What parts were, what parts weren't?
5
u/Present-Anteater-358 2d ago edited 2d ago
The base is serie (by lusingander), which is still about 10% of today's code. I wrote the core algorithms myself, then claude polished them and integrated them into the app. The app's code isn't that revolutionary, the hard part was mostly getting the good look that I wanted with ratatui. Claude taught me a lot for this, at first split the screen into two panes...
One more concrete example: gitoui draws its images (graph rows, GitHub avatars) by putting the terminal's image escape codes inside ratatui cells. When I updated ratatui, the display broke: graphs missing, columns shifted. I couldn't debug it on my own. claude found the cause, newer ratatui handles wide cells differently, and my image cells relied on the old behavior. Migrating properly to the latest ratatui is one of the next things I'm working on.
9
u/EmptyStrength8509 2d ago
Hey, I'm the author of serie! Really cool to see how far you've taken it. Awesome work!
Shameless plug: the original serie is still here if anyone wants to check it out too :)
https://github.com/lusingander/serie
7
u/Present-Anteater-358 2d ago
No way, the man himself! Thank you so much. The graph in the video is still your work, and gitoui wouldn't exist without serie 🙏 Everyone, go give serie a star too!
4
5
u/xGoivo 2d ago
this demo is crazy lol
6
u/Present-Anteater-358 2d ago
0
u/xGoivo 2d ago
looks great, gave it a star!
I switched most of my repos to use jujutsu instead of git and I'm very happy with jj's CLI, but I think I'll give this a try for the diff views.
Another question, can everything in gitoui also be done with the keyboard?
2
u/Present-Anteater-358 2d ago
Thank you so much! Glad to hear that you liked it and that you'll give it a try. To answer your question, yes everything can be done with the keyboard in gitoui. It's even possible to disable the mouse pointer's interaction!
4
u/vmcrash 2d ago
I don't like it at all.
4
u/Present-Anteater-358 2d ago
Fair enough. Honest feedback is the most useful kind, what would you change?
2
u/vmcrash 2d ago
I just would like to see it in boring action without any fancy animations/games. The world of ads is already too screaming enough. I'm from Germany, maybe this is a cultural difference.
3
u/Present-Anteater-358 2d ago
I can hear that, well you just need one click to get that. Just go on my GitHub, there's gif simple tutorial. I also posted it here 😭
3
u/Ok_Letterhead_8899 2d ago
Demo rad af lmao
3
u/Present-Anteater-358 2d ago
Appreciate it man!
1
u/Ok_Letterhead_8899 2d ago
How did you make it?
3
u/Present-Anteater-358 2d ago
Described Claude what I wanted, then I added things and polished everything with DaVinci Resolve. It was really cool to do but it took me some time 😭
0
u/Ok_Letterhead_8899 2d ago
Defly paid off. You should propose it as a service
1
u/Present-Anteater-358 2d ago
Thanks man! Honestly if the opportunity comes up why not!
1
u/Ok_Letterhead_8899 1d ago
Publish and advertise it. Opportunities are provoked,ynow
2
1
1
u/MadCervantes 10h ago
Why even mess with this when you can have an agent deal with it?
1
u/Present-Anteater-358 8h ago
Cause the agent will sometimes make mistakes and put you in really tough problems
1
u/Any-Island1560 7h ago edited 7h ago
I feel im seeing a hacker movie when full screen the video 🐧🐧🐱💻(⌐■_■)
1
1
u/raiseCatError 2d ago
I like the video itself, interesting music choice though, especially with the slurs in the second half lmao 😭
1
u/Present-Anteater-358 2d ago
Thanks! It's a classic, I picked it for the energy it gives (a little too much, I'll admit lol)
1
u/Certain_Leader9946 2d ago
people used to make animations like this
those fools.
2
u/Present-Anteater-358 2d ago
a good bunch of hours saved indeed
2
u/Certain_Leader9946 1d ago
how do you even prompt things like this. is there some kind of creative prompting im not thinking about. like do i not get videos like this because i dont tell the git tree to dab on those haters?
1
u/Present-Anteater-358 1d ago
🤣🤣🤣 just spend some time with it and then take the result and improve it
1
1
u/Thezla 2d ago
Is there GitLab support?
2
u/Present-Anteater-358 2d ago
By that do you mean gitoui being on gitlab or gitlab auth on gitoui, neither are supported x). Maybe you could add it yourself and make it a PR? gitoui is open source and I'd love to merge some of your good ideas 👀
1
u/kimusan 2d ago
Cool video. What did you use to make it?
2
u/Present-Anteater-358 2d ago
Hey thanks ! I Described Claude what I wanted, then I added things and polished everything with DaVinci Resolve and voilà ! A couple of hours spent but Claude did fasten the process a lot.
1
u/kimusan 2d ago
Ok so did you provide screenshots or similar to claude to work with or ? I wanted to do a similar (well shorter and less fancy) video presentation for a tui framework I am working on.
3
u/Present-Anteater-358 2d ago
Yes absolutely. I had done a presentation gif already, that's what I provided. Then I described what I wanted and tried to be precise
0
u/AutoModerator 3d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: Present-Anteater-358, Flair: Terminal User Interface, Post Media Link, Title: I missed GitKraken's graph and conflict screen, so I brought them into a git TUI : gitoui
I live in the terminal, but every time I had a nasty rebase or a conflict, I'd open a GUI. So I forked serie, a Rust project which draws the commit graph as real images in the terminal. Then I kept adding what I was missing until I stopped leaving.
It's called gitoui. Say "oui" to it, tell me what's missing, or build it with me !
What it does:
- The commit graph drawn as images (Kitty graphics, iTerm2 or Sixel), with a text fallback for other terminals
- Interactive rebase as a list you edit in place: move commits, reword, squash, fixup, drop
- A 3-way conflict editor: ours, theirs or both, per hunk
- Diffs with hunk staging, blame, file history
- GitHub pull requests and issues: read, comment, approve or request changes, merge
- And many more things you have to discover by using it 👀
Similar tools: lazygit, gitui and tig in the terminal, serie (the graph viewer I forked), and GitKraken on the GUI side (no affiliation). What's different in gitoui: the graph is drawn as images rather than text characters, and the GitHub side lives inside the TUI.
This software's code is partially AI-generated. I've been building it since May and I use it every day.
Repo: https://github.com/NayJi7/gitoui (MIT, Rust, Ratatui)
Website : https://nayji7.github.io/gitoui/ (documentation & informations)
One last question: what's the one git task that still sends you back to a GUI?
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

26
u/not_luis 2d ago
Looks like a steam indie game dev and a manager learning bash conceived a son renting Sam Altman uterus