port-whisperer

See what's running on your ports. Framework detection, health monitoring, and process management in a single binary.

Rust macOS ~1MB binary

Install

$ curl -fsSL https://raw.githubusercontent.com/sarthakagrawal927/port-whisperer/main/install.sh | sh
Or with Cargo: cargo install --git https://github.com/sarthakagrawal927/port-whisperer
ports
$ ports ╭────────┬───────┬───────────┬────────────┬──────────┬─────────────┬────────╮ │ PORT ┆ PID ┆ PROCESS ┆ FRAMEWORK ┆ PROJECT ┆ HEALTH ┆ UPTIME │ ╞════════╪═══════╪═══════════╪════���═══════╪══════════╪════════════���╪════════╡ │ :3000 ┆ 42510 ┆ node ┆ Next.js ┆ my-app ┆ ● healthy ┆ 2h15m │ ├╌╌╌╌╌╌╌╌┼╌���╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ :3306 ┆ 7825 ┆ mysqld ┆ MySQL ┆ ┆ ● healthy ┆ 5d3h │ ├╌╌���╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ :5173 ┆ 51023 ┆ node ┆ Vite ┆ docs ┆ ● healthy ┆ 45m │ ├╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ :6379 ┆ 7961 ┆ redis-ser ┆ Redis ┆ ┆ �� healthy ┆ 5d3h │ ├╌╌╌╌╌╌╌╌���╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┤ │ :8000 ┆ 63201 ┆ python3 ┆ Django ┆ backend ┆ ● orphaned ��� 1d8h │ ╰────────┴───────┴──���────────┴────────────┴──��───────┴────────────��┴────────╯ 5 ports active | tip: 'ports <number>' to inspect

Commands

ports Dev server ports with framework detection
ports --all Include system services
ports 3000 Inspect port — process details + interactive kill
ports open 3000 Open localhost:3000 in browser
ports free 3000 Kill whatever's on that port
ports json JSON output for scripting
ports log Port history over time
ports ps Running dev processes by CPU%
ports clean Find and kill orphaned processes
ports watch Real-time port open/close events

Features

Framework Detection

Identifies 30+ frameworks — Next.js, Vite, Express, Django, Rails, FastAPI, and more — via command-line, package.json, config files, and Docker images.

Docker Aware

Maps host ports to container names and images. PostgreSQL, Redis, MongoDB, and other Docker services are identified automatically.

Project Resolution

Walks up from process cwd to find project root via package.json, Cargo.toml, go.mod, and other markers. Shows the project name in the table.

Health Monitoring

Color-coded health: green (healthy), yellow (orphaned dev server), red (zombie). Conservative — never flags daemons or apps as unhealthy.

Graceful Kill

Always sends SIGTERM first and waits up to 2s for the process to exit cleanly. Falls back to SIGKILL only if needed.

Port History

Every scan logs a timestamped snapshot. Look up what was running on any port at any time with ports log <port>.