What is GitUI?
GitUI is a terminal user interface for git, written in Rust. It gives you the parts of a git GUI that are genuinely worth having, staging individual hunks and lines, reading diffs, browsing and searching the log, stashing, blaming, branching and pushing, without leaving the terminal and without the freezes that popular GUIs hit on large repositories.
⚡ Key Features of GitUI
⚡ Fast on Huge Repositories
Upstream's own benchmark parses the whole Linux kernel history in about 24 seconds using around 170 MB of memory, where heavier GUIs freeze or crash.
✂️ Stage Hunks and Lines
Stage, unstage, revert and reset whole files, single hunks or individual lines, the reason most people open a git GUI in the first place.
📜 Log and Diffs
Browse and search the commit log, inspect any commit's diff, and blame a file line by line, all in the same keyboard-driven interface.
📦 Stashing
Save, pop, apply, drop and inspect stashes from a dedicated tab, instead of remembering which git stash subcommand does what.
🌿 Branches and Remotes
Create, rename, delete and check out branches, work with remotes, and push or fetch without dropping back to the shell.
⌨️ Context-Based Help
? lists exactly the keys that work in the current view, and key_bindings.ron lets you rebind everything, vim-style, if that is your habit.
apt upgrade keeps you on the latest version.
📦 Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh and Zed; GitUI is not one of them, so the repository above is the only way to get it today, ask and it can be enrolled.
🧩 About the extrepo option. extrepo is Debian's own tool for external repositories: it writes the sources file and installs the signing key for you, checking the key against signed metadata first. This repository is registered with it as griffo, and the always-free mirror as griffo-free, so on Debian (bookworm, trixie, forky and sid) the commands above are the whole setup.
extrepo sets up the sources file and the key only, so a subscription's credentials still go in /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu is not covered, because extrepo publishes metadata for Debian suites only: there, use the sudo or root commands.
Step 2: Install GitUI
# Install latest GitUI
sudo apt install gitui
# Verify installation
gitui --version# Install latest GitUI
apt install gitui
# Verify installation
gitui --versionStep 3: First run and configuration
# Open it inside any git repository
cd /path/to/your/repo
gitui
# Press ? at any time for the keys that work in the current view
# Theme and key bindings live in the config directory
ls ~/.config/gitui/
# For example, a vim-style keymap
$EDITOR ~/.config/gitui/key_bindings.ron🎯 Basic Usage Examples
Opening repositories:
# The repository in the current directory
gitui
# A specific repository, without cd-ing into it
gitui -d ~/src/linux
# A separate work tree and git directory
gitui -d ~/src/project/.git -w ~/src/project
# Start with a file already selected in the files tab
gitui -f src/main.rsLook and feel:
# A theme file from ~/.config/gitui/
gitui -t mytheme.ron
# A custom keybinding file
gitui -k ~/.config/gitui/key_bindings.ron
# Custom key symbols, for a keyboard that draws them differently
gitui -s ~/.config/gitui/key_symbols.ron
# Use the filesystem watcher instead of tick-based refreshes
gitui --watcherWhen something needs debugging:
# Collect environment details for a bug report
gitui --bugreport
# Write a log while reproducing a problem
gitui --logging --logfile /tmp/gitui.log
# The git CLI is still there for what GitUI does not cover
git rebase -i origin/main
# HTTPS pushes need a credential helper configured explicitly
git config --global credential.helper store🔧 Tool Integrations
GitUI sits on top of your existing git setup:
- Your repositories: an ordinary git repository, read and written through a Rust git backend, nothing about it is GitUI-specific
- Hooks:
pre-commit,commit-msg,post-commitandprepare-commit-msgrun just as they do from the command line - GPG signing: signed commits work, with the caveats upstream documents in its issue tracker
- Themes and keymaps:
theme.ron,key_bindings.ronandkey_symbols.ronin~/.config/gitui/ - Over SSH: fast enough on a remote machine that editing a commit on a server stops being a chore; the amd64 build needs no shared libraries
🚀 Why Choose deb.griffo.io?
- Official Debian: does not package GitUI at all,
apt install gituifails on a stock system - cargo install gitui: current, but a long Rust compile per machine, outside apt and outside your upgrade path
- Upstream tarball: the official binary, which you re-download by hand for every release
- deb.griffo.io: latest version with automatic updates
- ✅ Still Pre-1.0: GitUI gains real features in ordinary releases, so running the current one is the difference between having submodule support, log search and blame or not
- ✅ The Only apt Source: GitUI is in neither the Debian nor the Ubuntu archives; this repository packages the official upstream build
- ✅ Automatic Updates: packages updated within hours of upstream releases
- ✅ Honest Packaging: the upstream binary at
/usr/bin/gitui: upstream ships no man page and no shell completions, so the package does not invent any - ✅ Three Architectures: amd64 (a static musl build), arm64 and armhf, with the library dependencies declared where upstream links against glibc
- ✅ Multi-Distribution: works on Bookworm, Trixie, Forky and Sid
- ✅ Easy Maintenance: standard apt commands for updates
📦 Package Build Repository
The Debian packages are automatically built and maintained in this GitHub repository:
- 🎛️ gitui-debian - Latest release builds
🔗 Related Packages
Also available from deb.griffo.io:
- lazygit - The other terminal git UI, if you prefer its layout
- Jujutsu - Git-compatible VCS with first-class rebases
- Forgejo - Self-hosted forge to push those branches to
- Neovim - Editor for whatever the diff sends you to
💝 Support This Project
If this repository saves you time and effort, please consider supporting it!