Interactive TUI tool to see what's running on your dev ports — and kill it.
- Instant overview — see all listening ports with project name, framework, language, and PID
- Smart detection — auto-detects Next.js, Vite, FastAPI, Django, Flink, Spring, and 30+ frameworks
- Start command — shows
bun run dev,npm run start, etc. by walking the process tree - Kill processes — SIGTERM or SIGKILL directly from the TUI
- Search — press
/to fuzzy-search by port, project, framework, or command - Filter tabs — filter by language (JS/TS, Python, Java, Go, Rust…) — only shows languages that are running
- Non-blocking — port scanning runs in a background thread, UI never freezes
- ~1MB binary — fast startup, zero runtime dependencies
- macOS & Linux — works anywhere
lsofandpsare available
brew install bahadiraraz/tap/portmancargo install portmanDownload from GitHub Releases.
portman| Key | Action |
|---|---|
↑↓ |
Navigate ports |
→ / Enter |
Open actions panel |
← / Esc |
Go back |
/ |
Search |
Tab / Shift+Tab |
Cycle filters |
q |
Quit |
# List dev ports
portman list
# List all ports (including non-dev)
portman list --all
# Show ALL listening TCP ports with process info (like netstat, but better)
portman ps
# JSON output
portman list --json
portman ps --json
# Info for a specific port
portman info 3000
# Kill a port
portman kill 3000
portman kill 3000 --force| Language | Frameworks |
|---|---|
| JS/TS | Next.js, Vite, Nuxt, Remix, Astro, Angular, SvelteKit, Express, NestJS, Bun, Deno |
| Python | FastAPI, Django, Flask, Gunicorn, Streamlit, Gradio |
| Java | Spring, Flink, Spark, Gradle, Maven |
| Go | Go |
| Rust | Cargo |
| Ruby | Rails, Puma |
| PHP | Laravel |
| Elixir | Phoenix |
lsof -iTCP -sTCP:LISTENto find all listening ports (1 subprocess call)ps -axo pid,ppid,user,argsto get process info + parent chain (1 call)lsof -d cwdto get working directories (1 call, parallel with #2)- Framework detection via command-line patterns + directory markers (
next.config.js,pyproject.toml, etc.) - Start command detection by walking the parent process chain (e.g.,
next-server->node next dev->bun run dev) package.jsonscript matching + lock file detection for package manager
Total: 3 subprocess calls, parallelized. Scans complete in ~200ms.
MIT