Capability matrix
Bore and ngrok, side by side
Claims checked 2026-07-31
| Capability | Bore | ngrok |
|---|---|---|
| Basic HTTP tunnel | bore up <port> after browser login. | ngrok http <port> after adding an authtoken. |
| Hosted development URL | Account-reserved *.bore.dk namespaces; account limits apply. | Free tier includes one assigned development domain; custom or reserved domains require a paid plan. |
| Published free-tier limits | Hosted access is subject to Bore account limits; this page makes no transfer or request quota claim. | Up to 3 online endpoints, 1 GB/month transfer, 20k HTTP(S) requests/month, and an HTML interstitial. |
| Related service hosts | Reserved child hosts can override the local port. | Custom, reserved, and wildcard domain options depend on a paid plan. |
| Observability | Dashboard tunnel state and request statistics; no claimed payload inspector. | Traffic Inspector with plan-dependent retention. |
| Edge policy | Focused relay and routing; application owns request authentication. | Traffic Policy supports auth, rate limits, rewrites, and more. |
| Source availability | Repository source is available under BUSL-1.1 terms. | Commercial hosted product and agent ecosystem. |
| Best fit | Focused development tunnels and stable Bore namespace workflows. | Advanced gateway, production, team, and enterprise requirements. |
Short answer
Choose based on the job, not the command
Choose Bore when you want a small workflow for public HTTPS, reusable *.bore.dk namespaces, persistent local daemon behavior, and child hosts that can route related services to separate ports.
Choose ngrok when you need a wider gateway platform: configurable traffic policies, a dedicated request inspector with retention, organization controls, custom domains, enterprise support, or published production-oriented plans.
ngrok plan details were verified in July 2026 against its official pricing and free-plan documentation linked below. This page compares documented capabilities, not latency or throughput.
Setup
The basic localhost workflow is similar
Both clients authenticate and connect an outbound agent to a hosted edge. You do not need inbound router configuration for the normal HTTP tunnel workflow.
bore login
bore up 3000
bore lsngrok config add-authtoken <token>
ngrok http 3000Bore strengths
Where Bore is intentionally focused
Bore keeps namespace ownership, tunnel state, child-host routing, and basic request statistics in one compact system. A stopped claim does not automatically release its namespace, which helps callback URLs survive local restarts.
- Reserve a top-level Bore namespace to the account and reuse it when available.
- Route
api.<namespace>.bore.dkor another reserved child host to a different local port. - Run a background agent that reconnects desired tunnels after restart.
- Inspect and modify the source under Bore's repository license terms.
ngrok strengths
Where ngrok has a broader platform
ngrok documents traffic policies for authentication, rate limits, request modification, routing, and other gateway behavior. Its plans also describe traffic inspection retention, custom domains, service users, team features, and enterprise support.
Those capabilities matter when the tunnel is becoming shared infrastructure rather than a short-lived development path. The free tier currently includes one assigned development domain, up to three online endpoints, 1 GB of monthly transfer, 20,000 monthly HTTP(S) requests, and an HTML interstitial. Custom or reserved domains require a paid plan.
Limits, availability, and pricing can change, so check the official ngrok pages linked under sources before deciding.
Decision guide
A practical way to decide
Start with the smallest system that meets the risk and workflow. For a developer sharing Next.js, receiving test webhooks, or keeping a few stable test hosts, Bore's narrower surface may be enough. For production ingress, advanced edge policy, enterprise identity, or formal support requirements, evaluate ngrok's paid platform directly.
Neither tool makes an unsafe development server safe by default. Expose test data only, patch dependencies, verify webhook signatures, and add application authentication where the content is sensitive.
Common questions
Before you expose a port
Is Bore a free ngrok alternative?
Bore's hosted development service is currently offered without a paid plan, subject to account limits. It covers the core public HTTPS tunnel workflow, but it is not a feature-for-feature replacement for ngrok's commercial gateway platform.
Does Bore have a request inspector like ngrok?
Bore exposes tunnel state and request statistics, but this comparison does not claim a payload inspection and replay tool equivalent to ngrok's Traffic Inspector.
Can Bore keep the same public URL?
Bore namespaces are reserved separately from active tunnel claims. You can stop a tunnel and reuse its namespace later when it is not active on another device.
Should I use Bore for production ingress?
Evaluate your availability, security policy, observability, support, and compliance requirements first. Bore is positioned here for development tunnels; ngrok publishes plans and controls aimed at broader production and enterprise use.
Sources and further reading
Run it locally
Try the focused tunnel workflow
If stable Bore namespaces and public HTTPS cover your use case, expose a local port and test it with your own application.