Kill the "port already in use" error. Forever.
You know the moment. You run your dev server and get:
Error: listen EADDRINUSE: address already in use :::3000
Then you Google "how to kill port mac" for the hundredth time. portman ends this.
One command. See what's on your ports. Kill it. Done.
- 🔍
portman list— see every dev port in use, what process owns it, and its PID - ⚡
portman kill 3000— kill whatever is on port 3000 (or any port) instantly - 💣
portman free— nuclear option: clear ALL dev ports at once - ✅
portman check 5432— quickly check if a port is free before starting a service - 🔎
portman scan 3000-9000— scan any custom port range - 🖥️ Works on macOS, Linux, and Windows
- 📦 Zero dependencies — pure Python 3 stdlib, nothing to pip install
- 🎨 Beautiful terminal output with colors, process names, and friendly service labels
git clone https://github.com/FixZoneDev/portman.git
cd portman
chmod +x install.sh
./install.shgit clone https://github.com/FixZoneDev/portman.git
cd portman
install.batpython3 portman.py list
python3 portman.py kill 3000$ portman list
PORT STATUS PID PROCESS SERVICE
──────────────────────────────────────────────────────────────
3000 ● in use 23847 node React / Node
5000 ● in use 19234 python3 Flask / Python
5432 ● in use 1021 postgres PostgreSQL
8080 ● in use 44123 java HTTP alt / Tomcat
4 port(s) in use. Run portman kill <port> to free one.
$ portman kill 3000
Checking port 3000...
● Port 3000 is held by node (PID 23847)
Likely service: React / Node
Kill process node (PID 23847)? [Y/n]: y
✅ Process killed. Port 3000 is now free!
Skip the confirmation prompt with -y:
portman kill 3000 -y$ portman free
Scanning all dev ports...
PORT SERVICE PID PROCESS
───────────────────────────────────────────────
3000 React / Node 23847 node
5000 Flask / Python 19234 python3
5432 PostgreSQL 1021 postgres
8080 HTTP alt / Tomcat 44123 java
Found 4 process(es) to kill.
Kill all of the above? [Y/n]: y
✓ Killed node on port 3000
✓ Killed python3 on port 5000
✓ Killed postgres on port 5432
✓ Killed java on port 8080
✅ Done! All dev ports cleared.
Use -y to skip confirmation:
portman free -y$ portman check 8080
Port 8080: ● IN USE
Likely service : HTTP alt / Tomcat
Process name : java
PID : 44123
Run portman kill 8080 to free it.
portman scan 3000-9000
portman scan 8000-8100| Port | Service | Port | Service |
|---|---|---|---|
| 3000 | React / Node | 8000 | Django / FastAPI |
| 4200 | Angular | 8080 | Tomcat / HTTP |
| 5000 | Flask / Python | 8888 | Jupyter |
| 5173 | Vite | 9000 | PHP-FPM |
| 5432 | PostgreSQL | 9200 | Elasticsearch |
| 6379 | Redis | 27017 | MongoDB |
| 3306 | MySQL | 4444 | Selenium |
On macOS/Linux, if portman can't determine the PID, run with sudo:
sudo portman kill 3000
sudo portman listOn Windows, run the terminal as Administrator if you get permission errors.
-
portman watch— live auto-refresh dashboard -
portman save— save a named port profile (e.g. "my-stack") -
portman restore— restart saved processes - Homebrew formula
-
pip install portmansupport
PRs and issues are welcome! If portman saved your day, drop a ⭐ — it helps others find it.
Built with ❤️ by FixZoneDev
- Telegram: @FixZoneDev
MIT © 2026 FixZoneDev
