From aradotso-trending-skills-37
Lists all listening ports with process info, framework detection (Next.js, Vite, Django), Docker containers, and interactive kill commands. Works on macOS.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aradotso-trending-skills-37:port-whisperer-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```markdown
---
name: port-whisperer-cli
description: CLI tool for visualizing and managing processes running on network ports with framework detection and Docker support
triggers:
- "what's running on my ports"
- "install port-whisperer"
- "check which process is using port"
- "kill process on port"
- "show dev server ports"
- "port whisperer commands"
- "find what's listening on a port"
- "manage ports from terminal"
---
# Port Whisperer CLI
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
`port-whisperer` is a beautiful CLI tool that shows every process listening on your network ports — with color-coded status, framework detection (Next.js, Vite, Django, etc.), Docker container identification, and interactive process management. Runs in ~0.2s via three shell calls.
## Install
```bash
# Global install (recommended — gives you `ports` and `whoisonport` commands)
npm install -g port-whisperer
# Run without installing
npx port-whisperer
Requires macOS. Linux support is planned; Windows is not supported.
ports
Shows dev servers, Docker containers, and databases. Filters out system apps (Spotify, Raycast, etc.) by default.
ports --all
ports 3000
# or
whoisonport 3000
Outputs full process tree, repository path, git branch, memory usage, and an interactive kill prompt.
ports kill 3000 # kill by port number
ports kill 3000 5173 8080 # kill multiple ports at once
ports kill 42872 # kill by PID
ports kill -f 3000 # force kill (SIGKILL) for stubborn processes
ports ps # dev processes only
ports ps --all # every running process
Displays PID, CPU%, memory, project name, detected framework, uptime, and a description column. Docker processes are collapsed into a single summary row.
ports clean
Finds and kills orphaned or zombie dev server processes. Only targets dev runtimes (node, python, ruby, etc.) — safe for desktop apps.
ports watch
Notifies whenever a port starts or stops listening.
┌───────┬─────────┬───────┬──────────────────────┬────────────┬────────┬───────────┐
│ PORT │ PROCESS │ PID │ PROJECT │ FRAMEWORK │ UPTIME │ STATUS │
├───────┼─────────┼───────┼──────────────────────┼────────────┼────────┼───────────┤
│ :3000 │ node │ 42872 │ frontend │ Next.js │ 1d 9h │ ● healthy │
│ :5432 │ docker │ 58351 │ backend-postgres-1 │ PostgreSQL │ 10d 3h │ ● healthy │
│ :6379 │ docker │ 58351 │ backend-redis-1 │ Redis │ 10d 3h │ ● healthy │
└───────┴─────────┴───────┴──────────────────────┴────────────┴────────┴───────────┘
Status colors:
Port Whisperer auto-detects frameworks by reading package.json dependencies and inspecting process command lines:
| Category | Detected Frameworks |
|---|---|
| JavaScript | Next.js, Vite, Express, Angular, Remix, Astro |
| Python | Django, FastAPI |
| Ruby | Rails |
| Docker images | PostgreSQL, Redis, MongoDB, LocalStack, nginx |
Three shell calls, batched for performance:
1. lsof -iTCP -sTCP:LISTEN → all TCP listeners
2. ps (batched) → command, uptime, memory, PPID, status per PID
3. lsof -d cwd (batched) → working directory → project/framework detection
4. docker ps → maps host ports to container names/images
# Check what's there
ports 3000
# Kill it
ports kill 3000
# Or force kill if it won't die
ports kill -f 3000
ports kill 3000 5173 8080 4000
ports --all
# or just:
ports
# Docker containers appear automatically with container name and image detected
ports clean
ports watch
# Streams notifications as ports open/close
# Exit code 0 if port is active, non-zero if free
ports 3000 && echo "port in use" || echo "port free"
ports command not found after install
# Check npm global bin is in PATH
npm bin -g
# Add to ~/.zshrc or ~/.bashrc:
export PATH="$(npm bin -g):$PATH"
Permission denied when killing a process
# Use force kill flag
ports kill -f 3000
# Or use sudo if process is owned by another user
sudo ports kill 3000
Docker containers not showing up
docker ps works in your terminal (Docker CLI must be accessible)Port shows as orphaned (yellow)
ports clean to sweep these up, or ports kill <port> to target directlyProcess won't die with graceful kill
ports kill -f 3000 # sends SIGKILL instead of SIGTERM
Only macOS is supported
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-1 --plugin aradotso-trending-skills-37Monitors system processes with CPU, memory, disk I/O, network, open files, and port bindings. Finds resource hogs, kills runaway processes, and tracks system consumption.
Traces causality chains across supervisors, containers, and shells to explain why processes, services, and ports are running. Useful for debugging unexpected services or port usage.
Cross-platform terminal copilot that detects OS/shell, runs commands via Desktop Commander, and explains results. Handles REPLs, dev servers, SSH, Docker, cloud CLIs, and error diagnosis.