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.
Open source · MIT
A minimal command-line tool that exposes a port on your computer to the internet through a remote server.
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
| bore | localtunnel | |
|---|---|---|
| Type | CLI | CLI |
| Price | Free and open source | Free and open source |
| Licence | MIT | MIT |
| GitHub stars | 11.6k | 22.5k |
| Setup difficulty | Beginner | Beginner |
| How you get it | Install with a package manager | Install with a package manager |
| Main language | Rust | JavaScript |
| Last code update | 9 months ago | 14 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-cliInstall with Homebrew (macOS)
brew install bore-clilocaltunnel
Quickstart (no install)
npx localtunnel --port 8000Install globally
npm install -g localtunnelFrequently 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.