A macOS menu bar app that monitors localhost ports and tracks how much mobile data you are burning through your iPhone's Personal Hotspot.
When macOS reports the current link as metered — which is what a Personal Hotspot looks like — Port Pilot starts counting:
- Live session total in the menu bar (e.g.
1.2GB), with the icon switching to the hotspot glyph - Down / up split, session duration and current speed, updating live while the menu is open
- Today, this billing cycle, and a 14-day history with per-day bars
- Monthly cap with a progress bar and notifications at 50%, 80% and 100%
- Configurable cycle reset day, so the cycle matches your carrier's
- Optional separate tally for regular Wi-Fi / Ethernet
Byte counts come from the kernel's per-interface counters (the same source as
netstat -ib), so they cover every app on the Mac, not just traffic Port Pilot
can see. Nothing leaves your machine; history lives in
~/Library/Application Support/PortPilot/usage.json.
- Active port counter in the menu bar, auto-scanning on a configurable interval
- Any dev server, not just Node: Python, Ruby, Go, Java, PHP, Deno, Bun, Docker, Postgres, Redis, ngrok and more — or switch to Show All Processes
- Green dot for localhost-only, orange when the port is reachable from your network
- Per-port actions: open in browser, copy URL, custom name
- Project context from the process's working directory: reveal in Finder, open in Terminal, open in your editor, copy path
- Live process stats: PID, memory, CPU, uptime, full command line
- Kill a process, kill its whole process tree, or kill everything listed (SIGTERM, then SIGKILL for stragglers)
- Launch at login
- Optional notification when a new port appears
- Zero dependencies, no network access of its own
Requires Xcode Command Line Tools and macOS 13+:
git clone https://github.com/HugoluizMTB/PortPilot.git
cd PortPilot
swift build -c release
mkdir -p PortPilot.app/Contents/MacOS
cp .build/release/PortPilot PortPilot.app/Contents/MacOS/
cp Info.plist PortPilot.app/Contents/
codesign --force --deep -s - PortPilot.app
cp -r PortPilot.app /Applications/
open /Applications/PortPilot.appClick the menu bar icon. The top section shows data usage (expanded when you are on a hotspot), the middle lists active ports with a submenu each, and Settings holds the toggles. ⌘R refreshes, ⌘Q quits.
Set your plan's allowance under Data Usage → Set Monthly Cap… and the reset day under Set Cycle Reset Day….
- The hotspot's Wi-Fi name only appears if you grant Location Services access to Port Pilot; otherwise it shows as "Personal Hotspot".
- Notifications and launch-at-login need the app to run from a bundle
(
PortPilot.app), notswift run.
- macOS 13.0 (Ventura) or later