gitt (“git-tee”)
An interactive git client for the terminal.
gitt replaces the git commands you run twenty times a day with visible, navigable screens: fuzzy-find a commit, stage what you meant to stage, read a colorized diff, jump between branches — without memorizing another flag. It's a single Rust binary, it starts instantly, and it leaves your terminal exactly as a native git command would.
gitt log # browse history, fuzzy search, preview diffs, checkout, copy SHA, open PR
gitt status # stage / unstage / discard, then commit or amend
gitt diff # read changes: unstaged, staged, working tree, or vs the main branch
gitt branch # switch, create, delete branches; see each one's PR status---
Install
brew tap danielkag/gitt
brew trust danielkag/gitt # Homebrew 6+ requires this for any third-party tap
brew install gittOr build from source (Rust 1.85+, edition 2024):
cargo install --locked --git https://github.com/danielkag/gittmacOS only for now. Requires git; gh is optional (PR status and "open PR").
---
The four screens
Every screen prints its own keymap along the bottom, so you never have to come back here to use one.
gitt log
Finding the commit you're thinking of. Type a few fragments — part of a message, a teammate's name, half a SHA — and the list narrows as you type, showing you which characters matched. From there you can read its diff, check it out, grab the full SHA, or open its PR. History streams in progressively, so a monorepo opens as fast as a toy repo. Colors follow glogm.
gitt status
Deciding what goes into this commit. Your working tree as one list, each file's diff a keypress away, staging and unstaging as you review. When you commit or amend, gitt hands off to your real terminal — so pre-commit hooks stream their output live and a failure stays on screen where you can re-run it.