Start a Tunnel

Install LPM CLI and sign in to LPM.dev Registry:

lpm login

Tunnel creation and domain management require the browser-backed session created by lpm login.

Start with the Development Server

Use one command to start the project and expose its development server:

lpm dev --tunnel

LPM CLI waits for the local service to become ready, connects it to the tunnel relay, and prints both the public URL and local inspector URL.

Expose an Existing Server

If your server is already listening on a known port, pass it explicitly:

lpm tunnel 3000
lpm tunnel 4000

Free accounts receive a random 10-character *.lpm.fyi URL:

Tunnel ready
  public URL  https://k8f2m9x1ab.lpm.fyi
  inspector   http://127.0.0.1:54218
  local       http://127.0.0.1:3000

Stop the tunnel with q or Ctrl-C. A Free URL is released when the session ends.

You can also run the command without a port:

lpm tunnel

Bare lpm tunnel discovers the only active lpm dev endpoint. It returns an error if no endpoint is active or multiple endpoints are available, in which case you must pass the intended port.

Name the Session

lpm tunnel 3000 --session "stripe-test"

The name appears in the inspector's session list and stays attached to that session's captured requests.

Keep Webhook Endpoints Responsive

By default, a request fails if the tunnel cannot reach the local server. During webhook development, repeated failures can cause a provider to retry or disable an endpoint.

Use --auto-ack to return 200 OK when the local server is unavailable:

lpm tunnel 3000 --auto-ack

The inspector marks auto-acknowledged requests so they are not mistaken for requests handled by your application. You can replay them from the browser inspector after the server is available again.

Protect the Public URL

Pro and Organization accounts can require a per-session token:

lpm tunnel 3000 --tunnel-auth

LPM CLI prints the token and an authenticated browser URL. Programmable clients can send:

X-Tunnel-Auth: <token>

The relay also accepts __tunnel_auth=<token> as a query parameter. Browser visitors without a token see an authentication form; a successful form submission stores an HTTP-only cookie.

This is not Bearer authentication. Webhook providers that cannot set the supported header or query parameter cannot call a protected tunnel, so tunnel auth is usually better for previews and configurable integrations than for third-party webhooks.

The token is generated again every time the tunnel starts.

Open the Inspector

LPM CLI starts the local inspector server on an available port and prints its URL. With standalone lpm tunnel, press o to open it in your browser.

Choose an exact local inspector port or disable its web server:

lpm tunnel 3000 --inspect-port 4500
lpm tunnel 3000 --no-inspect

An automatically selected port avoids conflicts with development services. An explicit port is strict: the command fails if that port is already occupied.

lpm dev --tunnel accepts the same inspector flags and prints the inspector URL in its startup output.

Common Flags

FlagEffect
<port>Expose this local port; omit it only to discover one active lpm dev endpoint
<domain>Use a claimed domain for this session
--tunnel-authRequire the generated tunnel token (Pro or Organization)
--auto-ackReturn 200 OK to webhooks when the local server is down
--session <NAME>Name this tunnel session in the inspector
--no-inspectDo not start the local inspector web server
--inspect-port <N>Bind the inspector to this exact local port

For every command form, configuration field, and global flag, see the LPM CLI tunnel reference.

Continue