⏳ Three-minute quickstart guide

This short guide will have you downloading and installing Unison and running your first program. There isn't much exposition here and the focus is on getting you up and running as quickly as possible.

More in-depth guides follow this one.

Step 1: Install Unison

If you haven't already, please join the#generalandtroubleshootingchannels on Slack.

We are really hoping that if you are trying out Unison you'll come talk to us, ask questions, and report bugs! We want you to have a welcoming and positive experience when getting started! 😊

Installation options

The current alpha release is for Mac OS X, 64-bit Linux, and Windows users!

Option 1: Using Homebrew
Option 1: Using Homebrew

Firstinstall homebrewif you haven’t already.

Then from the command line enter these commands (or better yet, paste them into your console):

brew tap unisonweb/unison
brew install unison-language

This will install the Unison codebase manager executable ucm. If you’re upgrading from a previous version, just dobrew upgrade unison-language.

Note: if you get prompted for a GitHub username and password at this point, make sure you spelled unisonweb/unison correctly.

Option 2: Install manually for Mac and Linux users
Option 2: Install manually for Mac and Linux users


mkdir unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/download/release%2FM3/ucm-linux.tar.gz --output unisonlanguage/ucm.tar.gz
tar -xzf unisonlanguage/ucm.tar.gz -C unisonlanguage


mkdir unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/download/release%2FM3/ucm-macos.tar.gz --output unisonlanguage/ucm.tar.gz
tar -xzf unisonlanguage/ucm.tar.gz -C unisonlanguage
Option 3: Install manually for Windows users
Option 3: Install manually for Windows users
  1. Set your default terminal application to “Windows Terminal” for best results. Search for “Terminal” in Settings, or followthis how-to.
    • If you’re not sure you already have it, install Git:
      • via winget:winget install --id Git.Git -e --source winget
      • If you are on Windows 10 and don’t have winget, you can install itfrom the Microsoft Store,and then run the command above.
  2. DownloadUCMand extract it to a location of your choosing.
  3. Runucm.exe🎉
Option 4: Nix installation
Option 4: Nix installation
Head tohttps://github.com/ceedubs/unison-nix/#usageand follow the instructions in the readme there.

Step 2: Create your Unison codebase

Runucmto initialize a Unison codebase in$HOME/.unison.This is where Unison will store function definitions, types, namespaces, and so on. By default, the Unison Codebase Manger (abbreviated the"UCM")will begin downloading the standard library, calledbase,which you'll use to write Unison code. It may take a moment!

Run your first program

Back in your terminal, make a directory to work in, and create a new file there calledscratch.uwith the following contents:

> List.map (x -> x * 10) [1,2,3,4,5,6]

A line beginning with>is awatch expression,and this one multiplies every element in a list by10,using theList.mapfunction.

Ifucmis not running launch it again in the folder you created.ucmmonitors all the unison source files in the current directory for changes and evaluates any watch expressions:



  ~/ucm1/scratch.u changed.

  Now evaluating any watch expressions (lines starting with `>`)… Ctrl+C cancels.

    1 | > List.map (x -> x * 10) [1,2,3,4,5,6]
          [10, 20, 30, 40, 50, 60]

Congratulations, you ran your first Unison program!

We want to hear from you!

If you have any trouble with the process, or have ideas about how to improve this document,come talk to us in the#troubleshootingSlack channel!