Show HN: Deff – Side-by-side Git diff review in your terminal (github.com)
deff is an interactive Rust TUI for reviewing git diffs side-by-side with syntax highlighting and added/deleted line tinting. It supports keyboard/mouse navigation, vim-style motions, in-diff search (/, n, N), per-file reviewed toggles, and both upstream-based and explicit --base/--head comparisons. It can also include uncommitted + untracked files (--include-uncommitted) so you can review your working tree before committing.
Would love to get some feedback
34 comments
[ 2.5 ms ] story [ 55.1 ms ] thread[tpope's vim-fugitive]: https://github.com/tpope/vim-fugitive
I'll paste it next time I'm on that machine.
[on sourcehut]: https://git.sr.ht/~jbaber/shadiff
[on github]: https://github.com/jbaber/shadiff
I admit I haven't looked super hard yet, I settled on configuring git to use delta [0] for now and I'm happy with it, but I'm curious if anyone has a workflow for reviewing/iterating on diffs in the terminal that they'd be willing to share. Also open to being told that I'm lightyears behind and that there's a better mental model for this.
[0] https://github.com/dandavison/delta/
[1]: https://alexpasmantier.github.io/television/
- even faster, especially if you have couple thousand files and just want to press "u" for some time and see them very quickly all get staged
- has this split-view diff opened for a file
Otherwise tig is one of my favorite tools to quickly commit stuff without too many key presses but with review abilities, i have its "tig status" aliased to "t"
What is most useful though is a 3-panel setup, like JetBrains -- still the best git client I have worked with.
...I really just like the way the Jetbrains IDEs do it, and I wish there were a TUI version that I could launch automatically from the git cli.
It probably explains why there is so many data leaks recently but it is like we did a 20 years jump back in time in terms of security in just a few years.
And a link to an asciicinema would help a lot too.
---
Also, I'm not sure how useful the side-by-side view is.
The second example (https://github.com/flamestro/deff/blob/main/docs/example_02....) is confusing.
The left side has lines 1365-1371 having the same code as lines 1374-1380 on the right side, yet they're not aligned with each other.
Most diff views would put padding between lines 1364-1365 on the left side so lines 1365-1371 are aligned with 1374-1380 on the right side.
Great work on deff, would love to brainstorm here :)
I use it with
It uses opentui, the same framework uses by opencode.
It can also render diffs to images, pdf and html. Very useful for agents to share diffs in remote environments like Openclaw or Kimaki
https://github.com/remorses/critique