Skip to content

Remote access

Reaching another machine to code on it — your desktop from a laptop, a work box from a phone, a local dev server from a client's browser.

Three different mechanisms, easy to confuse:

You wantReach forWhat it actually is
One local port visible to someone else, for a whileAzure Dev TunnelsEphemeral authenticated public URL through a Microsoft relay
Your machines behaving like one private LAN, permanentlyTailscaleWireGuard mesh VPN + identity-based SSH
Steer a running Claude Code session from your phoneClaude Code Remote ControlFirst-party; session relays through the Anthropic API
The same, across Codex / Cursor / Grok Build tooT3 CodeThird-party agent harness UI over your own network

Note the split: the first two move a port or a network. The last two move the session — Claude keeps running on your machine either way.

Guides

GuideDescription
TailscaleMesh VPN, Tailscale SSH, serve vs funnel
Azure Dev Tunnelsdevtunnel host, persistent tunnels, access control
Claude Code Remote Controlclaude remote-control, server mode, phone + web
T3 CodeControl coding agents remotely, pairing over Tailscale

Picking one

  • Sharing a webhook target or a preview with a client → Dev Tunnels. Nothing to install on their side, and the tunnel dies when you press Ctrl-C.
  • Working across your own machines every day → Tailscale. Set it up once, then everything (SSH, DDEV, Storybook, databases) is reachable by hostname.
  • Checking on a long agent run from the couch → Claude Code Remote Control if you only use Claude Code; T3 Code if you switch between agents or want it on your own network.
  • Several at once → common. Tailscale for your own fleet, Dev Tunnels for anything a third party has to load in a browser, Remote Control for the agent session itself.