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/portdropRequires macOS 26 Tahoe or later.
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.
Live, always
The list keeps itself current. Start a server and it appears; stop one and it's gone.
Real apps, real icons
Docker, Postgres, your editor, your dev server — you know what's on a port before you finish reading the row.
It knows the service
Websites, databases, SSH, file shares and more. PortDrop works out what's behind a port, even on an unusual one, and turns it into an address you can open.
Speaks Docker
Every container port looks the same to macOS. PortDrop asks Docker which compose service is behind each one, names it, and gives you a Down button for that service or the whole project.
Open in one click
↗ hands the address to whatever should handle it: your browser, your SSH client, your database app.
Shut it down in two
Click ⊗, then Confirm. The second step is there so a stray click never takes down your database.
Asks for a password only when it has to
Ending something owned by another user goes through the normal macOS prompt. Nothing runs in the background with extra privileges.
Find it by typing
Type
5432, orpostgres, or your own name. The list narrows as you go.Right-click for the rest
Copy the URL, the PID, or host:port. Reveal the app in Finder. Force quit when something won't go quietly.
Always in the menu bar
A small badge with the number of ports listening right now. No window to manage, no Dock icon.
A nudge when something new appears
Turn on notifications and PortDrop tells you the moment a port starts listening.
Starts with your Mac
One toggle, if you want it there every morning.
Nothing leaves your Mac
No analytics, no telemetry, no accounts. Nothing is sent anywhere.
Install PortDrop on macOS
With Homebrew
brew install --cask jeffcaldwellca/tap/portdropLater, brew upgrade --cask portdrop updates it — or let PortDrop update itself.
With the DMG
- Download PortDrop-1.1.0.dmg (4.1 MB).
- Open it and drag PortDrop onto the Applications shortcut.
- 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:LISTENfor 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 sendSIGTERM. Hold ⌥ Option while confirming to sendSIGKILLinstead. 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 sendsSIGKILL, 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.backendover 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 runsdocker compose downfor 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 withdocker 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
HEADprobe to127.0.0.1and::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 portdropworks 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 portdropinstead.