Reach Sessions
Your work follows you. Host a persistent terminal session on any machine and attach — or re-attach — from any of your devices. Whatever's running in it, a long build, a dev server, an AI coding agent, keeps running when you disconnect. Reconnect later from anywhere and it's exactly where you left it.
Hosting a session
-
With a GUI: open the Reach tray on the machine you want to host from → Host sessions on this PC.
-
Headless / servers: no GUI needed — run:
reach host
If tmux is installed on the host, Reach exposes your existing tmux sessions;
otherwise it serves fresh shells.
Attaching to a session
-
From the tray: Remote Machines → the host → pick a session.
-
From a terminal:
reach sessions # list your hosts and their sessions reach connect <session> # attach reach connect <host> <session> # attach, naming the host explicitly
Detach without stopping anything — Ctrl-b d if you're on tmux. The session, and
whatever's running in it, keeps going on the host.
Platforms
Sessions can be hosted on Linux, Windows (terminal hosting via ConPTY), and macOS.
Windows
Hosting works well on Windows: turn on "Host sessions on this PC", then pick your shell when you start a new session — Reach auto-detects what's installed and offers New session (PowerShell), (CMD), (Bash) (Git Bash/Cygwin), and (WSL) if you have it. You can host a PowerShell session and a CMD session side by side.
Owner-only — not the same as "Share this PC"
Sessions let you reach your own machines, signed in with the same account, from anywhere. They're not for handing a terminal to someone else — Reach doesn't offer cross-person session sharing (a session is a direct shell to your own account). If you need to give another person controlled access to a machine, that's Share this PC instead, which is scoped per-share and revocable.
Command name
Session subcommands live on the tyoreach binary. From version 1.9.54 a shorter
reach alias also works (so reach sessions and tyoreach sessions are equivalent).
On 1.9.53 use tyoreach sessions etc.