The ngrok alternative for webhooks
ngrok is a great general-purpose tunnel, but for debugging webhooks it's pricey and captures nothing. Webhook Toolkit's Relay is a tunnel built for webhooks: permanent URL, install-free CLI. Alongside it, the Receiver keeps your request history and replays it to your handler.
curl -fsSL https://webhook-toolkit.com/relay.js -o relay.js node relay.js --token=rly_xxx --to=localhost:3000
Frequently asked questions
Does the Relay replace ngrok?
For webhooks, yes. The Relay gives you a permanent public URL that forwards every request to your localhost. To expose a general-purpose website, ngrok is still a better fit; to debug Stripe/GitHub/Shopify webhooks, the Relay is simpler, and the Receiver keeps the history next to it.
Do I need to install anything?
No. The Relay CLI is a single dependency-free file that uses the native WebSocket in Node 21+. You download it and run it: node relay.js --token=… --to=localhost:3000.
Does the URL change on every restart?
No, unlike free ngrok URLs. Your Relay URL is permanent — you can leave it configured in your third-party API.
Can I replay a request?
Yes, on requests captured by the Receiver: open the inspector, pick the request, paste your handler URL and hit Replay. We re-send the original method, headers and body — signature included — then show you the status code and the response. The Relay itself forwards live and stores nothing: if you want replay, point a /r/<token> capture URL at it too.