macOS
- Requires
- macOS 13 or later on Apple Silicon
- Get it
- Prebuilt app, or one command in Terminal
- Connect
- Yes. Hardware HEVC and H.264 decoding
- Share
- Yes. Grant Screen Recording and Accessibility once
Latch streams a whole desktop, full screen, over your own Tailscale network. Mac, Windows, Linux and a VPS container run the same app: each one lists the others, and each one can share its own desktop.
01Session
Every install lists every other machine on your Tailscale account and can open its desktop. There is no host or client role to choose.
Step 1
On the computer you want to reach, open the Sharing tab. On Windows, Set up as administrator takes one administrator prompt: it opens Latch’s port to your tailnet only, turns Fast Startup off and arms the network card for Wake-on-LAN. A Mac asks for Screen Recording and Accessibility once. The streaming engine is part of Latch; there is nothing else to install.
Step 2
Tailscale already knows who you are. The other machine checks
your identity with tailscale whois, so there is no
PIN to type and no certificate to accept. If a Windows PC is
asleep, Latch wakes it and waits.
Step 3
Full screen by default. Click the picture and the mouse is captured, as in a game, so games that read raw mouse movement work. Ctrl+Alt (Control-Option on a Mac) is the host key, as in a hypervisor: it frees the mouse and drops this toolbar over the picture. The text clipboard follows you both ways.
02Network
A machine answers only peers signed in to the same Tailscale account. There is no Latch account or password, and the control port is open to your tailnet only.
FromThis machine
ToYour other machine
tailscale whois puts on your account. Everyone
else gets a 403.
100.64.0.0/10, Tailscale’s address range, and
nothing else.
03Specifications
These are the settings Latch 5.0.1 offers, not benchmarks. What you get depends on both machines and the path between them.
Match screen, this display’s own pixel size, by default.
The sharing machine’s desktop follows the size asked for, and goes back when you disconnect.
30, 60, 90, 120, 144, 165 or 240 fps. 60 by default.
Above 60 needs a display on the sharing machine that runs that fast.
2 to 150 Mbps. The encoder aims at it while the picture moves; a still screen uses less.
50 Mbps by default, on every path.
Custom sets all three yourself.
HEVC between two Macs, H.264 everywhere else. Either can be forced.
Built into Latch on the sharing machine: VideoToolbox on a Mac, the GPU’s encoder through Media Foundation on Windows, Latch’s own H.264 encoder on Linux and a VPS with no GPU.
Lossless, 48 kHz stereo, played on this machine’s default output.
Captured mouse with raw movement, or free. ⌘ acts as Ctrl on a PC by default.
Text, both ways, up to 32 KB.
Tailscale (WireGuard): direct, your own peer relay, or DERP.
1200-byte datagrams, sized for the tunnel’s 1280-byte MTU.
The Mac app checks GitHub about every six hours, verifies the SHA-256 and code signature, and installs when no stream is running.
It sends new Latch Host builds to Windows PCs over port 47850.
Rust, top to bottom: the streaming engine, the protocol and the H.264 codec are Latch’s own. No C or C++.
GPL-3.0-or-later.
04Platforms
Each install lists the others and can connect to them. Every machine needs Tailscale, signed in to the same account.
latch-host, or build from source05Download
Released 29 October 2026. First install Tailscale on each machine and sign in with the same account. A copy that is already installed updates itself and keeps its settings.
In Terminal. Downloads the latest release, checks its SHA-256 and signature, installs it in Applications and opens it.
curl -fsSL https://raw.githubusercontent.com/MrBeldum/latch/main/scripts/install-macos-release.sh | bash
Downloaded the archive in a browser instead? The app is ad-hoc
signed, so unpack it and clear the quarantine flag first:
xattr -dr com.apple.quarantine Latch.app
latch-host.exe, or
install-host.ps1 for shortcuts and start at
logon.
Put a Tailscale auth key and a hostname in .env,
then start the container.
git clone https://github.com/MrBeldum/latch
cd latch
cp deploy/node/env.example deploy/node/.env
# paste a Tailscale auth key, pick TS_HOSTNAME
docker compose -f deploy/node/docker-compose.yml up -d --build
latch-host for an X11 desktop, run under systemd,
with a .sha256 beside each archive. Or build it
from source: Latch needs nothing but Rust.