Portis

Support

Updated
November 2026

Contact

Email [email protected]. Include your macOS version (Apple menu › About This Mac) and the Portis version (Portis › About Portis).

Ending a process

Select one or more rows and click Kill Process in the toolbar, or right-click a row. Portis asks for confirmation, then sends SIGTERM, the same signal kill sends by default.

The first time, Portis explains that the Mac App Store sandbox needs a small helper script and opens a save panel. Click Install without changing the name or folder. The script lives in ~/Library/Application Scripts/dev.keks.portis, runs as you, and only accepts a process ID.

“Operation not permitted”

The process belongs to root or another user. Portis lists those ports but can only end your own processes, just like kill without sudo. For a system service, turn off the feature that runs it in System Settings, or use sudo kill <PID> in Terminal if you are sure.

The process comes right back

Something restarts it: launchd, brew services, pm2, a Docker restart policy, or a terminal tab running a watcher. Stop it through that tool instead. How to kill a process on a port on Mac has the commands.

Ports I expected are missing

Portis lists listening TCP ports and bound UDP ports for every user, system services and root daemons included. Outgoing and established connections are not shown, so an app that only connects out has no row.

On macOS 27, check that you have Portis 1.0.1 or later (Portis › About Portis). Version 1.0 could not read other processes' ports there. netstat not showing ports on macOS 27 explains what changed.

Removing the kill script

Delete ~/Library/Application Scripts/dev.keks.portis/portis-helper in Finder (Go › Go to Folder…). Portis offers to install it again the next time you end a process.

Refunds

Purchases are handled by Apple. Request a refund at reportaproblem.apple.com.