Spot the differences in text and image files, or even folders full of files. Review changes in seconds, with the world's most powerful file comparison app.
Kaleidoscope 3.5 automatically normalizes JSON when reading, enables comparison of various archive formats, integrates with iTerm, and more. Check the Release Notes for more details.
Kaleidoscope 3 features the first major redesign in over eight years, including a gorgeous dark appearance, and adds support for Apple Silicon-based Macs. There is a new Reader view, and changesets have received major improvements.Release Notes
Sometimes you want to get rid of all the UI and just focus on the content. Using a single shortcut, the new Reader view hides all non-essential window chrome and puts your content front and center.
Kaleidoscope finds the most readable way to express changes, instead of just displaying what is simplest for a computer to parse. Our custom comparison engine is designed to give you the clearest possible overview.
Switch between three different layouts: Blocks, Fluid, and Unified
Whether it's an article, an important letter, a legal contract, or source code, Kaleidoscope helps you manage text changes from inception to finished document.
There are three layouts to fit your preference: Blocks, Fluid, and Unified. Quickly navigate through the most readable and beautiful diff you've ever seen.
Kaleidoscope extracts and compares text, from many document formats, such as Word and PDF files.
Quickly toggle changed, equal and unmatched items
With powerful data filtering, Kaleidoscope makes reviewing differences in files and folders easier than ever.
Whether it’s a music collection, albums of photos, or branches of code, folders can have a lot of differences.
Kaleidoscope makes it easy to filter for what you are looking for and drill down to see more. Double click a folder to open a new tab and filter it to see any combination of changes, additions, and deletions.
Use Kaleidoscope to sync Documents folders on two machines, or even to help you move pictures and media to a backup drive. The Folder Scope gives you complete control to only move what you want, and to drill down to see the details of what is different.
Toggle layouts: Side-by-side (Two-Up), Alternating (One-Up), Split, and Difference
Sometimes you forget whether you already exported the latest edit of a file. With four different layouts and fluid performance, Kaleidoscope makes reviewing image files that much easier and quicker.
Use File Shelf to organize everything you want to compare.
Your eye is good at recognizing differences, but sometimes it can use a little help. Each layout aids the eye in a different way, to help you quickly spot anything, from the smallest retouch to image-wide color changes.
The Kaleidoscope Image Scope is really fast. Scrolling and zooming is always responsive, whether you use multi-touch gestures or your mouse and keyboard shortcuts. Try it once and you'll wonder how you ever settled for less.
Kaleidoscope accepts content no matter where it's located. Drag and drop files and folders, or use the Clipboard, macOS Services, the Share menu, or the command line, as well as many pre-configured integrations.
Add files and folders via drag-and-drop onto the Welcome window, the Dock icon, any open window, or via the menu File > Open…. But the possibilities don't end there. Copy files to the Clipboard and paste them in Kaleidoscope. Or use the Share menu in any app supporting it, such as the Finder. Or else you can select a file, bring up the context menu and use the Open in Kaleidoscope Service. For advanced uses, create a custom system-wide Shortcut in macOS Monterey. On the command line, look for the ksdiff tool to create deep integrations with your custom workflows.
Sometimes content has not been saved to a file, but lives on the Clipboard or on a web page. Or you just want to compare part of an existing file. As long as you can select it as text or image and bring up the context menu, the Kaleidoscope Service is only one click away. Or use the Clipboard directly. Kaleidoscope allows pasting the Clipboard as a new comparison or into an existing document. Or use our Alfred workflow to speed up adding multiple items into Kaleidoscope. And of course, ksdiff enables advanced command line magic.
Kaleidoscope integrates with all popular version control systems. And that's a benefit to everyone, not just software engineers. The ability to keep multiple versions of a file synced is a must for anyone who works with lots of text.
Looking for a version control system that's easy to use? Try Subversion with our own Versions client app.
And, of course Kaleidoscope integrates with many popular developer tools. Read on for more on that.
While Kaleidoscope is the perfect workflow addition for writers, designers and editors, it is indispensable for developers who work on code and use version control systems.
As a developer, change is a ubiquitous part of our working day. Kaleidoscope is here to make working with change easier and more enjoyable.
Kaleidoscope directly integrates with the IDEs you rely on for your daily work, like Xcode, Android Studio, and JetBrains products (AppCode, IntelliJ IDEA, PhpStorm, WebStorm, pyCharm, …). Use a VCS client such as Git Tower, Git Fork, Gitfox, or Versions? Those integrate, too.
View grouped changes from Git, Subversion, Mercurial, Bazaar, or Perforce in one clear changeset.
Three-Way Merge helps to merge the right content.
Use the new ksp and kspo debug commands to send any debug output to Kaleidoscope.
Even send screenshots to know exactly what’s happening on screen.
Integrate the ksdiff tool with the power of the command-line.
Send anything that can be written to a file or a Unix pipe to Kaleidoscope for inspection.
Want to see exactly what your coworker did in that changeset? Or just learn from a change in an open-source repository? Or do you need to review a change later? Kaleidoscope gives you a great overview and helpful features to focus on what matters.
Working on a branch? Merging changes is sometimes hard, we've all been there. Let Kaleidoscope help you merge your changes cleanly and easily on first attempt. Choose the layout that suits you most to clearly see what changed where and what the best merge might be.
Kaleidoscope offers the best Three-Way merge handling with the Unified Layout. Instead of just showing you text side by side, Unified layout interleaves your possible choices on the left with your final output on the right, providing a concise, readable, and delightful way to merge.
Wouldn't it be nice to see console output in Xcode in a more structured way across multiple runs? What about visually comparing actual screenshots snapshots of certain views? The Kaleidoscope integration with the Xcode debugger and the enhanced ksdiff tool provide you with exactly those powers.
Use the new ksp and kspo debug commands to send any debug output to Kaleidoscope. Do you need to ensure a JSON returned from a server looks exactly the way you expect in various cases? Just send it to Kaleidoscope and its tools.
You can also send image data to see exactly what’s going on. Are you rendering images in code? Want to check if your view layout stays stable under all conditions? Just send snapshots to Kaleidoscope using kspo and you can check down to the last pixel.
Let them work for you.
Use breakpoints to automate the process of sending content when it’s most valuable, and compare later.
XCTest is a great way to test separate units directly from within Xcode. But what if a test fails? Complex failures are not easy to interpret. If things aren’t easy to use, developers will have a resistance to using them, and that is bad for the end product.
As we found no way to integrate with Xcode directly, Kaleidoscope offers various ways to receive content via Drag & Drop or Copy/Paste. For example, drag the message from Xcode onto Kaleidoscope.
From then, it's immediately obvious what's different in the test result.
The following sounds rather trivial and obvious, but is very powerful in reality. When using ksdiff you can use
- as a placeholder instead of a filename in one place. This place will be replaced with whatever gets piped into the ksdiff command.
Alternatively, you can call ksdiff with no file arguments and just pipe content into it. This is useful when combined with the
-l option to send the pipe content to an existing window.
ksdiff also support process substitution, so all inputs can come from other processes, e.g.
ksdiff <(sort file1) <(sort file2)
Learn more on our ksdiff support page.