Getting started
tailreach runs on the Mac you want to reach. The phone, tablet or laptop you view it from needs only a browser and the Tailscale app.
Requirements
Section titled “Requirements”On the Mac being shared
- macOS 14 or later. Apple silicon is the main target; Intel Macs work too.
- The Xcode Command Line Tools, for
swiftcandcodesign:xcode-select --install. - Go 1.27 or later if you build from a clone (on Apple silicon, the
darwin-arm64one). Homebrew fetches Go for you.
The Mac doesn’t need the Tailscale app: tailreach has Tailscale built in and joins your tailnet itself. It’s fine if the app is installed anyway.
Your Tailscale account
- A Tailscale account (free for personal use).
- MagicDNS and HTTPS certificates switched on in the admin console, under DNS settings. They give the Mac a name like
devices.<your-tailnet>.ts.netwith a real certificate, which a phone’s browser needs for WebRTC, passkeys and the clipboard.
On each device you’ll view from
- The Tailscale app, signed in to the same account.
- A modern browser: Safari on iPhone and iPad, Chrome on Android, or Chrome, Edge, Firefox or Safari on a computer.
Install with Homebrew
Section titled “Install with Homebrew”brew install tanmaydoesai/tailreach/tailreachtailreach setupYou still need the Command Line Tools. After every brew upgrade tailreach, run tailreach setup again: Homebrew can’t use your keychain while it builds, so setup is what signs the new copy and keeps macOS’s permissions in place.
Install from source
Section titled “Install from source”git clone https://github.com/TanmayDoesAI/tailreach.git && cd tailreachmake setupIn a clone, the command is ./tailreach rather than tailreach.
There are no prebuilt downloads: tailreach is always built on your own Mac. make setup and tailreach setup do the same thing, and both are safe to run again:
- create a local signing identity, so macOS remembers tailreach’s permissions across rebuilds;
- build tailreach and its screen-capture helper, and sign them;
- add a login item, so it starts on its own after every login;
- run
tailreach doctor.
First run and tailreach doctor
Section titled “First run and tailreach doctor”tailreach doctor checks every step and prints what’s left, with the exact fix for each. On a fresh install that’s usually three things only you can do:
- Approve the Tailscale sign-in. The doctor opens the login link; approve it with your own account.
- Choose a device password. Run
tailreach passwordin your terminal, or use the settings window (tailreach settings). It’s a password for remote access, not your Mac login password; use at least 8 characters. - Switch on two permissions in System Settings → Privacy & Security: Screen Recording and Accessibility, both for
tailreach. Iftailreachisn’t in a list,tailreach doctor --askputs it there.
Run tailreach doctor again after each fix until it says All good or Working. It exits with status 1 while something still needs fixing.
To unlock the Mac from its lock screen, also turn on System Settings → General → Sharing → Screen Sharing. See Using it.
Set up your phone
Section titled “Set up your phone”- Install the Tailscale app and sign in with the same account as the Mac. On iPhone, turning on On Demand stops iOS from letting it sleep.
- Open
devices/in Safari (or the fullhttps://devices.<your-tailnet>.ts.net/). The first HTTPS request can take up to about 40 seconds while Tailscale issues the certificate. - Enter the device password. A device stays trusted for 30 days. You can add a passkey (Face ID, Touch ID, Windows Hello) for next time, or tap Not now.
- Tap your Mac. In Safari, Share → Add to Home Screen gives it an app icon and full screen.
The addresses look like this:
https://devices.<your-tailnet>.ts.net/ dashboard: every device, online or nothttps://devices.<your-tailnet>.ts.net/mac/ that Mac's screenhttps://devices.<your-tailnet>.ts.net/mac2/ another oneIf devices is already taken in your tailnet, choose another hostname with --hub-name, for example --hub-name screens.
More computers
Section titled “More computers”On each extra Mac, clone the repo and run:
make setup FLAGS='--name mac2' # shown at /mac2/ on the first Mac's dashboardmake setup FLAGS='--name mac2 --via ""' # or on its own, with its own sign-inWith Homebrew: tailreach setup --name mac2 (or tailreach setup --name mac2 --via "").
Several computers behind one hub are less isolated than a single Mac; see Security.
Windows and Linux
Section titled “Windows and Linux”A Windows or Linux computer can be shared at a basic level: point --vnc at a VNC server you run (TightVNC, TigerVNC…), for example --vnc 127.0.0.1:5901. There’s no fast stream or extended display there yet; a native Windows host is on the roadmap. Any of them can be the viewing device.
Upgrading from mydevices
Section titled “Upgrading from mydevices”Earlier versions were called mydevices. tailreach setup (or make setup) moves such an install over, keeping your Tailscale login, password and passkeys. macOS asks for Screen Recording and Accessibility once more.
Uninstall
Section titled “Uninstall”tailreach uninstallrm -rf ~/Library/Application\ Support/tailreach # forgets the Tailscale node, passwords, passkeysThen remove the devices machine in the Tailscale admin console, and the permission entries in System Settings.
