Ngrok vs. Hookdeck CLI: La Mejor Herramienta para Webhooks

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: La Herramienta Definitiva para Webhooks: 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.
El diseño de aplicaciones modernas se apoya mucho en arquitecturas orientadas a eventos. APIs de terceros como Stripe, Shopify, GitHub y Twilio transmiten datos críticos a sistemas internos mediante solicitudes HTTP POST asíncronas — webhooks. Históricamente, los entornos de desarrollo local han estado aislados de internet público por firewalls, routers y NAT. Para sortear esto y recibir payloads de webhooks en http://localhost, los equipos de ingeniería han recurrido tradicionalmente a ngrok. Como la herramienta estándar de túneles, ngrok crea una URL pública que refleja el tráfico directamente a un puerto de desarrollo local.
Pero ngrok trata los webhooks como solo otra carga útil en un flujo HTTP genérico. A medida que las aplicaciones se mueven hacia microservicios descentralizados, redes de eventos ruidosas y requisitos de fiabilidad más estrictos, los túneles de propósito general empiezan a mostrar sus límites.
Hookdeck CLI adopta un enfoque diferente. En lugar de actuar como un simple conducto de red, es una pasarela de eventos dedicada, construida específicamente para webhooks que, además, maneja el tunneling local como una de sus funciones. Esta guía compara ambos a nivel arquitectónico, operacional y de flujo de trabajo — y corrige varias afirmaciones que circulan en contenidos comparativos pero que no se sostienen frente a la documentación actual de las herramientas.
Paradigmas Arquitectónicos: Túneles Abiertos vs. Streams de Suscripción
Cómo opera ngrok: El Túnel de Infraestructura Abierta
Al ejecutar ngrok http 3000, el agente de ngrok establece una conexión saliente de larga duración con la infraestructura en la nube de ngrok. ngrok asigna una URL pública y reenvía cada paquete enviado a ese endpoint a través de la conexión a tu puerto local.
[Fuente Webhook] ---3e [Borde de la Nube ngrok] ===(Tfanel Encapsulado)===3e [Agente ngrok] ---3e [Servidor Local:3000]
Bajo este modelo:
- La capa: Funciona como un proxy inverso de Capa 4 (TCP/TLS) o Capa 7 (HTTP), y — a partir de 2026 — como una “puerta de enlace universal” con su propia capa YAML de Políticas de Tráfico para enrutamiento, reescritura y control de acceso en el borde.
- El alcance: El túnel expone lo que esté escuchando en ese puerto local. Si tu framework sirve diez rutas, todas son alcanzables a través del endpoint público a menos que limites el túnel o escribas una regla de Políticas de Tráfico para restringirlo.
- El estado: Sin políticas configuradas, funciona como un flujo sin estado — el tráfico se envía en tiempo real a medida que llega.
Cómo opera Hookdeck CLI: El Stream de Suscripción a Webhooks
Hookdeck funciona como un broker de eventos asíncrono que se sitúa entre el proveedor externo y tu máquina local, en lugar de un bypass de red simple.
+---3e [Máquina de Desarrollo A: Puerto 4000]
[Fuente Webhook] ---3e [Pasarela de Eventos Hookdeck (Cola / Broker)] ===(Stream CLI)===3e |---3e [Máquina de Desarrollo B: Puerto 4000]
+---3e [Máquina de Desarrollo C: Puerto 5000]
Ejecutar hookdeck listen 4000 3cnombre-de-fuente3e no solo crea un puerto — crea tres abstracciones dentro de tu proyecto Hookdeck:
- Fuente: Un endpoint de seguimiento persistente mapeado a una plataforma upstream (por ejemplo,
stripe-webhooks). La CLI asigna una URL permanente bajohkdk.eventsque permanece igual tras reinicios. - Destino: Una definición que apunta a tu objetivo local (por ejemplo,
http://localhost:4000). - Conexión: El vínculo entre Fuente y Destino — un stream de suscripción con estado, aislado, no un simple pipe.
Cuando un webhook llega a la frontera de Hookdeck, se reconoce inmediatamente y se encola, para luego ser entregado a la sesión local de CLI suscrita. Si tu servidor local se cae o se pausa en un breakpoint, el evento permanece en cola en lugar de perderse — la documentación de Hookdeck describe esto como una garantía de entrega al menos una vez, respaldada por encolado duradero.
Una corrección importante: usar las funciones de reenvío de la CLI requiere una cuenta gratuita de Hookdeck (hookdeck login) — no es sin cuenta como sugieren algunas páginas comparativas. Lo que sí es gratuito, según la propia documentación de npm y GitHub de Hookdeck, es una URL de evento ilimitada y permanente para desarrollo local: “URLs de evento ilimitadas y permanentes” específicamente para el caso de uso de la CLI.
Matriz de Comparación Técnica
| Capacidad | ngrok | Hookdeck CLI |
|---|---|---|
| Arquitectura central | Proxy inverso genérico de L4/L7, ahora expandiéndose a una gateway API/AI más amplia | Pasarela de eventos webhooks diseñada a medida |
| Estado del túnel | Reenvío sin estado por defecto | Con estado (procesado, encolado y gestionado) |
| Estabilidad de URL (nivel gratuito) | Un dominio de desarrollo asignado automáticamente que persiste tras reinicios, pero no se puede personalizar; las direcciones TCP se asignan aleatoriamente a menos que verifiques una tarjeta | URL de Fuente permanente por proyecto; requiere cuenta gratuita (sin tarjeta) |
| Filtrado de tráfico | En el borde mediante Políticas de Tráfico (un lenguaje YAML separado, facturado por unidad de política) — no payload-aware por defecto | Filtros nativos y granulares en cabeceras, cuerpo, ruta o consulta mediante flags de CLI o el panel |
| Distribución / enrutamiento | Principalmente 1:1; la distribución a múltiples destinos es posible mediante una acción forward-internal en la política de tráfico de un endpoint wildcard, pero requiere configuración manual |
Distribución nativa 1:muchos — un Source puede alimentar múltiples Connections/Destinations |
| Aislamiento de equipo | 1 miembro en niveles Free y Hobbyist; miembros ilimitados (3 incluidos) solo en nivel Pay-as-you-go | Cada desarrollador ejecuta su propia sesión CLI en Sources compartidas, con filtrado a nivel de sesión — sin necesidad de asientos |
| Interfaz de depuración | Panel web local en localhost:4040 con reproducción de solicitudes |
Interfaz completa en terminal (TUI) y consola web de Hookdeck |
| Reintentos / reproducción | Repetición manual desde el panel | Reintento instantáneo con teclado (r) en la CLI, con reglas de reintento automáticas configurables |
| Integración con agentes AI | Ninguna en la CLI (ngrok ofrece herramientas MCP separadas para conectar otros servidores MCP a través de su gateway) | Servidor MCP integrado (hookdeck gateway mcp) con 11 herramientas |
Diferenciadores Clave
1. Filtrado granular de eventos vs. exposición tipo Firehose
Un pago de Stripe puede activar payment_intent.created, customer.updated, charge.succeeded y invoice.created en rápida sucesión. Si solo depuras charge.succeeded, un túnel simple reenvía todo — cada solicitud llega a tu servidor local, consumiendo CPU y llenando logs, a menos que tengas una política de borde que lo filtre.
El CLI de Hookdeck soporta filtrado directo mediante flags en listen, usando la sintaxis de referencia real:
hookdeck listen 4000 stripe-webhooks --filter-body '{"type": "charge.succeeded"}'
El CLI también soporta --filter-headers, --filter-query y --filter-path para filtrar en otras partes de la solicitud. Los eventos que no coinciden son filtrados en la puerta — nunca llegan a tu terminal o servidor local, manteniendo el enfoque en los payloads bajo prueba.
(Nota: --path es una bandera diferente — define a dónde se envían los eventos en tu servidor local, por ejemplo, --path /webhooks/stripe. No es un filtro, y confundir ambas es un error que conviene evitar si automatizas esto.)
2. Distribución a múltiples destinos para arquitecturas de microservicios
Imagina un checkout de comercio electrónico: un webhook de pedido completado puede necesitar llegar a un servicio de cumplimiento, un pipeline de análisis y un sistema de notificaciones en tres puertos locales diferentes. Con un túnel simple, necesitas tres URLs públicas registradas con el proveedor — o un script de proxy inverso hecho a mano para duplicar y redirigir el payload — a menos que el proveedor soporte registrar múltiples endpoints nativamente.
+---3e Destino 1: http://localhost:5001 (Cumplimiento)
[URL única de Stripe] ---3e|---3e Destino 2: http://localhost:5002 (Análisis)
+---3e Destino 3: http://localhost:5003 (Notificaciones)
Hookdeck trata esto como un patrón nativo: un Source puede mapearse a múltiples Connections, cada una apuntando a un Destino diferente, filtrado o transformado de forma independiente.
3. Flujos de trabajo nativos en equipo
Cuando varios desarrolladores comparten una cuenta de Stripe o Shopify en staging, suelen competir por controlar un único webhook registrado — si el Developer A lo apunta a su túnel personal, la sesión del Developer B se rompe.
La documentación de Hookdeck describe una solución específica: cada desarrollador ejecuta su propia sesión hookdeck listen en la misma Source compartida, usando filtros a nivel de sesión (por ejemplo, enrutando por un parámetro de consulta o cabecera etiquetada para ese desarrollador) para que cada uno reciba solo los eventos relevantes, sin reconfigurar el proveedor upstream.
Depuración: Interfaz en Terminal vs. Panel Web
ngrok ofrece un panel local en http://127.0.0.1:4040 — vista de doble panel de solicitudes entrantes con cabeceras y cuerpo completos, además de un botón manual “Reproducir” que reenvía una solicitud capturada a tu endpoint local. Es una interfaz sólida, pero vive en una pestaña del navegador, separada de tu terminal.
Hookdeck CLI ejecuta una interfaz interactiva en modo pantalla completa en terminal por defecto (--output interactive), con modos alternativos compact y quiet para menor verbosidad en el inicio — estos son flags que se lanzan, no toggles en medio de la sesión. Una sesión típica se ve así:
●── HOOKDECK CLI ──● Escuchando en 1 fuente • 1 conexión • [i] Colapsar
Fuente Shopify │ Solicitudes a → https://hkdk.events/src_...
└─ Reenvía a → http://localhost:3000/webhooks/shopify/orders
Eventos • [↑↓] Navegar
─────────────────────────────────────────────────────────
3e 2026-07-10 14:42:55 [200] POST /webhooks/shopify/orders (34ms)
✓ Último evento exitoso | [r] Reintentar • [o] Abrir en panel • [d] Mostrar datos
Los atajos de teclado documentados son: ↑/↓ (o j/k estilo vim) para navegar, r para reintentar instantáneamente el evento seleccionado contra tu servidor local, d para ver detalles completos de solicitud/respuesta en línea, o para abrir el evento en la consola web de Hookdeck para un rastreo más profundo, y i para colapsar o expandir la cabecera de conexión. Reintentar con r reenvía exactamente la misma carga útil sin volver a activar el evento desde el proveedor — útil para iterar en el código del handler sin esperar a que Stripe o Shopify vuelvan a enviar.
Flujos de trabajo impulsados por IA vía MCP
Hookdeck CLI v2 (lanzado en marzo de 2026) añadió un servidor MCP integrado, iniciado con:
hookdeck gateway mcp
No lo ejecutas directamente — tu cliente MCP (Claude Desktop, Cursor, etc.) lo lanza como subproceso vía stdio:
{
"mcpServers": {
"hookdeck": {
"command": "hookdeck",
"args": ["gateway", "mcp"]
}
}
}
Según las notas de lanzamiento de Hookdeck, el servidor expone 11 herramientas: projects, connections, sources, destinations, transformations, requests, events, attempts, issues, metrics, y un help general. Se describen como “herramientas principalmente para leer e inspeccionar — lo que un agente necesita para responder ‘¿qué está fallando y por qué?’ sin abrir el Dashboard.” La herramienta connections es la excepción con acceso de escritura: soporta pausar y reactivar una conexión. Si aún no has autenticado, aparece automáticamente una herramienta hookdeck_login que se elimina una vez inicias sesión.
Un flujo de trabajo representativo del propio Hookdeck: un agente obtiene métricas generales, detecta una tasa elevada de fallos, la acota a una conexión específica (por ejemplo, shopify-orders → fulfillment-service), inspecciona un evento fallido y sus intentos de entrega, y rastrea la causa raíz hasta un servicio destino que solo maneja un subtipo de evento y rechaza los demás con 422s — en ese momento, la solución (una regla de filtro) es una operación CLI que el agente te pasa en lugar de aplicarla automáticamente.
(Para contexto: ngrok tiene su propio conjunto de funciones relacionadas con IA — se promociona como una forma de exponer o conectar servidores MCP a través de su gateway — pero esa es una capacidad diferente a que Hookdeck CLI tenga su propio servidor MCP que permite a un agente inspeccionar la salud de la entrega de webhooks.)
Resumen de precios
Aquí muchas comparaciones en línea están desactualizadas, así que esto es lo que indican las páginas de precios de cada proveedor a mediados de 2026.
ngrok (según ngrok.com/pricing):
| Nivel | Precio | Límites clave |
|---|---|---|
| Gratis | $0 | 3 endpoints en línea, 1GB transferencia, 20k solicitudes HTTP/mes, página de advertencia intersticial en endpoints HTTP, 1 miembro |
| Hobbyist | $8/mes pagado anualmente ($10/mes pagado mensualmente) | 3 endpoints en línea, 5GB incluido, 100k solicitudes incluidas, sin página intersticial, dominios con marca ngrok |
| Pago según uso | $20/mes base + uso | Endpoints ilimitados, dominio propio, miembros ilimitados (3 incluidos), SSO/RBAC opcional |
Importante aclarar: varios artículos comparativos de terceros afirman que el nivel gratuito tiene un timeout de sesión de 2 horas. La propia documentación de ngrok afirma lo contrario — los endpoints del nivel gratuito NO tienen timeout y pueden funcionar indefinidamente como servicio en segundo plano. Las restricciones reales del nivel gratuito son el límite de 1GB/mes de ancho de banda, las 20k solicitudes y la página intersticial forzada (que se puede eliminar con un encabezado de solicitud o un plan de pago).
Hookdeck (según hookdeck.com/pricing, para el Event Gateway en producción — separado del uso gratuito local del CLI):
| Nivel | Precio | Límites clave |
|---|---|---|
| Desarrollador (Gratis) | $0 | 10,000 eventos/mes, retención de 3 días, 1 usuario, sin tarjeta |
| Equipo | $39/mes base | Pago por uso más allá del base (aprox. $0.33 por cada 100k eventos adicionales), usuarios ilimitados, retención de 7 días |
| Crecimiento | $499/mes | SLA de uptime/latencia, SSO/SAML/SCIM, exportación a Datadog, retención de 30 días |
La página de Hookdeck indica un objetivo de 99.999% de uptime para la infraestructura del Event Gateway — es una afirmación del proveedor, no una cifra auditada independientemente, pero está claramente en su sitio.
Preparación para producción: De desarrollo local a borde empresarial
Una limitación común de cualquier túnel local es qué pasa al pasar a producción. ngrok está diseñado principalmente para desarrollo y exposición ad hoc; el uso en producción requiere añadir lógica de reintentos, limitación de tasa y verificación de firma, o pagar por funciones de gateway de nivel producción para obtener parte de esto en el borde.
Hookdeck propone que el mismo modelo de Source/Connection/Destination se mantiene sin cambios — solo apuntas el Destination a tu URL de producción en lugar del CLI. Según la propia documentación de reintentos de Hookdeck, los reintentos automáticos están limitados a 50 intentos por evento, y hay una guía que describe ventanas de reintento de hasta aproximadamente una semana como un límite configurable — notablemente más agresivo que los reintentos nativos de Stripe o Shopify. Los eventos fallidos que agotan los reintentos se agrupan en “Issues” (añadido en la versión del CLI de marzo de 2026) en lugar de descartarse silenciosamente, con alertas en Slack/PagerDuty y reintentos en masa una vez resuelto el problema.
Valoración final
Elige ngrok cuando necesitas exponer rápidamente un servidor local para una demo, estás probando tráfico HTTP/TCP/TLS general que no sea específicamente webhook, o quieres la herramienta de túneles más documentada que aparece en casi toda guía de integración de proveedores.
Elige Hookdeck CLI cuando trabajas con flujos de webhooks ruidosos o de alto volumen que necesitan filtrado para facilitar la depuración, necesitas que un evento se distribuya a múltiples servicios locales, compartes una fuente de webhooks en equipo y se pisan unos a otros, o quieres que el flujo de trabajo de desarrollo local pase a producción sin rearquitectar lógica de reintentos y observabilidad desde cero.
Cambios recientes
Correcciones y adiciones al borrador original, verificadas contra la documentación actual de cada proveedor (julio 2026):
- Estabilidad de URL en nivel gratuito de ngrok: El borrador original afirmaba que las URLs del nivel gratuito son “efímeras, cambian cada vez que se reinicia el agente.” La propia documentación de ngrok indica que el nivel gratuito obtiene un dominio de desarrollo asignado automáticamente que persiste tras reinicios (aunque no se puede personalizar). Se ajustó la matriz de comparación en consecuencia; se señaló que las direcciones TCP se asignan aleatoriamente a menos que verifiques una tarjeta.
- Timeout en sesiones del nivel gratuito de ngrok: Se eliminó la afirmación de un timeout de 2 horas que circula en contenidos comparativos, ya que la documentación de ngrok afirma que los endpoints del nivel gratuito NO tienen timeout y pueden funcionar indefinidamente.
- Niveles de precios de ngrok: Se reemplazaron cifras de terceros (“Personal $8/mes, Pro $20/mes, Enterprise $39/mes”) por los nombres y precios actuales de la página de ngrok (Free, Hobbyist en $8/mes anual o $10/mes mensual, Pago según uso en $20/mes base).
- Aclaración sobre la necesidad de cuenta en Hookdeck: Se corrigió — la CLI requiere una cuenta gratuita de Hookdeck (
hookdeck login) aunque las URLs de eventos locales son ilimitadas y gratuitas. - Sintaxis de comandos de filtrado en Hookdeck CLI: La ejemplo original (
hookdeck listen 4000 stripe-webhooks --path /webhooks/stripe) usaba mal--path, que define la ruta de reenvío local, no un filtro. Se reemplazó por las flags correctas (--filter-body,--filter-headers,--filter-query,--filter-path) según referencia actual. - Atajos de teclado en la TUI de Hookdeck: Se corrigió el diagrama ilustrativo para coincidir con los atajos documentados (
rreintentar,dmostrar datos,oabrir en panel,icolapsar/expandir cabecera) y se aclaró que los modoscompactyquietson flags de lanzamiento, no toggles en medio de la sesión. - Filtrado de tráfico en ngrok: Se suavizó la afirmación original de “Ninguno” — ngrok tiene una capa de Políticas de Tráfico basada en YAML que puede filtrar o reescribir en el borde, aunque es un lenguaje de política separado en lugar de filtrado payload-aware por defecto.
- Distribución a múltiples destinos en ngrok: Se señaló que los endpoints wildcard con una acción
forward-internalen la política de tráfico pueden lograr enrutamiento a múltiples destinos, en lugar de decir que la distribución múltiple es imposible en ngrok. - Descripciones de herramientas MCP en Hookdeck: Se ajustaron con las notas oficiales — confirmando 11 herramientas, añadiendo que
connectionses la única con acceso de escritura (pausar/reactivar), y que aparece automáticamentehookdeck_loginantes de autenticarse. - Se añadió: Se añadió una sección de precios para ambas herramientas, dado que las estructuras de precios cambiaron en meses recientes y no estaban en el borrador original.
- Se eliminó: cifras no verificables o solo de marketing (ej. números de latencia/throughput de terceros).
Fuentes
- ngrok Pricing — https://ngrok.com/pricing
- ngrok Pricing and Limits docs — https://ngrok.com/docs/pricing-limits
- ngrok Free Plan Limits — https://ngrok.com/docs/pricing-limits/free-plan-limits
- Hookdeck CLI reference — https://hookdeck.com/docs/cli
- Hookdeck CLI GitHub — https://github.com/hookdeck/hookdeck-cli
- Anuncio de Hookdeck CLI v2 (MCP) — https://hookdeck.com/blog/hookdeck-cli-v2
- Cambios de Hookdeck marzo 2026 — https://hookdeck.com/blog/hookdeck-review-march-2026
- Documentación de reintentos de Hookdeck — https://hookdeck.com/docs/retries
- Precios de Hookdeck — https://hookdeck.com/pricing
- Guía de pruebas localhost de Hookdeck — 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.