Tunnels and private access
ngrok vs HookDeploy — which is right for you?
ngrok exposes your local server to the internet in real time. HookDeploy captures and stores webhooks at a stable URL — and on Starter+ can deliver into your private network with the source-available HookDeploy Agent, which dials out over mTLS without a public IP or open inbound port. Different tools, often used together.
Decision brief
ngrok and HookDeploy solve different problems. ngrok tunnels live traffic to your running local server. HookDeploy captures webhooks whether your server is up or not, stores history for inspection and replay, and on Starter+ delivers through the source-available HookDeploy Agent dialing out over mTLS — a path many teams use instead of ngrok for webhook delivery. Use both when you need capture plus live local debugging.
Strengths at a glance
HookDeploy
- Capture webhooks without running a local server or tunnel agent
- Persistent history and inspection dashboard with replay on demand
- Team sharing — everyone sees the same captured requests
- Private mTLS agent delivery on Starter+ — no public IP on your handler
- Auto-forward and transform payloads before they reach your server
ngrok
- Tunnel any protocol to localhost (HTTP, TCP, TLS) in real time
- Live traffic hits your local dev server as you code
- SSH tunneling and custom domains on paid plans
- Request inspector built into the ngrok dashboard
- Works for non-webhook use cases (APIs, databases, SSH)
Best-fit workloads
Choose HookDeploy when
- Your local server is not running but you still want to capture the webhook
- You need persistent history to inspect payloads hours or days later
- You want to replay a captured webhook to localhost or a staging URL on demand
- Your team needs shared access to the same webhook captures
- You want private webhook delivery via the HookDeploy Agent on Starter+ without exposing a public port
Choose ngrok when
- You need live traffic hitting your local server as it runs
- You are developing an API or webhook handler and want immediate feedback in your debugger
- You need TCP, TLS, or SSH tunneling — not just HTTP webhooks
- You want to test the full request/response cycle on localhost in real time
- You need a general-purpose tunnel, not a webhook capture and ops control plane
Feature comparison
Plan qualifiers and linked cells cite first-party competitor documentation where available.
Tunnel to localhost (live)
HookDeploy
✗
ngrok
Capture webhooks without local server
HookDeploy
✓
ngrok
✗
Persistent request history
ngrok inspector is session-oriented; HookDeploy stores org-scoped history
HookDeploy
✓
ngrok
Replay captured requests
HookDeploy
✓
ngrok
✗
Private network delivery (no public IP)
Free 0, Starter 1, Pro 2, Scale 5, Enterprise 10 production agents; $9/mo extras on Pro and Scale only
HookDeploy
✓ mTLS agent on Starter+
ngrok
✗
Auto-forward to your server
HookDeploy
✓
ngrok
TCP/SSH tunneling
HookDeploy
✗
ngrok
REST API
HookDeploy
✓
ngrok
Free tier
HookDeploy
✓
ngrok
| Feature | HookDeploy | ngrok |
|---|---|---|
| Tunnel to localhost (live) | ✗ | ✓ |
| Capture webhooks without local server | ✓ | ✗ |
| Persistent request historyngrok inspector is session-oriented; HookDeploy stores org-scoped history | ✓ | Partial |
| Replay captured requests | ✓ | ✗ |
| Private network delivery (no public IP)Free 0, Starter 1, Pro 2, Scale 5, Enterprise 10 production agents; $9/mo extras on Pro and Scale only | ✓ mTLS agent on Starter+ | ✗ |
| Team sharingngrok team features on paid plans | ✓ | Partial |
| Auto-forward to your server | ✓ | ✓ |
| TCP/SSH tunneling | ✗ | ✓ |
| REST API | ✓ | Partial |
| Free tier | ✓ | ✓ |
Sources
- ngrok documentation — Tunnel agent, HTTP/TCP/SSH tunneling
- ngrok pricing — Free tier and paid tunnel features
- HookDeploy private delivery — Starter+ private delivery via outbound mTLS agent
Coming from ngrok? Here's how to switch.
- Create a HookDeploy endpoint and point your webhook sender at the https://hookdeploy.dev/h/{slug} URL
- Capture a few live events and inspect payloads in the dashboard
- When your local server is ready, replay captured requests to your ngrok URL or add a forward destination
- On Starter+, enroll a production HookDeploy Agent, keep it connected, and add an agent forward destination on your endpoint — see [Install the CLI](/docs/agent-cli/install-cli) or [Install the Desktop Agent](/docs/agent-cli/install-desktop)
Common questions
Can HookDeploy replace ngrok?
For webhook capture, inspection, replay, and private delivery via the source-available HookDeploy Agent on Starter+, often yes. ngrok remains the better fit when you need live TCP/SSH tunneling or immediate localhost feedback while your server is running.
Should I use both HookDeploy and ngrok?
Often yes. Capture webhooks in HookDeploy for history and inspection, then replay them to your ngrok URL when your local server is ready. Or forward live from HookDeploy to your ngrok tunnel.
Does HookDeploy require a running process like ngrok?
No. HookDeploy endpoints are always-on cloud URLs. ngrok requires its agent running locally to tunnel traffic.
How does HookDeploy private delivery compare to ngrok?
On Starter and above with a production agent enrolled, HookDeploy routes the final webhook handoff through an outbound mTLS agent to loopback on your machine — no public IP or open inbound port on your handler. Development agents are unlimited on every plan including Free, with fail-fast delivery. ngrok instead exposes a local port to the public internet via its agent.
Try HookDeploy free
No credit card required. Capture your first webhook in under five minutes.