PortDrop

Every port on your Mac, in one glance.

PortDrop lives in your menu bar and shows you what's listening — the real app, the real icon, the port it's on. Open it, or shut it down.

Download PortDrop 1.1.0 for macOS 4.1 MB · Free · What's new

brew install --cask jeffcaldwellca/tap/portdrop

Requires macOS 26 Tahoe or later.

The PortDrop panel: a searchable list of listening ports, each with the owning app's icon, a protocol chip, owner and PID, the port number, and Open and Kill buttons

See what's listening, and do something about it

Dev servers, databases, SSH, that one thing on port 3000 — PortDrop shows them all, and gives you the two actions you actually want.

Install PortDrop on macOS

With Homebrew

brew install --cask jeffcaldwellca/tap/portdrop

Later, brew upgrade --cask portdrop updates it — or let PortDrop update itself.

With the DMG

  1. Download PortDrop-1.1.0.dmg (4.1 MB).
  2. Open it and drag PortDrop onto the Applications shortcut.
  3. Launch it from Applications or Spotlight. It appears in the menu bar — there's no Dock icon or window.

To check the download against its published checksum: shasum -a 256 -c PortDrop-1.1.0.dmg.sha256 (checksum file).

PortDrop keeps itself current: it looks for a new version once a day and offers to install it, or choose ⚙︎ → Check for Updates… any time. Turn on Launch at Login from the same menu to have it there every morning. Would rather build it yourself? See Build from source in the README.

How PortDrop works

PortDrop runs lsof -iTCP -sTCP:LISTEN and turns the output into one row per listening process and port — every 2 seconds while the panel is open, every 10 seconds in the background. For each row it asks macOS which app or bundle owns the process, which is where the real icon and name come from, then identifies the service by process name and well-known port so it can build an address. Ports it can't place get a quick HTTP HEAD request — to 127.0.0.1 or ::1 only — so a dev server on an unusual port still gets a link.

Kill sends SIGTERM, which asks the process to shut down cleanly. Force Kill — hold ⌥ while confirming, or use the right-click menu — sends SIGKILL, which a process cannot catch or ignore.

Because PortDrop needs to see and signal processes other apps can't, it runs outside the App Sandbox. Your own processes are signalled directly. There is no background helper and nothing sitting around with elevated privileges: the administrator prompt appears only at the moment you end something you don't own.

Privacy

Nothing leaves your Mac. PortDrop has no analytics, telemetry, crash reporting, or accounts. Its only network activity is the local probe described above and a once-a-day look for a new version, which you can turn off in the ⚙︎ menu.

This website is static, sets no cookies, and runs no analytics either.

Frequently asked questions

How do I find what's using a port on my Mac?
Click the PortDrop icon in the menu bar. The panel lists every process listening on a local TCP port, with the app's icon, name, owner, PID, and port number. Type a port number in the search field to jump straight to it. PortDrop runs lsof -iTCP -sTCP:LISTEN for you every few seconds, so the list is always current.
How do I kill the process on port 3000 (or any other port) on macOS?
Open PortDrop, type 3000, and click the ⊗ button on that row. It turns into a red Confirm button; click that to send SIGTERM. Hold ⌥ Option while confirming to send SIGKILL instead. If the process belongs to another user or to root, macOS asks for your administrator password first.
Is PortDrop safe to install?
Yes. PortDrop installs and opens like any other Mac app — there are no security warnings to click past. It has no analytics and no accounts, it never sends your data anywhere, and it asks for your password only when you end a process that belongs to someone else. Every download comes with a SHA-256 checksum you can verify using shasum -a 256 -c, and the source code is on GitHub.
Why does PortDrop ask for my password?
Only when you end a process that belongs to another user or to root — your own processes are ended directly. When it does need permission, you get the standard macOS administrator prompt. PortDrop never installs a background helper with elevated rights, and it never fails quietly instead of asking.
What's the difference between Kill and Force Kill?
Kill sends SIGTERM, which asks the process to shut down cleanly — that's the one you want almost every time. Force Kill sends SIGKILL, which a process cannot catch or ignore. Reach for it — hold ⌥ Option while confirming, or pick it from the right-click menu — when something ignores a normal kill.
Does PortDrop work with Docker?
Yes. Docker Desktop and OrbStack publish every container port from one background process, so on its own the list would just say com.docker.backend over and over. PortDrop asks Docker which container is behind each port and shows the compose service name instead, with the project underneath. The button on those rows is Down rather than Kill: click, then Confirm, and PortDrop runs docker compose down for that one service. Right-click for Down project to take down everything in the project. Containers that aren't part of a compose project are stopped with docker stop. Volumes are never removed.
Does PortDrop show UDP ports or outbound connections?
No. PortDrop lists listening TCP ports only: the servers, dev tools, and daemons waiting for connections on your Mac. UDP sockets and established outbound connections are out of scope.
Which macOS versions does PortDrop support?
PortDrop requires macOS 26 Tahoe or later. It's a native Mac app, built with Swift and SwiftUI.
Does PortDrop send any data anywhere?
No. PortDrop has no analytics, telemetry, or accounts. It makes exactly two kinds of network request: an HTTP HEAD probe to 127.0.0.1 and ::1, so it can spot a web server on an unfamiliar port, and a once-a-day look for a new version, which you can turn off.
Is PortDrop free?
Yes. PortDrop is free to download and use, and the source code is on GitHub.
Where is the Dock icon or window?
There isn't one. PortDrop lives in the menu bar, next to your clock, as the PortDrop mark plus the number of ports listening right now. Click it for the panel. To keep it around, turn on Launch at Login from the ⚙︎ menu.
How do I update PortDrop?
PortDrop looks for a new version once a day and offers to install it, so usually you do nothing. To check right now, choose ⚙︎ → Check for Updates…. If you installed with Homebrew, brew upgrade --cask portdrop works too.
How do I uninstall PortDrop?
Turn off Launch at Login if it was on, quit PortDrop from the ⚙︎ menu, then drag PortDrop.app from Applications to the Trash. Homebrew users can run brew uninstall --cask portdrop instead.