LarsenCundric/port-whisperer

GitHub: LarsenCundric/port-whisperer

一款美观的命令行工具,用于查看本地端口占用情况,支持框架检测、Docker 识别和交互式进程管理。

Stars: 272 | Forks: 17

# port-whisperer **一个精美的 CLI 工具,用于查看端口上正在运行的内容。** 不再猜测哪个进程占用了 3000 端口。`port-whisperer` 为你提供一个彩色表格,列出机器上监听的每个开发服务器、数据库和后台进程——具备框架检测、Docker 容器识别和交互式进程管理功能。 ## 效果预览 ``` $ ports ┌─────────────────────────────────────┐ │ Port Whisperer │ │ listening to your ports... │ └─────────────────────────────────────┘ ┌───────┬─────────┬───────┬──────────────────────┬────────────┬────────┬───────────┐ │ PORT │ PROCESS │ PID │ PROJECT │ FRAMEWORK │ UPTIME │ STATUS │ ├───────┼─────────┼───────┼──────────────────────┼────────────┼────────┼───────────┤ │ :3000 │ node │ 42872 │ frontend │ Next.js │ 1d 9h │ ● healthy │ ├───────┼─────────┼───────┼──────────────────────┼────────────┼────────┼───────────┤ │ :3001 │ node │ 95380 │ preview-app │ Next.js │ 2h 40m │ ● healthy │ ├───────┼─────────┼───────┼──────────────────────┼────────────┼────────┼───────────┤ │ :4566 │ docker │ 58351 │ backend-localstack-1 │ LocalStack │ 10d 3h │ ● healthy │ ├───────┼─────────┼───────┼──────────────────────┼────────────┼────────┼───────────┤ │ :5432 │ docker │ 58351 │ backend-postgres-1 │ PostgreSQL │ 10d 3h │ ● healthy │ ├───────┼─────────┼───────┼──────────────────────┼────────────┼────────┼───────────┤ │ :6379 │ docker │ 58351 │ backend-redis-1 │ Redis │ 10d 3h │ ● healthy │ └───────┴─────────┴───────┴──────────────────────┴────────────┴────────┴───────────┘ 5 ports active · Run ports for details · --all to show everything ``` 颜色含义:绿色 = 正常,黄色 = 孤立,红色 = 僵尸。 ## 安装 ``` npm install -g port-whisperer ``` 或者直接运行,无需安装: ``` npx port-whisperer ``` ### 或者让 Claude Code 为你安装 如果你使用 [Claude Code](https://claude.ai/code),可以要求它执行 `npm install -g port-whisperer` 并立即开始使用 `ports`——无需设置步骤。 ## 使用方法 ### 显示开发服务器端口 ``` ports ``` 显示开发服务器、Docker 容器和数据库。系统应用(Spotify、Raycast 等)默认会被过滤掉。 ### 显示所有监听端口 ``` ports --all ``` 包括系统服务、桌面应用程序以及机器上监听的所有其他内容。 ### 检查特定端口 ``` ports 3000 # 或 whoisonport 3000 ``` 详细视图:完整的进程树、仓库路径、当前 git 分支、内存使用情况,以及一个用于终止进程的交互式提示。 ### 显示所有开发进程 ``` ports ps ``` 面向开发者的精美 `ps aux`。显示所有正在运行的开发进程(不仅限于绑定端口的进程),包含 CPU%、内存、框架检测和智能描述列。Docker 进程折叠为单行摘要。 ``` $ ports ps ┌───────┬─────────┬──────┬──────────┬──────────┬───────────┬─────────┬────────────────────────────────┐ │ PID │ PROCESS │ CPU% │ MEM │ PROJECT │ FRAMEWORK │ UPTIME │ WHAT │ ├───────┼─────────┼──────┼──────────┼──────────┼───────────┼─────────┼────────────────────────────────┤ │ 592 │ Docker │ 1.3 │ 735.5 MB │ — │ Docker │ 13d 12h │ 14 processes │ ├───────┼─────────┼──────┼──────────┼──────────┼───────────┼─────────┼────────────────────────────────┤ │ 36664 │ python3 │ 0.2 │ 17.6 MB │ — │ Python │ 6d 10h │ browser_use.skill_cli.daemon │ ├───────┼─────────┼──────┼──────────┼──────────┼───────────┼─────────┼────────────────────────────────┤ │ 26408 │ node │ 0.1 │ 9.2 MB │ — │ Node.js │ 10d 13h │ jest jest_runner_cloud.js │ ├───────┼─────────┼──────┼──────────┼──────────┼───────────┼─────────┼────────────────────────────────┤ │ 25752 │ node │ 0.0 │ 17.3 MB │ — │ Node.js │ 10d 13h │ server.js │ ├───────┼─────────┼──────┼──────────┼──────────┼───────────┼─────────┼────────────────────────────────┤ │ 66921 │ Python │ 0.0 │ 4.1 MB │ — │ Python │ 2h 25m │ src.server │ └───────┴─────────┴──────┴──────────┴──────────┴───────────┴─────────┴────────────────────────────────┘ 5 processes · --all to show everything ``` ``` ports ps --all # show all processes, not just dev ``` ### 清理孤立进程 ``` ports clean ``` 查找并终止孤立或僵尸开发服务器进程。仅针对开发运行时(node、python 等)——不会触及你的桌面应用。 ### 监控端口变化 ``` ports watch ``` 实时监控,每当有端口开始或停止监听时都会通知你。 ## 工作原理 三次 shell 调用,运行时间约 0.2 秒: 1. **`lsof -iTCP -sTCP:LISTEN`** -- 查找所有监听 TCP 端口的进程 2. **`ps`**(单次批量调用)-- 一次性检索所有 PID 的进程详情:命令行、运行时间、内存、父 PID、状态 3. **`lsof -d cwd`**(单次批量调用)-- 解析每个进程的工作目录以检测项目和框架 对于 Docker 端口,单次 `docker ps` 调用将主机端口映射到容器名称和镜像。 框架检测通过读取 `package.json` 依赖项并检查进程命令行。可识别 Next.js、Vite、Express、Angular、Remix、Astro、Django、Rails、FastAPI 等。Docker 镜像可识别为 PostgreSQL、Redis、MongoDB、LocalStack、nginx 等。 ## 平台支持 | 平台 | 状态 | |--------|--------| | macOS | 已支持 | | Linux | 计划中 | | Windows | 无计划 | ## 许可证 [MIT](LICENSE)
标签:Awesome, CLI, Docker识别, GNU通用公共许可证, MITM代理, Mutation, Node.js, PID查找, WiFi技术, WSL, 可视化, 开发运维, 性能分析, 情报分析, 数据统计, 文档结构分析, 框架检测, 端口占用, 端口扫描, 端口监控, 系统工具, 系统管理, 网络工具, 网络诊断, 自定义脚本, 请求拦截, 进程查看