[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"project-48166275":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":33,"aspects":34,"strip":40,"post_text":42,"what":43,"said":88,"maker_in_thread":172,"shape":183,"grid":187,"attempts":231,"same_week":232,"maker_shows":174,"maker_hidden":261,"reader_version":262,"card":263},"48166275","Codiff","A local diff review tool","title","Show HN: Codiff, a local diff review tool","https:\u002F\u002Fgithub.com\u002Fnkzw-tech\u002Fcodiff\u002Freleases","github.com","cpojer",1778995814,2026,31,21,1602,4366,37,"shown","dev_tools","diff review tool","desktop_app",[24,25,26,27],"diff review","code review","git diff","llm code review","debated",0,{"positive":31,"neutral":32,"mixed":29,"critical":32},2,3,8,{"docs":35,"idea":36,"performance":38,"execution":39},{"positive":29,"critical":29},{"positive":31,"critical":37},1,{"positive":29,"critical":37},{"positive":29,"critical":37},[29,29,29,29,29,29,29,29,29,32,32,37,29,37,29,29,41,32,29,41,37],5,"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.\n\nWhen 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.\n\nToday 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.\n\nI will be using Codiff a lot, and can ",{"problem":44,"audience":53,"pricing":59,"motivation":60,"time_to_build":64,"stack":68,"openness":85,"stage":86,"team_size":87},{"value":45,"source":46,"evidence":47},"Reviewing large diffs of LLM-written code is overwhelming in git and terminal tools","maker",[48,50],{"id":49},"post",{"id":51,"by":11,"text":52},"48166661","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.",{"value":54,"source":55,"evidence":56},"Developers reviewing large amounts of LLM-generated code locally","inferred",[57,58],{"id":49},{"id":51,"by":11,"text":52},null,{"value":61,"source":46,"evidence":62},"Existing git and delta workflow became limiting with LLM-written code volume",[63],{"id":49},{"value":65,"source":46,"evidence":66},"16 minutes for the first version, polished later",[67],{"id":49},[69,75,81],{"value":70,"source":46,"evidence":71},"JavaScript",[72],{"id":73,"by":11,"text":74},"48166762","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).…",{"value":76,"source":46,"evidence":77},"diffs.com",[78],{"id":79,"by":11,"text":80},"48166897","Yes. It’s built on diffs.com and trees.software.",{"value":82,"source":46,"evidence":83},"trees.software",[84],{"id":79,"by":11,"text":80},"unknown","launched","solo",{"praise":89,"objections":102,"requests":131,"questions":147,"alternatives":152},[90],{"value":91,"source":92,"evidence":93},"Fast on large diffs and useful features like file search","commenter",[94,98],{"id":95,"by":96,"text":97},"48166541","usernametaken29","Surprisingly enough this has just a few features the JetBrains diff view is lacking, notably file search… good ideas",{"id":99,"by":100,"text":101},"48166320","sjhalani7","That's awesome. Been reviewing code diffs on the IDE and it's been hard, so will check this out!",[103,110,121],{"value":104,"source":92,"evidence":105},"Mostly macOS only",[106],{"id":107,"by":108,"text":109},"48166373","atmanactive","... for MacOS.",{"value":111,"source":92,"evidence":112},"Many similar vibe-coded alternatives already exist",[113,117],{"id":114,"by":115,"text":116},"48166700","magnio","Is diff viewer the 2026 todo list? List of vibe coded alternatives: - revdiff: https:\u002F\u002Fgithub.com\u002Fumputun\u002Frevdiff - hunk: https:\u002F\u002Fgithub.com\u002Fmodem-dev\u002Fhunk - diffnav:…",{"id":118,"by":119,"text":120},"48166663","stephenr","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\".…",{"value":122,"source":92,"evidence":123},"Electron-style app is not truly native",[124,128],{"id":125,"by":126,"text":127},"48167088","bestouff","Kids these days. Calling JS \"native\" makes my stomach ache, but apparently this is normal.",{"id":129,"by":119,"text":130},"48166874","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?",[132,143],{"value":133,"source":92,"evidence":134},"Add screenshots to the README",[135,139],{"id":136,"by":137,"text":138},"48166673","Evan-Purkhiser","Would love to see some screenshots in your readme of this!",{"id":140,"by":141,"text":142},"48166695","tcoff91","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…",{"value":144,"source":92,"evidence":145},"Support reviewing specific commits, e.g. for jj",[146],{"id":140,"by":141,"text":142},[148],{"value":149,"source":92,"evidence":150},"Does it work with commits rather than only staged and unstaged changes?",[151],{"id":140,"by":141,"text":142},[153,157,161,165],{"value":154,"source":92,"evidence":155},"Kaleidoscope",[156],{"id":118,"by":119,"text":120},{"value":158,"source":92,"evidence":159},"File Merge",[160],{"id":118,"by":119,"text":120},{"value":162,"source":92,"evidence":163},"revdiff, hunk, diffnav, diffx, lumen",[164],{"id":114,"by":115,"text":116},{"value":166,"source":92,"evidence":167},"prereview",[168],{"id":169,"by":170,"text":171},"48166622","realrocker",":) 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…",{"comments":173,"answered":174,"key":175},7,4,[176,177,180],{"id":73,"text":74},{"id":178,"text":179},"48167175","1. I’m older than you. 2. I said native app window, comparing it to a tool with a browser web ui.",{"id":181,"text":182},"48174344","1. I am not in my 40s, but I take it that I was wrong ;)",{"commenters":184,"max_depth":185,"maker_replies":173,"first_comment_mins":184,"lifespan_hours":186},11,6,19,[188,190,192,194,195,197,198,200,202,205,207,209,211,214,216,218,222,224,226,228,229],[114,29,29,189,115,29],"other\u002Fcritical\u002Fidea",[73,29,29,191,11,37],"maker\u002Fneutral\u002Fidea",[125,29,29,193,126,29],"commenter\u002Fneutral\u002Fnone",[178,29,29,193,11,37],[196,29,29,193,126,29],"48172186",[181,29,29,193,11,37],[169,37,29,199,170,29],"other\u002Fneutral\u002Fidea",[51,37,29,201,11,37],"maker\u002Fpositive\u002Fidea",[203,37,29,204,170,29],"48166756","commenter\u002Fpositive\u002Fidea",[136,37,32,206,137,29],"maker\u002Fneutral\u002Fdocs",[208,37,32,206,170,29],"48166752",[118,31,37,210,119,29],"project\u002Fcritical\u002Fidea",[212,31,29,213,11,37],"48166750","project\u002Fpositive\u002Fperformance",[129,31,37,215,119,29],"project\u002Fcritical\u002Fperformance",[79,31,29,217,11,37],"project\u002Fneutral\u002Fperformance",[219,31,29,220,221,29],"48168670","other\u002Fneutral\u002Fnone","d3xt0r123",[99,32,41,223,100,29],"project\u002Fpositive\u002Fidea",[140,174,32,225,141,29],"project\u002Fneutral\u002Fexecution",[227,174,29,206,11,37],"48166747",[95,41,41,223,96,29],[107,185,37,230,108,29],"project\u002Fcritical\u002Fexecution",[],[233,238,243,248,252,256],{"id":234,"name":235,"points":236,"category":237},"48179677","Files.md",730,"productivity",{"id":239,"name":240,"points":241,"category":242},"48192383","Forge",687,"ai",{"id":244,"name":245,"points":246,"category":247},"48191602","Gaussian Splat of a Strawberry",530,"creative",{"id":249,"name":250,"points":251,"category":20},"48169874","Semble",445,{"id":253,"name":254,"points":255,"category":237},"48215979","Phosphene",428,{"id":257,"name":258,"points":259,"category":260},"48178184","Auto-identity-remove",325,"security_privacy",false,"v2",{"id":264,"name":5,"line":6,"ai":261,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":265,"maker":11,"domain":10,"tier":19,"attempts":29,"strip":266,"url":9,"mix":267,"praise":91,"objection":104,"sub":21},48166275,[24,25,26,27],"000000000331010053051",[31,32,29,32],1794036701125]