最近用 AI 编码工具越来越多,一个很明显的副作用是:本地开发端口变得越来越乱。
让 agent 跑一个前端项目,它可能启动了 5173。
让 agent 调一个后端服务,它可能留下了 3000、8080。
再开几个任务之后,终端关了,服务没关,端口还占着。
等你下次启动项目时,熟悉的报错就来了:
address already in use
然后又回到老流程:
lsof -i :3000
kill -9 <pid>
如果只是偶尔一次还好,但现在 AI agent 经常并行跑任务,本地端口很容易变成一片战场。
所以我做了一个小工具:DevPilot。
DevPilot 是什么
DevPilot 是一个 macOS 菜单栏端口监控工具。
它会把当前本机正在监听的端口直接显示出来,包括:
- 端口号
- 协议
- 进程名
- PID
- 用户
- 项目路径
- 父进程信息
你不需要再手动 lsof,也不需要在一堆终端窗口里找哪个服务还活着。
点一下菜单栏,就能看到当前本机有哪些开发服务还在跑。
它解决的核心问题
DevPilot 主要解决一个问题:
本地开发服务太多,端口占用不透明,清理成本高。
尤其是现在大量使用 AI 编码工具之后,这个问题会更明显。
比如:
- agent 启动了服务,但任务结束后没有关闭
- 多个项目用了相同端口
- 终端窗口关了,但进程还在后台
- 想知道某个端口属于哪个项目
- 想快速关闭不需要的本地服务
以前这些事情都要靠命令行排查。
现在可以直接在菜单栏里完成。
项目服务筛选
DevPilot 不只是把所有端口一股脑列出来。
它会区分「项目服务」和「全部端口」。
项目服务一般指本地开发过程中启动的服务,比如:
- Vite / Next.js / Nuxt
- Node.js 服务
- Go / Rust / Python 后端
- 本地 API 服务
- 数据库代理或开发工具进程
这样你打开时不会被系统服务、后台进程淹没,能更快看到真正和开发相关的端口。
一键关闭服务
看到不需要的端口后,可以直接关闭。
不用再手动查 PID,也不用复制命令。
右键端口,关闭服务即可。
DevPilot 会根据 PID 去终止对应进程,适合清理那些已经不需要的本地开发服务。
这对经常同时开多个项目、多个 AI agent 任务的人很有用。
显示项目路径
很多端口占用的问题,麻烦的不是端口号本身,而是:
这个服务到底是哪个项目启动的?
DevPilot 会尽量显示进程所在的项目路径。
当你看到一个 3000、5173、8080 时,可以直接判断它属于哪个项目,而不是只看到一个孤零零的 PID。
这比单纯的端口列表实用很多。
安装
如果你使用 Homebrew,可以直接安装:
brew install --cask pkc918/tap/devpilot
也可以在 GitHub Releases 下载 DMG:
适合谁用
如果你是 macOS 用户,并且符合下面任意一种情况,DevPilot 应该会很顺手:
- 经常同时跑多个前端/后端项目
- 经常遇到端口被占用
- 经常使用 AI 编码 agent
- 不想反复敲
lsof/kill - 想知道本机端口到底是哪个项目占用的
- 喜欢把开发辅助工具放在菜单栏里
最后
DevPilot 不是一个复杂的大工具。
它只专注一件事:
让开发者更快看清并清理本地开发端口。
AI 编码让我们启动项目的速度变快了,但也让本地环境更容易残留各种服务。
DevPilot 想补上的就是这一小块体验: 让端口状态可见,让清理动作足够快。
项目地址:
欢迎试用,也欢迎反馈问题。