Your Mac, in any browser.
Over your own Tailscale.
Control your Mac from your phone on 5G, or turn a spare tablet or laptop into a second monitor for it. Nothing to install on the device you view from, no port forwarding, no relay server, no account besides your own tailnet.
A live screen, not a slideshow
Hardware HEVC or H.264 from the Mac over WebRTC, with rate control built for mobile links: it cuts fast when 5G dips and is back in a couple of seconds.
Touch, trackpad and real shortcuts
Trackpad or touch mode, pinch to zoom, three-finger swipes for Spaces. Keys arrive as real key presses, so app shortcuts and held keys just work.
Any screen becomes a second monitor
A tablet, laptop or phone browser turns into an extra display the size of that screen. Drag windows onto it like a plugged-in monitor.
Unlock from the lock screen
A locked Mac shows up as locked. Type your Mac password on your phone and it goes to the real lock screen; then the fast stream resumes.
Invite a guest, view-only if you like
Give a friend an expiring invite with a one-time code. They see this Mac only, never your password, and the Mac names them while they’re on.
Files and sound
Drop files on the screen and they land in the Mac’s Downloads, never replacing anything. Switch on sound to hear the Mac on your device.
Install
tailreach is built on your own Mac. You need the Xcode Command Line Tools and a Tailscale account with MagicDNS and HTTPS certificates on.
Homebrew
$ brew install tanmaydoesai/tailreach/tailreach
$ tailreach setupFrom source (needs Go)
$ git clone https://github.com/TanmayDoesAI/tailreach.git
$ cd tailreach && make setupSetup ends with tailreach doctor, which lists what’s left for you (approve the Tailscale sign-in, choose a device password, allow two permissions) with the exact fix for each. Then open the link it prints on your phone. Full guide →
How it works
- One program on the Mac with Tailscale built in (
tsnet). It joins your tailnet asdevicesand gets a real HTTPS certificate. No Tailscale app needed on the Mac. - No server in the middle. Your phone opens
https://devices.<tailnet>.ts.net/mac/. Only your Tailscale identity gets in, then your device password or a passkey. - WebRTC over the tailnet. A small Swift helper captures with ScreenCaptureKit and encodes with VideoToolbox; the video goes as UDP straight to the browser’s hardware decoder.
Why not something else?
They’re good tools. tailreach is for when you want a browser-only viewer on your own private network.
| Free | Open source | Just a browser on the phone | No port forwarding or server to run | Second monitor | Unlock from the lock screen | |
|---|---|---|---|---|---|---|
| tailreach | Yes | Yes | Yes¹ | Yes | Yes | Yes |
| macOS Screen Sharing | Yes | No | No | No² | No | Yes |
| Chrome Remote Desktop | Yes | No | No | Yes | No | · |
| RustDesk | Yes | Yes | No | Yes³ | · | · |
| Jump Desktop | No | No | No | Yes | · | · |
| Parsec | Yes⁴ | No | No | Yes | · | · |
- Plus the Tailscale app, which puts the phone on your tailnet.
- Built in and great on a local network; reaching it from outside needs port forwarding or a VPN.
- Uses RustDesk’s public relay servers by default, or one you host yourself.
- Free for personal use; paid plans for teams.
A dot means we haven’t verified it. Corrections are welcome as an issue.