Kaleidoscope spots differences in text and image files.
Features
General
Single window workflow: One tab per comparison
Compare two+ files: Add any number of files per tab
Always up to date: Auto-refreshes when files change
File Shelf: Quickly go from file to file
Path Bar: See where your files are
Keyboard shortcuts: Every action has a shortcut
Text Scope
Supports any text file: Plain text, source code, HTML, etc.
Clear comparisons
Three layouts: Blocks, Fluid, and Unified
Compare documents: Imports text from .doc and .rtf files
Instant search
Change Stepper: Quickly jump from change to change
Highlights: Added, deleted and changed text
Image Scope
All popular image file formats: JPEG, TIFF, PNG, PSD and more.
Four connected layouts: Two-Up, One-Up, Split, and Difference
Comprehensive image support: RGB/CMYK/LAB, alpha, any size.
Multi-touch support: Smooth scrolling and pinch to zoom
Customizable environment: Change background color, difference mask and checkerboard settings
Two difference mask modes: Spot absolute or relative changes
Integration
Git, Mercurial, SVN, and Bazaar: Integrate with a couple of clicks
Versions
TextMate SVN
Cornerstone
ksdiff Command-line tool: Integrate with practically anything
What's new in version 7.0
New
Live Working Copy Changes. Working copy changesets now update in real time as files change, whether those changes come from you, your editor, or a coding agent. The document stays connected to your working copy — no more reopening to see the latest state. This also works when launching a comparison via git difftool. If you work with coding agents, try leaving a changeset open while an agent works in the background!
The sidebar keeps up, too: files that become modified appear automatically, even files that were clean when you opened the document.
Untracked files appear in real time as well, marked with a question mark until you add them to Git.
The staging state of each file is visible at a glance: fully staged files use a solid icon, partly staged files a hollow one.
When Kaleidoscope is in the background, notifications report changes and Git operations such as commits and reverts. Clicking a notification takes you directly to the relevant changes.
New toolbar controls let you pause and resume live updates, and configure which notifications you receive.
Git worktrees are fully supported.
Unified Changeset Navigation. Using Navigate > Next Change and Navigate > Previous Change, you can now optionally jump across file boundaries, letting you review an entire changeset with a single set of keyboard shortcuts, ⌘↓ and ⌘↑.
Commit Graph. The Commit History introduced in Kaleidoscope 6.7 now visualizes the Git commit graph, helping you understand branches, merges, and commit relationships.
Enhancements
Initial adjustments for macOS Golden Gate (27.0 Beta). Please let us know if you run into issues.
Improved performance when switching between files in changesets.
Syntax highlighting for various kinds of Xojo files, Dockerfile syntax, and several F# file types.
Added support for the Insiders edition of VS Code as an external text editor.
Support for the Otty Terminal app.
Better detection of external text editors installed via Homebrew or in ~/Applications.
Modernized the available Shortcuts actions and added two new ones:
Open Changeset. Given a commit hash (SHA), it will open all changes of that commit. The repository needs to be known to Kaleidoscope so it can find the commit.
Open Live Working Copy Changes. Given a path to a Git repository, this opens the live working copy changes for that repository.
Improvements to the kaleidoscope URL scheme:
Use kaleidoscope://changeset?path= to open live working copy changes for that directory. ~ will be resolved as expected.
To open a commit changeset use kaleidoscope://changeset with the parameter ?sha= or ?hash= for better distinction.
New command kaleidoscope://commit?sha= or hash= to open a particular commit in the Lookup Commit window. As usual, the containing repository needs to be in the Repositories list.
When Kaleidoscope is unable to fulfill a URL request, you now get a response in the form of a notification.
Bugfixes
Fixed a crash with ksdiff --changeset --filelist file1.txt file2.txt.