Skip to main content

Static Tunnels

Static tunnels give you a reserved, persistent subdomain for your HTTP tunnel. Instead of a random URL that changes each session, you get a consistent URL like https://my-app.hooklistener.dev.

Paid Feature

Static tunnel slugs require a paid plan. See Plans & Billing for details.

Why use static tunnels?

  • Consistent URLs — no need to update webhook configurations each time you restart the tunnel
  • Team collaboration — share a stable URL that always points to the developer's machine
  • CI/CD integration — use a predictable URL in automated workflows

Managing static tunnel slugs

List slugs

hooklistener static-tunnel list

Output includes slug ID, slug name, display name, and usage quota.

FlagDescription
--orgOrganization ID override

Create a slug

hooklistener static-tunnel create my-cool-app --name "Local App"
ArgumentDescription
slugThe subdomain to reserve (required)
FlagDescription
--nameDisplay name for the slug
--orgOrganization ID override

Delete a slug

hooklistener static-tunnel delete <slug-id>
FlagDescription
--orgOrganization ID override

Using a static tunnel

Once you've created a slug, use it with the tunnel command:

hooklistener tunnel --slug my-cool-app --port 3000

Your tunnel is available at https://my-cool-app.hooklistener.dev.

Managing via the API

You can also manage static tunnels through the REST API. See API: Static Tunnels.