Skip to main content
← All Comparisons

qURL™ vs Serveo

An SSH command and a public URL, or a link for one person.

Serveo needs no account and nothing beyond an SSH client: ssh -R 80:localhost:3000 serveo.net gives your app a public serveo.net URL, and free-tier visitors see a warning page first. 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

Serveo forwards a local port over SSH to a public serveo.net subdomain, with raw TCP and SSH aliases as well as HTTP. qURL is a CLI that publishes a local app without a public route and hands out one link per recipient.

How qURL and Serveo differ

Serveo takes an SSH remote forward and answers on a *.serveo.net subdomain; a registered key reserves a custom one. The free tier allows 3 active tunnels and shows visitors a warning page, which Pro removes. Anonymous public TCP ports last 10 minutes, or 30 with a registered key. The URL is public, with no visitor access control in Serveo itself.

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 CLI
qurl publish http://127.0.0.1:3000
qurl share <CRID>
Serveo (free)
ssh -R 80:localhost:3000 serveo.net

qURL and Serveo, side by side

qURL CLI compared with Serveo (free), with the source for each value
QuestionqURL CLIServeo (free)
Account needed before the first URLNo. The first publish creates the device identity our testNo serveo.net
What the URL looks likeA qurl.link access link per recipient; the app answers at r_<id>.qurl.site, a name absent from Certificate Transparency logs our test*.serveo.net subdomain; custom subdomain available serveo.net
Who can reach itNo one until a link is opened; then the opener’s public IP for that session, including other devices behind that IP layerv.aiPublic: anyone with the URL serveo.net
Warning page shown to visitorsNone our testYes on the free tier; removed on Pro serveo.net
Visitor access controlSingle-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.aiNot documented for visitors serveo.net
Link expiryYes. qurl share returned a 24-hour link in our no-account test; no-account links are capped at 24 hours our testNone documented for HTTP; anonymous public TCP ports last 10 minutes (30 with a registered key) serveo.net
Single-use linksYes, the default for qurl share our testNot documented serveo.net
ProtocolsHTTP(S), WebSocket, SSE; no raw TCP our testHTTP(S); raw TCP (random port) and private TCP/SSH aliases over SSH; UDP only via paid WireGuard serveo.net
Free-tier limitsWithout an account: up to 3 active resources, with links that last up to 24 hours github.com3 active tunnels; anonymous TCP: 1 port, 10 minutes, 2 connections, 256 KiB/s serveo.net

Which one to use

Choose qURL to

Give one person or an agent access to an app with no public URL and no warning page in front of it, using a link that works once and expires on its own.

When Serveo is the better choice

Choose Serveo for a public URL from a machine with only ssh, for raw TCP, or for private SSH aliases between machines you control.

Frequently Asked Questions

Does Serveo show a warning page?

Yes, on the free tier. Visitors see an interstitial page before the app; the Pro plan removes it.

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

Contact sales

Contact our team for enterprise deployments.

Enterprise starts with a scoped, paid pilot on one application, typically 60 to 90 days, credited in full toward year one if you convert within 60 days. Then an annual package sized to what you protect. Not per seat.