GNOME / WAYLAND / REMOTE DESKTOP

Get back home

Waylo connects directly to GNOME’s Mutter APIs for unattended access to the desktop you already use.

Self-hostedMIT licensedNo client install required
A penguin astronaut using a laptop, with two desktop monitors orbiting a little moon rock.

01 UNDER THE HOOD

Short path.
Real desktop.

Waylo talks directly to GNOME’s compositor. Capture and input share the same running session, without a screen-sharing approval dialog at the other end.

01 / CAPTURE

GNOME Mutter

ScreenCast + PipeWire

YOUR LINUX HOST
02 / ENCODE

GStreamer

H.264 · GPU when available

HARDWARE / SOFTWARE
03 / DECODE

Your browser

WebCodecs over WSS

NO PLUGIN REQUIRED
KEYBOARD + POINTERBrowser → WSS → Mutter RemoteDesktop

H.264 first. MJPEG when needed.

No compatible encoder or browser decoder? Waylo falls back automatically to MJPEG, at a higher bandwidth cost.

Use resources when they’re useful.

Capture starts when a client authenticates and stops after the last client leaves. Change frame rate and quality live.

Explore the architecture

02 YOUR SIDE OF THE CONNECTION

Self-hosted.
By design.

Run a small systemd user service on the GNOME machine. Reach it through your own network, and sign in with that desktop user’s credentials.

Your session. Your access rules.

  • System credentials, verified over SSH.Waylo checks login against sshd on localhost. Only the running session’s owner can connect; sudo access is required.
  • Encrypted transport out of the box.HTTPS and WSS use a self-signed certificate by default. The optional desktop client can pin the certificate.
  • A private route to your desktop.Use an SSH tunnel or VPN. Keep port 8080 off the public internet.
Read the security model

Requirements

HOST + CLIENT
Desktop
GNOME / Mutter
Designed for Wayland; GNOME on Xorg also works.
Host packages
GStreamer + OpenSSH
The installer can help install missing packages.
Runtime
Node.js, bundled
No separate Node or npm install needed.
Browser
WebCodecs for H.264 + audio
MJPEG video fallback for other browsers.
Full system requirements
What about locked screens and cold boots?

Keeping the physical screen locked during capture requires the allow-locked-remote-desktop GNOME extension. Waylo can install it during unattended setup. Without it, Waylo briefly unlocks the session to start capture.

Connecting after a cold boot requires a running GNOME session. Unattended setup can configure auto-login and auto-lock. Read the setup details and tradeoffs ↗

03 INSTALL

One command
on the host.

Run this on the GNOME machine you want to reach, as your normal desktop user. The installer verifies the download, bundles the runtime, and sets up the user service.

SHA256 verifiedsystemd user service
INSTALL / LINUX HOST
wget -qO- https://waylo.site/install.sh | sh

Run as your desktop user. Don’t use sudo.

THEN CONNECT

Open https://your-host:8080 over your VPN, or use an SSH tunnel. Sign in with your Linux account.

Inspect install.sh Connection guide

DOWNLOADS

The server runs on your GNOME machine. The optional desktop client saves connections, stores credentials encrypted, pins certificates, and opens every monitor in one click.

Waylo server

v0.4.33, x86-64

Desktop client optional

v0.4.13
  • AppImage 127 MB Any Linux: chmod +x and run
  • deb 100 MB Debian and Ubuntu: sudo apt install ./waylo-desktop-0.4.13-linux-amd64.deb, then updates arrive through Software Updater
  • Windows installer 103 MB Unsigned, so SmartScreen warns the first time
  • SHA256SUMS 622 B Checksums for the files above
  • No macOS build is published yet, but you can build the client on a Mac.

Documentation

Installation, unattended access, performance tuning, and the details behind every connection.