It took us a tad longer than we had initially hoped, but here it is: the final version of Kaleidoscope 6.4 with the all new Image Comparison — a complete rewrite of one of Kaleidoscope’s three core features.
In case you are not aware: Kaleidoscope offers four different ways to compare images, enabling you to find differences down to the finest detail — from subtle pixel changes to structural differences. Common image metadata is also shown in the File Inspector. The image comparison also works inside git changesets, giving you the ability to quickly evaluate lots of images, like you may have when running automated screenshot tests.

Left of the vertical split line you see an older Git revision of that image, while the current working copy version is shown on the right. The checker pattern indicates transparent areas in the image. The upper right area of the image view shows the Navigator, providing you with an overview over the entire image. The right column shows all revisions of that file in Git, with the working copy revision shown as B and a revision from April 2024 in A.
The Image Comparison has been a source of pain for us ever since we started working on Kaleidoscope. While definitely the right choice when it was originally built, OpenGL wasn’t much fun to work in the last few years. And OpenGL is really just the poster child for explaining how old the codebase was. As a result we tried to avoid touching it altogether, waiting for the right moment to reimplement the entire thing from scratch.
When recent AI-assisted coding tools started to become practical, Christopher used various tools, mostly settling on Claude Code, to implement various prototypes and try out very different approaches. Eventually he settled on an architecture that looked promising enough and had all basic functionality working. He handed the project over to Michael who now had the questionable honor to convert a hallucinated prototype into something that actually always works and supports all the needed features. As we all know, getting from 80% to finished product is where the majority of time is spent.
The good news is that we are really happy with the result. There are still some minor rough edges, noticeable (hopefully only) for us, mostly caused by AppKit refusing to exactly do what we’d like it to do. But overall, the new implementation is more polished, can handle larger images, loads them faster, feels smoother when zooming and panning, and enables features that would have been impossible on the old technology stack. The best news: maintaining that code and adding new functionality is now much easier! And as Apple makes improvements to software or hardware, we (and you) get to inherit those benefits for free.
We have lots of ideas for new future features lined up, but our goal has been and will always be to create the best tool for the needs of our users! If you have particular requests or features you’re missing to have Kaleidoscope fit your needs even better, don’t hesitate to reach out and let us know!