Simple, honest pricing

Self-host free forever. Or let us run it for you.

Self-Hosted

Free
forever
  • Unlimited tunnels
  • Unlimited bandwidth
  • Full dashboard
  • All features unlocked
  • Your infrastructure
  • MIT licensed

Free Hosted

$0
to get started
  • 1 concurrent tunnel
  • 2 GB/month bandwidth
  • 2 hour max TTL
  • Random URL
a7f3bc.tunnel.nullbore.com
  • 1 API key
  • Dashboard access

Pro

$18/mo
for teams & production
  • 10 concurrent tunnels
  • 100 GB/month bandwidth
  • Persistent tunnels (no TTL limit)
  • Your own domain
tunnel.yourcompany.com
  • 10 API keys
  • Signed webhooks + audit log

FAQ

What's the difference between self-hosted and hosted?

Self-hosted means you run the NullBore server on your own infrastructure. You get all features, no limits, no cost โ€” but you manage the server. Hosted means we run the infrastructure for you. You get a URL, dashboard, and API key instantly.

What kind of URL do I get?

On the free plan, you get a random URL like a7f3bc.tunnel.nullbore.com. On Hobby, you can choose a name like heroapp.tunnel.nullbore.com โ€” first come, first served, tied to your account. On Pro, you can bring your own domain.

Can I use NullBore with AI agents and MCP servers?

Yes โ€” it's one of our best use cases. Expose a local MCP server to a cloud-hosted agent temporarily, run your workflow, and the tunnel closes automatically. Works great with OpenClaw and other agent frameworks.

Can I upgrade or downgrade anytime?

Yes. Changes take effect immediately. Downgrades prorate to the next billing cycle.

What happens when a tunnel's TTL expires?

The tunnel closes automatically. The public URL stops working. On the Hobby plan, you can enable auto-renew to keep tunnels alive up to 7 days. Pro plan tunnels can run indefinitely โ€” they stay up until you close them.

What counts as bandwidth?

All data relayed through the tunnel โ€” both directions. If you're proxying a 1MB page load, that's ~1MB of bandwidth.

Do you log tunnel traffic?

No. We track metadata (byte counts, request counts, timestamps) but never inspect or log payload content.

Can I use NullBore for webhook testing?

Absolutely โ€” expose a local endpoint temporarily, point Stripe/GitHub/etc at it, test your integration, done.