← Back to blog

Guide

Bosun vs the free port apps: a fair comparison

September 14, 20264 min read

Bosun is paid. Several tools that list and kill ports from the macOS menu bar are free and open source, and a few of them are genuinely well built. Writing a comparison that pretends otherwise would be insulting, so this one does not.

If all you need is a list of listening ports with a kill button, a free app will do that for you today, and you should use one.

What the free options are good at

PortKiller is MIT licensed, runs on macOS and Windows, installs through Homebrew, and covers more than ports. It manages Kubernetes port forwards and shows Cloudflare Tunnel connections. If you work across two operating systems or live in kubectl, it is a better fit than Bosun, and it is free.

Port Kill ships a menu bar app and a full command line binary with the same features, works on macOS, Linux and Windows, and can operate against a remote machine over SSH. If you want one tool that behaves the same in a script and in a GUI, that is a real advantage Bosun does not have.

PortWatcher is free, native, and does the core job cleanly without asking for anything.

That is a healthy set of options, and the honest summary is that the basic job, see ports and kill them, is a solved and commoditised problem.

What Bosun does that they do not

These are the differences we checked against each project’s own feature list, not guesses.

Shared port grouping. When a service runs several workers, gunicorn, Odoo, a clustered Node app, every worker holds the same port. Most tools print one row per worker, so a single service becomes eight nearly identical lines. Bosun collapses them into one row with a worker count and kills the group together.

To be clear about what this is and is not, lsof -ti :PORT | xargs kill also kills every worker in one command. This is a difference in how much you have to read, not in what is possible.

Port history. Everything else here is a live view. If a process took a port and exited before you looked, it left no trace. Bosun records what was listening and when, with configurable retention.

VPN status. Whether a native macOS VPN connection is up, shown alongside the ports.

ngrok tunnel detection. PortKiller shows Cloudflare Tunnels. Bosun detects ngrok as well, including Cloudflare quick tunnels, and gives you the public URL with one click to copy.

SSH forward parsing. An ssh -L forward shows up as a plain ssh process everywhere else. Bosun reads the command and shows you the remote host and port it actually reaches.

A global hotkey, so the panel opens without aiming at the menu bar.

What Bosun does not have

Being even handed matters more than the pitch, so here is the other column.

Bosun is macOS only. It has no command line interface, so it is useless in a script or in CI. It does not manage Kubernetes port forwards. It has no remote or SSH mode. It costs money and the free alternatives do not.

Any one of those can be the deciding factor, and if it is, take the free tool.

So who is Bosun for

The case for paying is narrow and worth stating plainly. It is for someone on macOS, running several local services at once, often with containers, tunnels or multi worker servers in the mix, who wants “what is my machine exposing right now” answered continuously rather than looked up.

If that is not you, one of the free apps above will serve you well, and we would rather you found the right tool than the paid one.

Bosun Free menu bar apps
List and kill ports Yes Yes
Docker container names Yes Some
Cloudflare tunnels Yes Some
ngrok tunnels Yes No
Shared port grouping Yes No
Port history Yes No
VPN status Yes No
ssh -L forwards Yes No
Cross platform No Some
Command line interface No Some
Kubernetes port forwards No Some
Price $12.99 one time Free

Bosun has a 14 day trial that starts when you open it, with no account and no card. Try it against whichever free tool you are using now, and keep the one that fits.

See this instead of typing it

Bosun lives in your menu bar and shows every open port on your Mac, live, mapped to the process behind it. One-click kill, SIGTERM first. Useful the first time this happens. Genuinely useful the fifth time it happens in one afternoon.