Today
$ npx localtunnel --port 3000 --subdomain demo your url is: https://demo.loca.lt # the client lands on “Tunnel Password?” $ curl https://ipv4.icanhazip.com 93.184.216.34 # your public IP: to send them with the link
Both make your local server reachable from the web through a free address, with no account. The difference plays out at your visitor’s end: localtunnel first shows them a verification page, Kestro lets them land straight on your site. And once the door is open, Kestro shows every request that crosses it.
macOS 11+ · Windows soon
The same work, twice
The left column follows the real journey of a loca.lt visitor today. The right one is what Kestro does at the same moment.
Today
$ npx localtunnel --port 3000 --subdomain demo your url is: https://demo.loca.lt # the client lands on “Tunnel Password?” $ curl https://ipv4.icanhazip.com 93.184.216.34 # your public IP: to send them with the link
With Kestro
A switch, in the menu bar. The address is already in your clipboard. The client clicks, they see your site. And every request shows in its window, replayable in one click.
Point by point
| localtunnel | With Kestro | |
|---|---|---|
| The network carrying the address | loca.lt, the project’s server | Cloudflare’s, through cloudflared |
| Account | none | none for the ephemeral address |
| What your visitor sees | a “Tunnel Password” page: your public IP to type in | your site, directly |
| Your own domain | no, a loca.lt subdomain at best | demo.yourdomain.com, through your Cloudflare account |
| The requested subdomain is taken | a random name comes out instead | the stable address belongs to you |
| Request inspector | none | dedicated window: headers, body, duration |
| Replaying a webhook | no | one click, body and headers included |
| In CI, in a script | yes, npm package and API | no, Kestro is a desktop application |
| Cost | free, open source | €29.99$29.99£25.99CHF 25.90CA$40.99A$45.99 once |
Surveyed 5 August 2026 · localtunnel 2.x, loca.lt server
What Kestro adds
localtunnel opens the door, and that is all it promises. The working day mostly happens around the door.
No page in front of your site, no password to pass along, no public IP to hunt down. The link you paste into the conversation is the link that works.
The request window shows method, status, duration, headers and body, live and in memory only. When nothing is listening on the port, it shows the 502: often the answer you were looking for.
The Stripe or GitHub delivery arrives with its exact body, and goes back to your server once your code is fixed, instead of you re-triggering the event at the provider’s.
Connect your Cloudflare account: demo.yourdomain.com outlives sessions, and nobody else can occupy it. The first switch builds the plumbing, without ever overwriting an existing DNS record.
On your machine
Your connections run from your computer to your servers, never through us.
Nothing to create, no password.
SSH, Google Cloud, AWS: Kestro uses your own tools, locally.
We don’t know what you open, or when.
Your licence renews with us. Nothing else leaves.
When localtunnel is enough
Better said here than discovered after paying.
localtunnel is an npm package with an API: it starts from a test, a script, a headless server. Kestro is a desktop application, and that is not its ground.
localtunnel’s server is free software: you can run it on your own machine and depend on nobody. Kestro leans on Cloudflare’s network, and offers no self-hosting.
Kestro only runs on macOS 11 and later. The Windows version is in the works; there is no Linux version planned.
Pricing
A tool you open forty times a day shouldn’t send an invoice every month.
Kestro licence
1 computer · one-time
Or download it for free first →
Refunded within 14 days, no questions asked.
Questions we get asked
It is an abuse protection added by the project: the page asks for the public IP address of the sharing machine, to prove the visitor knows the person behind the tunnel. Legitimate, but for a client demo it is one more step, and it forces you to find and send your IP. With Kestro the address answers directly: the protection is that it is long, random, and dies when you close.
The ephemeral address relies on a free Cloudflare service, with no account; the application itself is paid once. That is what funds the inspector, the replay, and the rest of the panel. The trial lasts 7 days, with no card and no account.
No. Traffic goes from the visitor to Cloudflare’s network, then straight to your machine; the inspector lives in memory, on your computer, and closing the share erases everything. There is no Kestro account, so there is nothing to report anywhere.
It works as it is. Dev servers keep an allow-list of hosts and answer 403 or “Invalid Host header” behind most tunnels: Kestro rewrites the Host header to localhost, keeps the real origin in X-Forwarded-Host, and forwards WebSockets. Hot reload keeps working.
No, and it does not ask for an account either. You download, you get 7 full days. No card is asked for until you decide to buy.