Expose your localhost to the internet with a single command. Stripe, GitHub, Shopify, Twilio — any provider can deliver webhooks to your local dev server over a secure HTTPS URL.
Your subdomain is persistent. Configure it once in Stripe, and it stays the same every time you restart the tunnel — no more URL resets. Looking for a comparison? See how Hooklistener compares to ngrok.
Hooklistener tunnels are integrated with the full webhook debugging platform. Every request is captured, searchable, and replayable.
Reserve a subdomain like my-api.hook.events. It stays the same across restarts — configure Stripe once and forget about it.
Every request through the tunnel is captured with full headers, body, and timing. Search and filter from the dashboard.
Missed a webhook while your server was down? Fix the bug and replay the exact request from your history.
Request history is retained — not just while the tunnel is running. Come back tomorrow and your payloads are still there.
Share tunnel URLs and captured requests with teammates. Role-based access keeps secrets masked.
HTTPS everywhere. TLS terminates at the edge so your local server can run plain HTTP. All traffic encrypted in transit.
The biggest pain with ngrok's free tier is URL resets. Hooklistener solves this with static subdomains like my-api.hook.events that survive restarts.
With ngrok free, every restart generates a new URL — and you have to update Stripe, GitHub, or whatever provider you configured. With a persistent subdomain, your webhook URL stays the same forever.
Hard-code the tunnel URL in your test harness or staging environment. It never changes, so your automated tests and CI pipelines keep working across restarts.
Give your persistent URL to a teammate or paste it in docs. It resolves to whoever is running the tunnel, making pair debugging straightforward.
Every webhook provider has a settings page where you paste the endpoint URL. With a persistent subdomain, you touch that page once — not every time you restart your dev server.
Four commands from install to receiving your first webhook locally.
Install Hooklistener globally with npm. Works on macOS, Linux, and Windows.
Log in once to link the CLI to your account. Anonymous tunnels work without login, but you need an account for persistent subdomains.
Point the tunnel at your local port. You get a public HTTPS URL immediately. Every request is captured in your dashboard.
Paste the tunnel URL into Stripe, GitHub, Shopify, or any webhook source. With a persistent subdomain, you only do this once.
Move from one-off bins to a production-grade webhook platform with replay, forwarding, and monitoring built in. Compare features side-by-side and migrate in minutes.
Persist webhook history for 14+ days, search instantly, and replay to any environment.
Send events to QA, staging, and production with conditional routing and transformations.
Invite collaborators, mask secrets, and stay audit-ready—no public bins or shared tokens.
How does this compare to ngrok?
ngrok's free tier resets your URL on every restart. Hooklistener offers persistent subdomains, built-in webhook inspection, replay, and team sharing — included in the platform.
Can I use this for production traffic?
Tunnels are designed for development and testing. For production webhooks, use a Hooklistener endpoint directly — no tunnel needed.
Is there a bandwidth or request limit?
Free tunnels have generous limits for development use. Pro and Team plans remove limits and add persistent subdomains with extended retention.
Connect Claude Code, Cursor, or Codex to Hooklistener's MCP server and your agent gets 46 tools for endpoints, requests, automations, schedules, and email. You get the same data live in the dashboard.
Free plan includes MCP access. No credit card required.