Skip to content

Latch v3.0.1

Choose a tag to compare

@MrBeldum MrBeldum released this 09 Sep 22:48
· 184 commits to main since this release

Latch 3.0

The Mac app streams by itself. Moonlight's GameStream client
library (moonlight-common-c) is compiled into Latch, frames are
decoded with VideoToolbox and drawn in Latch's own window. There
is no Moonlight to install. The Windows zip carries the Sunshine
installer, so the PC downloads nothing during setup either.

  • A toolbar above the picture instead of a bare video: PC name and
    stream details, mouse capture (Ctrl+Alt), what the Command key
    does, a Keys menu (Ctrl+Alt+Del, Windows key, Alt+Tab, Esc,
    Print Screen), stats, full screen, the PC's power menu, and
    Disconnect. In full screen the toolbar sits in the letterbox bar
    when there is one and drops down from the top edge when there is
    not.
  • Waking: setup turns Fast Startup off and writes the driver
    keywords for magic-packet wake from sleep, modern standby and
    shutdown. The host listens on UDP 9 while awake, and the PC menu
    on the Mac has Test wake, which says whether wake packets
    from where you are reach the PC at all.
  • Pairing talks to both Sunshine's current PIN API and the next
    one (pairing ids).
  • License: GPL-3.0-or-later, as moonlight-common-c requires.

Install

Windows PC: unzip, run brolink-host.exe (or install-host.ps1
for shortcuts and start-at-logon), click Set up this PC once.
Sign the PC in to Tailscale with your account.

Mac (Apple Silicon): with the GitHub CLI signed in,

curl -fsSL https://raw.githubusercontent.com/MrBeldum/brolink/main/scripts/install-macos-release.sh | bash

or download the tarball and

tar xzf brolink-macos-arm64.tar.gz
xattr -dr com.apple.quarantine Latch.app
open Latch.app

Verified

  • Unit tests, clippy and fmt on Windows and macOS in CI
  • On a Windows 11 PC with Sunshine v2026.516: pairing through the
    built-in client (all five phases, pinned certificate), app list,
    launch and resume, an encrypted RTSP session with decoded video,
    a clean stop, and the live picture rendered in the Latch
    window
  • The host service on the same PC: status, the wake-packet
    listener receiving a real magic packet, the Mac-side wake test
    against it
  • Every screen of both apps rendered to PNG and reviewed

Not verified

  • The app on an actual Mac: macOS CI builds it, and the
    VideoToolbox decoder is written against Apple's documented API,
    but nobody has run this build on Apple hardware yet
  • The elevated setup script end to end: the development PC already
    had Sunshine, the firewall rules and Wake-on-LAN in place
  • Wake from a full shutdown depends on the board's firmware
    allowing it; the Test wake result covers the network path only