port-whisperer-cli
```markdown
What this skill does
```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. ## Core Commands ### List active dev ports ```bash ports ``` Shows dev servers, Docker containers, and databases. Filters out system apps (Spotify, Raycast, etc.) by default. ### Show all listening ports (including system) ```bash ports --all ``` ### Inspect a specific port ```bash ports 3000 # or whoisonport 3000 ``` Outputs full process tree, repository path, git branch, memory usage, and an interactive kill prompt. ### Kill processes ```bash 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 ``` ### Show all dev processes (not just port-bound) ```bash 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. ### Clean up orphaned/zombie processes ```bash ports clean ``` Finds and kills orphaned or zombie dev server processes. Only targets dev runtimes (node, python, ruby, etc.) — safe for desktop apps. ### Watch for real-time port changes ```bash ports watch ``` Notifies whenever a port starts or stops listening. ## What the Output Looks Like ``` ┌───────┬─────────┬───────┬──────────────────────┬────────────┬────────┬───────────┐ │ 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:** - 🟢 Green = healthy - 🟡 Yellow = orphaned (parent process gone) - 🔴 Red = zombie ## Framework Detection 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 | ## How It Works Internally 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 ``` ## Common Workflows ### Free up port 3000 before starting a dev server ```bash # Check what's there ports 3000 # Kill it ports kill 3000 # Or force kill if it won't die ports kill -f 3000 ``` ### Kill everything before a clean restart ```bash ports kill 3000 5173 8080 4000 ``` ### Check Docker service ports ```bash ports --all # or just: ports # Docker containers appear automatically with container name and image detected ``` ### Find and clean up leftover processes after a crash ```bash ports clean ``` ### Monitor ports during development ```bash ports watch # Streams notifications as ports open/close ``` ### Scripting: check if a port is in use ```bash # Exit code 0 if port is active, non-zero if free ports 3000 && echo "port in use" || echo "port free" ``` ## Troubleshooting **`ports` command not found after install** ```bash # 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** ```bash # 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** - Ensure Docker Desktop is running - Verify `docker ps` works in your terminal (Docker CLI must be accessible) **Port shows as orphaned (yellow)** - The parent process has exited but the child is still holding the port - Run `ports clean` to sweep these up, or `ports kill <port>` to target directly **Process won't die with graceful kill** ```bash ports kill -f 3000 # sends SIGKILL instead of SIGTERM ``` **Only macOS is supported** - Linux support is planned but not yet available - Windows is not planned — use WSL as a workaround ```
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.