A lightweight macOS menu bar app that shows your VPN connection status and current IP location with country flag.
- Real-time VPN detection - Automatically detects when you connect/disconnect from VPN
- Country flag display - Shows your current IP location as a flag emoji in the menu bar
- IP geolocation - Displays country, city, and IP address in the dropdown menu
- Shield indicator - Shows checkmark shield (✓🛡️) when VPN is connected, X shield (⊗🛡️) when disconnected
- No dock icon - Runs quietly in your menu bar without cluttering your dock
- Download
VPNStatus.zipfrom the latest release - Unzip the file
- Move
VPNStatus.appto/Applications - Double-click to run (or launch from Spotlight)
On first launch, macOS may show a security warning since the app isn't signed with an Apple Developer certificate:
- Right-click (or Control-click) on
VPNStatus.app - Select "Open" from the context menu
- Click "Open" in the dialog that appears
The app will now run and appear in your menu bar.
-
Menu bar icon shows:
✓🛡️ + 🇪🇪- VPN connected (with VPN exit country flag)⊗🛡️ + 🇷🇺- VPN disconnected (with your real country flag)
-
Click the icon to see:
- Connection status
- Current country, city, and IP address
- Active VPN interfaces
-
Keyboard shortcuts:
⌘R- Refresh status⌘Q- Quit
The app detects VPN connections by monitoring network interfaces for VPN tunnels (utun, ppp, ipsec, tap, tun). It specifically looks for interfaces with IPv4 addresses to distinguish actual VPN connections from system services like iCloud Private Relay.
IP geolocation is provided by ip-api.com.
- macOS 14.0 (Sonoma) or later
- Apple Silicon or Intel Mac
-
Clone the repository:
git clone https://github.com/ddobrinskiy/VPNStatus-macos-menubar.git cd vc-ipstatus -
Open in Xcode:
open VPNStatus.xcodeproj
-
Build and run with
⌘R
Or build from command line:
xcodebuild -project VPNStatus.xcodeproj -scheme VPNStatus -configuration Release buildMIT License - feel free to use, modify, and distribute.
Built with SwiftUI for macOS. IP geolocation by ip-api.com.
