Claimed Tunnel Domains

Free tunnel URLs change on every run. A claimed domain persists — the same URL keeps working as long as you hold the claim, and the next lpm tunnel <port> <domain> reuses it.

Claimed domains require a Pro or Org plan.

Per-plan limits

PlanPersonal domainsOrg domains
Free0
Pro3
Org10

Pro users get 3 personal claimed domains. Org plans get 10 claimed domains under the organization (claimable by anyone with the right role). A user on both a Pro plan and in an Org gets 3 personal + 10 org domains.

A free account that calls lpm tunnel claim gets 403 Custom tunnel domains require a Pro plan. A Pro account that exceeds 3 personal domains gets 429 Domain limit reached.

Claiming a domain

lpm tunnel domains                         # list available base domains
lpm tunnel claim acme-api.lpm.llc          # claim a personal domain
lpm tunnel claim acme-api.lpm.llc --org acme    # claim under an org

The subdomain part (acme-api) is the part you choose; the base domain (lpm.llc) is one of LPM's tunnel base domains. lpm tunnel domains prints the current set you can choose from.

Subdomain rules:

  • Lowercase letters, digits, and hyphens only.
  • 3-32 characters total.
  • Must start and end with a letter or digit.
  • First-come, first-served per base domain — names already in use return 409 already claimed.

Using a claimed domain

lpm tunnel 3000 acme-api.lpm.llc           # bind this tunnel to the claimed domain

The URL prints as https://acme-api.lpm.llc → http://127.0.0.1:3000. Stop and restart any number of times — the URL doesn't change.

You can hand the same domain to different ports across runs (lpm tunnel 3000 acme-api.lpm.llc today, lpm tunnel 4500 acme-api.lpm.llc tomorrow). The claim is on the domain, not on a port binding.

Listing your claimed domains

lpm tunnel list                            # personal
lpm tunnel list --org acme                 # for an org
lpm tunnel list --json                     # machine-readable

Output includes the domain, who claimed it, when, and whether a tunnel is currently active on it.

Releasing a domain

lpm tunnel unclaim acme-api.lpm.llc        # release a personal domain
lpm tunnel unclaim acme-api.lpm.llc --org acme   # release an org domain

lpm tunnel release is an alias of unclaim. Released domains return to the pool — anyone (including someone else) can claim them next.

Org domain claims

Org plans get 10 claimed domains shared across the organization. Any member with the right role can claim under the org and the domain "belongs to" the org, not the individual:

lpm tunnel claim acme-api.lpm.llc --org acme
lpm tunnel 3000 acme-api.lpm.llc --org acme
lpm tunnel unclaim acme-api.lpm.llc --org acme

When a member leaves the org, their personal domains stay with them; org-claimed domains stay with the org. To rotate an org domain after an offboarding (so the leaver can no longer bind a tunnel to it from their machine), unclaim and re-claim under a different subdomain.

What you can't do (yet)

  • Pick the base domain freely. The base domain is fixed to LPM's set. Custom DNS / bring-your-own-domain is an Enterprise ask.
  • Per-domain auth that survives restarts. --tunnel-auth generates a fresh token each run. For "always-on, always-gated" you'd need to chain the tunnel behind a reverse proxy or an auth service, which is outside lpm tunnel's scope.
  • Dashboard management. Domain claims are CLI-managed today. There's no /dashboard/tunnels page — lpm tunnel list is the source of truth.

Plan reminders

CapabilityFreeProOrg
Ephemeral tunnel URLs
Claim a stable domain3 max10 max
Org-scoped claims
--tunnel-auth

Next