Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tunnel-launcher

A cross-platform tray-icon GUI for managing SSH tunnels (-L / -R / -D). Single statically-linked executable per platform (Linux / macOS / Windows).

Tunnel Launcher Tray Menu

With Tunnel Launcher I no longer have to remember the exact ssh -L flags for each project. One click in the tray and the tunnel is up.

Tunnel Launcher Main Window

Blog: https://www.tqdev.com/2026-tunnel-launcher-ssh-tray-gui/

Features

  • Tray icon with per-tunnel status (open / closed) and click-to-toggle
  • In-window list with Add / Edit / Remove forms — no text editor required
  • SSH-style tunnel specification (-L 9000:localhost:9000, -R …, -D …)
  • Reads ~/.ssh/config for HostName, User, Port, IdentityFile, ProxyJump
  • Auth via explicit identity, ssh-agent, or default identities
  • Per-tunnel launch app: start a GUI program when the tunnel opens; the tunnel auto-closes when that program exits
  • In-memory connection log viewable from a button
  • Single-instance via pidfile — second invocation re-shows the window

Configuration

Default location:

  • Linux: ~/.config/tunnel-launcher/config.toml
  • macOS / Windows: ~/.tunnel-launcher.toml
  • Override with $TUNNEL_LAUNCHER_CONFIG
[[tunnels]]
name    = "dev"
host    = "dev-server"                # ssh alias or hostname
forward = "-L 9000:localhost:9000"    # ssh-style spec (-L / -R / -D)
user    = "neo"                       # optional
port    = 22                          # optional
identity = "~/.ssh/id_dev"            # optional
keep_alive = 120                      # optional, seconds; 0 to disable
app     = "code ."                    # optional, GUI app to launch

Build

sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev libxkbcommon-dev

This installs the Fyne build dependencies on Debian (based) Linux.

./bundle.sh    # regenerates bundled.go from icon.png
go build       # produces ./tunnel-launcher

Package using fyne-cross

Install fyne-cross using:

go install github.com/fyne-io/fyne-cross@latest

Now run the package.sh script to build all binaries (Docker required):

./package.sh   # produces fyne-cross/dist/tunnel-launcher-{amd64,arm64}.{tar.xz,exe.zip}

Enjoy!

About

A cross-platform tray-icon GUI for managing SSH tunnels

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages