
PortKill
macOS menu bar app to see local ports and kill them in one click
Description
Your dev server says port 3000 is already in use, so it's
PortKill moves all that into the menu bar. Open it and you see every listening port on your Mac, the process behind it and the project it belongs to, and one click on Kill stops it. It walks up from the process's working directory looking for
It sends SIGTERM first and only offers Force Kill if the process is still alive after 3 seconds. System services, root and other users' processes are locked, and there's no "kill all" button. It's native Swift, polls only while the popover is open, has no analytics or third-party dependencies, is MIT licensed, and needs macOS 14 or later.
Port list: every listening TCP port with PID, uptime and memory use, plus optional UDP.
Project detection: shows the project behind each port and groups a process's ports on one row.
Docker aware: ports published by Docker show the container name and image, with a copyable
Safe kills: graceful stop before force kill, and the PID is re-checked so a recycled PID is never signalled.
Handy actions: copy
Search and shortcuts: ⌘F filters by port, command or project, ⌘R refreshes, with launch at login and an optional port count in the menu bar.
lsof -i :3000, find the PID, kill -9 again, and half the time you can't remember which project you left running.PortKill moves all that into the menu bar. Open it and you see every listening port on your Mac, the process behind it and the project it belongs to, and one click on Kill stops it. It walks up from the process's working directory looking for
.git, package.json, Cargo.toml, go.mod and similar files, so the list says "nextjs-dashboard" instead of yet another anonymous node process.It sends SIGTERM first and only offers Force Kill if the process is still alive after 3 seconds. System services, root and other users' processes are locked, and there's no "kill all" button. It's native Swift, polls only while the popover is open, has no analytics or third-party dependencies, is MIT licensed, and needs macOS 14 or later.
Features
Port list: every listening TCP port with PID, uptime and memory use, plus optional UDP.
Project detection: shows the project behind each port and groups a process's ports on one row.
Docker aware: ports published by Docker show the container name and image, with a copyable
docker stop command.Safe kills: graceful stop before force kill, and the PID is re-checked so a recycled PID is never signalled.
Handy actions: copy
localhost:port, open in the browser, reveal the project in Finder or open it in Terminal.Search and shortcuts: ⌘F filters by port, command or project, ⌘R refreshes, with launch at login and an optional port count in the menu bar.
