WebhookToolkit

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.

Get started in one command
curl -fsSL https://webhook-toolkit.com/relay.js -o relay.js
node relay.js --token=rly_xxx --to=localhost:3000
ngrokWebhook Toolkit Relay
Permanent public URLPaid ($8/mo)included (Pro)
Webhook-specializedgeneral-purpose
Request capture + inspectionbuilt in
Replay a captured request(Receiver)
Signed payloads for testingSigner
InstallationBinary to installNone (native Node 21+)
Custom domainPaid(Business)
Price$8–20/mo€14.90/mo
Set up a Relay →

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.

ngrok alternative for webhooks — dedicated localhost tunnel · Webhook Toolkit