A macOS menu bar tool that shows which project owns each watched port and gives you safe next actions when something is blocking.
You run npm run dev and get EADDRINUSE :3000. Something has your port. Is it your other project? Docker? An SSH tunnel? A zombie Node process?
You waste minutes hunting through lsof output every time.
Portpourri watches your important ports and tells you exactly who owns each one. When something is blocking, you get a labeled action button —
Not a cryptic PID.
macOS 14+ required
Everything you need to understand who owns your dev ports at a glance.
Watched ports show ownership at a glance. Green means your project, amber means blocked, red means conflict.
When Docker, SSH, or another process blocks your port, Portpourri names the blocker and shows the safe action.
Stop server, Free port, Stop tunnel, or Kill group — labeled by what it actually does.
Maps Node processes to project roots. See “api on :3000” instead of cryptic process IDs.
A two-row dot glyph in your menu bar: top row for projects, bottom row for watched-port status. Conflicts turn red.
portpourri snapshot --json for CI, custom tooling, or quick terminal checks.
Portpourri runs entirely on your Mac. No accounts, no analytics, no network calls.
Zero network requests. Your port data never leaves your machine.
Uses standard lsof and ps. No root, no kernel extensions, no SIP bypass.
Fully open source. Read the code, build from source, fork it.