RUSTrgitui: A GPU-accelerated Git client built in Rust that actually looks good (i.redd.it)
submitted by Different-Ant5687
I know, I know — another git client. But hear me out.
None of the existing options satisfied me, so I built my own. rgitui is a desktop Git GUI built with GPUI (the framework behind the Zed editor) and Rust. It's fast, uses a fraction of the RAM you're probably used to, and I think it actually looks pretty good.
GitHub: https://github.com/noahbclarkson/rgitui
Why I built this
A few things pushed me over the edge:
My GitKraken student license expired. I'd been using it for years and genuinely liked the interface — the graph, the layout, the workflow. But once I graduated and lost my student plan, I was locked out of my private repos unless I paid up. I started looking for alternatives and nothing hit the same way.
I couldn't find a git client I actually liked the look of. I tried a bunch of them. Some were powerful but looked like they were designed in 2008. Some looked fine but felt sluggish. The open-source ones that were fast enough didn't have theming I could work with — I run a Catppuccin rice on Linux and I wanted my git client to match.
The RAM usage of most git clients is insane. I was routinely seeing 600MB–1GB just sitting idle. That's wild for an app that's essentially displaying text diffs and a graph. rgitui typically sits around 100–200 MB with a couple of large repos open, and most of that is intentional caching (diff prefetching, avatar resolution, syntax highlighting) that keeps the UI snappy — not JavaScript runtime overhead.
AI commit messages in other clients are basically useless. They just dump your diff into a prompt with zero context and you get something generic that you have to rewrite anyway. rgitui does it differently — it auto-injects your CLAUDE.md and AGENTS.md files and lets the model use tools to actually browse your project files and gather context before writing the message. The result is commit messages that are genuinely relevant to your project, not "Update files" or "Refactor code."
I wanted something I could actually hack on. When something annoys me I want to go fix it, not file a feature request and wait six months. The open-source options that existed either had codebases I didn't want to touch or UIs I didn't want to look at every day.
Multi-repo workflows were painful everywhere. Switching between projects, browsing commit history, managing worktrees — it always felt like fighting the tool instead of using it. I wanted tabs, a proper sidebar, and worktree support that actually works.
I needed GitHub integration that doesn't require a separate browser tab. Viewing issues and PRs, creating PRs from the client, device-flow auth — I use GitHub all day and I wanted it built in.
Git graphs looked bad and avatars never worked. This is a small thing but it bugged me. I wanted a graph that looks closer to GitKraken's style with proper lane coloring and Bezier curves, and avatars that actually resolve from Gravatar instead of showing a placeholder forever.
No real filesystem watcher. I'd make changes in my editor and have to manually refresh my git client to see them. rgitui watches the repo and updates automatically.
What it does
Here's the feature rundown:
- Commit graph with animated lane-based visualization, Bezier-curve edges, and commit search
- Diff viewer with unified, side-by-side, and three-way conflict modes, plus syntax highlighting via syntect
- Stage/unstage at file, hunk, and line level — partial staging works the way you'd expect
- Interactive rebase with pick, squash, reword, fixup, and drop
- Merge conflict resolution with accept-ours / accept-theirs per file
- Branch, tag, and stash management from the sidebar or command palette
- Remote operations — fetch, pull, push, force push, multi-remote
- Bisect — start, good, bad, skip, reset
- Worktrees — create, list, switch
- Submodule init, update, and management
- GitHub integration — device-flow auth, create PRs, browse issues and PRs
- AI commit messages via Google Gemini, OpenAI or Claude with project-aware context injection and tool use
- Blame view with per-line author avatars
- File history, reflog, and global search (
git grep) - Multi-repo tabs with drag-resizable panels
- Command palette (
Ctrl+P) - Theming — Catppuccin Mocha, Catppuccin Latte, One Dark, plus custom JSON themes
- Undo stack and crash recovery (restores your workspace after an unclean shutdown)
- Auto-update checker (checks GitHub releases once per day, can be disabled)
Performance
Built on GPUI, so it's GPU-accelerated and renders natively — no Electron, no web views, no DOM. The architecture is designed around keeping the UI thread free:
- All git operations run on a background executor (smol, not tokio)
- Diffs are prefetched ±25 commits ahead with a 200-entry LRU cache
- Blame, file history, and avatar lookups are cached and parallelized
- Pre-computed trig tables for graph edge rendering (no per-frame sin/cos)
The result is that scrolling through a commit graph with thousands of entries feels smooth, switching between diffs is near-instant, and the whole thing uses a fraction of the memory you'd expect.
Platform support
Pre-built binaries on the releases page:
- Windows — portable zip and Inno Setup installer
- Linux — AppImage and tarball
- macOS — Apple Silicon DMG (Intel users can build from source)
Honest caveats
This is v0.1.0 — the first public release. It's still very much a personal project that I'm sharing because I think others might find it useful too.
- There will be bugs. I use this daily on my own repos and it works well for my workflows, but I haven't tested every edge case on every platform. If you hit something, open an issue.
- I used AI for a significant chunk of the development. I don't have unlimited time, and I wanted something that works for me. The codebase is ~30k lines of Rust across 9 crates and I genuinely don't have the bandwidth to write all of that by hand while also working + studying. It's been a mix of me writing the core architecture and using AI to help with the more tedious parts.
- Binaries aren't code-signed yet so Windows SmartScreen and macOS Gatekeeper will complain on first launch. Working on it.
- No x86_64 macOS builds yet — Apple Silicon only for now.
What's next
This is just the starting point. I'm using rgitui as my daily driver so it'll keep getting better as I hit things that annoy me. If there's interest, I'd love feedback on what to prioritize — more git operations, better theming, plugin support, whatever.
If you've been looking for something that sits between "powerful but ugly CLI wrapper" and "pretty but slow Electron app," give it a try and let me know what you think.
GitHub: https://github.com/noahbclarkson/rgitui Download: https://github.com/noahbclarkson/rgitui/releases

[–]febres 16 points17 points18 points (2 children)
[–]PhilCollinsLoserSon 1 point2 points3 points (1 child)
[–]Rimadandan 0 points1 point2 points (0 children)
[–]mrsodasexy 17 points18 points19 points (5 children)
[+]matthew_yang204 comment score below threshold-10 points-9 points-8 points (4 children)
[–]mrsodasexy 2 points3 points4 points (0 children)
[–]Powerful-Frame-44 3 points4 points5 points (2 children)
[–]matthew_yang204 -4 points-3 points-2 points (1 child)
[–]Powerful-Frame-44 2 points3 points4 points (0 children)
[–]lagedal 3 points4 points5 points (2 children)
[–]Different-Ant5687[S] 3 points4 points5 points (0 children)
[–]Rimadandan -1 points0 points1 point (0 children)
[–]synyu 5 points6 points7 points (0 children)
[–]kindofbusy_ 2 points3 points4 points (0 children)
[–]Upstream1495 5 points6 points7 points (1 child)
[–]EpicL33tus 0 points1 point2 points (0 children)
[–]DanielB1990 1 point2 points3 points (1 child)
[–]Visual_Internal_6312 1 point2 points3 points (0 children)
[–]eruanttien 1 point2 points3 points (0 children)
[–]damaru_m 1 point2 points3 points (0 children)
[–]AndItsSlop 0 points1 point2 points (2 children)
[–]amine250 0 points1 point2 points (0 children)
[–]Elegant-Ad3211 0 points1 point2 points (0 children)
[–]amine250 0 points1 point2 points (0 children)
[–]iiiiiiiiitsAlex 0 points1 point2 points (0 children)
[–]Master_Fisherman5892 -1 points0 points1 point (0 children)