Review and refine Git diffs before you push
| .github | ||
| cmd/difi | ||
| internal | ||
| .goreleaser.yaml | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
difi
Review and refine Git diffs before you push
Why difi?
git diff shows changes. difi helps you review them.
- ⚡️ Instant — Built in Go. Launches immediately with no daemon or indexing.
- 🎨 Structured — A clean file tree and focused diffs for fast mental parsing.
- 🧠 Editor-Aware — Jump straight to the exact line in
nvim/vimto fix issues. - ⌨️ Keyboard-First — Navigate everything with
h j k l. No mouse required.
Installation
Homebrew (macOS & Linux)
brew tap oug-t/difi
brew install difi
Go Install
go install github.com/oug-t/difi/cmd/difi@latest
Manual (Linux / Windows)
- Download the binary from Releases and add it to your
$PATH.
Workflow
- Run difi in any Git repository.
- By default, it compares your current branch against main.
cd my-project
difi
Controls
| Key | Action |
|---|---|
Tab |
Toggle focus between File Tree and Diff View |
j / k |
Move cursor down / up |
h / l |
Focus Left (Tree) / Focus Right (Diff) |
e / Enter |
Edit file (opens editor at selected line) |
? |
Toggle help drawer |
q |
Quit |
Neovim Integration
Get the ultimate review experience with difi.nvim.
- Auto-Open: Instantly jumps to the file and line when you press
ein the CLI. - Visual Diff: Renders diffs inline with familiar green/red highlights—just like reviewing a PR on GitHub.
- Interactive Review: Restore a "deleted" line by simply removing the
-marker. Discard an added line by deleting it entirely. - Context Aware: Automatically syncs with your
difisession target.
Git Integration
To use difi as a native git command (e.g., git difi), add it as an alias in your global git config:
git config --global alias.difi '!difi'
Now you can run it directly from git:
git difi
Contributing
git clone https://github.com/oug-t/difi
cd difi
go run cmd/difi/main.go
Contributions are especially welcome in:
- diff.nvim rendering edge cases
- UI polish and accessibility
- Windows support
Star History
Made with ❤️ by oug-t