Review and refine Git diffs before you push
The README currently lacks installation instructions for Arch Linux users, who represent a significant portion of the Linux community. This forces Arch users to either build manually from source or use the generic Go install method, both of which bypass the benefits of package management (dependency tracking, easy updates, and system integration). Add AUR installation instructions offering both pre-built binary and source-based options. This aligns with the existing package manager approach used for macOS (Homebrew) and provides Arch users with a native installation path that integrates with their system's package management workflow. Signed-off-by: Javier Tia <floss@jetm.me> |
||
|---|---|---|
| .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
AUR (Arch Linux)
Binary (pre-built):
pikaur -S difi-bin
Build from source:
pikaur -S difi
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