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.