Mercurius — A Zero-Trust Network‑Native Window System

Mercurius in Use

Your applications run where the resources are. You use them where you are. Mercurius is a zero-trust network-native window system that brings their windows, graphics and sound to the desktop in front of you.

KDE Plasma desktop showing LibreOffice Impress, Strawberry music player, X4: Foundations, KDE Patience, Gnome Mahjongg and konsole. Applications running on Kubuntu, Debian and FreeBSD systems appear together as ordinary windows.
Three machines, one desktop. Select any screenshot to open it at full resolution.

Everything belongs on your desktop

In this screenshot I am sitting at flash, a Debian 13 miniPC. LibreOffice, X4: Foundations, and Gnome Mahjongg are running on xavier, a Kubuntu workstation. The Strawberry music player, KDE Patience and the mlogo applet are running on a FreeBSD server. Both machines are in a different building to the one I am sitting at. I can play games, edit the presentation and listen to music here even while the applications remain there, without installing them on this machine. Despite coming from three different systems, all of the windows behave as ordinary members of a single Plasma desktop. The applications can make use of the full 4K resolution of flash's monitor despite neither xavier nor torch having one.

The Konsole window shows the commands used to start the applications, and the operating systems on which they are running. Normally, rather than typing in commands I would just double-click the relevant icon you can see on the desktop, which will run the application in the same way. Where it is running is then transparent to the user. The application can be installed where it makes the most sense, it does not need to be on the local machine. For example, run data visualisation software on the machine holding huge datasets.

The machine at your seat is the Portal. It connects your display and input devices to the workstation running the application. Both roles can be on one machine, with no network connection required, or on separate machines connected using SCTP. The application and Session model is the same in either case.

Access begins with authentication, using SSH keys or a password through PAM. Window ownership and message routing are scoped to the authenticated Session. Being on the same LAN does not confer trust.

Your workstation, wherever you sit

The aim is to use your workstation as though your keyboard, mouse, monitor and speakers were plugged directly into it — like a USB dock that can reach across the network. The application stays with the workstation’s files, software and GPU; its window and sound come to you.

A FreeBSD workstation desktop delivered through Mercurius to a Debian Portal, demonstrating that applications, files and audio remain on the workstation while the desktop is used elsewhere.
A FreeBSD workstation used through Mercurius. Applications, files and audio remain on the workstation.

This is a normal FreeBSD desktop session, not a copy of a desktop image. Strawberry plays music from torch’s collection, Gwenview shows a photograph from its picture library, Dolphin browses the Mercurius source tree, and Okular reads its documentation. Each application runs on torch under my own user account, with its usual files and permissions, while Mercurius brings the whole desktop, with sound, to the Portal. In this instance to flash, a Debian 13 miniPC in another building.

Run a desktop or individual programs

Quake III Arena running on xavier and displayed as an individual window on flash’s KDE desktop.
Quake III Arena on flash, rendered by xavier’s RTX 5070.

Here I am sitting at flash, which does not have Quake III Arena installed. This command starts it on xavier:

mwsc xavier /opt/quake3/quake3e.x64 &

Xavier runs and renders the game. Mercurius delivers its graphics and audio to flash and carries my keyboard and mouse input back, using separate streams. The game has its own window on my desktop, and its sound plays through the speakers beside me.

Run applications wherever they live

Sid Meier's Alpha Centauri, a Windows game, running under Wine over Mercurius.
Sid Meier's Alpha Centauri, a Windows game, running under Wine over Mercurius.

This is a Windows game running under Wine on xavier, yet here I am playing it on my KDE Neon (Plasma 30th Anniversary Edition) laptop over Wi‑Fi in a completely different building. Running full-screen, with graphics, sound, mouse and keyboard all feeling local, it's easy to forget where the game is actually running.

Unmodified applications, different GPUs

The Vulkan applications shown below run unmodified: they do not need to know about Mercurius or its network protocol. Each uses its workstation’s Vulkan device and rendering pipeline; the Portal uses its own GPU to present the result.

Five independent windows on a Debian desktop showing the Mercurius logo, a dragon, radial blur, a particle campfire and coloured gears.
Vulkan applications rendered on local and remote GPUs, presented together on a Debian mini PC.

The Mercurius logo runs on FreeBSD, the Stanford Dragon runs locally, and the radial-blur, particle-campfire and gears examples from Sascha Willems’ Vulkan demos run on a remote Kubuntu workstation. These combinations exercise different operating systems, graphics drivers and GPUs, including Intel integrated graphics and NVIDIA hardware.

A workstation, a Portal, or both

Mercurius logo windows alongside terminal output documenting workstation and Portal roles across Ubuntu, Debian, FreeBSD and openSUSE.
The terminal output shows the machines, commands and connections behind the logo windows.

Workstation and Portal are roles, not separate kinds of computer. A machine can run applications for another machine, present applications running elsewhere, or do both at once. You choose where an application runs and where you use it; neither choice is tied to a particular operating system.

Debian Linux running on an IBM Z (s390x) system. A terminal window shows Mercurius commands connecting to a FreeBSD workstation, while the MWS mlogo application window is running remotely on FreeBSD and displayed locally.
mlogo running on FreeBSD and displayed on an IBM Z (s390x) system VM.

The large terminal window makes those roles visible. Its commands and output document Mercurius running across Ubuntu 24.04, Debian 13, FreeBSD 15 and openSUSE Leap 16, including Linux-to-FreeBSD and FreeBSD-to-Linux connections. Each logo window is the visible result of one of those connections, rendered on its workstation and presented at its Portal.

The screenshot also shows the mwsc command-line help and its manual page. Mercurius fits into familiar Unix working habits: launch an application with a command, consult the manual for its options, and use the terminal diagnostics to understand a connection. The terminal also shows “Permission denied”: access requires authentication, even between machines on the same local network. The commands and windows shown here let you see how the pieces fit together.