Comparison
14 min read
46 views

Ngrok vs. Hookdeck CLI: Der ultimative Webhook-Tester

IT
InstaTunnel Team
Published by our engineering team
Ngrok vs. Hookdeck CLI: Der ultimative Webhook-Tester

Current comparison

Looking for the main ngrok alternative guide?

We keep the latest ngrok alternative comparison, CLI commands, pricing notes, and webhook examples on one canonical page.

Open the InstaTunnel ngrok alternative guide

Quick answer

ngrok vs Hookdeck CLI: Das ultimative Tool für Webhook-Tests: quick answer

If free tunnel limits interrupt your workflow, compare session length, stable URLs, concurrent tunnels, and paid-plan pricing before choosing a localhost tunnel tool.

What free tunnel limits should developers check first?

Check session duration, URL stability, concurrent tunnels, custom subdomains, bandwidth or request limits, and whether webhook callbacks survive restarts.

How does InstaTunnel handle longer development sessions?

InstaTunnel Free is designed around 24-hour sessions, with Pro available for higher limits and MCP endpoint tunnel workflows.

Moderne Anwendungsentwicklung setzt stark auf eventgesteuerte Architektur. Drittanbieter-APIs wie Stripe, Shopify, GitHub und Twilio senden kritische Daten über asynchrone HTTP-POST-Anfragen — Webhooks — zurück an interne Systeme. Historisch waren lokale Entwicklungsumgebungen durch Firewalls, Router und NAT vom öffentlichen Internet isoliert. Um dies zu umgehen und echte Webhook-Payloads auf http://localhost zu empfangen, griffen Entwickler traditionell zu ngrok. Als branchenweites Standard-Tool für Tunneling erstellt ngrok eine öffentliche URL, die den Traffic direkt an einen lokalen Entwicklungsport weiterleitet.

Doch ngrok behandelt Webhooks nur als eine weitere Nutzlast in einem generischen HTTP-Stream. Mit der Verschiebung hin zu dezentralen Microservices, lauten Ereignisnetzwerken und höheren Zuverlässigkeitsanforderungen stoßen universelle Tunnel an ihre Grenzen.

Hookdeck CLI verfolgt einen anderen Ansatz. Statt als transparenter Netzwerk-Stream zu agieren, ist es ein dediziertes Event-Gateway, das speziell für Webhooks entwickelt wurde und lokale Tunneling-Funktionen als eine seiner Features integriert. Dieser Vergleich betrachtet die beiden Tools auf Architektur-, Betriebs- und Workflow-Ebene — und korrigiert einige Behauptungen, die in Vergleichsartikeln kursieren, aber den aktuellen Dokumentationen nicht standhalten.

Architektonische Paradigmen: Offene Tunnels vs. Abonnements-Streams

Wie ngrok funktioniert: Das offene Infrastruktur-Tunnel

Wenn du ngrok http 3000 ausführst, stellt der ngrok-Agent eine langlebige ausgehende Verbindung zur ngrok-Cloud her. ngrok weist eine öffentliche URL zu und leitet jeden an diese Adresse gesendeten Paket über die Verbindung an deinen lokalen Port weiter.

[Webhook-Quelle] --- [ngrok Cloud Edge] ===(Encapsulated Tunnel)=== [ngrok Agent] --- [Lokaler Server:3000]

In diesem Modell:

  • Die Schicht: Es fungiert als Layer 4 (TCP/TLS) oder Layer 7 (HTTP) Reverse-Proxy und — ab 2026 — als breiteres “universelles Gateway” mit einer YAML-basierten Traffic-Policy-Schicht für Routing, Umschreibungen und Zugriffskontrolle am Edge.
  • Der Umfang: Der Tunnel exponiert alles, was auf dem lokalen Port lauscht. Wenn dein Framework zehn Routen bedient, sind alle über den öffentlichen Endpunkt erreichbar, sofern du den Tunnel nicht einschränkst oder eine Traffic-Policy-Regel schreibst.
  • Der Zustand: Ohne Policy verhält sich der Tunnel als zustandsloser Stream — der Traffic wird in Echtzeit durchgeleitet, sobald er ankommt.

Wie Hookdeck CLI funktioniert: Der Webhook-Abonnement-Stream

Hookdeck agiert als asynchroner Event-Broker zwischen Drittanbieter-Provider und deiner lokalen Maschine, anstatt als reiner Netzwerk-Bypass.

                                                                                       +--- [Entwickler-Maschine A: Port 4000]
[Webhook-Quelle] --- [Hookdeck Event-Gateway (Queue / Broker)] ===(CLI-Stream)=== |--- [Entwickler-Maschine B: Port 4000]
                                                                                     +--- [Entwickler-Maschine C: Port 5000]

Der Befehl hookdeck listen 4000 <source-name> leitet nicht nur einen Port weiter — er erstellt drei Abstraktionen innerhalb deines Hookdeck-Projekts:

  • Quelle: Ein persistent verfolgter Endpunkt, der einer Upstream-Plattform zugeordnet ist (z.B. stripe-webhooks). Die CLI weist eine permanente URL unter hkdk.events zu, die bei Neustarts gleich bleibt.
  • Ziel: Eine Definition, die auf dein lokales Ziel verweist (z.B. http://localhost:4000).
  • Verbindung: Die Bindung zwischen Quelle und Ziel — ein zustandsbehafteter, isolierter Abonnement-Stream, kein reiner Pipe.

Wenn ein Webhook den Hookdeck-Rand erreicht, wird er sofort bestätigt und in die Warteschlange gestellt, bevor er an die abonnierte lokale CLI-Sitzung ausgeliefert wird. Falls dein lokaler Server abstürzt oder an einem Breakpoint pausiert, bleibt das Ereignis in der Warteschlange, anstatt verworfen zu werden — Hookdeck beschreibt dies als eine “mindestens-einmal”-Zustellungsgarantie, unterstützt durch langlebige Queueing.

Eine Korrektur vorweg: Die Nutzung der Weiterleitungsfunktionen der CLI erfordert ein kostenloses Hookdeck-Konto (hookdeck login) — es ist kein kontofreier Dienst, wie manche Vergleichsseiten suggerieren. Was kostenlos ist, laut Hookdeck-eigenen npm- und GitHub-Dokumentationen, sind unbegrenzte, permanente Event-URLs für die lokale Entwicklung: “unbegrenzte kostenlose und dauerhafte Event-URLs” speziell für die CLI.

Technischer Vergleich: Matrix

Fähigkeit ngrok Hookdeck CLI
Kernarchitektur Allgemeiner L4/L7 Reverse-Proxy, erweitert zu einem API/AI-Gateway Speziell entwickeltes Webhook-Event-Gateway
Tunnel-Zustand Standardmäßig zustandsloses Weiterleiten Zustandsbehaftet (eingelesen, in Warteschlange, verwaltet)
URL-Stabilität (kostenlose Stufe) Eine automatisch zugewiesene Entwickler-Domain, die bei Neustarts bestehen bleibt, aber nicht anpassbar ist; TCP-Adressen werden zufällig zugewiesen, außer bei Verifizierung einer Karte Permanente Source-URL pro Projekt; erfordert ein kostenloses Konto (ohne Karte)
Traffic-Filterung Edge-Level via Traffic Policy (YAML-Regelwerk, abgerechnet pro Traffic Policy Unit) — nicht webhook-payload-gerichtet out of the box Native, granulare Filter auf Header, Body, Pfad oder Query via CLI-Flags oder Dashboard
Fan-out / Routing Hauptsächlich 1:1; Multi-Destination-Fan-out möglich via forward-internal Traffic Policy Aktion bei Wildcard-Endpunkten, erfordert manuelle Konfiguration Native 1:n Fan-out — eine Source kann mehrere Connections/Destinations versorgen
Team-Isolation 1 Teammitglied bei Free und Hobbyist; unbegrenzte Mitglieder (3 inklusive) nur bei Pay-as-you-go Jedes Entwicklerteam läuft eigene CLI-Sitzung gegen geteilte Quellen, mit Session-Filterung — kein Sitzplatzbedarf
Debugging-Interface Lokales Web-Dashboard unter localhost:4040 mit Request-Replay Vollständige Terminal-TUI (Text User Interface) plus Hookdeck Web-Konsole
Retry/Replay Manueller Replay via Dashboard Tastaturgesteuerter Sofort-Retry (r) in der CLI, sowie konfigurierbare automatische Retry-Regeln
KI-Agent-Integration Keine in der CLI (ngrok bietet separate MCP-Tools für andere MCP-Server) Eingebauter MCP-Server (hookdeck gateway mcp) mit 11 Tools

Kernunterscheidungsmerkmale

1. Granulare Ereignisfilterung vs. Firehose-Expose

Eine einzelne Stripe-Zahlung kann payment_intent.created, customer.updated, charge.succeeded und invoice.created in kurzer Folge auslösen. Wenn du nur charge.succeeded debuggen willst, leitet ein einfacher Tunnel alles weiter — jede Anfrage trifft deinen lokalen Server, verbraucht CPU und füllt die Logs, es sei denn, du hast eine separate Edge-Policy zum Filtern geschrieben.

Hookdeck CLI unterstützt direktes Filtern als Flags bei listen, mit Syntax, die der Referenz entspricht:

hookdeck listen 4000 stripe-webhooks --filter-body '{"type": "charge.succeeded"}'

Das CLI unterstützt auch --filter-headers, --filter-query und --filter-path zum Filtern anderer Request-Teile. Nicht passende Events werden am Gateway herausgefiltert — sie erreichen nie dein Terminal oder deinen lokalen Server, was dein Debugging auf die Payloads unter Test fokussiert.

(Hinweis: --path ist ein anderes Flag — es legt fest, wohin Events auf deinem lokalen Server weitergeleitet werden, z.B. --path /webhooks/stripe. Es ist kein Filter, und die Vermischung beider ist ein Fehler, den du beim Scripting vermeiden solltest.)

2. Multi-Target-Fan-out für Microservice-Architekturen

Stell dir einen E-Commerce-Checkout vor: Ein einzelner abgeschlossener Webhook könnte an einen Fulfillment-Service, eine Analytics-Pipeline und ein Benachrichtigungssystem auf drei verschiedenen lokalen Ports gehen. Mit einem einfachen Tunnel müsstest du drei separate öffentliche URLs beim Anbieter registrieren — oder ein selbstgebautes Reverse-Proxy-Skript, um die Payload zu duplizieren und umzuleiten — es sei denn, der Anbieter unterstützt native Mehrfach-Endpunkte.

                                 +--- Ziel 1: http://localhost:5001 (Fulfillment)
[Stripe-Quelle] ---|--- Ziel 2: http://localhost:5002 (Analytics)
                               +--- Ziel 3: http://localhost:5003 (Benachrichtigungen)

Hookdeck behandelt dies als natives Muster: Eine Source kann mehreren Connections zugeordnet werden, die jeweils unabhängig gefiltert oder transformiert werden.

3. Native Team-Workflows

Wenn mehrere Entwickler eine Staging-Stripe- oder Shopify-Quelle teilen, konkurrieren sie meist um Kontrolle über eine einzelne registrierte Webhook-URL — wenn Entwickler A sie auf ihren persönlichen Tunnel zeigt, bricht die Session von Entwickler B.

Hookdeck-Dokumentation beschreibt eine spezielle Lösung: Jeder Entwickler läuft seine eigene hookdeck listen-Sitzung gegen die gleiche geteilte Quelle, mit Session-Filterung (z.B. anhand eines Query-Parameters oder Headers, der diesem Entwickler zugeordnet ist), sodass jeder nur die für ihn relevanten Events erhält, ohne die Upstream-Quelle neu konfigurieren zu müssen.

Debugging: Terminal UI vs. Web-Dashboard

ngrok bietet ein lokales Dashboard unter http://127.0.0.1:4040 — eine Zweifenansicht eingehender Requests mit vollständigen Headern und Body, plus einem manuellen “Replay”-Button, der eine erfasste Anfrage an den lokalen Endpunkt erneut sendet. Es ist eine solide Oberfläche, lebt aber in einem Browser-Tab, getrennt vom Terminal.

Hookdeck CLI läuft standardmäßig mit einer interaktiven Vollbild-Terminal-Oberfläche (--output interactive), mit compact und quiet als alternative Startmodi für weniger Log-Ausgaben — diese sind Flags beim Start, keine in-Session toggles. Ein typischer Ablauf sieht ungefähr so aus:

●── HOOKDECK CLI ──● Lauschen auf 1 Quelle • 1 Verbindung • [i] Zusammenfassen
Shopify-Quelle │ Anfragen an → https://hkdk.events/src_...
              └─ Weiterleitung an → http://localhost:3000/webhooks/shopify/orders

Events • [↑↓] Navigieren
─────────────────────────────────────────────────────────
 2026-07-10 14:42:55 [200] POST /webhooks/shopify/orders (34ms)

✓ Letztes Event erfolgreich | [r] Wiederholen • [o] Im Dashboard öffnen • [d] Daten anzeigen

Die dokumentierten Tastenkürzel sind: ↑/↓ (oder vim-Style j/k) zum Navigieren, r für sofortiges Wiederholen des ausgewählten Events gegen den lokalen Server, d für Inline-Detailansicht, o zum Öffnen im Hookdeck Web-Console für tiefere Nachverfolgung, und i zum Zusammenfassen oder Erweitern des Verbindungs-Headers. Das Wiederholen mit r spielt exakt die gleiche Payload erneut ab, ohne das Event vom Anbieter neu auszulösen — nützlich beim Testen von Handler-Code, ohne auf erneutes Senden von Stripe oder Shopify zu warten.

KI-gesteuerte Workflows via MCP

Hookdeck CLI v2 (veröffentlicht März 2026) integriert einen eigenen MCP-Server, gestartet mit:

hookdeck gateway mcp

Dies läuft nicht direkt — dein MCP-Client (Claude Desktop, Cursor etc.) startet ihn als Subprozess über stdio:

{
  "mcpServers": {
    "hookdeck": {
      "command": "hookdeck",
      "args": ["gateway", "mcp"]
    }
  }
}

Laut Hookdeck-eigenen Release-Notes bietet der Server 11 Tools: projects, connections, sources, destinations, transformations, requests, events, attempts, issues, metrics und ein help-Tool. Diese sind größtenteils Lesetools — das, was ein Agent braucht, um zu beantworten “Was ist fehlerhaft und warum?” ohne das Dashboard zu öffnen. Das connections-Tool ist die Ausnahme mit Schreibzugriff: Es unterstützt das Pausieren und Fortsetzen einer Verbindung. Falls du dich noch nicht authentifiziert hast, erscheint automatisch ein hookdeck_login-Tool, das sich nach der Anmeldung selbst entfernt.

Ein typischer Workflow laut Hookdeck: Ein Agent sammelt Gesamtmetriken, erkennt eine erhöhte Fehlerquote, schränkt sie auf eine bestimmte Verbindung ein (z.B. shopify-ordersfulfillment-service), inspiziert ein fehlgeschlagenes Event und seine Zustellversuche und trace den Grund zu einem Zielservice, der nur einen Event-Typ verarbeitet und die anderen mit 422 ablehnt — der Fix (eine Filterregel) ist dann eine CLI-Operation, die der Agent an dich weitergibt, anstatt sie automatisch anzuwenden.

(Zur Ergänzung: ngrok hat eigene, separate KI-nahe Features — es vermarktet sich als Möglichkeit, MCP-Server über sein Gateway zu exponieren oder zu verbinden — aber das ist eine andere Fähigkeit als Hookdeck CLI mit eigenem MCP-Server, der eine Agenten-Inspektion der Webhook-Zustellung ermöglicht.)

Preisübersicht

Hier sind die aktuellen Preisangaben beider Anbieter, Stand Mitte 2026:

ngrok (laut ngrok.com/pricing):

Stufe Preis Wichtige Limits
Kostenlos $0 3 Online-Endpunkte, 1GB Datenübertragung, 20.000 HTTP-Anfragen/Monat, Warnseite bei HTTP-Endpunkten, 1 Teammitglied
Hobbyist $8/Monat jährlich (oder $10/Monat monatlich) 3 Endpunkte, 5GB Daten, 100.000 Anfragen, keine Warnseite, ngrok-Branding Domains
Pay-as-you-go $20/Monat Grundpreis + Nutzung Unbegrenzte Endpunkte, eigene Domain, unbegrenzte Teammitglieder (3 inklusive), SSO/RBAC als Add-on

Hinweis: Mehrere Drittanbieter-Artikel behaupten, die kostenlose Version von ngrok habe eine 2-Stunden-Timeout-Session. Ngrok selbst widerspricht: Die kostenlosen Endpunkte haben kein Timeout und laufen unbegrenzt im Hintergrund. Die tatsächlichen Limits sind das 1GB/Monat Bandbreite, die 20k Anfragen und die durch eine Header-gestützte oder kostenpflichtige Option entfernbare Warnseite.

Hookdeck (laut hookdeck.com/pricing, für das Event Gateway — getrennt vom kostenlosen lokalen Entwicklungseinsatz der CLI):

Stufe Preis Wichtige Limits
Entwickler (kostenlos) $0 10.000 Events/Monat, 3 Tage Retention, 1 Nutzer, kein Karteneinsatz
Team $39/Monat Basis Pay-as-you-go über Basis hinaus (ca. $0.33 pro 100k zusätzliche Events), unbegrenzte Nutzer, 7 Tage Retention
Wachstum $499/Monat Uptime/Latency SLAs, SSO/SAML/SCIM, Datadog-Metriken-Export, 30 Tage Retention

Hookdecks Homepage nennt eine 99,999% Uptime-Zielsetzung für die zugrunde liegende Event-Gateway-Infrastruktur — eine Herstellerangabe, keine unabhängige Prüfung, aber direkt auf der Seite genannt.

Produktionsreife: Von lokalem Development zum Enterprise-Edge

Ein häufiges Problem bei lokalen Tunneln ist die Frage, was passiert, wenn man in die Produktion wechselt. ngrok ist primär für Entwicklung und Ad-hoc-Exposition gedacht; für den produktiven Einsatz braucht es eigene Retry-Logik, Rate-Limiting und Signatur-Überprüfung oder den kostenpflichtigen Gateway-Features von ngrok.

Hookdeck verspricht, dass das gleiche Source/Connection/Destination-Modell unverändert übernommen wird — du setzt nur die Destination auf deine Produktions-URL, statt auf die CLI. Laut Hookdeck-Dokumentation sind automatische Wiederholungen auf 50 Versuche pro Event begrenzt, mit einer konfigurierbaren Retry-Periode bis zu etwa einer Woche — deutlich aggressiver als die nativen Retry-Intervalle von Stripe oder Shopify. Fehlgeschlagene Events, die alle Versuche aufbrauchen, werden in “Issues” zusammengefasst (zusätzlich zu Request-Fehler-Detektion seit März 2026), statt stillschweigend verworfen. Mit Slack/PagerDuty-Alarmen und Massenwiederholung nach Behebung des Problems.

Abschließende Bewertung

Wähle ngrok, wenn du schnell einen lokalen Server für eine Demo exponieren willst, allgemeinen HTTP/TCP/TLS-Verkehr testen möchtest, der nicht speziell Webhook-basiert ist, oder das am besten dokumentierte Tunneling-Tool suchst, das in fast jeder Anbieteranleitung auftaucht.

Wähle Hookdeck CLI, wenn du mit lauten oder hochvolumigen Webhook-Streams arbeitest, die gefiltert werden müssen, um debuggable zu bleiben, wenn du mehrere lokale Dienste mit einem einzigen Event versorgen willst, ein Team eine gemeinsame Staging-Webhook-Quelle nutzt und sich gegenseitig stört, oder wenn du den lokalen Entwicklungsworkflow nahtlos in die Produktion übertragen möchtest, ohne Retry- und Observability-Logik neu zu konzipieren.


Changelog

Korrekturen und Ergänzungen am ursprünglichen Entwurf, geprüft anhand der aktuellen Dokumentation (Juli 2026):

  • ngrok URL-Stabilität in der kostenlosen Stufe: Ursprünglich wurde behauptet, die URLs seien “ephemer, ändern sich bei jedem Neustart”. Ngrok gibt in den eigenen Limits an, dass die kostenlose Stufe eine automatische Entwickler-Domain erhält, die bei Neustarts bestehen bleibt (nicht anpassbar). Die Matrix wurde entsprechend korrigiert; TCP-Adressen sind explizit zufällig zugewiesen, außer bei Verifizierung einer Karte.
  • ngrok Session-Timeout in der kostenlosen Stufe: Das implizierte 2-Stunden-Timeout wurde entfernt, da ngrok in der eigenen Dokumentation explizit widerspricht: “Die kostenlose Stufe hat KEINE Timeouts auf Endpunkten”.
  • ngrok Preisstufen: Veraltete Drittanbieter-Angaben (z.B. “Personal $8/Monat, Pro $20/Monat, Enterprise $39/Mon”) wurden durch die aktuellen Stufen und Preise von ngrok ersetzt (Free, Hobbyist bei $8/Monat jährlich oder $10/Monat monatlich, Pay-as-you-go bei $20/Monat Grundpreis).
  • Hookdeck “kein Konto erforderlich”-Aussage: Korrektur — die CLI benötigt ein kostenloses Hookdeck-Konto (hookdeck login), auch wenn die Event-URLs unbegrenzt und kostenlos sind.
  • Hookdeck CLI Filter-Befehlsyntax: Das Beispiel (hookdeck listen 4000 stripe-webhooks --path /webhooks/stripe) wurde durch die korrekten Filterflags (--filter-body, --filter-headers, --filter-query, --filter-path) ersetzt, entsprechend der aktuellen CLI-Referenz.
  • Hookdeck TUI-Keybindings: Das Diagramm wurde angepasst, um die dokumentierten Shortcuts (r für Retry, d für Daten, o für Dashboard, i für Zusammenfassen/Erweitern) korrekt darzustellen. Zudem sind compact und quiet Startflags, keine in-Session toggles.
  • ngrok Traffic-Filtering: Das ursprüngliche “None” wurde abgeschwächt — ngrok bietet eine YAML-basierte Traffic-Policy-Schicht, die am Edge filtern oder umschreiben kann, allerdings ist dies eine separate Policy-Sprache, keine webhook-payload-gerichtete Filterung out of the box.
  • ngrok Fan-out: Es wurde angemerkt, dass ngrok’s Wildcard-Endpunkte mit forward-internal Traffic Policy theoretisch Multi-Destination-Routing ermöglichen, statt Fan-out als unmöglich zu deklarieren.
  • Hookdeck MCP-Tool-Beschreibungen: Die Beschreibung wurde präzisiert, bestätigt 11 Tools, hinzugefügt, dass connections das einzige Tool mit Schreibzugriff ist (Pause/Unpause), und dass ein hookdeck_login-Tool automatisch vor der Authentifizierung erscheint.
  • Preise für beide Tools ergänzt: Es wurde eine Preisübersicht für beide Tools hinzugefügt, da sich die Preisstrukturen in den letzten Monaten erheblich geändert haben.
  • Unverifizierbare oder marketingbezogene Zahlen entfernt: z.B. spezifische Latenz- oder Durchsatzwerte, die nur von Drittanbietern stammen.

Quellen

Continue from this article into the most relevant product guides and workflows.

Related Topics

#ngrok vs hookdeck cli, hookdeck cli, ngrok alternative, webhook testing tools, local webhook development, secure tunnel for webhooks, free ngrok alternative, event gateway, local tunneling tool, webhook debugging, stripe webhook testing, shopify webhook testing, microservice webhooks, local server tunnel, split webhook events, filter webhook payloads, fan out webhooks, terminal ui webhook, webhook dashboard, multi developer webhook routing, webhook routing collisions, hookdeck vs ngrok, test webhooks locally, webhook payload management, webhook security verification, webhook team collaboration, asynchronous web development, event driven applications, hookdeck console, replay webhooks locally, webhook inspection tool, permanent webhook url, stable webhook tunnel, microservices development tools, devops webhook tools, local development proxy, route webhooks to microservices, webhook event stream, inspect webhook headers, webhook retry policy, proxy webhooks to localhost, forward webhooks to local server, hookdeck listen command, infinite webhook inspection, alternative to ngrok for stripe, bypass ngrok free tier limits, webhook infrastructure for developers, debug webhooks locally, event gateway resources, webhook subscriber stream, microservice architecture testing, local api gateway testing, zero configuration webhook tunnel

Keep building with InstaTunnel

Read the docs for implementation details or compare plans before you ship.

Share this article

More InstaTunnel Insights

Discover more tutorials, tips, and updates to help you build better with localhost tunneling.

Browse All Articles