Skip to content

bore

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

Stars
11.6k
Forks
532
Licence
MIT
Language
Rust
Last update
9 months ago
Type
CLI

What it is

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.

  • Expose a local web server on port 8000 at a bore.pub address for a quick demo
  • Run your own bore server on a private network and forward a local port to it
  • Require a shared secret so only your clients can use your server
  • Forward a specific remote port with the --port option when it is free

Great for

  • 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

Not ideal for

  • 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
Step-by-step guide: how to use boreInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Rust and Cargo (for the cargo install route)

    Install with Cargo

    cargo install bore-cli

    Install with Homebrew (macOS)

    brew install bore-cli
  2. 2

    Run it

    • Install bore using one of the methods in the README.
    • Start a local service, for example on port 8000.
    • Run: bore local 8000 --to bore.pub
    • Open the bore.pub:<PORT> address shown in the output; the port is assigned randomly.
  3. 3

    Get the most out of it

    • Use --port to request a specific remote port if you need a stable one
    • Set the BORE_SECRET environment variable so you do not have to type the secret each time
    • Self-host with bore server and use --bind-tunnels to put tunnels on a different interface than the control server
    • Use --local-host to expose a different machine on your local network instead of localhost

Downloads

Strengths

  • 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

Trade-offs

  • 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

How it compares

ProjectStarsTypeLevelUpdatedBest for
bore (this)11.6kCLIbeginner9 months agoDevelopers who want to share a local web app or API with someone for a quick test
localtunnel22.5kCLIbeginner1.2 years agoDevelopers who want to share a local web app with a colleague for a quick look
chisel16.7kCLIintermediate26 days agoDevelopers who need to reach a service on a private machine from outside its network
v2ray-core34.7kOtheradvanced5 days agoDevelopers who want to build and configure their own proxy server
bandwhich12kCLIintermediate3 months agoPeople who want to see which program is using their bandwidth at a given moment
gogs47.9kAppintermediate6 days agoSmall teams that want a private Git server on their own hardware

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.