A Python menu bar app for macOS that shows your internet connection quality at a glance.
Shows your ping time to google.com in the menu bar, color-coded by quality:
- Green: Good connection (ping <100ms, jitter <20ms, packet loss <1%)
- Amber: Fair connection (ping <200ms, jitter <50ms, packet loss <3%)
- Red: Poor connection or errors
Click the icon for detailed stats including jitter, packet loss, IP address, and gateway.
This is a Python alternative to HowOnline, which is a native Swift app. This version:
- Works without Xcode
- Adds jitter and packet loss monitoring
- Shows color-coded quality indicators
- Includes a "Run Full Diagnosis" option using
mtr
# Install dependencies
pip install pystray pillow
# Optional: Install mtr for deep diagnosis
brew install mtr
# Run it
python3 howonline.pyCreate ~/Library/LaunchAgents/com.howonline.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.howonline</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/path/to/howonline.py</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>Then load it:
launchctl load ~/Library/LaunchAgents/com.howonline.plist- Ping: Round-trip time to google.com in milliseconds
- Jitter: Variation in ping times (standard deviation). High jitter = unstable for video calls
- Packet Loss: Percentage of packets that don't arrive. Even 1-2% causes audio dropouts
- macOS (tested on Sonoma 14.x)
- Python 3.8+
- pystray
- Pillow (PIL)
MIT