GitUI — Blazing-Fast Terminal UI for Git Written in Rust
GitUI brings a Rust-fast terminal interface to Git: browse commits, stage hunks, view diffs, manage branches, and resolve conflicts — all without leaving the keyboard. A great complement (or alternative) to lazygit.
What it is
GitUI is a terminal user interface for Git written in Rust. It lets you browse commits, stage individual hunks, view diffs, manage branches, and resolve merge conflicts entirely from the keyboard without leaving your terminal. It renders instantly even on large repositories thanks to Rust's performance.
GitUI targets developers who prefer the terminal over GUI Git clients but want more visual feedback than raw Git commands provide. It is a complement or alternative to lazygit, offering a similar TUI experience with a focus on speed and low resource usage.
Why it saves time or tokens
Staging specific hunks or lines with git add -p is tedious and error-prone. GitUI provides a visual diff view where you select exactly what to stage with arrow keys. Browsing commit history, comparing branches, and managing stashes all happen without typing Git commands. For developers using AI agents, GitUI provides a fast way to review and stage the changes an agent made before committing.
How to use
- Install GitUI:
brew install gitui(macOS),cargo install gitui, or download the binary - Run
gituiin any Git repository - Navigate with keyboard shortcuts: Tab to switch panels, Enter to stage, c to commit
Example
# Launch GitUI in your repo
cd my-project
gitui
# Keyboard shortcuts:
# Tab - Switch between panels
# Enter - Stage/unstage file or hunk
# c - Open commit dialog
# d - View diff
# b - Branch management
# l - View log
# q - Quit
| Panel | Purpose |
|---|---|
| Status | Modified/staged files |
| Log | Commit history graph |
| Stashing | Save/restore work in progress |
| Diff | Line-by-line changes |
| Branches | Create, switch, merge, delete |
Related on TokRepo
- AI tools for coding — developer productivity tools on TokRepo
- Automation tools — Git and version control helpers
Common pitfalls
- GitUI key bindings differ from lazygit; switching between them requires relearning shortcuts
- Large binary files in the diff view can cause slow rendering; add them to .gitattributes to mark as binary
- GitUI does not support Git LFS operations directly; use the Git CLI for LFS-specific commands
Frequently Asked Questions
Both are terminal Git UIs. GitUI is written in Rust with a focus on startup speed and low memory usage. lazygit is written in Go with a slightly richer feature set and more customization options. Performance on large repos favors GitUI. Feature completeness slightly favors lazygit. Both are actively maintained.
GitUI supports basic rebase operations. For complex interactive rebases with reordering, squashing, and editing, you may need to drop to the Git CLI. GitUI's rebase support covers the most common cases like rebasing onto a branch.
Yes. GitUI supports a configuration file (key_bindings.ron) where you can remap keys to match your preferences. The config file uses the RON format. Place it in your platform's config directory and GitUI picks it up on startup.
Yes. GitUI is cross-platform and runs on Windows, macOS, and Linux. The Rust binary compiles natively for all platforms. On Windows, it works in CMD, PowerShell, and Windows Terminal with full color and Unicode support.
Open the diff view for a file, navigate to the hunk you want, and press Enter to stage the entire hunk. For line-level staging, select individual lines within a hunk using the selection keys and stage only those lines. This provides fine-grained control over what goes into each commit.
Citations (3)
- GitUI GitHub— GitUI is a blazing-fast terminal UI for Git written in Rust
- Git Docs— Git staging and diff operations
- Rust— Rust programming language for performance-critical applications
Related on TokRepo
Discussion
Related Assets
Moodle — Open-Source Learning Management System
The most widely used open-source learning platform, providing course management, assessments, and collaboration tools for educators and organizations worldwide.
Sylius — Headless E-Commerce Framework on Symfony
An open-source headless e-commerce platform built on Symfony and API Platform, designed for developers who need a customizable and API-first commerce solution.
Akaunting — Free Self-Hosted Accounting Software
A free, open-source online accounting application built on Laravel for small businesses and freelancers to manage invoices, expenses, and financial reports.