Visual GUI tool for recursive directory and file comparison. Side-by-side and unified diff views with synchronized scrolling, inline character-level highlighting, Meld-style Bezier gutter connectors and a tabbed interface. It follows your light or dark system theme.
Binary files are detected and reported with sizes rather than rendered as garbled text. Spekter detects when JSON or JSONL files differ only in element ordering, and applies hunk-slider postprocessing so an inserted object in a JSON array is marked as one whole object.
Large files stay responsive: a file's text appears instantly while its diff is computed on a background thread, computed diffs are cached, and the changed files are prefetched as you browse, so opening or revisiting them feels immediate even at a million lines.
Ignored entries (.git, node_modules, editor swap files and the like) are skipped but listed as dimmed stubs rather than silently erased, and the rules go both ways: expand an ignored directory or open an ignored file to compare it anyway, or right-click any entry to ignore it yourself. These choices are remembered per directory pair.
An instant, keyboard-driven alternative to Meld and diff for comparing folders and code.
Screenshots
Observed history
| App | Change | Version | When ↑ |
|---|
No observed changes yet.
The initial import establishes a baseline. Future version changes will appear here.
Browse the app catalogue →Upstream releases
Release notes supplied by the developer. These dates are not Flathub package publication times.
1.3.112 Aug 2026
Middle-click paste on Linux, and clearer banners for near-identical files
Improvements:
- Text selected in the diff views can now be pasted with middle-click in other applications.
- When two files differ only in their line endings, the banner now says exactly what differs (for example CRLF versus LF), and byte-identical pairs get their own "Files are identical" banner.
- The directory view updates immediately when a visible ignored stub entry is created or removed on disk.
Fixes:
- A file lacking a final newline no longer smears its whole tail into one big changed block; only the genuinely changed lines are marked.
1.3.02 Jul 2026
Instant large-file diffs, and ignored entries shown honestly
Improvements:
- Large files are dramatically faster and lighter: two diff algorithms race with the loser cancelled, computed diffs are cached and shared in memory, the changed files visible on screen are prefetched while you browse, and per-diff memory use is roughly halved. Re-opening a large diff is instant.
- Ignored entries (.git, node_modules, editor swap files and the like) are listed as dimmed stubs instead of being silently erased. Expand an ignored directory or open an ignored file to compare it anyway, right-click any entry to ignore it yourself, and hide the stubs with a header toggle. These choices are remembered per directory pair.
- The summary line now counts ignored entries, and terminal mode gains --no-ignore to compare everything.
- New "Changes only" toggle for reordered JSON and JSONL: it hides the diff that comes purely from reordering, so only the genuine additions, removals and edits remain on screen. Available in both side-by-side and unified views.
Fixes:
- The view no longer jumps or loses your search, selection or wrap setting when the computed diff replaces the instant preview, or on reload.
- Comparing two empty files no longer shows a spinner forever, and comparison roots that are unreadable, or a file on one side and a directory on the other, now fail with a clear message instead of crashing.
- The "moved" hover pill now also appears on reordered elements whose opening line is unchanged. Previously it was dropped in large, mostly-aligned files, so many moved objects went unmarked.
1.2.416 Jun 2026
Inaccessible entries are surfaced
Improvements:
- Directories and files the running user cannot read, are now shown in the folder comparison tree instead of being silently skipped. Earlier the GUI would freeze in "Scanning directories..." when it hit a permission-denied entry
- Ctrl + Up/Down in the directory view now scrolls the contents
1.2.38 Jun 2026
Keyboard navigation in the diff view, live reload, and packaging polish.
Improvements:
- Cursor in both side-by-side and unified diff views with full keyboard navigation (read-only).
- Tab and Shift+Tab move the caret into and between the two panes.
- Ctrl + Up/Down scrolls one line at a time without moving the caret.
- Shift extends the text selection with any caret-move key.
- Live file watching: when either compared file changes on disk, Spekter suggests to reload.
- Horizontal scrolling is now available in No-Wrap side-by-side mode, and drag-selection auto-scrolls when it runs past a pane edge.
- The About box stacks its buttons vertically so they read cleanly at any window width.
Fixes:
- Wrap-mode white field no longer grows with scroll and pushes the right pane off-screen.
- The "moved" hover pill no longer over-marks unrelated objects.
- Bezier connector seam between gutter and panes is gone.
- The caret can no longer scroll below the visible side-by-side pane.




