Localhost Tunnel

  • Desktop, mobile and web
  • All plans

What it does

Exposes a local dev server as a public HTTPS URL on a subdomain you choose (https://my-app.preview.agentsroom.dev), without deploying or installing anything. Share work in progress with a colleague or a client, test on your own phone from anywhere, or give a QA agent a live target. WebSocket traffic passes through, so Vite HMR, Next.js fast refresh and the Expo Metro bundler keep working. When you stop the tunnel, visitors see an "offline" page.

Where to find it

  • Inside a project, the room dock: Preview ("Expose your local server at a public URL") opens the Preview Tunnels modal, with an Active tab and a New Tunnel tab.
  • On the phone: the Preview button in the project header (green with a pulsing dot while a tunnel runs).
  • Feature switch: Settings > Features > Live Preview.

How to use it

  1. Start your dev server (a dev terminal is the natural place). Open Preview > New Tunnel.
  2. Select a server: AgentsRoom scans the open local ports and lists what it detects (Next.js 3000, Vite 5173, Expo 8081...). Re-scan, or type a custom port.
  3. Choose a subdomain (lowercase letters, digits and hyphens; a default is proposed) and an optional label ("Frontend", "API"), then Start Preview. The tunnel config is saved with the project, so next time it is one click on Start.
  4. Copy URL or Open in browser. Stop tunnel when done; the config stays for later. A project can hold several tunnels.
  5. Sign-in is required to start a tunnel ("Sign in to start a preview tunnel").

The embedded browser automatically targets a running tunnel when it opens, and the phone opens the tunnel URL in a full-screen web view with back, forward, refresh and open-in-Safari.

Settings

  • tunnelWsUrl (global, advanced): address of the tunnel service. Leave the default.
  • Feature flag Live Preview in Settings > Features (featureFlags).

Agent tools (MCP)

None dedicated. Browser-capable agents reach a running tunnel through browser_navigate, and the browser picks the tunnel URL by default.

Providers

All providers, no difference.

Mobile

Yes, and it was the first surface of the feature: the Preview button opens a sheet (scan the desktop's ports, pick a server or a custom port, choose a subdomain, start), then the site in a web view. Tunnels started on the desktop before the phone connected appear in the Active tab. The desktop must be running: the tunnel is opened from your computer.

Limits

  • Free and Plus: 1 tunnel start per week ("Weekly tunnel limit reached", with the reset countdown). Pro and Team: unlimited. Running tunnels keep running while you upgrade.
  • Request body up to 10 MB, 15 s timeout per request, 50 pending requests per tunnel. Binary assets are base64-encoded in transit (about a third more bandwidth), fine for development, not for real traffic.
  • One extra round trip through the tunnel server: not for performance benchmarks.
  • If the connection drops, the desktop reconnects up to 5 times, 3 s apart, with a heartbeat every 25 s; visitors see the offline page meanwhile.
  • A subdomain must be unique across users; "Subdomain already used in this project" means the name is taken here.

Common questions

  • Is it free? Yes, with one start per week on the free plan. No bandwidth cap on any plan.
  • Does hot reload work through it? Yes, WebSockets are passed through.
  • Can several people open the URL at once? Yes; each request is proxied independently.
  • My dev server sees odd hosts. It does not: Host, Origin and Referer are rewritten to localhost:PORT so Vite, Next and Expo behave as usual.
  • Do I need ngrok or a CLI? No, everything is built in.