Forward Webhooks to Localhost — Without ngrok or Any CLI Tool

Every developer building a webhook integration faces the same problem: your handler runs on localhost, but Stripe, GitHub, Shopify — every provider — needs a public HTTPS URL to deliver events. The traditional answers are ngrok (a CLI tunnel) or deploying to staging for every change. WebhookWhisper gives you a better option: a permanent public endpoint that forwards events straight to your local machine, with no install and no tunnel.


How Webhook Forwarding Works

WebhookWhisper acts as a relay between the outside world and your local machine. For a full walkthrough, read the complete webhook forwarding guide:

  1. You get a permanent public HTTPS URL (e.g. https://webhookwhisper.com/hook/abc123)
  2. You register this URL with your provider (Stripe, GitHub, etc.)
  3. You set a forwarding rule: target = http://localhost:3000/your-path
  4. Provider fires a webhook → WebhookWhisper receives it, logs it, then immediately POSTs it to your local server
  5. If your local server is down or returns an error, WebhookWhisper retries automatically

Your local server receives the original request with all original headers preserved — including signature headers like Stripe-Signature and X-Hub-Signature-256 — so signature verification works exactly as it would in production.


Webhook Forwarding vs ngrok — Side-by-Side

Featurengrok (free)WebhookWhisper
Installation requiredYes — CLI binaryNo — browser only
Persistent terminal processYes — must stay runningNo — cloud-side relay
Static URLNo — rotates each restartYes — permanent endpoint
Automatic retry on failureNoYes — built-in
Full event historyLimited in-session only14 days (Starter plan)
Delivery log with status codesNoYes — per-attempt log
Inspect payloads in browserVia ngrok dashboardYes — built-in
Multiple forwarding targetsNo — single tunnelYes — multiple rules per endpoint
Free tierYes (rotating URL)Yes (1-hour guest, permanent on Starter)
Exposes full local serverYes — whole portNo — only relays to the target URL

Works With Every Webhook Provider

WebhookWhisper accepts any HTTP POST request, so it works as a forwarding relay for any provider that sends webhooks:

  • Stripe — payment events, subscription lifecycle, disputes
  • GitHub — push, pull_request, workflow_run, release events
  • Shopify — orders, products, customers, GDPR topics
  • Twilio — SMS delivery status, call events
  • SendGrid — email open, click, bounce, spam events
  • Slack — Events API, slash commands, interactivity payloads
  • PayPal — IPN and REST webhook notifications
  • Razorpay — payment, subscription, dispute events
  • Any custom webhook — internal services, IoT devices, third-party APIs

Advanced Forwarding Features

Multiple forwarding rules per endpoint

Need the same webhook to hit your local server and a staging environment simultaneously? Set two forwarding rules on one endpoint and WebhookWhisper delivers to both in parallel. Useful for smoke-testing staging while also running local integration tests.

Automatic retry with exponential backoff

If your local server returns a non-2xx status or isn't reachable, WebhookWhisper retries the delivery automatically. No missed events because your server was momentarily restarting. The retry count and interval are configurable per rule.

Full delivery log

Every forwarding attempt is logged with the HTTP status code your server returned, the response body, and the round-trip duration. When your handler returns a 500, you see it immediately and can replay the event after fixing the bug — without waiting for the provider to retry.

Headers are forwarded intact

WebhookWhisper forwards the original request headers to your local server, including all signature headers. Stripe-Signature, X-Hub-Signature-256, X-Shopify-Hmac-Sha256 — all present and correct. Your signature verification code works identically in local testing and production.



Guides & Related Resources


Frequently Asked Questions

Do I need to install anything to forward webhooks to localhost?

No. WebhookWhisper is entirely browser-based. Create a free endpoint, set a forwarding rule, and you're done. No CLI to install, no binary to download, no terminal process to keep running.

Does my local server need to be publicly accessible?

No. WebhookWhisper's servers make the outbound request to your local machine — but that only works if your machine can receive inbound connections on the target port. On most development setups (Mac, Windows, Linux with a standard network) localhost is reachable from the same machine. If you're inside a corporate VPN or a Docker network you may need to use your machine's local IP address (e.g. http://192.168.1.5:3000) instead of localhost.

What happens if my local server is down when a webhook arrives?

WebhookWhisper still receives and stores the event. The forwarding attempt is logged as failed. You can replay the event from the dashboard once your local server is back up — no need to trigger the provider again.

Can I forward to multiple localhost ports at the same time?

Yes. Add multiple forwarding rules to the same endpoint, each with a different target URL. For example: http://localhost:3000/webhooks (your main app) and http://localhost:9000/debug (a debug listener). Both receive every event.

Is there a rate limit on webhook forwarding?

Guest endpoints have a limit of 50 events per session. Starter plan ($6/mo) and Pro plan ($9/mo) have no event limits. For high-volume production forwarding, consider the Pro plan which also includes 30-day event history and API access.

Try it right now — no signup

Get a live webhook URL in one click and see requests arrive in real time, right here.

Live demo — no signup required

See it work in real time

Click below to get a live webhook URL instantly. Paste it anywhere — Stripe, GitHub, Postman — and watch events arrive right here.

Expires in 1 hour · No account needed

Ready to test your webhooks?

Get a free HTTPS endpoint in under 5 seconds — no signup required.

Create Free Account
Forward Webhooks to Localhost — Free Tool (2026) | WebhookWhisper