gitui
A blazing fast terminal user interface for Git, written in Rust.
gitui is a fast, keyboard-driven terminal UI for Git. It brings the comfort of
a GUI Git client to the terminal without sacrificing speed, making it a
compelling alternative to tools like lazygit or reaching for a full GUI app
just to stage a few hunks.
Features
- Stage by hunk or line — interactively stage, reset, or stash individual hunks or even single lines without touching the command line
- Full diff view — syntax-highlighted diffs with scrolling directly in the TUI
- Branch management — create, rename, delete, and checkout branches without leaving the interface
- Commit log — browse history with a filterable log view; inspect any commit's full diff
- Push & fetch — interact with remotes, including SSH and HTTPS authentication support
- Stash management — create, apply, pop, and drop stashes interactively
- Blame view — see who last changed each line of a file
- Fast — consistently outperforms other TUI Git clients in startup time and rendering
Installation
cargo install gitui
Or via your package manager:
# Arch Linux
pacman -S gitui
# Debian / Ubuntu
apt install gitui
# Fedora
dnf install gitui
# macOS
brew install gitui
# Nix
nix-env -iA nixpkgs.gituiUsage
Launch gitui from inside any Git repository:
gituiKey bindings
| Key | Action |
|---|---|
Tab | Cycle between panels |
Enter | Select / expand |
Space | Stage / unstage hunk |
c | Commit staged changes |
p | Push to remote |
F | Fetch from remote |
l | Open commit log |
b | Branch list |
q | Quit |
Key bindings are fully configurable via a key_config.ron file.
Configuration
gitui uses the RON format for configuration. The config file lives at:
- Linux/macOS:
~/.config/gitui/ - Windows:
%APPDATA%\gitui\
You can customise key bindings and the colour theme to match your terminal.