A sleek, native macOS menu bar accessory that displays real-time network upload and download speeds, built entirely with Swift and standard macOS libraries (no third-party dependencies).
- Real-time Speeds: View download (↓) and upload (↑) speeds calculated dynamically from macOS
sysctlkernel APIs. - Sparklines: Visualize recent network activity directly in the menu bar and dropdown with dynamic sparkline charts.
- Latency Monitor: Keep track of your connection quality with real-time ping latency measurements.
- Speed Test: Run quick, on-demand speed tests from the dropdown menu to check your maximum bandwidth.
- Data Limits: Set custom data usage limits and receive visual alerts when you approach or exceed them.
- SF Symbols: Uses native Apple symbols for a clean and beautiful look in both light and dark mode.
- Dynamic Colors: Numbers change color (Green/Orange) when data thresholds are exceeded.
- Interface Selection: Choose to monitor all traffic, or isolate specific interfaces like Wi-Fi (
en0) or loopback (lo0). - Session Totals: See how much data has been downloaded and uploaded since the monitor was launched.
- Customizable Intervals: Dynamically update refresh rate from 0.5 to 5 seconds.
- Bits vs Bytes: Toggle between bits per second (Mbps) and bytes per second (MB/s).
- Compact & Hide Modes: Save menu bar space with
Compact Mode, or automatically hide the monitor entirely when network traffic is inactive. - Launch at Login: Integrates natively with
SMAppServiceto safely auto-start on boot.
This project is a Swift Package. You must be on macOS 13+.
- Clone the repository.
- Build the project using the build script, which compiles the package and securely codesigns it:
./build.sh
- Wait for the build to complete. The script creates the standard app bundle with Hardened Runtime and App Sandbox enabled.
- Drag
NetworkMon.appinto your Mac's Applications folder. - Double-click it to launch! Since it is a menu bar accessory, it will silently appear in the top right of your screen. (Tip: Use the dropdown menu to toggle 'Launch at Login' so it starts automatically!)
- Initial release featuring core network tracking, dynamic colors, interval toggling, interface isolation, and native backgrounding.

