Skip to content
  • Florian 
  • 8 min read

Kaleidoscope 4 — A Year in Review

It’s been one year since Kaleidoscope 4 was released. Time to look back at our achievements and also glimpse ahead. First and foremost, we want to extend a big thank you to our customers, who trusted us and decided to subscribe! We create Kaleidoscope with the goal of providing value to users. Please don’t hesitate to contact us with suggestions for improvement.

Now, let’s summarize the updates since Kaleidoscope 4.0. We’ve categorized them into three sections: features related to Git, the updated folder comparison, and various other enhancements.

Working with Git

Kaleidoscope aims to boost your productivity by helping you understand and manage changes. Many of you work with Git daily. Integrating Git into Kaleidoscope provides deeper insights into your project’s evolution over time. We’re far from done with our ideas, but here’s what we’ve accomplished so far:

File History

Many of you compare two versions of a file from within a Git client or the command line several times a day. When comparing two revisions, it’s very helpful to skim through the file’s history and compare any two revisions side-by-side. The File History gives you a perfect overview of who changed a file and when. It also helps you better understand changes by showing nicely formatted commit messages and even linking to tickets, providing profound insights.

The commit history of a file (in this example from Apple’s Swift Algorithms package), with details of a commit (c5ea9e3e) shown. In addition to author and date, the commit details show you the entire commit message, nicely formatted, including links to tickets (on GitHub etc.). You can also copy the commit hash or open the commit. And of course you can select that revision for comparison in side A or B. Coming soon, you’ll also be able to directly open related changesets.

Merge Context

We all try to avoid conflicts in files, but they still happen. When they do, resolving them is not a fun task. Typically, you feel lost, dealing with text on both sides, at least one of which you did not write. Kaleidoscope provides you with additional context, showing who made changes and why, complete with commit messages and links to tickets. While Kaleidoscope can’t always merge changes magically, it now offers better support in understanding those changes and even knowing whom to contact.

When dealing with merge conflicts it helps tremendously to see context information, like who made changes at which side and why.
(This example has been artificially crafted, I certainly hope you’ll never have to deal with 217 conflicts in one file.)


The File History is great for inspecting single files. However, most changes occur across multiple files in the form of commits. This is where changesets shine in Kaleidoscope, showing all changes to a single file and a sidebar to navigate all changed files quickly. A single commit typically modifies a few files, making it easy to get an overview of those changes. But when comparing two entire branches, such as to review all changes in a feature branch before starting a pull request, there may be hundreds of changed files. This is where filtering files and all the comparison features of Kaleidoscope become invaluable. More on that topic below.

Folder Comparison

The new hierarchical folder comparison shows changes on all levels at first glance, and faster, too. In addition, you immediately see differences in metadata (modification date and file size).

One frequent request we’ve heard for a long time is: why do I have to double-click a folder to see what exactly has changed that Kaleidoscope indicates for that folder? Why can’t Kaleidoscope show an outline? It turns out some things are harder to implement than they sound, but now Kaleidoscope shows all relevant changes at all levels of a folder comparison in one outline, and much faster too. We’ve added multiple other improvements to Folder Comparison, making it even more useful when combined with Git via git difftool -d.

Many Improvements

Over the last year, we’ve continued to fulfill dozens of smaller feature requests, frequently within days or weeks. When you report issues, we investigate and offer fixes as quickly as possible or find a workaround.

Some of the recent improvements. On the left: File Properties, now even showing extended attributes of files, when they differ. Right side: Text Filters window with one the newer filters.

Here are a few areas of improvements:

  • Syntax Highlighting for many additional languages
  • 28 new syntax themes
  • Jump to Line command (⌘L)
  • More Text Filters
  • Several enhancements to the Image Comparison, like new menu commands, toolbar items and support for images using the P3 color profile
  • Enhancements to File Properties, now even showing extended attributes of files
  • Improved Path Bar
  • More keyboard shortcuts for the Find bar

Coming Soon

One problem with changesets is that they are a bit challenging to open. You either need to use an advanced Git app like Tower or know your git difftool syntax and be willing to dive into Terminal. But soon, there will be help: Kaleidoscope will remember previously used changesets and also help you open new ones. We’re delighted with how this has turned out, in the form of an entirely new Repositories section in the Welcome to Kaleidoscope window.

The new Repositories section in the Welcome to Kaleidoscope window. Clicking the button with the number will immediately open a changeset showing local changes in the current working copy. More details coming soon.

Moreover, we connected Changesets and the File History in both directions, which is wonderful when trying to understand more complex code changes. You’ll be able to open the File History from any file in a changeset, and also open the entire changeset around a modification you see in a file in the File History.

Two-way connection between changesets and File History. Want to know more about changes to a file shown in a changeset? Just open the File History for that file. Want to see what else happened around a change to a single file in a commit? Just open the Changeset. More details soon…

These new capabilities will be out in the next update coming in early June. Stay tuned!

Looking ahead

In addition to more ideas in the areas discussed above, there are a few big projects ahead of us, enabling us to implement features that have been requested regularly.

Many users have told us that they want to freely edit files right in Kaleidoscope, not just copy changes from one side to the other. While we consider Kaleidoscope primarily a diff tool and not a text editor, we hear you loud and clear. Unfortunately, the current architecture of the app does not provide sufficient performance and features to implement editing, especially for larger files. We hope to share more about this in the months to come. This is not an easy one!

Another area that has been bugging us for a long time is Image Comparison. While we’ve tried resolving issues and even adding smaller features, most functionality needs to be re-built from scratch, as it has gathered too much technological debt over the years. This task is not quite as complex as text editing but still requires a significant effort. The good news is that a new foundation will enable us to implement some of the ideas we have and features you have requested. We trust you’ll like them!