git diffin your browser, before you push
A new redesigned way to review diffs.
rediff opens any git diff in a fast, GitHub-style review page. No pull request, no pushing first: one binary, on your laptop or your remote dev box.
- Written in Rust
- Opens a 200k-line diff in under 300 ms
- One 6–8 MB binary
- ~13 MB of memory when idle
- Works on remote dev boxes
$ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rediff-app/rediff/releases/latest/download/rediff-installer.sh | sh
> powershell -ExecutionPolicy Bypass -c "irm https://github.com/rediff-app/rediff/releases/latest/download/rediff-installer.ps1 | iex"
// usage
One command, any comparison
Run rediff in a repository. It starts a local server, prints its address and opens your browser.
rediffWorking tree vs HEAD, untracked files includedrediff --cachedStaged changes vs HEADrediff mainWorking tree vsmainrediff main featureTwo branches, side by siderediff HEAD~3..HEAD -- srcA commit range, limited to a path
$ rediff main rediff: main ↔ working tree local: http://127.0.0.1:41823/auth?token=5c1f8e0a93d24b7e6f0c2a91d8e4b3f7 network: http://10.0.4.27:41823/auth?token=5c1f8e0a93d24b7e6f0c2a91d8e4b3f7
// features
The pull request review, without the pull request
Everything you rely on when reviewing on GitHub, pointed at the changes on your own machine.
Split or unified
Switch layouts any time. Long lines wrap to fit, and both sides of a split diff stay aligned.
Track what you've read
Mark files Viewed to collapse them, or hide them entirely. A mark clears itself when that file changes again.
Every commit, one click away
History lists the branch's commits; open any one to see its changes. Path arguments filter the list too.
Live as you edit
rediff watches the working tree, index and refs. Save a file and the page catches up in about a third of a second.
Made for remote dev boxes
A network address is printed next to the local one, so a diff on a remote machine opens in your laptop's browser. Every URL carries a one-time token.
Huge diffs stay smooth
Files load as you scroll to them and only visible lines are rendered, so a 200,000-line change scrolls at full frame rate.
Exactly what git says
rediff runs git itself, so .gitattributes, rename detection and your diff.algorithm all match git diff.
Keyboard first
j k between files, / to filter, v to mark viewed, c to collapse, ? for the rest.
// performance
Fast where it counts
Measured on a 505-file comparison where one file has 200,000 changed lines.
// install
Install in one line
- A single binary with the web UI built in
- Prebuilt for macOS, Linux and Windows, on x86_64 and ARM64
- Upgrade any time with
rediff-update
$ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rediff-app/rediff/releases/latest/download/rediff-installer.sh | sh
> powershell -ExecutionPolicy Bypass -c "irm https://github.com/rediff-app/rediff/releases/latest/download/rediff-installer.ps1 | iex"
git clone https://github.com/rediff-app/rediff
cd rediff
make install
Installs to ~/.cargo/bin. Building from source needs Rust, Node.js 20+ and git. Archives for every platform are on GitHub Releases.
// faq
Common questions
How do I view a git diff in the browser?
Install rediff and run rediff in a repository. It starts a local server, prints its address and opens your browser. Add a branch or a commit range to compare something else, such as rediff main or rediff HEAD~3..HEAD.
How do I review my changes before pushing or opening a pull request?
Run rediff to see the working tree against HEAD, untracked files included, or rediff --cached to see only what's staged. Everything is read from your local repository, so nothing has to be pushed first.
Can I review a diff on a remote dev box or over SSH?
Yes. Copy the binary to the remote machine and open the printed network address in your laptop's browser. That address is plain HTTP, so on an untrusted network use --host 127.0.0.1 with SSH port forwarding.
How large a diff can rediff handle?
A file with 200,000 changed lines loads in about 300 ms and scrolls at full frame rate, because files load as you reach them and only visible lines are rendered. The limit is around 1.5 million displayed lines across all expanded files.
What do I need to run rediff?
Only git. The server, web UI and syntax highlighting for 39 languages are compiled into one executable, with no Node.js, runtime or config to set up. It runs on macOS, Linux and Windows.
Does my code leave my machine?
No. rediff is a local server that reads your repository with git and serves the page itself, with no cloud service or account. Every URL carries a one-time token, and the API can't be read without it.
Read your next diff in rediff
Install it, run it in any repository, and review the change before anyone else has to.