bore is a CLI tool for creating TCP tunnels that expose local ports to a remote server.
The tool solves the problem of accessing services running on localhost from outside a local network, bypassing NAT firewalls. It works by establishing a tunnel between a local port and a remote server, which then exposes that port publicly. A client connects to the bore server and specifies which local port to forward; the server assigns a public port and relays traffic between the two endpoints.
Developers should choose bore if they need a lightweight, straightforward tunneling solution without unnecessary features. It suits temporary access scenarios, local development sharing, and self-hosted deployments where simplicity matters. The README positions bore against localtunnel and ngrok, emphasizing that bore is more efficient and unopinionated, designed purely for TCP forwarding with minimal overhead. The tool can run as either a client or server from a single binary, and self-hosting requires only running that binary with appropriate options.
The project maintains a focused scope with a small, auditable codebase written in safe async Rust. Installation is straightforward through multiple channels including Homebrew, package managers for Linux distributions, prebuilt binaries, Cargo, and Docker images. The tool's development reflects a commitment to simplicity: the entire implementation totals approximately 400 lines of code, making it trivial to understand, modify, and deploy in any environment.