Line and word-level highlighting
Changed lines are paired up and the words that differ inside them are marked, so a renamed variable doesn’t hide in a sea of red.
Features
Text, 3-way merge, folders and raw bytes, plus a headless command line for scripts. DiffScope picks the right view for what you open and stays out of your way.
Text compare
Two files side by side with changed lines tinted and the changed words inside them highlighted. Hide the noise, edit either side and save without touching the file’s encoding.
Changed lines are paired up and the words that differ inside them are marked, so a renamed variable doesn’t hide in a sea of red.
Ignore all whitespace, whitespace changes or leading/trailing spaces, plus case and blank lines. Re-indents stop drowning out real edits.
Double-click a line to edit it, copy a block left or right with Alt+←/→, and undo across both panes with Ctrl+Z.
UTF-8, UTF-8 with BOM, UTF-16 LE/BE and Latin-1 are kept on save, and CRLF stays CRLF. If only encoding or line endings differ, a notice says so.
Virtualized rendering keeps scrolling fluid on 200,000-line files. The overview map on the right shows every change at a glance.
F7 / Shift+F7 (or Alt+↓/↑) jump between differences. Ctrl+S saves. Read-only panes protect files you shouldn’t touch.
3-way merge
Mine, Base and Theirs side by side above the merged result. Changes that don’t overlap merge themselves, so you only spend time on the real conflicts.
git merge-file0 only when saved with no conflicts left, so git and TortoiseGit know when you’re done
git merge-fileFolder compare
Point it at two folders to see what was added, removed or changed across the whole tree, then open any pair with a double-click.
.git; node_modules; *.ogit difftool --dir-diff
--folder reportHex compare
Firmware images, archives and build outputs. Both files are streamed rather than loaded, so a 100 MB+ image opens without a stall.
0x1F0) or decimal (496)
CLI & automation
Add --headless and DiffScope writes a unified diff, a merged file or a folder report, then tells your script what happened through its exit code.
git diff, with -U N context--diff3 adds the base section--folder, --exclude and --compare=content|size|size-mtime/base: switches, GNU --long options and Beyond Compare’s four-argument merge order/c/Users/x/a.txt are converted automatically# Unified diff, same format as git diff
DiffScope.exe --headless old\app.js new\app.js > changes.diff
# Ignore whitespace (-w), case (-i) and blank lines (-B)
DiffScope.exe --headless -w -i -B a.txt b.txt > changes.diff
# 3-way merge; conflicts are written with markers (exit 1)
DiffScope.exe --headless --merge --base base.c --mine mine.c --theirs theirs.c -o merged.c
# Folder compare by content, skipping build output
DiffScope.exe --headless --folder --exclude node_modules --exclude "*.o" v2.3 v2.4 > tree.txt
# Beyond Compare's positional merge order also works
DiffScope.exe mine.c theirs.c base.c merged.c
DiffScope.exe is a GUI program: redirect its output to a file or a pipe. Exit codes work everywhere.
Integration
Set DiffScope as TortoiseGit’s external diff viewer and merge tool, or as git’s difftool and mergetool. Or open it on its own and drop two files on the Home screen.
%bname, %yname…git difftool, git difftool -d for whole change sets, and git mergetooltrustExitCode = true works as intended
git config --global merge.tool diffscope
git config --global mergetool.diffscope.trustExitCode true
Privacy & quality
The app makes no network connections at all: no telemetry, no update pings, no account. And because a diff tool you can’t trust is worse than none, every release is tested against git itself.
Nothing phones home and nothing needs the internet. It runs the same on an air-gapped build machine as on your laptop.
A zip, not an installer. Unzip anywhere and run DiffScope.exe. No admin rights; delete the folder to remove it.
Diff, merge, encodings, folder scans, CLI parsing and integration scripts.
The real Electron app driven through text, merge, folder and hex views and their exit codes.
Randomized inputs, cross-checked byte for byte against git diff and git merge-file.
Checklist
Every item below ships in the current release. What’s next is on the roadmap.
| Feature | 1.0 |
|---|---|
| Text compare | |
| Side-by-side two-pane diff with line numbersChanged, added and removed lines aligned with filler rows | |
| Word-level highlighting inside changed lines | |
| Ignore whitespace, case and blank linesWhitespace: all, changes only, or leading/trailing | |
| Edit in place, copy blocks left / rightAlt+← / Alt+→, double-click a line to edit | |
| Undo and redo across both panes | |
| Encoding and line endings preserved on saveUTF-8, UTF-8 BOM, UTF-16 LE/BE, Latin-1; CRLF / LF / CR | |
| Notice when only encoding or line endings differ | |
| Differences overview map | |
| Virtualized rendering for 200k-line files | |
Read-only panes and custom pane titles/readonly, /leftreadonly, /rightreadonly, /title1..4 | |
| Unsaved-changes prompt on close | |
| 3-way merge | |
| Mine, Base and Theirs panes above an output pane | |
Automatic merge of non-conflicting changesSame semantics as git merge-file | |
| Take Mine, Theirs, Mine + Theirs, Theirs + Mine or Base | |
| Shift+click to resolve all remaining conflicts one way | |
| Conflict counter, next / previous unresolved conflict | |
| Save with git-style conflict markers | |
| Exit code 0 only when saved with no conflicts left | |
| Folder compare | |
| Recursive compare by content, size, or size + date | |
Exclude globsFor example .git; node_modules; *.o | |
| Filters: all, differences, same, orphans | |
| Tree view with expand / collapse all and status counts | |
| Double-click a pair to open it | |
| Hex compare | |
| Streaming compare of 100 MB+ files | |
| Differences in hex and ASCII columns | |
| Next / previous difference and go to offset | |
| Automatic binary detection | |
| Command line | |
Headless unified diff, merge and folder report--headless, --merge, --folder, --diff3, -U N | |
| Exit codes 0 / 1 / 2 | |
| TortoiseGit, GNU and Beyond Compare argument styles | |
Text, hex or folder mode detected automaticallyOr forced with --text, --hex, --folder | |
| Integration | |
| TortoiseGit external Diff Viewer and Merge Tool | |
git difftool (including -d) and git mergetool | |
| Drag and drop files or folders | |
| App & privacy | |
| Dark and light themes | |
| Keyboard navigationF7, Shift+F7, Alt+arrows, Ctrl+S, Ctrl+Z / Ctrl+Y | |
| Portable zip, no installer, no admin rights | |
| No telemetry, no network connections, no account | |

Free, portable and private. Ready in about a minute.