Open Source • Free Forever

Stop Re‑Triggering
Webhooks

Record once, replay infinitely. Webhook DVR intercepts and logs every webhook to your local server—then lets you replay them instantly without touching production.

vv1.2.0Feb 1, 2026View Latest Release →
webhook-dvr
Proxy listening onlocalhost:9000
Forwarding tolocalhost:3000
Incoming webhook:
POST /api/webhooks/stripe
Content-Type: application/json
→ Recorded & Forwarded
Click to replay anytime

Why Developers Choose Webhook DVR

Stop the endless cycle of re-triggering webhooks. Debug smarter, not harder.

🔴

The Old Way: Endless Loop

Wasting hours clicking through dashboards

Step 1
Open Stripe dashboard
~2 min
Step 2
Create test payment
~3 min
Step 3
Webhook fails (bug)
~30 sec
Step 4
Fix code, repeat...
Back to Step 1 ↻
Total time per iteration: 5-10 minutes × 10 iterations = 1+ hour wasted
⬇️
Switch to DVR
🟢

The DVR Way: Record & Replay

Debug 10× faster with instant replay

Step 1
Trigger webhook once
DVR records it ✓
Step 2
Webhook fails (bug)
~30 sec
Step 3
Fix the code
~2 min
Step 4
Click "Replay"
<1 second ⚡
Total time: One-time setup, then instant replays forever

Built for Developer Workflow

Everything you need to test webhooks like a pro

🎯

Instant Replay

Click a button to resend any webhook. No need to trigger it again from Stripe, GitHub, or wherever. Save hours of repetitive work.

🔍

Deep Inspection

View full headers, JSON payloads, and responses with syntax highlighting. See exactly what was sent and received.

📂

Workspace Isolation

Manage multiple projects with separate request histories. Perfect for microservices and complex architectures.

Real-time Updates

Requests appear instantly. Status updates live. No refreshing needed. Experience seamless workflow.

🌐

Built-in Tunneling

One-click public URL via ngrok integration. Receive real webhooks from the internet without complex setup.

🛡️

Local & Private

Everything runs on your machine. No cloud, no accounts, no telemetry. Your data stays yours, always.

How It Works

Get started in 4 simple steps

01

Create Workspace

Launch DVR and create a workspace for your project

$ webhook-dvr create my-api
02

Set Target

Point DVR to your local development server

Target: http://localhost:3000
03

Send Webhooks

Configure your service to send to DVR's proxy

Webhook URL: localhost:9000
04

Debug & Replay

View requests and replay them instantly

Click 'Replay' → Done ✨

Download Webhook DVR

Available for Windows, macOS, and Linux

🪟
Windows
105.3 MB
Download .exe
🍎
macOS
118.0 MB
Download .dmg
🐧
Linux (Debian/Ubuntu)
101.2 MB
Download .deb
🐧
Linux (AppImage)
128.9 MB
Download .AppImage

Installation Guides

Download the installer for your platform and follow the setup wizard

🪟

Windows

1

Download webhook-dvr-1.2.0-setup.exe

2

Double-click the installer to launch the setup wizard

3

If Windows Defender SmartScreen appears, click "More info" then "Run anyway"

4

Follow the setup wizard and click "Finish"

5

Webhook DVR launches automatically and appears in your system tray

💡 Tip: The app icon will be in your taskbar's system tray (bottom-right corner)

🍎

macOS

1

Download webhook-dvr-1.2.0.dmg or webhook-dvr-1.2.0-arm64-mac.zip

2

Double-click the .dmg file to mount it

3

Drag "Webhook DVR" to the Applications folder

4

Open Applications folder and double-click "Webhook DVR"

5

If blocked by Gatekeeper, right-click and select "Open"

6

Grant accessibility permissions when prompted (required for global shortcuts)

💡 Tip: The app will appear in your menu bar (top-right). You can add it to the Dock for quick access

🐧

Linux (Ubuntu)

Primary: Install via .deb Package

1

Download webhook-dvr_1.2.0_amd64.deb

2

Open your file manager and navigate to Downloads

3

Right-click the .deb file and select "Open with Software Install"

4

Click "Install" in the Software Install window

5

Enter your password when prompted

6

Once installed, find "Webhook DVR" in your Applications menu and click to launch

Alternative: AppImage (Portable)

1

Download webhook-dvr-1.2.0.AppImage

2

Open your file manager and navigate to Downloads

3

Right-click the .AppImage file, select "Properties"

4

Go to the "Permissions" tab and check "Allow executing file as program"

5

Close the window and double-click the AppImage to launch it

6

Optional: Install AppImageLauncher from Software Center to add the app to your Applications menu

💡 Tip: The .deb installation is recommended for the smoothest experience with menu integration and automatic updates

Frequently Asked Questions

Everything you need to know about Webhook DVR

What is Webhook DVR and how does it work?

A local proxy that intercepts webhooks from services like Stripe, GitHub, or Slack, logs them with full details, and forwards them to your development server. Click "Replay" to resend any webhook instantly without re-triggering from the external service.

Is Webhook DVR free to use?

Yes! Completely free and open-source under the MIT License. No premium tiers, subscriptions, or hidden costs. Download, use, modify, and distribute freely.

Do I need ngrok to use Webhook DVR?

Optional. Only needed to receive webhooks from external services on the internet. For local testing with manual requests to localhost:9000, ngrok is not required.

Which webhook providers are supported?

All of them! Webhook DVR is provider-agnostic and works with any HTTP/HTTPS webhook from Stripe, GitHub, Slack, Twilio, PayPal, Shopify, and thousands more.

Is my data secure and private?

Yes. Runs entirely on your local machine with no cloud, no accounts, and no telemetry. All webhook data stays on your computer.

What platforms are supported?

Windows 10+, macOS 10.15+, and Linux (Debian/Ubuntu .deb or AppImage). Native installers for smooth installation on each platform.

How does replay work technically?

DVR captures the complete HTTP request (headers, body, method, URL) and stores it locally. Clicking "Replay" recreates the exact request and sends it to your configured target server.

Can I use this in production?

No. Designed for local development and testing only. For production, use your application's native webhook handling directly.

Built-in Tunneling with ngrok

Receive real webhooks from the internet with one-click public URL generation

How Port Forwarding Works

1
DVR Proxy Runs Locally

Webhook DVR starts a proxy server on localhost:9000

2
ngrok Creates Public Tunnel

Click "Start Tunnel" and ngrok generates a public URL like https://abc123.ngrok.io

3
Configure Webhook Provider

Set your Stripe/GitHub webhook URL to the ngrok URL

4
Webhooks Flow Through

Internet → ngrok → DVR (port 9000) → Your app (port 3000)

Request Flow Diagram

External Service
stripe.com
ngrok Public URL
https://abc123.ngrok.io
Webhook DVR Proxy
localhost:9000
✓ Records & Logs
Your Local App
localhost:3000

💡 Pro Tip: DVR automatically detects ngrok installations. No manual configuration needed!

⚙️

ngrok Dependency

Webhook DVR integrates with ngrok for public URL generation. You'll need to install ngrok separately:

Download from ngrok.com/download
Or install via package manager: brew install ngrok (macOS) or choco install ngrok (Windows)
Free tier includes 1 online ngrok process and 40 connections/minute