gitui is a blazing-fast terminal UI for git written in Rust. It provides a keyboard-driven interface for common git operations with minimal dependencies and excellent performance.
Features #
- Fast - Written in Rust, starts instantly
- Keyboard-driven - No mouse required
- Minimal dependencies - Single binary
- Async operations - Non-blocking UI
- Popup friendly - Works great in tmux popups
Setup #
Install via package manager:
# Via mise (recommended)
mise install gitui
# Arch Linux
sudo pacman -S gitui
# macOS
brew install gitui
# Cargo
cargo install gitui
Launching #
gitui
Or from within a git repo with Ctrl+G (from zsh config).
Key Bindings #
Global #
| Key | Action |
|---|---|
? |
Help |
q |
Quit |
Tab |
Switch panel (Status, Log, Diff) |
1-3 |
Jump to panel |
Status Panel #
| Key | Action |
|---|---|
β/β |
Navigate files |
Space |
Stage/unstage file |
Enter |
View diff |
a |
Stage all |
r |
Revert changes |
c |
Commit |
p |
Push |
f |
Pull/Fetch |
b |
Branch |
h |
Stash |
Commit #
| Key | Action |
|---|---|
c |
Open commit dialog |
Ctrl+s |
Submit commit |
Esc |
Cancel |
Log Panel #
| Key | Action |
|---|---|
β/β |
Navigate commits |
Enter |
View commit details |
r |
Revert commit |
e |
Edit past commit (rebase) |
Branch #
| Key | Action |
|---|---|
b |
Open branch list |
c |
Create branch |
d |
Delete branch |
m |
Merge branch |
Enter |
Checkout branch |
tmux Integration #
From .tmux.conf:
bind -n M-F display-popup -h 95% -w 95% -d '#{pane_current_path}' -E 'gitui'
Opens gitui in a popup with Alt+Shift+F for full-screen git operations.
From .zshrc:
bindkey -s '^g' 'gitui\n'
Opens gitui with Ctrl+G in current shell.
Workflow #
Typical git workflow with gitui:
- Edit files in neovim
- Stage changes with
Spacein gitui - Review diff with
Enter - Commit with
cand write message - Push with
p
All without leaving the terminal or using a mouse.
Comparison with lazygit #
gitui is my primary git TUI because:
- Simpler - Less configuration needed
- Faster - Smaller binary, quicker startup
- Popup-friendly - Works great in tmux popups
- Rust - Aligns with my other Rust tools
I keep lazygit installed as an alternative when I need more advanced features.