I built this because I kept exceeding my mobile data cap when tethering.
The problem: macOS doesn't distinguish between home WiFi and iPhone hotspot. I'd finish a Zoom call thinking I was on home internet, only to discover I'd burned through 3GB of cellular data.
Existing options didn't fit:
- TripMode ($15/year) does app blocking - overkill for just monitoring
- Bandwidth+ is free but treats all WiFi the same
Technical approach:
- NWPathMonitor.isExpensive detects tethering vs regular WiFi
- CoreWLAN reads SSID for multi-hotspot profile support (requires Location permission on Sonoma+)
- Pure system frameworks, no external dependencies
Supports multiple profiles so you can track personal phone (15GB cap), work phone (unlimited), travel MiFi separately.
$4.99 one-time. macOS 14+.
Happy to answer questions about the implementation.
anhphong•1h ago
The problem: macOS doesn't distinguish between home WiFi and iPhone hotspot. I'd finish a Zoom call thinking I was on home internet, only to discover I'd burned through 3GB of cellular data.
Existing options didn't fit:
- TripMode ($15/year) does app blocking - overkill for just monitoring
- Bandwidth+ is free but treats all WiFi the same
Technical approach:
- NWPathMonitor.isExpensive detects tethering vs regular WiFi
- CoreWLAN reads SSID for multi-hotspot profile support (requires Location permission on Sonoma+)
- Pure system frameworks, no external dependencies
Supports multiple profiles so you can track personal phone (15GB cap), work phone (unlimited), travel MiFi separately.
$4.99 one-time. macOS 14+.
Happy to answer questions about the implementation.