It's high time we sang the praises of the last few versions of Unison! The team has invested a ton of time in Unison tooling improvements: the Unison-Desktop has a new release to download and the latest UCM versions include the first release of an MCP server for AI tooling integrations. Here's a quick rundown of the highlights.
🖥️ Unison-desktop release

Unison's workflow for viewing and exploring a local codebase continues to expand. The UCM-Desktop has been especially helpful for folks who miss the more traditional experience of viewing their types and functions in namespace/directory tree. The new release includes:
- Improved light mode contrasts (including overlay menus)
- Improved focus indication
- Added a keyboard shortcut explainer modal (through the settings menu)
- Click on cards to focus them
✨ New UCM features
Built-in MCP server
We added an MCP server to the UCM to better support AI programming workflows. The MCP server supports agents and other AI tooling to perform operations like typechecking code, searching Unison Share, and inspecting your local project.
🔗 Read more about the MCP server and how to set it up here.
New update workflow
Incomplete code updates now create a dedicated -update
branch, so you can finish applying changes without disrupting your working branch. Want to omit something from the update? Just delete it from the scratch file before entering update
again to complete it (much easier now!) Once you're happy and the update succeeds, the results are merged back into your working branch and the temp branch is cleaned up automatically.
🎥 The new update workflow has a demo here.
Modify your codebase in-place with transcripts
ucm transcript.in-place
is a new transcript runner command that modifies your codebase (by default, transcripts run on a fresh codebase and create a fresh codebase). With great power comes great responsibility! Fortunately, you can always reflog
and reset
your codebase state if your transcript goes awry.
Install local projects/branches as dependencies
lib.install.local localProject/branch
is a new command for installing a snapshot of another local project/branch as a dependency. Previously, you might have used a lesser-known fork
command, or pushed your work in progress to Unison Share as a feature branch, only to immediately download it as a dependency. Now you can skip the push/download network step and install directly from your local codebase.
Tab completion for remote projects in the UCM
We all forget project and branch names from time to time. Tab-completion has been a commonly echoed request from the community, so we're happy to report that the UCM now supports tab completion for remote branches when using commands like lib.install
and clone
.
It's time to upgrade
The latest versions also include numerous bug fixes and performance improvements. If you haven't updated Unison in a while, now's a great time to do so!