Test webhooks on localhost — no deploy, no mock server.
Give Stripe, GitHub, Twilio, or any SaaS a real public HTTPS URL that forwards to your laptop. Inspect payloads live, iterate on handlers, tear the tunnel down when you're done.
How it works
- 1
Install the CLI
One Homebrew formula ships the client and MCP server.
brew install rustunnel - 2
Open an HTTPS tunnel to your handler
Point rustunnel at the local port your webhook route listens on (e.g. Next.js /api/webhooks).
rustunnel http 3000 --subdomain stripe-dev --server eu.edge.rustunnel.com:4040 - 3
Paste the public URL into the provider
Use https://stripe-dev.eu.edge.rustunnel.com/api/webhooks (or your path) in Stripe CLI dashboards, GitHub webhook settings, or Twilio console. Live traffic hits your machine over TLS.
Why rustunnel
Real HTTPS, not a replay mock
Providers see a normal public endpoint. Signature verification, retries, and idempotency behave like production.
Stable subdomains while you iterate
Keep the same URL across restarts with --subdomain so you don't reconfigure Stripe every time you restart the tunnel.
Self-host when secrets can't leave the VPC
Run rustunnel-server on your own edge for air-gapped or regulated webhook sinks — AGPL, no SaaS middleman.
Pricing that matches how you work
Pay-as-you-go from $3/mo — idle tunnels cost $0. Or self-host free under AGPL.
Quick start: brew install rustunnel
Create a free accountFAQ
How do I test Stripe webhooks locally?+
Install rustunnel, run rustunnel http 3000 (or your app port), then set the public HTTPS URL as the Stripe webhook endpoint. Your local handler receives the real signed events.
Is there a free self-hosted webhook testing tunnel?+
Yes. rustunnel is open source under AGPL — self-host free with unlimited idle time. Managed cloud starts at $3/mo pay-as-you-go; you only pay for traffic, not idle tunnels.
Can I use a custom domain for webhook endpoints?+
On the managed edge, use a stable subdomain. For full custom domains and private networking, self-host rustunnel-server and terminate TLS on your domain.
How is this different from the Stripe CLI?+
Stripe CLI is great for Stripe-only forwarding. rustunnel works with any provider (GitHub, Twilio, Shopify, custom SaaS) and also exposes TCP/UDP when you need more than HTTP callbacks.