Share your localhost
with a public HTTPS link
Run one command and anyone can open the app on your computer. Works with React, Vite and Next.js hot reload, APIs and WebSockets.
$ tunnel http 3000 my-app
tunnel online as yusuf
Forwarding https://my-app.tunnel.tilla-app.uz -> http://localhost:3000
12:04:31 GET / 200 14ms
12:04:31 GET /src/main.tsx 200 6ms
Free and unlimited: as many tunnels and ports as you like.
How it works
- Log in with GitHub on this page and copy your token.
- Install the CLI (one command, below).
- Save your token:
tunnel auth <token> - Share a port:
tunnel http 3000 my-appand openhttps://my-app.tunnel.tilla-app.uz
Install
Windows (PowerShell)
irm https://tunnel.tilla-app.uz/install.ps1 | iexmacOS / Linux
curl -fsSL https://tunnel.tilla-app.uz/install.sh | shOr download the binary yourself: Windows (x64) · macOS (Apple Silicon) · macOS (Intel) · Linux (x64) · Linux (ARM64)
Commands
tunnel auth <token> | Save your token on this computer (once). |
tunnel http 3000 | Share port 3000 on a random name like swift-otter-417.tunnel.tilla-app.uz. |
tunnel http 3000 my-app | Share port 3000 on my-app.tunnel.tilla-app.uz. |
tunnel http 8080 api --host 192.168.1.20 | Forward to another machine on your network instead of localhost. |
tunnel version | Show the CLI version. |
Good to know
- A name belongs to whoever is using it right now. When your tunnel stops, the name is free again.
- Run as many tunnels as you like, each in its own terminal, for different ports or names.
- Your app gets the request with
Host: localhost:<port>, so dev servers need no config. The public host is inX-Forwarded-Hostand the visitor's IP inX-Forwarded-For. - If your connection drops, the CLI reconnects by itself and keeps the same name.