"Port 3000 is already in use"
Then comes the hunt: lsof -i :3000, a pid, and a guess at which of six node processes it is. Porta is a door in the tray that already knows.




Knows your stack
Next.js, Vite, Django, Rails, Laravel, Spring, Postgres, Redis, Docker, or plain Node, Python, Go and Rust. About 90, each with its logo.
Named after your project
A server started in ~/projects/shop reads as shop, so two Next.js apps never look alike.
Two clicks to stop it
Open it in the browser, copy its URL, show its folder, or stop it. With a few running, stop them all at once.
Ready for your phone
A server your network can reach shows the address to type on another device. Click it and it's copied.
Your servers first
What you started from a terminal is at the top. Spotify, VS Code and the OS's own ports are tucked away underneath.
Small and quiet
A 1 MB app with nothing else to install. In the tray it uses about 2 MB of memory and no measurable CPU.
Reading the door
One look at the tray says whether anything of yours is still running.

2How it knows
Porta asks the OS which processes are listening on TCP ports: GetExtendedTcpTable on Windows, lsof on macOS. Then it reads each one's command line, working folder and start time.
A server is yours when a shell or terminal is among its parents: Terminal, iTerm2, Ghostty, Windows Terminal, VS Code's terminal and so on. The rest is filed under other apps and services.
Stopping asks nicely first. On macOS a server gets a SIGTERM so it can shut down cleanly, with Force quit if it won't. Porta never offers to stop the OS's own processes, and nothing it sees leaves your computer.
From a terminal
The same answers without opening the menu.
$ porta list 3000 node 41859 2h 05m LAN terminal shop 5173 node 42210 14m local terminal docs 5432 postgres 917 3d 01h local $ porta stop 3000 Stopped node (pid 41859) on 3000.
Install
| macOS | Porta.dmg (Apple silicon and Intel) |
| Homebrew | brew install --cask kidchenko/tap/porta |
| Windows installer | Porta-Setup.exe |
macOS 11 or later, or Windows 10 or later. It's about 1 MB and needs nothing else installed.