Skip to content

bore vs localtunnel

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

bore

Open source · MIT

A minimal command-line tool that exposes a port on your computer to the internet through a remote server.

localtunnel

Open source · MIT

Exposes a service running on your computer to a public URL, for quick testing and sharing.

The short answer

Choose bore if you need…

  • Developers who want to share a local web app or API with someone for a quick test
  • People who want a simple tunnel tool they can self-host
  • Users who prefer a single small binary over a larger service
  • Anyone who needs to reach a local TCP service from outside their network

Choose localtunnel if you need…

  • Developers who want to share a local web app with a colleague for a quick look
  • Anyone testing webhooks or API callbacks from services that need a public URL
  • Testing in browser testing tools that require a reachable address
  • Automated tests or scripts that need a temporary public tunnel via the JavaScript API

Side-by-side

borelocaltunnel
TypeCLICLI
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars11.6k22.5k
Setup difficultyBeginnerBeginner
How you get itInstall with a package managerInstall with a package manager
Main languageRustJavaScript
Last code update9 months ago14 months ago

What each one is

bore

bore is a small command-line program that forwards traffic from a port on your own machine to a public address, so others can reach something you are running locally. It works at the TCP level and is meant to do only this one job. You can use the public server at bore.pub or run your own server.

localtunnel

localtunnel makes a service running on your own computer (localhost) reachable from the internet through a temporary public web address. It is useful when you need to let someone else view your work or when an outside service needs a public URL to send callbacks to, without setting up DNS or deploying the app first. It can be used as a command-line tool (lt) or through a JavaScript API.

Best for

bore

  • Developers who want to share a local web app or API with someone for a quick test
  • People who want a simple tunnel tool they can self-host
  • Users who prefer a single small binary over a larger service
  • Anyone who needs to reach a local TCP service from outside their network

localtunnel

  • Developers who want to share a local web app with a colleague for a quick look
  • Anyone testing webhooks or API callbacks from services that need a public URL
  • Testing in browser testing tools that require a reachable address
  • Automated tests or scripts that need a temporary public tunnel via the JavaScript API

Strengths

bore

  • Small and simple: the README describes about 400 lines of Rust and a single binary for client and server
  • Self-hosting is straightforward with one command
  • MIT licensed and available through several package managers and prebuilt binaries

localtunnel

  • Very quick to start, with a single npx command shown in the README
  • Works from the command line or as a Node.js library with a clear API
  • Restarting your local server reconnects the tunnel automatically, per the README

Not ideal for

bore

  • People who need encryption of traffic: the README says no further traffic is encrypted by default after the secret handshake
  • Users who need a web-specific feature set such as custom domains or HTTP inspection, since bore is a plain TCP forwarder
  • Teams that need access control beyond one optional shared secret

localtunnel

  • Production hosting, since the tunnel exists only while your session runs and the README presents it as a testing and sharing tool
  • Situations needing a fixed custom domain, since the README describes random or requested subdomains that may not be granted
  • Users who need guaranteed uptime or privacy controls, because the README does not describe access restrictions or security features

Trade-offs

bore

  • Traffic is not encrypted by default; the secret only protects the initial handshake
  • Remote ports are assigned randomly unless you pick one, and the command fails if the chosen port is unavailable
  • The README shows Docker images built for AMD 64-bit only

localtunnel

  • Public URLs are temporary and a requested subdomain may not be available
  • The README does not detail security, authentication, or privacy protections, so treat exposed services with caution
  • Depends on a public relay server (localtunnel.me by default), which you do not control unless you run your own

Getting started

bore

Install with Cargo

cargo install bore-cli

Install with Homebrew (macOS)

brew install bore-cli
Step-by-step guide: how to use bore

localtunnel

Quickstart (no install)

npx localtunnel --port 8000

Install globally

npm install -g localtunnel
Step-by-step guide: how to use localtunnel

Frequently asked questions

What is the difference between bore and localtunnel?

bore: A minimal command-line tool that exposes a port on your computer to the internet through a remote server. localtunnel: Exposes a service running on your computer to a public URL, for quick testing and sharing. bore suits developers who want to share a local web app or api with someone for a quick test, while localtunnel suits developers who want to share a local web app with a colleague for a quick look.

Are bore and localtunnel free?

bore: Free and open source. localtunnel: Free and open source.

Is bore or localtunnel more popular?

localtunnel has more GitHub stars (22.5k) than bore (11.6k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to bore and localtunnel?

Other options people compare them with include Chisel, croc.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.