跪拜 Guibai
← All articles
Frontend · macOS · VibeCoding

DevPilot Puts a Kill Switch for Orphaned Dev Ports in Your Mac Menu Bar

By 青椒肉丝_ ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

AI coding agents accelerate project starts but are terrible at cleanup, leaving bound ports that block subsequent runs. A menu bar utility that identifies the owning project and kills the process in one click removes a persistent friction that `lsof` workflows never solved.

Summary

AI coding agents routinely leave behind running dev servers on ports like 3000, 5173, and 8080 long after the terminal window closes. DevPilot, a new open-source macOS utility, lives in the menu bar and lists every listening port alongside its process name, PID, user, parent process, and project path. It filters out system noise by separating project services — Vite, Next.js, Node, Go, Python backends — from the full port table.

Right-clicking any entry kills the process immediately, replacing the manual `lsof -i :PORT` and `kill -9` loop. The project-path column answers the most common question when a port is mysteriously occupied: which repo actually started this. Installation is a single Homebrew cask command or a DMG download from GitHub Releases.

The tool targets a workflow pain point that got worse as vibe-coding and multi-agent setups became common. When an agent spins up a service and the task ends without cleanup, the port stays bound and blocks the next run. DevPilot makes that state visible and reversible from the menu bar without switching contexts.

Takeaways
AI coding agents frequently leave dev servers running on ports like 3000, 5173, and 8080 after their terminal sessions end.
DevPilot lists every listening port on macOS with process name, PID, user, parent process, and project path.
A project-services filter separates dev servers (Vite, Next.js, Node, Go, Python) from system ports.
Right-clicking any port entry kills the process immediately, replacing manual `lsof` and `kill -9` commands.
Installation is available via Homebrew (`brew install --cask pkc918/tap/devpilot`) or a DMG from GitHub Releases.
Conclusions

AI tooling has made starting services faster but has done nothing for the shutdown side; orphaned ports are a direct byproduct of agent-driven workflows that lack lifecycle management.

The project-path column addresses the real diagnostic bottleneck: not knowing which of several repos owns a port, which a raw PID list never solves.

From the discussion

The tool's thoroughness surprised people — it surfaced ports from long-forgotten projects, which was taken as proof of quality. A clear demand exists for a Windows version, and the author confirmed one is planned. The rest of the thread is straightforward gratitude and encouragement.

DevPilot reveals more listening ports than users expected, including those from abandoned side projects.
A Windows release is requested and confirmed as forthcoming.
Installed users report the tool works well and is easy to use.
Featured comments
国道太阳神

It even dug up the port number of a project I had AI write half a year ago

青椒肉丝_  · 1 likes

Shows it's really good, hahaha [grin]

德莱厄斯

This is genuinely useful, looking forward to a Windows version

青椒肉丝_

It'll come later

See top comments, translated →
Source: juejin.cn ↗ Google Translate ↗ Backup ↗