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

// 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 included
  • rediff --cachedStaged changes vs HEAD
  • rediff mainWorking tree vs main
  • rediff main featureTwo branches, side by side
  • rediff HEAD~3..HEAD -- srcA commit range, limited to a path
~/code/rediff
$ 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.

288msto load the 200,000-line file on first request
2.7msto load it again from the server's cache
≈130msfrom opening the page to the first lines on screen
≈330msfrom saving a file to seeing the change on the page

// 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

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.