Hacker News new | ask | show | jobs
Show HN: Codiff, a local diff review tool (github.com)
31 points by cpojer 28 days ago
Nowadays I review a lot of code locally that was written by llms. I used to review my own code using git + delta. It started to feel limiting with the amount of code written by llms.

When looking at a large diff on Friday I pointed an llm at diffs.com and trees.software and told it to build an app. It only took 16 minutes, is extremely fast for large diffs, beautiful and minimal.

Today I polished it up and added all the features that I need. It has file filters, search, an llm walkthrough mode, and review comments that you can paste back into your llm.

I will be using Codiff a lot, and can finally review the large diff from Friday that led me to build this If you like it, fork it!

7 comments

Is diff viewer the 2026 todo list?

List of vibe coded alternatives:

- revdiff: https://github.com/umputun/revdiff

- hunk: https://github.com/modem-dev/hunk

- diffnav: https://github.com/dlvhdr/diffnav

- diffx: https://github.com/wong2/diffx

- lumen: https://github.com/jnsahaj/lumen

4 of these are TUIs. I built Codiff specifically because TUI review became overwhelming to me. One of them is a web view, I prefer a native app window (it’s JS either way, ofc).

Also, I never wasted time building todo apps. Now I can build apps that help me do my job that I wouldn’t have had the time for without AI.

Kids these days. Calling JS "native" makes my stomach ache, but apparently this is normal.
1. I’m older than you. 2. I said native app window, comparing it to a tool with a browser web ui.
1. Why are you saying that ? Looking at your LinkedIn I'd say you're in your 40s, so effectively younger, lucky you !

2. Still, JS in the app window is not what I call native, but I won't fight over this

1. I am not in my 40s, but I take it that I was wrong ;)
:) We are all converging on the same problems and tooling to fix them.

Built this in the last couple days to review changes done by claude on a hetzner box(over tailscale on my phone) and leave comments before pushing to remote : https://github.com/livetemplate/prereview.

Runs everywhere and can has a claude skill: /prereview which starts a new instance for the current changes. Has a “Hand-off” button to signal claude to process the comments.

UI is responsive. I use it on my iphone with claude mobile app + /remote-control to leave comments before pushing.Still requires polish but core features work.

That’s awesome! I built this specifically as a GUI because it’s become too much code to effectively review in the terminal for me.
exactly. LLM code output is so high that it has become unreasonable to review the code in terminal or ide
Would love to see some screenshots in your readme of this!
Yeah the project is right out of the oven so will add some usage gifs shortly to the repo. Meanwhile here are some screenshots on imgur: https://imgur.com/a/zxZo651
Who knew that the killer task for LLMs would be "recreate existing things that exist without me mentioning them by name, based on a worse alternative as the example".

Kaleidoscope exists.

File Merge exists.

Codiff is faster and scales to larger commits than those.
You're seriously suggesting that an electron app you vibe coded in two days is more performant than native code that's been developed and improved and tweaked over literal decades?
Yes. It’s built on diffs.com and trees.software.
there's a small directory tracking these — vibcod.dev. free to submit, each listing shows stack, models used, and a vibe-index score.
That's awesome. Been reviewing code diffs on the IDE and it's been hard, so will check this out!
Can you include screenshots in your readme?

Also does it only work for staging and unstaged changes? I use jj so I need to be able to point it at commits since jj has no staging it just creates a new git commit snapshot every time you run any jj command.

There is a screenshot in the README.

There is a video here: https://x.com/cnakazawa/status/2055881241677668637?s=46&t=BS...

It works for any staged, unstaged or untracked file in a repo. It does not have support for mutations (like staging or unstaging a change) yet. It does not yet work for specific commits but should be super easy to add.

Surprisingly enough this has just a few features the JetBrains diff view is lacking, notably file search… good ideas
... for MacOS.