DiffHacker v1.0.0
DiffHacker v1.0.0
Review large Git changes as a map, not a file list.
This is the first release. The app is self-contained.
DiffHacker takes the uncommitted changes in a local repository and
has an LLM explain it as a diagram: which files belong together, where to start reading, how
each part leads to the next, and what could go wrong.
Highlights
One diagram of the whole change
Related files are grouped into clusters; unrelated changes land in separate ones. Inside a
cluster, the file to start from sits on top with its consequences below it. Solid lines are
real code dependencies; dashed lines are connections of intent — a migration and the endpoint
that relies on it, say — that no import graph would show. Every changed file appears on the
diagram; nothing is summarised away.
Every box explains itself
Click a file for what changed, why, what it affects, and its risks — risks always sit in
their own column, apart from the explanation. Click a line for how two files relate, or a
cluster's title bar for what the cluster is about. Everything was written during analysis, so
opening a card costs nothing further.
Read the code without losing your place
Double-click a box to open its diff beside the diagram, explanation still visible underneath.
Previous/Next follow the recommended reading order, "Where to go next" follows the lines, and
Mark Reviewed keeps count so a 300-file review is something you can actually finish. Open a
file in VS Code, Visual Studio, or your own editor in one click.
Two ways to group the same change
Dependency Flow keeps each chain of change whole, even where it crosses the database, the API
and the UI. Change Clusters groups by theme instead. Both come from the same analysis run, so
switching between them is instant and free — no re-analysis.
Watch it work, stay in control of the cost
Watch an analysis while it runs: the model's own progress messages, each tool call it makes,
running tokens/cost, and context usage — with the ability to stop at any time. Turn off the
parts you don't need (risks, explanations, the second grouping) and choose how much it writes.
Runs pause and ask before exceeding the budgets you set. The last 20 runs per repository are
kept, and reopening one is free.
It knows when it's out of date
Edit a file after an analysis ran and a banner lists exactly what changed since. Undo the edit
and the analysis is current again — freshness is measured by content hash, not by timestamp.
Bring your own model
OpenAI, Anthropic, Google Gemini, Grok (xAI), DeepSeek, or any OpenAI-compatible endpoint,
including a model served on your own machine. You pay the provider directly for what each run
uses; API keys are encrypted with your OS's own secret store and never leave the host process.
Use the toolbox from your own agent
The same read-only repository toolbox (search, read, diff, tree, metadata) that DiffHacker
gives its own analysis is also available to any MCP client over stdio via diffhacker-mcp.
Also in this release
- Repository profile — an optional, reusable summary of the repo generated once so later
analyses start from more context. - Built-in help & user guide — a 15-step walkthrough with screenshots, reachable from any
screen, plus a generateddocs/user-guide.md. - Run library — history of past analyses per repository, with a tool-call inspector for
what happened during a run. - Data management — a Clean Data option in Settings to remove locally stored analyses and
cached data. - Responsive diagram & diff review — a resizable diff viewer and filtering the diagram by
project/module.
What it will never do
- Never modifies your repository — no commits, staging, checkouts, or edits. The only
exception is an optional documentation export, which previews every file and writes only on
confirmation. - Sends portions of your source code only to the LLM provider you configure, and only what the
model actually asks to read — never a bulk dump of the diff. Files that usually hold secrets
(.env, private keys,.npmrc, etc.) are listed but never opened. - No telemetry beyond opt-in crash reports; nothing about your repository content is ever
collected.
Requirements
- git on your PATH
- An API key for a supported LLM provider
- A local repository with uncommitted changes to review