PortDrop
See every process listening on a local port — open it in one click, kill it in two.
A free macOS menu-bar app that shows every process listening on a local TCP port — with the app's real icon, the owner, the PID, and a link straight to the service. Search it, open it, or kill it.
Download PortDrop 1.0.1 for macOS 4.1 MB · SHA-256 · what's new
brew install --cask jeffcaldwellca/tap/portdropRequires macOS 26 Tahoe or later. Signed with an Apple Developer ID and notarized.
See what's listening on every port
Dev servers, databases, SSH, that thing squatting on port 3000 — PortDrop shows them all, live, and gives you the two actions you actually want.
Every listening TCP port, live
Polled with
lsofevery 2 seconds while the panel is open and every 10 seconds in the background.Real app icons
Looked up through the running app or its bundle, with SF Symbol fallbacks for daemons and command-line tools.
Service detection
HTTP/S, SSH, FTP, PostgreSQL, MySQL, Redis, MongoDB, VNC, SMB, AFP and more — by process name and well-known port, plus a quick HTTP probe so unknown web servers get a link too.
Open in one click
↗ launches the service URL in its default handler:
http://,ssh://,postgresql://, and so on.Kill in two — never the wrong thing
Click ⊗, then the red Confirm that appears (it reverts after 3 seconds). Sends
SIGTERM; hold ⌥ forSIGKILL.Admin escalation when needed
If the process belongs to root or another user, PortDrop uses the standard macOS administrator-password dialog instead of failing silently.
Search
By port, process, user, or protocol. Type
5432orpostgresand it's right there.Right-click for more
Open, Copy URL / PID / host:port, Reveal in Finder, Kill, and Force Kill.
Menu-bar badge
The PortDrop mark plus the number of listening ports, always in view.
New-port notifications
Optionally get told when something starts listening.
Launch at Login
One toggle in the ⚙︎ menu, using Apple's
SMAppService.Nothing leaves your Mac
No analytics, no telemetry, no accounts. The only network traffic is a local HTTP probe and a daily update check you can turn off.
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.0.1.dmg (4.1 MB).
- Open it and drag PortDrop onto the Applications shortcut.
- Launch PortDrop from Applications or Spotlight. It appears in the menu bar — there's no Dock icon or window.
To verify the download: shasum -a 256 -c PortDrop-1.0.1.dmg.sha256 (checksum file).
PortDrop is signed with an Apple Developer ID and notarized by Apple, so it opens without Gatekeeper warnings. Turn on Launch at Login from the ⚙︎ menu to keep it around. It checks for a new release once a day and offers to install it; choose ⚙︎ → Check for Updates… to check now. Prefer to build it yourself? See Build from source in the README.
How PortDrop works
PortDrop runs lsof -iTCP -sTCP:LISTEN and turns the output into a list of listening ports, one row per process and port. For each row it asks macOS which running app or bundle owns the process to get a real icon and name, and it classifies the service by process name and well-known port so it can build a URL. Ports it can't classify get a quick HTTP HEAD request — to 127.0.0.1 or ::1 only — so a dev server on an unusual port still gets an http:// link.
Kill sends SIGTERM so the process can shut down cleanly; Force Kill (hold ⌥ while confirming, or use the right-click menu) sends SIGKILL. Your own processes are signalled directly. For processes owned by root or another user, PortDrop asks macOS for administrator privileges through the standard dialog — there is no privileged helper running in the background.
Because lsof and kill need direct access to other processes, PortDrop is deliberately not sandboxed. It is hardened-runtime, Developer ID-signed, and notarized.
Privacy
Nothing leaves your Mac. PortDrop has no analytics, telemetry, crash reporting, or accounts. Its only network activity is the local HTTP probe described above and a once-a-day check of the GitHub release feed for updates, which you can turn off in the ⚙︎ menu.
This website is static, sets no cookies, and runs no analytics.
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 that is 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. Under the hood PortDrop runs
lsof -iTCP -sTCP:LISTENevery few seconds so you never have to. - How do I kill the process on port 3000 (or any other port) on macOS?
- Open PortDrop, search for
3000, and click the ⊗ button on that row. It turns into a red Confirm button; click it 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? Is it notarized?
- Yes. Every release is signed with an Apple Developer ID certificate and notarized by Apple, so it opens without Gatekeeper warnings. Each download comes with a SHA-256 checksum you can verify with
shasum -a 256 -c, and the source code is available on GitHub. - Why does PortDrop ask for my password?
- Only when you kill a process that belongs to another user or to root. Your own processes are terminated directly. For anything else PortDrop uses the standard macOS administrator-privileges dialog, rather than failing silently or installing a background helper with elevated rights.
- What's the difference between Kill and Force Kill?
- Kill sends
SIGTERM, which asks the process to shut down cleanly. Force Kill sendsSIGKILL, which the process cannot catch or ignore. Use Force Kill — hold ⌥ Option while confirming, or pick it from the right-click menu — when a process ignores a normal kill. - 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 is built with Swift 6 and SwiftUI.
- Does PortDrop send any data anywhere?
- No. PortDrop has no analytics, telemetry, or accounts. The only network requests it makes are an HTTP
HEADprobe to127.0.0.1and::1to detect web servers on unknown ports, and a once-a-day check of the GitHub release feed for updates, which you can turn off. - Is PortDrop free?
- Yes. PortDrop is free to download and use, and the source code is available on GitHub.
- Where is the Dock icon or window?
- There isn't one. PortDrop is a menu-bar utility: it sits next to your clock as the PortDrop mark plus the number of listening ports. Click it to open the panel. To keep it around, turn on Launch at Login from the ⚙︎ menu.
- How do I update PortDrop?
- PortDrop checks for a new release once a day and offers to install it. Choose ⚙︎ → Check for Updates… to check right now. 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.