+0.17 Show HN: Deff – side-by-side Git diff review in your terminal (github.com S:+0.13 )
119 points by flamestro 4 days ago | 66 comments on HN | Mild positive Landing Page · v3.7 · 2026-02-28 09:52:18 0
Summary Open Source & Information Access Acknowledges
This GitHub repository page presents 'deff,' a Rust-based tool for interactive side-by-side code review of git diffs. The content consists primarily of technical documentation including installation instructions, usage examples, and contributing guidelines. The project's open-source MIT license and publicly accessible code implicitly acknowledge principles of information freedom (Article 19), intellectual property liberalization (Article 17), and collaborative development practices (Articles 23, 26), though the content itself does not directly address or advocate for human rights concerns.
Article Heatmap
Preamble: ND — Preamble Preamble: No Data — Preamble P Article 1: ND — Freedom, Equality, Brotherhood Article 1: No Data — Freedom, Equality, Brotherhood 1 Article 2: ND — Non-Discrimination Article 2: No Data — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: +0.13 — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.23 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: +0.10 — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: ND — Standard of Living Article 25: No Data — Standard of Living 25 Article 26: +0.10 — Education 26 Article 27: ND — Cultural Participation Article 27: No Data — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Editorial Mean +0.17 Structural Mean +0.13
Weighted Mean +0.15 Unweighted Mean +0.14
Max +0.23 Article 19 Min +0.10 Article 23
Signal 4 No Data 27
Volatility 0.05 (Low)
Negative 0 Channels E: 0.6 S: 0.4
SETL +0.08 Editorial-dominant
FW Ratio 53% 9 facts · 8 inferences
Evidence 5% coverage
2M 2L 27 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.00 (0 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.13 (1 articles) Expression: 0.23 (1 articles) Economic & Social: 0.10 (1 articles) Cultural: 0.10 (1 articles) Order & Duties: 0.00 (0 articles)
HN Discussion 14 top-level · 18 replies
meain 2026-02-26 18:53 UTC link
I have been using https://github.com/jeffkaufman/icdiff for the longest time to get side by side diffs.
rileymichael 2026-02-26 19:03 UTC link
getting users to adopt a new tool with its own incantations is a tough sell. git supports specifying an external pager so folks can plug in alternatives (such as https://github.com/dandavison/delta) while still using the familiar git frontend
yottamus 2026-02-26 19:13 UTC link

    git difftool --tool=vimdiff
llbbdd 2026-02-26 19:27 UTC link
I was looking for a good TUI tool for diffs recently, but I'm not sure yet if what I want exists already (and I don't think this tool does it (yet?)). I've been moving my workflow out of VSCode as I'm using TUI-driven coding agents more often lately but one thing I miss from my VSCode/GitHub workflow is the ability to provide a comment on lines or ranges in a diff to provide targeted feedback to the agent. Most diff tools seem to be (rightfully) focused on cleanly visualizing changes and not necessarily iterating on the change.

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/

jamiecode 2026-02-26 19:28 UTC link
The specific gap side-by-side covers for me is reviewing changes on a remote box without firing up an IDE. Delta is great but keeps the unified format. icdiff does the split view but is pretty barebones. So there's definitely space here.

What nobody's mentioned yet is difftastic. Takes a completely different approach - parses syntax trees instead of lines, so indentation changes and bracket shuffles don't show up as noise. Worth a look if you're comparing options.

Main question I'd have: how does it hold up on large files? 5k+ line diffs are where most of these tools either choke or produce unreadable output. That'd be the test I'd run first.

ZoomZoomZoom 2026-02-26 19:30 UTC link
Why shouldn't this be a simple wrapper to tie Delta to some kind of file browser or a thing like television[1]?

[1]: https://alexpasmantier.github.io/television/

teddyh 2026-02-26 19:39 UTC link

  emacs --eval='(ediff-files "file1" "file2")'
(The “|” key toggles side-by-side view.)
k_bx 2026-02-26 19:44 UTC link
What I would love to see is "tig" replacement that is:

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

raphinou 2026-02-26 20:03 UTC link
Looks interesting. I'm currently using https://tuicr.dev/ , of which I like that the first screen it shows is the choice of commit range you want to review. Might be something to consider for deff?
hatradiowigwam 2026-02-26 20:14 UTC link
vimdiff is pretty fast, and is likely installed on your linux system without you realizing it.
insane_dreamer 2026-02-26 20:29 UTC link
we need something like this in lazygit -- which is excellent all around but lacking in visual diffing/merging.

What is most useful though is a 3-panel setup, like JetBrains -- still the best git client I have worked with.

dec0dedab0de 2026-02-26 21:12 UTC link
looks pretty good at a glance, though I would like to see three views for handling conflicts. Target on the left, source on the right, and the combined result in the middle.

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

greatgib 2026-02-26 21:51 UTC link
It blows my mind that nowadays, some random tools on internet tells you to do "curl -fsSL https://.... | bash" to install some "binary" things and a lot of people will do it without hesitation.

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.

zem 2026-02-26 22:14 UTC link
will this play well with jj?
lf-non 2026-02-26 19:01 UTC link
I also use icdiff, but it is good to have the file-awareness for git diff esp. the ability to quickly skip files that I know aren't important.
metalliqaz 2026-02-26 19:21 UTC link
but is it blazingly fast?
kodomomo 2026-02-26 20:01 UTC link
Octo [0] for nvim lets you submit reviews, add comments on ranges, reply to threads, etc.

This in conjunction with gh-dash [1] to launch a review can get you a pretty nice TUI review workflow.

[0] https://github.com/pwntester/octo.nvim

[1] https://github.com/dlvhdr/gh-dash

*Edit: I see you meant providing feedback to an agent, not a PR. Well that's what I get for reading too fast.

syngrog66 2026-02-26 20:07 UTC link
television??
rileymichael 2026-02-26 20:36 UTC link
mckn1ght 2026-02-26 20:40 UTC link
I use delta for quick diffs in a shell (along with the -U0 option on git-diff), but in my claude workflow, i have a 3 pane setup in tmux: :| where the right side is a claude session, the top left is emacs opened to magit, and the bottom left is a shell. Magit makes navigating around a diff pretty easy (as well as all the other git operations), and I can dive into anything and hand edit as well.
jfyne 2026-02-26 20:43 UTC link
Not TUI based but I made something called meatcheck. The idea being that the LLM requests a review from the human, you can leave inline comments like a PR review.

Once you submit it outputs to stdout and the agent reads your comments and actions them.

https://github.com/jfyne/meatcheck

flamestro 2026-02-26 21:09 UTC link
This looks great as well! I personally prefer a bit more context. Thats why I added a bit more of it to deff. It also allows to mark files as reviewed by pressing `r` which is quite handy for my flow.
flamestro 2026-02-26 21:12 UTC link
I personally find vimdiff a bit harder to navigate for my usecase. The reason is that I am context unaware of the file often in larger projects and wanted something that allows me to check all lines in a touched file. However, I have to admit vimdiff comes quite close to what I need and is a great tool!
flamestro 2026-02-26 21:14 UTC link
So I tested this on huge files (checking cargo lock for instance) and it is super fast in the navigation of those. Until now I did not encounter any issue with bigger files (around 4k-6k changes but also only 4k-6k lines).
flamestro 2026-02-26 21:15 UTC link
Yes, but emacs < vim
flamestro 2026-02-26 21:15 UTC link
Its a great tool, but misses some of the context I needed.
flamestro 2026-02-26 21:16 UTC link
What would the third panel contain in this case? Do you mean the setup that IntelliJ has in merge conflicts?
flamestro 2026-02-26 21:28 UTC link
I was also searching for some time, but most of them did not have enough context for my workflow tbh. So thats why I decided to make deff. Another good one I liked is vimdiff
flamestro 2026-02-26 21:58 UTC link
I get the hesitation :D But the code is open and the install.sh is as minimal as it gets tbh. Still, as said, I get the hesitation. What a time to be alive.

It does not install binaries, it builds the binary by checking out the project basically. You can also do the process manually and use the tool.

thamer 2026-02-26 22:00 UTC link
I had tried `delta` a few years ago but eventually went with `diff-so-fancy`[1]

The two are kind of similar if I remember correctly, and both offer a lot of config options to change the style and more. I mostly use it for diffs involving long lines since it highlights changes within a line, which makes it easier to spot such edits.

I have an alias set in `~/.gitconfig` to pipe the output of `git diff` (with options) to `diff-so-fancy` with `git diffs`:

    diffs = "!f() { git diff $@ | diff-so-fancy; }; f"

[1] https://github.com/so-fancy/diff-so-fancy
holoduke 2026-02-26 22:05 UTC link
Cowboys rule the internet.
pwdisswordfishy 2026-02-26 22:21 UTC link
One day folks who live inside commandlines and TUIs all day will realize that there's nothing particular about webapps or the sandboxes that they execute in that requires we build exclusively graphical runtimes around them, instead of taking advantage of the same security and distribution model for programs accessible and usable from within terminal emulator.
Editorial Channel
What the content says
+0.30
Article 19 Freedom of Expression
Medium Framing Coverage
Editorial
+0.30
SETL
+0.17

Public publication of source code, documentation, and examples explicitly facilitates freedom to seek, receive, and impart information; open-source framing treats code as shared knowledge rather than guarded property

+0.20
Article 17 Property
Medium Framing Practice
Editorial
+0.20
SETL
+0.14

MIT license framing demonstrates deliberate choice to liberalize intellectual property rights and make creative work freely usable and modifiable

+0.10
Article 23 Work & Equal Pay
Low Practice
Editorial
+0.10
SETL
0.00

Open-source collaboration model described in contributing guidelines represents a labor practice that emphasizes voluntary participation and distributed work authority

+0.10
Article 26 Education
Low Coverage
Editorial
+0.10
SETL
0.00

Publicly available source code serves as educational material for software development knowledge; examples and documentation enhance learning accessibility

ND
Preamble Preamble

Content does not engage with foundational principles of human dignity or fundamental freedoms

ND
Article 1 Freedom, Equality, Brotherhood

No engagement with equality or inherent dignity

ND
Article 2 Non-Discrimination

Content does not address discrimination or protected categories

ND
Article 3 Life, Liberty, Security

Not applicable to software documentation

ND
Article 4 No Slavery

Not applicable to software documentation

ND
Article 5 No Torture

Not applicable to software documentation

ND
Article 6 Legal Personhood

No engagement with right to recognition before law

ND
Article 7 Equality Before Law

No engagement with equal protection before law

ND
Article 8 Right to Remedy

Not applicable to software documentation

ND
Article 9 No Arbitrary Detention

Not applicable to software documentation

ND
Article 10 Fair Hearing

Not applicable to software documentation

ND
Article 11 Presumption of Innocence

Not applicable to software documentation

ND
Article 12 Privacy

Content does not address privacy protections

ND
Article 13 Freedom of Movement

Not applicable to software documentation

ND
Article 14 Asylum

Not applicable to software documentation

ND
Article 15 Nationality

Not applicable to software documentation

ND
Article 16 Marriage & Family

Not applicable to software documentation

ND
Article 18 Freedom of Thought

No engagement with freedom of thought, conscience, or religion

ND
Article 20 Assembly & Association

No engagement with freedom of assembly

ND
Article 21 Political Participation

No engagement with political participation

ND
Article 22 Social Security

No engagement with social security or welfare

ND
Article 24 Rest & Leisure

No engagement with rest and leisure rights

ND
Article 25 Standard of Living

No engagement with standard of living

ND
Article 27 Cultural Participation

No engagement with cultural participation

ND
Article 28 Social & International Order

No engagement with social and international order

ND
Article 29 Duties to Community

No engagement with community duties

ND
Article 30 No Destruction of Rights

No engagement with limitations clause

Structural Channel
What the site does
+0.20
Article 19 Freedom of Expression
Medium Framing Coverage
Structural
+0.20
Context Modifier
ND
SETL
+0.17

Repository structure enables unrestricted access to code and documentation globally; searchability and forkability amplify information distribution

+0.10
Article 17 Property
Medium Framing Practice
Structural
+0.10
Context Modifier
ND
SETL
+0.14

Public repository with open license removes artificial property-based barriers to access and use of software code

+0.10
Article 23 Work & Equal Pay
Low Practice
Structural
+0.10
Context Modifier
ND
SETL
0.00

Repository structure enables decentralized contribution (pull requests, issues) and shared development authority, embodying collaborative labor practices

+0.10
Article 26 Education
Low Coverage
Structural
+0.10
Context Modifier
ND
SETL
0.00

Public code repositories enable open educational access to working software implementations

ND
Preamble Preamble

No structural signals regarding universal human dignity or foundational rights principles

ND
Article 1 Freedom, Equality, Brotherhood

No structural signals regarding equal rights

ND
Article 2 Non-Discrimination

No structural indicators of discriminatory or non-discriminatory access

ND
Article 3 Life, Liberty, Security

Not applicable to software documentation

ND
Article 4 No Slavery

Not applicable to software documentation

ND
Article 5 No Torture

Not applicable to software documentation

ND
Article 6 Legal Personhood

No structural signals regarding legal personhood

ND
Article 7 Equality Before Law

No structural signals regarding equal legal protection

ND
Article 8 Right to Remedy

Not applicable to software documentation

ND
Article 9 No Arbitrary Detention

Not applicable to software documentation

ND
Article 10 Fair Hearing

Not applicable to software documentation

ND
Article 11 Presumption of Innocence

Not applicable to software documentation

ND
Article 12 Privacy

GitHub platform has privacy infrastructure but this specific repository page does not engage privacy rights

ND
Article 13 Freedom of Movement

Not applicable to software documentation

ND
Article 14 Asylum

Not applicable to software documentation

ND
Article 15 Nationality

Not applicable to software documentation

ND
Article 16 Marriage & Family

Not applicable to software documentation

ND
Article 18 Freedom of Thought

No structural signals regarding conscience or belief

ND
Article 20 Assembly & Association

No structural signals regarding assembly rights

ND
Article 21 Political Participation

No structural signals regarding political participation

ND
Article 22 Social Security

No structural signals regarding social protection

ND
Article 24 Rest & Leisure

No structural signals regarding rest or leisure

ND
Article 25 Standard of Living

No structural signals regarding living standards

ND
Article 27 Cultural Participation

No structural signals regarding cultural rights

ND
Article 28 Social & International Order

No structural signals regarding social order

ND
Article 29 Duties to Community

No structural signals regarding community obligations

ND
Article 30 No Destruction of Rights

No structural signals regarding rights limitations

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.65 low claims
Sources
0.7
Evidence
0.6
Uncertainty
0.5
Purpose
0.9
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
measured
Valence
+0.1
Arousal
0.3
Dominance
0.5
Transparency
Does the content identify its author and disclose interests?
1.00
✓ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.87 solution oriented
Reader Agency
0.8
Stakeholder Voice
Whose perspectives are represented in this content?
0.35 2 perspectives
Speaks: institution
About: workers
Temporal Framing
Is this content looking backward, at the present, or forward?
prospective unspecified
Geographic Scope
What geographic area does this content cover?
global
Complexity
How accessible is this content to a general audience?
moderate medium jargon domain specific
Longitudinal 1750 HN snapshots · 6 evals
+1 0 −1 HN
Audit Trail 16 entries
2026-02-28 13:29 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 13:29 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral) 0.00
reasoning
ED neutral tech content no rights stance
2026-02-28 13:27 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 13:27 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral) 0.00
reasoning
PR tech tutorial
2026-02-28 09:52 eval Evaluated by claude-haiku-4-5-20251001: +0.15 (Mild positive)
2026-02-28 01:34 dlq_replay DLQ message 97515 replayed to EVAL_QUEUE: Show HN: Deff – side-by-side Git diff review in your terminal - -
2026-02-28 00:32 eval_success Light evaluated: Neutral (0.00) - -
2026-02-28 00:32 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral)
reasoning
PR tech tutorial
2026-02-26 23:55 eval_success Evaluated: Mild positive (0.21) - -
2026-02-26 23:55 eval Evaluated by deepseek-v3.2: +0.21 (Mild positive) 11,831 tokens
2026-02-26 22:36 eval_success Light evaluated: Neutral (0.00) - -
2026-02-26 22:36 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral)
reasoning
ED neutral tech content no rights stance
2026-02-26 22:15 dlq Dead-lettered after 1 attempts: Show HN: Deff – side-by-side Git diff review in your terminal - -
2026-02-26 22:13 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 22:12 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 22:11 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -