LocalToLink vs ngrok
Quick comparison
| Feature | LocalToLink v1.0 | ngrok |
|---------|------------------|-------|
| Install | npx localtolink | Binary / npm / brew |
| Account required | No (anonymous) | Yes |
| HTTPS | Automatic | Automatic |
| WebSocket | Yes | Yes |
| Custom subdomain | No (v1.5 Pro) | Paid plans |
| Request inspector | No | Yes |
| Request replay | No | Yes |
| Terminal QR code | Yes (--no-qr to hide) | No |
| Auto port detection | Yes | Manual or config |
| Free session limit | 2 hours, 1 GB | Varies by plan |
When ngrok wins
Request inspection and replay are ngrok's core differentiators. If you need to:
- See every HTTP request in a web UI
- Replay a webhook delivery with one click
- Inspect headers and bodies without adding logging
ngrok is the better tool. LocalToLink v1.0 deliberately does not include a request inspector — use server-side logging or ngrok for that workflow.
When LocalToLink wins
Zero-friction anonymous tunnels:
npx localtolink
- No account signup
- No binary install — npm only
- Auto-detects your dev server port
- QR code for mobile testing
- WebSocket passthrough for HMR
Good for: quick webhook testing, client previews, OAuth callback testing, mobile device testing.
Pricing
| | LocalToLink | ngrok | |-|-------------|-------| | Free | Anonymous, 2h sessions | Limited free tier | | Paid | v1.5 Pro ($5/mo planned) | Multiple paid tiers |
Migration tip
Both tools give you a public HTTPS URL. Swap the URL in your webhook/OAuth config — no code changes in your app.
Limitations
LocalToLink v1.0 does not offer:
- Request inspector / replay
- Custom subdomains
- Persistent URLs across sessions (random 10-char subdomain)
- Traffic policy rules
See Best ngrok Alternatives for other options.
Try it now
Start a tunnel from your project directory — no account required.
$ npx localtolink