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 guideQuick 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 unterhkdk.eventszu, 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-orders → fulfillment-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 (
rfür Retry,dfür Daten,ofür Dashboard,ifür Zusammenfassen/Erweitern) korrekt darzustellen. Zudem sindcompactundquietStartflags, 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-internalTraffic 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
connectionsdas einzige Tool mit Schreibzugriff ist (Pause/Unpause), und dass einhookdeck_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
- ngrok Pricing — https://ngrok.com/pricing
- ngrok Pricing und Limits — https://ngrok.com/docs/pricing-limits
- ngrok Free Plan Limits — https://ngrok.com/docs/pricing-limits/free-plan-limits
- Hookdeck CLI Referenz — https://hookdeck.com/docs/cli
- Hookdeck CLI GitHub — https://github.com/hookdeck/hookdeck-cli
- Hookdeck CLI v2 (MCP) Ankündigung — https://hookdeck.com/blog/hookdeck-cli-v2
- Hookdeck März 2026 Changelog — https://hookdeck.com/blog/hookdeck-review-march-2026
- Hookdeck Retries Dokumentation — https://hookdeck.com/docs/retries
- Hookdeck Pricing — https://hookdeck.com/pricing
- Hookdeck localhost Testing — https://hookdeck.com/docs/use-cases/test-debug-localhost
Related InstaTunnel pages
Continue from this article into the most relevant product guides and workflows.
Related Topics
Keep building with InstaTunnel
Read the docs for implementation details or compare plans before you ship.