Guide

Port manager apps for Mac: lsof alternatives

lsof and kill are free and already on your Mac. There are also free command-line tools, a Raycast extension and several menu bar apps, Portlivo among them. Here’s what each one does, checked against its own page.

By Anmol Sethi · Updated

At a glance

TypePriceShows the projectStopRestartLogs
lsof + killBuilt into macOSFreeWith a second commandYesNoNo
Activity MonitorBuilt into macOSFreeNo (and no port column)QuitNoNo
npx kill-portnpm commandFree, MITNoYes (SIGKILL)NoNo
fkillnpm commandFree, MITNoYesNoNo
Raycast Dev ServersRaycast extensionFree, needs RaycastYesYesYesStartup log
LocalhostBarMenu bar app, macOS 13+Free, MITYes (folder)YesNot listedNot listed
PortKillerMenu bar app, macOS 15+ and WindowsFree, MITCategory onlyYesNot listedNot listed
Laravel HerdAppFree, Pro paidHerd sitesHerd servicesHerd servicesHerd’s own
PortlivoMenu bar app, macOS 14+$8.99 once, 7-day trialYes (folder and command)YesYesYes

Checked against each tool’s own page or README on October 17, 2026. “Not listed” means the page doesn’t mention it, not that the tool can’t do it.

Rather click than type? Portlivo shows every port with its project and frees it in one click. Try it free for 7 days →

lsof and kill

Free, built in and scriptable. Great when you know the port. It gets slow when you don’t: the output shows node rather than your project, and finding the folder takes a second command. See how to see every dev server and how to kill the process on a port.

Activity Monitor

Good for CPU and memory, but it has no port column. You open one process at a time to see its sockets.

kill-port and fkill

Two free npm commands for when you already know the port. npx kill-port 3000 finds the listener and sends SIGKILL, so the server can’t clean up. fkill :3000 stops the process on a port, and fkill on its own opens an interactive, fuzzy-search picker. Neither shows you what’s running before you stop it.

Raycast Dev Servers

A Raycast extension that lists running dev servers grouped by project, with ports, uptime and framework tags, and can start, restart, kill and open them, with a live startup log and a menu bar count. A strong choice if you live in Raycast and mostly run JavaScript dev servers.

Laravel Herd

Herd manages its own sites and services very well. It doesn’t show the Vite, Next.js or artisan servers you started yourself, or anything in Docker. Portlivo reads Herd and Valet’s config, so your .test sites appear next to everything else.

Where Portlivo is different

  • Kill Holder & Retry: when a server fails because its port is taken, a notification stops the holder and starts your command again.
  • Stops things the right way: Homebrew services through brew services and containers through docker stop, so they don’t respawn. It re-checks the PID first and leaves root-owned processes alone.
  • More than JavaScript: Vite, Next.js, Laravel (artisan, Herd, Valet), Rails, Django, FastAPI, Go, Docker and OrbStack containers, and Homebrew or launchd services.
  • Restart, logs, HTTP health and live previews for each server, from the keyboard.
  • Terminal and automation: the devports command (works from Raycast too) and Shortcuts actions.
  • Native and private: SwiftUI, no account, no analytics in the app, and no permissions beyond optional notifications.

When Portlivo is worth it

  • You run several projects at once and lose track of what is on which port.
  • You hit “address already in use” more than once a week.
  • AI agents start servers for you and leave them running.
  • You want logs, restarts and health for every server in one place, from the keyboard.

If you only free a port now and then, lsof is enough, and a free menu bar app covers seeing and stopping. If you want the rest, try Portlivo free for 7 days.

Try Portlivo free for 7 days. Every feature, no account.

Download for Mac

Still have a question?

Write to us — a real developer reads every email and replies personally.

support@portlivo.com