Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PortPilot

A macOS menu bar app that monitors localhost ports and tracks how much mobile data you are burning through your iPhone's Personal Hotspot.

macOS Swift License GitHub

Mobile data tracking

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.

Port monitoring

  • 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)

Other

  • Launch at login
  • Optional notification when a new port appears
  • Zero dependencies, no network access of its own

Installation

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.app

Usage

Click 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….

Notes

  • 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), not swift run.

Requirements

  • macOS 13.0 (Ventura) or later

License

MIT

About

A minimal macOS menu bar app to monitor, name, and kill Node.js processes running on localhost ports.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages