See who owns your ports

A macOS menu bar tool that shows which project owns each watched port and gives you safe next actions when something is blocking.

v0.3.2Watched-port ownership and conflict detection
Open source · Local only · No telemetry · macOS 14+
The problem

Port blocked. By what?

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.

The solution

Named owners. One-click fixes.

Portpourri watches your important ports and tells you exactly who owns each one. When something is blocking, you get a labeled action button —

Stop server Free port Stop tunnel

Not a cryptic PID.

Get started

macOS 14+ required

Download for Mac View on GitHub
or

Homebrew

terminal
$ brew tap jskoiz/portpourri $ brew install --cask portpourri

Build from source

terminal
$ git clone https://github.com/jskoiz/portpourri.git $ cd portpourri && ./Scripts/package_app.sh

Port ownership made obvious

Everything you need to understand who owns your dev ports at a glance.

Know who owns :3000

Watched ports show ownership at a glance. Green means your project, amber means blocked, red means conflict.

Spot blockers instantly

When Docker, SSH, or another process blocks your port, Portpourri names the blocker and shows the safe action.

One-click resolution

Stop server, Free port, Stop tunnel, or Kill group — labeled by what it actually does.

See projects, not PIDs

Maps Node processes to project roots. See “api on :3000” instead of cryptic process IDs.

Glanceable Dot Matrix

A two-row dot glyph in your menu bar: top row for projects, bottom row for watched-port status. Conflicts turn red.

Script it

portpourri snapshot --json for CI, custom tooling, or quick terminal checks.

Local-first, open source

Portpourri runs entirely on your Mac. No accounts, no analytics, no network calls.

No telemetry

Zero network requests. Your port data never leaves your machine.

No privileged access

Uses standard lsof and ps. No root, no kernel extensions, no SIP bypass.

MIT licensed

Fully open source. Read the code, build from source, fork it.

Recent releases

0.3.2
Mar 29

Portpourri Rename & App Icon

  • newRenamed to Portpourri with new app icon and branding
  • newStale worktree detection and cleanup (3+ days untouched)
  • improveSwift 6 concurrency fixes for brand icons
0.3.0
Mar 28

Dark Mode & Dot Matrix

  • newDark mode support with automatic system appearance
  • newDot matrix menu bar mode with color-coded port status
  • newAI tools section: Claude Code and Codex worktree visibility
0.2.7
Mar 28

Visual Polish & Process Groups

  • improveCleaner popover UI with better readability
  • newExpandable process groups with Kill group + Copy PIDs