DEV Community

Mu Micro
Mu Micro

Posted on

When you hit 'address already in use' or need to audit what's running locally, you end up squinting at lsof -iTCP or ss -tlnp ou

The problem

When you hit 'address already in use' or need to audit what's running locally, you end up squinting at lsof -iTCP or ss -tlnp output — walls of text with no filtering, no sorting, and process names truncated mid-word.

If you've hit this before, you know how it goes — you end up squinting at lsof output or writing a one-off script.

As a solution, I created port-map

Scan all listening TCP ports on your machine and open a filterable web dashboard

Zero-dependency Node.js, run instantly:

npx port-map
Enter fullscreen mode Exit fullscreen mode

Output:

port-map — 23 listening ports found
Dashboard: http://localhost:7777
Press Enter to close...
Enter fullscreen mode Exit fullscreen mode

How it works

Pure Node.js — runs lsof on macOS or ss on Linux via child_process.execSync, parses output into structured JSON, serves a self-contained HTML page via http.createServer, then auto-opens it in the default browser. Zero dependencies.

Why I built it

The 'address already in use' error is one of the most common sources of friction in local dev, especially when running multiple services. lsof and ss both work but their output is a wall of text requiring piping through grep and awk. Found repeated threads on r/webdev and r/node asking for a better way to see what is using a port. No zero-dependency tool serves a visual port inspector — existing solutions require system GUI apps or complex installs.


Part of µ micro — one new developer tool, shipped every day.

Top comments (0)