Berth is a free, open-source macOS menu bar app for developers: watch the ports your projects use, release them in one click. A one-click alternative to lsof + kill. Notarized, Apache-2.0, signed automatic updates.
"Port 3000 is already in use."
If you write software on a Mac, you've typed that error into your terminal
this week â and then done the dance: lsof -i :3000, squint at the PID, kill
-9, hope you didn't just nuke the wrong process. I did it a dozen times a
day, and one day I realized I'd memorized a command I should never have
needed to memorize.
So I built Berth. It lives in your menu bar, shows every port your projects
are actually using, groups them by project (Next.js, Vite, Django, Postgres,
Docker containers...), and lets you release a port with one click â with a
clear confirmation before anything gets stopped. Force-kill exists, but only
when you explicitly ask for it.
A few things I cared about from day one:
đ Trust first â a tool that can kill processes should earn it. Every build
is signed, notarized by Apple, and stapled. Updates ship over HTTPS with
EdDSA signatures via Sparkle.
đ Fully open source (Apache-2.0), including the release pipeline itself.
No telemetry, no analytics, no accounts â the app makes zero network calls
on its own.
đ§ Small on purpose â no windows, no daemons, no dashboard. One compact
panel, English and įŽäŊ䏿, light and dark.
It started as a weekend port-watcher, then grew project cards, framework
detection, pinned "berths" for your daily ports, and in-panel updates â
while I kept cutting features that didn't earn their place.
Berth is free, forever. Requires macOS 14+, Apple Silicon.
I'd love your feedback â especially on what you'd want it to do (or stop
doing). What does your port workflow look like?