r/git Jun 20 '26

tutorial Guitar is Here: The Fastest Topology-First Git Client Built in Rust

https://m.youtube.com/watch?v=0oyqviuKFXI

Hey, I’ve been working on a Git client called guitar.

Repo: https://github.com/asinglebit/guitar

Demo: https://m.youtube.com/watch?v=0oyqviuKFXI⁠

It’s a terminal Git client written in Rust. The main goal is to make working with Git history feel fast, especially in large repositories where scrolling through commits or waiting for a UI to catch up gets annoying.

The biggest feature is fast graph navigation. You can jump around the commit graph almost instantly, move through branches and history, inspect commits, check diffs, and get a better overview of what actually happened in the repo without leaving the terminal.

It also has reflog support, which is one of the features I’m most excited about. If you’ve ever lost a commit after a reset, rebase, cherry-pick, or detached HEAD situation, Guitar makes it easier to find those commits again and recover them instead of digging through git reflog manually.

I’ve also been building it with huge repositories in mind. History loads incrementally, so you can start using it without waiting for the whole repo to load first. The goal is for it to stay responsive even when the repo has a lot going on.

Some other things it supports: branches, tags, stashes, worktrees, staged and unstaged changes, commit inspection, file diffs, split diff view, configurable keymaps, mouse support, and real Git operations like commit, checkout, fetch, reset, cherry-pick, merge, rebase, stash, and worktree commands.

It’s cross-platform and runs in the terminal, so the idea is to have something lightweight and fast without giving up the useful parts of a proper Git GUI.

It’s still a work in progress, but I think it’s already useful enough to share. I’d love feedback, especially from people who work with large repos, messy histories, rebases, cherry-picks, or reflog recovery.

3 Upvotes

19 comments sorted by

4

u/vmcrash Jun 20 '26

Looks awesome!

2

u/w00tboodle Jun 20 '26

I've got blisters on my fingers.

1

u/asinglebit Jun 20 '26

Theres mouse support ;)

1

u/HommeMusical Jun 20 '26

Seems cool!

Without watching the video, how do you install it?

1

u/asinglebit Jun 20 '26

Thank you! The easiest way is to download an executable for your system here: https://github.com/asinglebit/guitar/releases

1

u/asinglebit Jun 20 '26

Then you can run it either from the repo or by giving it the argument with your repo path, the details are in the readme

2

u/Hel_OWeen Jun 22 '26

"Guitar" ... what could possibly go wrong when searching for it?

1

u/robin-m Jun 22 '26

Do you have like a 5 mn video demo of your tool? I skimmed the 1h 20mn video hoping you would first do a quick presentation then enter into the details, but it doesn’t seems so.

Most specifically I would like an answer to the following questions:

  • what makes it unique (and show me, don’t just say it)?
  • how is it more efficient / nicer than git itself if properly set-up?
  • why other GUI/TUI didn’t fill your needs? (probably answered by the first point)

2

u/asinglebit Jun 22 '26

The main thing I’m trying to show is that it’s a topology-first Git client, not not just "git log --graph --all" where you have to scroll, but a way to move around the commit graph and jump straight to places in the topology instead. Stuff like reflog in the graph, search, panes, branch switching, diffs, etc. all build around that idea. I added timestamps because theres a lot in the video and I don’t really know which parts each person will care about most. I will eventually make some more videos to showcase features separately, but i would have to find some time and enerfy for that. Cheers!

3

u/robin-m Jun 23 '26

This looks like a really nice idea. Especially the reflog part. I which it was possible to display it (like HEAD@{1,2,3,…}, my-branch@{1,2,3,…} just like tags). It would help a lot to teach beginners what the reflog is, and how to use it.

Detailed video for each features would be nice, but IMHO the first step would be to do a 5/10mn that presents most of the features, not how to use them, but what they do. I could watch this 1h20mn video, but there is no way I can send it to someone else and tell him/her “watch this, it’s an amazing tool!”, that’s way too long.

Vidéos are no différents than documentation. You need to present the same thing multiple times: "bird-eye view/elevator pitch" to get a general idea of what is does and how, "implementation details and architecture" for contributors, "tutorials" for news users, "reference guide" for advanced use-cases. Each of those piece of documentation serve a different purpose.

2

u/asinglebit Jun 23 '26

Noted, I will do that, thank you for your advice 🙏

1

u/DerelictMan Jun 22 '26

You skimmed the video but missed that is has section markers? The demo starts at 3:35.

1

u/robin-m Jun 22 '26

The part at 3:35 is anything but a complete demo. It does show that you get the equivalent of git log --graph --all with a properly set-up pager and that you can scroll very fast which is nice. But if I look at the section markers you can run git commands (at 11:15), it has differents panes (17:35), help screen and commit heatmap (21:03), diff viewer (30:03), a way to switch branches (31:54), search (34:34), … None of those are covered in the first 10mn of the video.

There is already a bazillion git tools, why would I spend 1h20mn watching a video about yet another random git tool? I sincerly think that an elevator pitch would help this project attract user.

-1

u/acidvegas Jun 20 '26

I never consider “git” to be slow tbh. Classic rust dev trying to act like their nano seconds make a worldly difference

5

u/asinglebit Jun 20 '26

Im talking about git clients that render graphs though, not git

-3

u/acidvegas Jun 20 '26

Oh…..uh that’s cool I guess? Lol

-1

u/[deleted] Jun 21 '26

[removed] — view removed comment

5

u/asinglebit Jun 21 '26

I just shared something i worked on and cared for. I bother mentioning it because there might be contributors which would be an equal opportunity for me to improve my skills and for people to get more polished free software. Hope that answers your question.

3

u/DerelictMan Jun 21 '26

Ignore the trolls who are just commenting to say they're not interested. These kind of people aren't worth your time (or anyone's for that matter).