Tunnels

Open a port on a machine, tap it on your phone.

An agent starts a dev server on the machine it is working on. You tap it on your phone and the page opens — a React app on the desktop, a notebook on a cloud box, a preview of the thing that was just built.

How it works

The page runs in your phone's browser and speaks directly to the machine over an encrypted peer-to-peer data channel. A service worker on the page catches every request and sends it down that channel; a small helper process beside the daemon answers it out of localhost:PORT.

The hub only introduces the two ends — it exchanges the connection details and then steps out. Your traffic never flows through our servers, which is a design constraint, not a phase: video, large files and busy pages cost us nothing and are not throttled by us.

What it does and does not do

Direct peer-to-peer connections do not always land — a carrier network behind CGNAT is the hard case. When it cannot connect you are told, rather than left with a spinner.