A native macOS menu bar app to connect and disconnect your SSTP VPN with one click.
- Lives in your menu bar — no Dock icon
- Vector tiger face icon with opacity reflecting connection state
- Saves VPN address and username; password stored securely in Keychain
- Auto-reconnect on timeout (up to 5 retries with exponential backoff)
- Live log viewer built in
- Status dot: green (connected), yellow (connecting), red (error), gray (disconnected)
- macOS 13 Ventura or later
- Xcode 15 or later
sstpcinstalled via Homebrew:brew install sstp-client
open "TigerStripes VPN.xcodeproj"
Press ⌘R to build and run. The app appears in your menu bar.
Product → Archive → Distribute App → Copy App
Zip TigerStripesVPN.app and share it. Recipients should right-click → Open on first launch to bypass Gatekeeper (one-time step, no Apple account required on their end).
For fully notarized distribution (no Gatekeeper warning at all), a paid Apple Developer Program membership and a Developer ID Application certificate are required.
sstpc requires root. Add a passwordless sudo rule so the app never prompts for a password:
sudo visudo
Add this line at the bottom (replace YOUR_USERNAME with the output of whoami):
YOUR_USERNAME ALL=(ALL) NOPASSWD: /opt/homebrew/sbin/sstpc
TigerStripes VPN.xcodeproj
Sources/TigerStripesVPN/
App.swift — @main entry point, MenuBarExtra setup
ContentView.swift — popover UI (credentials, connect button, log)
VPNManager.swift — sstpc process management, auto-reconnect, Keychain
MenuBarIcon.swift — vector tiger face drawn with CoreGraphics
Resources/
Assets.xcassets/ — app icon and accent colour
Info.plist
TigerStripes VPN.entitlements
LSUIElement = true— no Dock icon, menu bar only- Credentials persist across launches: server + username in UserDefaults, password in Keychain
- To quit: right-click the menu bar icon and use the system menu, or add a Quit button to
ContentView