Every port, one list
Each listening port on your Mac, the process behind it and the project it runs from, tinted by runtime.
See what is listening on every local port, right from the menu bar.
Stop it cleanly, no terminal needed.
THE PROBLEM
Every npm run dev you never stopped keeps a port and a slice of your Mac.
FEATURES
No settings maze and no clutter. Just the ports you have open and a way to close them.
Each listening port on your Mac, the process behind it and the project it runs from, tinted by runtime.
Your servers first, system services apart, and your own categories to show or hide.
A clean stop first. If the process refuses, force quit it after you confirm.
PRICING
No subscription, no tiers, no renewals. One payment and PortFly is yours. Less than a coffee, and you only buy it once.
*A single payment for PortFly on macOS 26 or later.
No renewals and nothing to cancel. 14-day refund.
FAQ
Click the PortFly icon in the menu bar and type :30. Starting with a colon matches port prefixes, so 3000 and 3001 show up with the process, PID and full command behind each.
PortFly asks the process to quit with SIGTERM and watches until it has really exited. Force Quit is only offered if it is still running after 5 seconds, and only after you confirm. Right before every signal it checks the PID and start time still match, so a reused PID never gets hit by mistake.
Without administrator rights, macOS only shows the sockets of your own processes, so servers owned by root do not appear. PortFly does not install a privileged helper to get around that.
No. It is a single payment of $5.99 for the full app. There is no subscription, no tiers and nothing to renew. If it is not for you, you can get a full refund within 14 days.
Your ports, processes and commands never leave your Mac. PortFly only goes online to sign you in, confirm your purchase and check for updates, and has no analytics. The Privacy Policy lists exactly what is stored.
A full scan takes about 1.5 ms and reads macOS directly, with no lsof and no shell. It refreshes every 3 seconds while the panel is open and does nothing while it is closed.