A netcat-like CLI and Go library that connects two machines over Tailscale's WireGuard data plane without needing a Tailscale account or control plane.
alebeck/boring
A command-line SSH tunnel manager written in Go that lets you define, open and close port forwards from a TOML config.
- Stars
- 1,692
- Forks
- 57
- Open issues
- 5
- Last commit
- 12 days ago
What is it?
boring is a command-line tool for managing SSH tunnels. Instead of remembering long ssh -L or -D commands, you describe each tunnel once in a TOML file and then open or close them by name, glob pattern or group.
It supports local, remote and dynamic (SOCKS5) port forwarding, including Unix sockets and port ranges. Host settings are read from your existing SSH config and ssh-agent, so tunnels can reuse the aliases and identity files you already have. Tunnels reconnect automatically and send keep-alives to stay up.
The tool runs on macOS, Linux and Windows, and ships shell completions for bash, zsh and fish. It can be installed with Homebrew, downloaded as a pre-built binary, or built from source.
Key features
- 01Local, remote and dynamic (SOCKS5) port forwarding
- 02Reads hosts and identities from SSH config and ssh-agent
- 03Automatic reconnection and keep-alives
- 04Tunnels defined in a human-friendly TOML file
- 05Open and close tunnels by name, glob pattern or group
- 06Supports Unix sockets and runs on macOS, Linux and Windows
Use cases
- Keeping database or internal service ports reachable through a bastion host
- Exposing a local service to a remote server through remote forwarding
- Routing browser or application traffic through a SOCKS5 proxy over SSH
- Managing a set of recurring development tunnels with one command
Quick start
- 1
Install with Homebrew
brew install boring - 2
Create a TOML config file that describes your tunnels
- 3
Open all configured tunnels
boring open -a
Things to know
- Windows users currently have to build from source.
- The license metadata is not recognized (NOASSERTION), so check the repository's license before use.
Topics
FAQ
- What is boring?
- A command-line SSH tunnel manager written in Go that lets you define, open and close port forwards from a TOML config. boring is a command-line tool for managing SSH tunnels. Instead of remembering long ssh -L or -D commands, you describe each tunnel once in a TOML file and then open or close them by name, glob pattern or group.
- Is boring free to use? What license does it have?
- boring is open source under the Other license. Check the license terms before using it in commercial products.
- Is boring still maintained?
- Actively maintained. The last commit to boring was on Oct 10, 2026.
- What can I use boring for?
- Keeping database or internal service ports reachable through a bastion host Exposing a local service to a remote server through remote forwarding Routing browser or application traffic through a SOCKS5 proxy over SSH Managing a set of recurring development tunnels with one command
- How do I install boring?
- Install with Homebrew: brew install boring Create a TOML config file that describes your tunnels Open all configured tunnels: boring open -a
- Where can I get boring?
- The source code and installation instructions are on GitHub: https://github.com/alebeck/boring
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A terminal TUI for browsing, connecting to, and managing SSH hosts defined in your ~/.ssh/config file.
A minimal Rust CLI that exposes a local TCP port to a remote server, so localhost services can be reached from the public internet.
A native Rust desktop workspace for databases, SSH, SFTP, terminals, remote desktop, monitoring, Markdown notes and AI agents.
A self-hosted tunnel written in Go that exposes localhost services to the internet through your own domain and server.
A fast reverse proxy that exposes local servers behind NAT or firewalls to the internet over TCP, UDP, HTTP and HTTPS.