A macOS menu bar app that shows which ports are running, which project owns each one, and which tunnels point where.
Porthole keeps a live, readable list of your local dev world in the menu bar, refreshed while it's open.
Every listening dev port with the process behind it, grouped under the project that owns it, resolved from the process working directory.
ngrok, Cloudflare Tunnel, Tailscale and localtunnel detected automatically, each public URL one click away.
Open localhost:PORT in the browser, copy the URL, or kill the process, straight from the row.
Hide system services like ControlCenter and rapportd by name or port. Seeded with sensible defaults, fully editable.
A real menu bar popover with a smooth open animation. No Dock icon, no background hog.
Just reads lsof / ps and tunnel tools. No kernel extensions, no elevated access.
Porthole shells out to the tools you already trust and turns their output into a clean list. lsof finds listening sockets and each process's directory; tunnels come from the ngrok local API, the cloudflared/lt command lines, ~/.cloudflared/config.yml and tailscale serve status. It's signed with a Developer ID and notarized by Apple.
A signed macOS app or a native Linux build. Pick your platform below.
One command, and it stays current with brew upgrade.
Signed & notarized by Apple. Apple Silicon & Intel, no Gatekeeper prompt.
Download .dmgOne-line install, or chmod +x and run. Works on every distro.
APT repo that updates with apt upgrade, or a single .deb.
A native Windows build isn't ready yet. Star the repo to hear when it lands.
Star on GitHubPorthole lives in the system tray. On GNOME, enable the AppIndicator extension to see the tray icon.