Unison Editor

Unison Editor

A modern, beautiful desktop IDE for the Unison programming language. Built with Tauri, React, and Monaco Editor.

Download for macOS Download for Linux View on GitHub
Unison Editor Screenshot

Feature Showcase

Workspace Setup

You will be guided to set up a workspace and associate an existing UCM project with the workspace, or create a new UCM project and link it. The UI shows when a UCM project is linked with the workspace. At any time you can create a new workspace and link a UCM project, or switch the UCM project that is linked.

Workspace Setup

Definition Browser

When you click on a term in the UCM Explorer, it opens in the Terms panel. You can add a term to the currently open file using the plus button on the term card.

Terms Panel

Multi-Select in UCM Explorer

In the UCM Explorer you can select or multi-select (by holding down Cmd/Ctrl) and right-click to add whole namespaces or groups of terms to the scratch file, or open them in the Terms panel.

UCM Explorer Multi-select

UCM Explorer Actions

In the UCM Explorer you can add single or multiple (Cmd to multi-select) namespaces and terms either to an open scratch file or open them in the Terms panel. You can also delete terms and namespaces, rename or move terms. Drag and drop is supported for moving terms.

UCM Explorer Actions

Flexible Panel Layout

The explorer column on the left has sections that can be collapsed or expanded, and can be dragged to resize. Wherever you see a blue thick line when you hover the mouse, you can drag to resize. All panels and sections are collapsible and resizable.

Resizable Explorers

Watch Expressions & Test Runner

You'll find a gold arrow on each line with a watch expression — clicking it runs the expression and shows the result in the output pane below the editor. For test expressions, a green arrow runs that specific test. At the top of the editor, double gold arrows run all watches, and double green arrows run all tests. A purple arrow appears for functions with IO/Exception abilities, allowing you to run them directly. The double blue arrows at the top typecheck the file, or enable the auto toggle next to it for automatic typechecking on changes.

Watch Expressions and Test Runner

Integrated UCM & Output Panels

The editor spawns a UCM process which appears in the bottom panel under the editor. The Output pane displays results from watch expressions and tests. A Terminal panel is also available for general shell access. All panels are collapsible and resizable.

Bottom Panel with UCM and Output

More Features

Syntax Highlighting

Full Unison syntax support with semantic highlighting for types, terms, and abilities.

🔍

Code Navigation

Browse namespaces, jump to definitions, and explore your codebase with ease.

Auto-completion

Intelligent completions powered by UCM with type signatures and documentation.

🖥

Integrated Terminal

Built-in UCM terminal and general-purpose shell access.

👁

Watch Expressions

Live evaluation of expressions as you type with instant feedback.

📚

Documentation

Rich documentation rendering with code blocks and formatted text.

Requirements