qURL™ vs localtunnel
Both start with one command. Only one keeps the URL private.
localtunnel needs no account: npx localtunnel gives your app a random public loca.lt URL, and its maintainer says browser visitors meet a reminder page that asks for a tunnel password. qURL also needs no account, but the app gets no public URL: qurl share prints a link that works once and expires within 24 hours.
Facts checked October 1, 2026 against each vendor’s documentation. Download the data
localtunnel is an open-source Node.js package backed by a public server at loca.lt. qURL is a CLI that publishes a local app without a public route. Both start without an account.
How qURL and localtunnel differ
The localtunnel client connects to the loca.lt server, which assigns a random subdomain (you can ask for one with --subdomain, but it is not guaranteed) and forwards anyone who requests it to your app while the client stays connected. The project documents no visitor access control, and its maintainer says browser visitors see a reminder page that asks for a tunnel password: the public IP address of the machine running the tunnel.
qURL connects out from your machine too, but it gives the app no public address. qurl publish registers the app and prints its CRID, the app’s stable ID; qurl share turns the CRID into an access link for one recipient. Opening the link admits that recipient’s network address for the session; by protocol design, other addresses get no response.
From a running app to a link you can send
qurl publish http://127.0.0.1:3000
qurl share <CRID>npx localtunnel --port 8000qURL and localtunnel, side by side
| Question | qURL CLI | localtunnel |
|---|---|---|
| Account needed before the first URL | No. The first publish creates the device identity our test | No github.com |
| What the URL looks like | A qurl.link access link per recipient; the app answers at r_<id>.qurl.site, a name absent from Certificate Transparency logs our test | Random *.loca.lt subdomain (optional --subdomain, not guaranteed) loca.lt |
| Who can reach it | No one until a link is opened; then the opener’s public IP for that session, including other devices behind that IP layerv.ai | Public: anyone with the URL github.com |
| Warning page shown to visitors | None our test | Reminder page that asks for a tunnel password (the creator’s public IP), per the service’s maintainer github.com, unofficial |
| Visitor access control | Single-use access link by default; link and session lifetimes. IP allow and deny lists and other rules can gate links through the API, not the CLI layerv.ai | Not documented github.com |
| Link expiry | Yes. qurl share returned a 24-hour link in our no-account test; no-account links are capped at 24 hours our test | Active while the lt client stays connected; no expiry setting github.com |
| Single-use links | Yes, the default for qurl share our test | Not documented github.com |
| Protocols | HTTP(S), WebSocket, SSE; no raw TCP our test | HTTP(S) github.com |
| Free-tier limits | Without an account: up to 3 active resources, with links that last up to 24 hours github.com | Not documented github.com |
Which one to use
Choose qURL to
Show a client or teammate your app without putting it on a public URL, or let your coding agent share it. Each recipient gets a link that works once and expires on its own, with no password page in front.
When localtunnel is the better choice
Choose localtunnel when you want a public URL straight from npx with nothing else to install, for example so a webhook sender can reach the app. qURL is not built for webhooks.
Frequently Asked Questions
What is the localtunnel password?
According to the maintainer of the public loca.lt server, the reminder page asks for the public IP address of the machine running the tunnel. The maintainer also says the page appears only for standard browser User-Agents, and that a bypass-tunnel-reminder request header skips it.
Is a localtunnel URL private?
No. Anyone who has the URL can reach the app while the client is connected, and localtunnel documents no way to restrict visitors. A qURL link is single-use by default and expires within 24 hours.
Who can open a qURL link?
Whoever holds it, once: with no flags, qurl share prints a single-use link. Opening it admits the network address it was opened from for the session, which lasts 1 hour by default for an app published from the CLI. Other devices on the same public IP address, such as an office or café network, can reach the app until the session ends, so keep your app’s own sign-in for anything sensitive. By default a link admits whoever opens it; access rules set through the API, such as IP allow and deny lists, can restrict that.
Can my coding agent share my app with qURL?
Yes. Give Claude Code, Cursor, or Windsurf the qURL skill (https://layerv.ai/skills/qurl/SKILL.md) and ask it to share the app: it installs the qurl CLI, publishes the app privately, and gives you an address to send. The agent applies the private access rules you choose. For named recipients, give it their email addresses so it can send invitations. Recipients verify their email in the browser and save a passkey; they never send you their email verification code. The agent checks policy support before sharing and keeps the app private if the deployment cannot support it. For one person right away, ask it for a one-time link instead. Codex starts with network access off, so save the skill file for it first.
Share your app without an account
Paste one prompt into your coding agent, or install the qURL CLI and publish the app yourself. No sign-up, no API key.
New to qURL? Start at qurl.link