gitui

A blazing fast terminal user interface for Git, written in Rust.

Screenshot of gitui

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.gitui

Usage

Launch gitui from inside any Git repository:

gitui

Key bindings

KeyAction
TabCycle between panels
EnterSelect / expand
SpaceStage / unstage hunk
cCommit staged changes
pPush to remote
FFetch from remote
lOpen commit log
bBranch list
qQuit

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.