Skip to content
TurbotunnelTurbotunnel
Esc
navigateopen⌘Jpreview
On this page

tt http

Expose an already-running local HTTP or WebSocket app.

tt http [project-or-port] [options]

tt http opens a tunnel to a local app through the configured gateway. The app can start before or after the tunnel. For task guides, see use cases.

Before connecting, terminal output shows the public URL, local target, and relay count. After all relays connect, Turbotunnel prints a readiness message. Redirected output and continuous integration (CI) runs use plain milestones without animation.

Arguments and options

Input Description Default
<project-or-port> Configured project name or local TCP port. Only project or selection
--port <port> Override the configured local port. Project port
--slug <slug> Public tunnel slug. Use lowercase letters, digits, and hyphens; maximum 54 characters. Saved slug or a random slug
--host <host> Local app host. localhost
--pool <count> Number of local relay sockets, from 1 to 16. 2
--domain <domain> Base tunnel domain or {slug} host pattern for this run. Saved domain
--secret <secret> Relay secret for local gateway development. Saved secret
--relay-url <url> Explicit http, https, ws, or wss relay origin. Derived from the tunnel domain
--public Temporarily use public access. Project access policy
--password [value] Temporarily require a password; omit the value to generate one. Project access policy
--allow-ip <cidr> Temporarily allow an IP/CIDR; may be repeated. Project access policy

Open common tunnels

Expose a Vite app:

tt http 5173

Connect to an app listening on another interface:

tt http 3000 --host 127.0.0.1

Expose a configured monorepo project:

tt http dashboard

Turbotunnel provisions the project’s managed vercel.app hostname or exact custom domain before connecting.

With one configured project, tt http selects it automatically. With multiple projects, an interactive terminal presents a selector; non-interactive use requires the project name.

Increase the relay pool to add direct HTTP capacity and independent relay connections:

tt http 5173 --pool 4

Local gateway development

Point the client at a gateway running locally:

tt http 5173 \
  --domain localhost:3002 \
  --relay-url ws://127.0.0.1:3002 \
  --secret dev_secret

When --relay-url is set, Turbotunnel still uses the configured domain to build the public host and sends that host to the relay.

Forward requests when your app starts

Turbotunnel connects without waiting for the local app. If the app is unavailable, the public URL returns an HTTP 502 page with recovery steps. Requests begin forwarding when the app responds.

WebSocket connections close with code 1011 while the local app is unavailable. Reconnect after the app starts.

Public WebSocket subprotocol negotiation is not supported. Upgrade requests containing Sec-WebSocket-Protocol are rejected with HTTP 400 rather than forwarding a protocol the gateway did not negotiate.

If no gateway settings are available from options or the saved config, run tt deploy first.

Was this page helpful?