Kaleidoscope Command Line Tool

The Kaleidoscope ksdiff command line tool serves two main purposes:

  1. It acts as the driving force behind many other integrations, in particular with source control systems like git.
  2. It can be used directly to compare and merge any number of files

Installation

To install or remove, follow these instructions:

!

Update Available

Install the latest version to ensure a properly working setup.

1
Install the ksdiff command line tool Update the ksdiff command line tool The ksdiff tool is installed via a link in /usr/local/bin

Manual Installation

The automatic installation above requires an admin account. If you are not administrator of your Mac, but still want to use ksdiff, follow these steps for manual configuration. Show more…

The idea if to add (a link to) ksdiff to your PATH, so you can just enter ksdiff instead of typing the full path. The steps assume you are using the default macOS zsh shell. Otherwise adjust commands as needed.

1

Open Terminal (or similar). Terminal is located in /Applications/Utilities

2

Locate ksdiff (inside of Kaleidoscope) using Terminal. On typical macOS installations, apps are located in /Applications. In that case, you could locate it by:

cd /Applications/Kaleidoscope.app/Contents/MacOS
ls -l

The listing should show two entries, Kaleidoscope and ksdiff.

3

Open the .zshrc file with an editor, e.g. TextEdit.

open ~/.zshrc -a TextEdit
4

Now we expand the PATH variably by including the path to Kaleidoscope. Scroll to the end of the file and insert a new line. Paste the following line, assuming Kaleidoscope is in the default location. Otherwise use the location you found in step 2 above.

PATH="${PATH}:/Applications/Kaleidoscope.app/Contents/MacOS"
5

Quit TextEdit, confirm saving the changes.

6

Quit your Terminal app and start it again. The following command should now show the help for ksdiff:

ksdiff --help

Usage Examples

Compare the text content two draft plain text documents with the final Word document:

ksdiff ~/Documents/Draft1.txt ~/Documents/Draft2.txt ~/Desktop/Final.doc

Merge conflicting changes between Draft1.txt and Draft2.txt into Merge.txt:

ksdiff --merge --output ~/Documents/Merge.txt ~/Documents/Draft1.txt ~/Documents/Draft2.txt

Pipe content into ksdiff using -. This command will compare an original LoremIpsum.txt file with one where all u characters have been replaced with v.

cat LoremIpsum.txt | sed "s/u/v/g" | ksdiff LoremIpsum.txt -

Process Substitution can help comparing the output of multiple other calls. The following sample will compare the output of sorting file1 with the output of sorting file2, without the need to store the sorted files somewhere.

ksdiff <(sort file1) <(sort file2)

Repeatedly send content into the same Kaleidoscope window using the -l option (and piping). The following command will show processes that consume at least 1% of CPU. Use multiple times to compare over time.

ps -crx -o%cpu,command | grep -e "^\s.[1-9]" | ksdiff -l "ps"