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).
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:
npm installnpm run tauri dev
Build:
npm installnpm run tauri build
Config Storage
~/Library/Application Support/shafts/tunnels.json
Notes
- Remote forwards may require server-side configuration such as
GatewayPorts. additionalArgsare parsed into argv tokens and cannot include-L,-R,-D, or-N.- Logs are kept in memory (last 2000 lines per tunnel).
