Your cross-platform port detective β find, inspect, and kill processes by port number.
No dependencies. Works on macOS, Linux, and Windows.
Every fullstack developer has googled lsof -i :3000 at least once a week. portcop makes it one clean command that works everywhere β no memorizing OS-specific flags, no piping through grep, no copy-pasting PIDs.
npm install -g portcopportcop 3000 Checking port 3000...
β Port 3000 is occupied
Process : node
PID : 8421
Command : node server.js
Kill it? (y/n)
portcop 3000 --kill β Killed node (PID 8421)
portcop free 3000 β Port 3000 is free
portcop free 3000-3010 Scanning ports 3000β3010...
β First free port: 3003
macOS: uses lsof
Linux: tries 3 strategies in order, using the first one that works:
lsofβ available on most distrosssβ modern replacement for netstat, used when lsof isn't installed/proc/net/tcpβ pure Linux kernel file, no tools needed at all. Works in Docker containers, CI runners, and minimal environments where nothing is installed
Windows: chains netstat -ano β tasklist (no single command gives port + process name together)
| OS | Kill |
|---|---|
| macOS / Linux | kill -9 PID |
| Windows | taskkill /PID /F |
All OS differences are abstracted away. The CLI output is identical everywhere.
Note: On some systems, killing processes on privileged ports (< 1024) may require
sudo.
| Flag | Alias | Description |
|---|---|---|
--kill |
-k |
Kill without confirmation prompt |
--help |
-h |
Show help |
MIT