Review and refine Git diffs before you push
Go to file
Tommy Guo fc0fb2ba36
Enhance README with Git integration and formatting
Updated README.md to include new sections for Git integration and improved formatting.
2026-02-03 11:02:25 -05:00
.github/workflows chore: prepare for release 2026-01-30 17:35:56 -05:00
cmd/difi chore: default against HEAD 2026-02-01 23:48:53 -05:00
internal fix: empty-state 2026-02-01 00:33:04 -05:00
.goreleaser.yaml chore: add goreleaser config 2026-01-30 22:43:17 -05:00
go.mod feat: config yaml support 2026-01-30 12:46:02 -05:00
go.sum feat: config yaml support 2026-01-30 12:46:02 -05:00
LICENSE Update copyright owner in LICENSE file 2026-02-01 21:13:57 -05:00
README.md Enhance README with Git integration and formatting 2026-02-03 11:02:25 -05:00

difi

Review and refine Git diffs before you push

difi_demo

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/vim to fix issues.
  • ⌨️ Keyboard-First — Navigate everything with h j k l. No mouse required.

(back to top)

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.

(back to top)

Workflow

  • Run difi in any Git repository.
  • By default, it compares your current branch against main.
cd my-project
difi

(back to top)

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

(back to top)

Neovim Integration

Get the ultimate review experience with difi.nvim.

  • Auto-Open: Instantly jumps to the file and line when you press e in 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 difi session target.

Get difi.nvim

(back to top)

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

(back to top)

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

(back to top)

Star History

Star History Chart

(back to top)


Made with ❤️ by oug-t