A native macOS menu bar app that periodically runs internet speed tests and displays your download/upload speeds with a history chart.
- Native SwiftUI menu bar app with a popover dashboard
- Download/upload speed chart over time (Swift Charts)
- Configurable test interval (5, 15, 30, or 60 minutes)
- Run a speed test manually at any time
- Persists speed history across restarts
- Installs as a proper
.appin /Applications - Uses Ookla's official Speedtest CLI for accurate results
- macOS 14+
- Ookla Speedtest CLI (see install steps below)
Download the latest .app from the Releases page — no Xcode or build tools needed.
- Download
Internet.Speed.app.zipfrom the latest release - Unzip and drag Internet Speed.app to
/Applications - Remove the macOS quarantine flag (required for unsigned apps):
xattr -cr "/Applications/Internet Speed.app" - Install the Ookla Speedtest CLI (if you don't have it):
brew tap teamookla/speedtest brew install teamookla/speedtest/speedtest
- Open the app — it will appear in your menu bar
To start on login, go to System Settings > General > Login Items and add "Internet Speed".
Requires Xcode and Homebrew.
git clone https://github.com/samjkwong/internet-speed.git
cd internet-speed
./install.shThis will install the Speedtest CLI (if needed), build the .app from source, copy it to /Applications, and launch it.
./uninstall.shClick the speed indicator in your menu bar to open the dashboard:
- Current speeds shown at the top
- Chart displays download/upload history over time
- Run Test Now triggers an immediate speed test
- Interval picker lets you change how often tests run (default: 15 min)
Build the .app bundle:
./build.sh
open "Internet Speed.app"The app uses SwiftUI's MenuBarExtra with a .window style for the popover UI, Swift Charts for the speed history graph, and Ookla's official Speedtest CLI to measure internet speed. Speed tests run on a background thread so the UI stays responsive. Results are persisted to ~/Library/Application Support/InternetSpeed/history.json.