GitHub - xmstan/shafts: SSH tunnel manager for macOS

1 min read Original article ↗

Shafts is a macOS-native SSH tunnel manager for anyone who need reliable local (-L), remote (-R), and dynamic (-D / SOCKS) forwards with a menu bar workflow. It uses the system ssh binary, runs SSH via argv (no shell strings), and supports key files or temporary password prompts (passwords are used only for the current session).

screenshot.png

Features

  • Create/manage local (-L), remote (-R), and dynamic (-D) tunnels
  • Start/stop/restart + status + log streaming
  • Bind to loopback/all/IP/interface
  • Auto-reconnect with backoff
  • Autostart at login (macOS LaunchAgents)
  • Import/export JSON configs
  • Menu bar tray with quick start/stop

Download

Grab the latest release from Releases.

Build & Run

Prereqs:

  • Node.js + npm
  • Rust toolchain (for the Tauri backend)

Dev:

  1. npm install
  2. npm run tauri dev

Build:

  1. npm install
  2. npm run tauri build

Config Storage

  • ~/Library/Application Support/shafts/tunnels.json

Notes

  • Remote forwards may require server-side configuration such as GatewayPorts.
  • additionalArgs are parsed into argv tokens and cannot include -L, -R, -D, or -N.
  • Logs are kept in memory (last 2000 lines per tunnel).