localtunnel or Kestro, to share your localhost?

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

On the left, the link plus the IP to send. On the right, the link.

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

What changes, and what does not.

localtunnelWith Kestro
The network carrying the addressloca.lt, the project’s serverCloudflare’s, through cloudflared
Accountnonenone for the ephemeral address
What your visitor seesa “Tunnel Password” page: your public IP to type inyour site, directly
Your own domainno, a loca.lt subdomain at bestdemo.yourdomain.com, through your Cloudflare account
The requested subdomain is takena random name comes out insteadthe stable address belongs to you
Request inspectornonededicated window: headers, body, duration
Replaying a webhooknoone click, body and headers included
In CI, in a scriptyes, npm package and APIno, Kestro is a desktop application
Costfree, 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

Four things a bare tunnel does not do.

localtunnel opens the door, and that is all it promises. The working day mostly happens around the door.

  1. Nobody stops your client at the entrance

    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.

  2. You see what crosses

    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.

  3. The webhook replays in one click

    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.

  4. An address of your own, that holds

    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.

CodeFileView14:43
Kestro1 tunnel open · 1 service isn’t answering
2 ports · 0 exposedExpose a port
Dev serverephemerallocalhost:3000logsclosed
Stripe webhookshooks.notes-app.devlocalhost:4242logsclosed
Running on this machine
notes-applocalhost:5173Share
⌘K palette↑↓ navigate␣ togglecloses if you click elsewhere
run-tracker , zsh
Applying 2 migrations to shop-staging-db…
20240612_add_orders_index ok
done in 1.4s
run-tracker , zsh
# your doors onto the web, and which ones are open
share demo-front ouvert demo.atelier.fr
share hooks-stripe fermé

On your machine

Everything stays with you.

Your connections run from your computer to your servers, never through us.

  • No account

    Nothing to create, no password.

  • Your keys stay put

    SSH, Google Cloud, AWS: Kestro uses your own tools, locally.

  • No usage statistics

    We don’t know what you open, or when.

  • One exception

    Your licence renews with us. Nothing else leaves.

When localtunnel is enough

Three cases where Kestro is useless to you.

Better said here than discovered after paying.

  • In a script, in CI

    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.

  • If you want to host the server yourself

    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.

  • On Linux, or today on Windows

    Kestro only runs on macOS 11 and later. The Windows version is in the works; there is no Linux version planned.

Pricing

You pay once. That’s it.

A tool you open forty times a day shouldn’t send an invoice every month.

Kestro licence

€29.99$29.99£25.99CHF 25.90CA$40.99A$45.99€39.99$39.99£34.99CHF 33.90CA$54.99A$61.99 · Launch offer · upcoming price

1 computer · one-time

  • Every feature of the app, no tiers, no “Pro” edition
  • One year of updates included, then renew if you want to
  • The app stays yours, renewed or not
  • One key, the same on all your computers
  • Switch machines whenever you like, no limit
  • No account to create: the key arrives by email

Or download it for free first →

Refunded within 14 days, no questions asked.

Questions we get asked

Why does localtunnel ask my visitors for a password?

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.

Is Kestro free like localtunnel?

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.

Does my data pass through your servers?

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.

What if my server is Vite or webpack?

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.

Does the trial ask for a card?

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.