Docs
Teitunnel vs ngrok
Teitunnel and ngrok compared — free plan limits, the browser warning page, custom domains, request inspection and logins — and how to move from ngrok commands to Teitunnel.
ngrok is a hosted tunnel service with its own network, a polished agent and many paid features. Teitunnel is a free app for Cloudflare Tunnel: your shares and routes run on Cloudflare, on your own account.
| Teitunnel | ngrok Free | |
|---|---|---|
| Price | free, open source | free; paid from $10/month |
| Traffic | no cap on tunnel traffic | 1 GB out and 20,000 HTTP requests a month |
| Endpoints online at once | no limit of Teitunnel's | 3 |
| Address | random trycloudflare.com, or any name on your domain | one assigned *.ngrok-free.app domain |
| Your own domain | free, once it's on Cloudflare | paid plans |
| Warning page for browsers | none on your domain | yes, until visitors click through |
| Inspect and replay | the inspector, in the app and teitunnel traffic | localhost:4040, with replay |
| Logins | Cloudflare Access, free up to 50 users | OAuth and OIDC |
| Desktop app | macOS, Windows, Linux | no |
Checked 2026-09-26
From ngrok's pricing, free plan limits and inspection interface. ngrok's pages are the final word.
The warning page
On ngrok's free plan, a browser opening your address first sees ngrok's warning page and
has to click through; scripts can skip it with an ngrok-skip-browser-warning header.
A share on your own domain with Teitunnel shows your site straight away, which matters for
demos, previews sent to clients, and webhooks from services that load the page in a
browser.
From ngrok commands
| ngrok | Teitunnel |
|---|---|
ngrok http 3000 | teitunnel share 3000 |
ngrok http 3000 --url app.yourhost.com | teitunnel share 3000 --on app.yourhost.com |
ngrok http 3000 --traffic-policy-file policy.yml with an OAuth action | teitunnel share 3000 --on app.yourhost.com --allow you@yourhost.com |
localhost:4040, Replay | Inspector in the app, or teitunnel traffic ls and teitunnel traffic replay |
ngrok.yml endpoints | teitunnel.yml in your repository, or routes |
| an always-on agent service | Keep running when Teitunnel quits (run modes) |
When ngrok fits better
- Your domain can't move its nameservers to Cloudflare, and you need your own name.
- You use ngrok's other products, such as its API gateway and Traffic Policy features, and want them in one place.
- Your company already pays for ngrok and manages access there.
Related
Last updated on
Teitunnel and other tunnels
How Teitunnel compares with ngrok, Tailscale Funnel, Microsoft Dev Tunnels, Pinggy and LocalCan, what each is good at, and when to pick something else.
Teitunnel vs Tailscale Funnel
Teitunnel and Tailscale Funnel compared — ports, custom domains, logins, inspection and bandwidth — and when each fits.