Webhook testing

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. 1

    Install the CLI

    One Homebrew formula ships the client and MCP server.

    brew install rustunnel
  2. 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. 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 account

FAQ

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.