DEV Community

Cover image for I Built a Localhost Port Manager Because I Was Tired of Googling "Kill Port 3000"
m4cd4r4
m4cd4r4

Posted on

I Built a Localhost Port Manager Because I Was Tired of Googling "Kill Port 3000"

Every developer knows this ritual:

npm run dev
Error: Port 3000 is already in use
Enter fullscreen mode Exit fullscreen mode

Then you open a new tab and Google "how to kill port 3000" for the 47th time this month.

I finally got tired of it and built PortPilot — a free, open-source desktop app that makes localhost port management actually pleasant.

The Problem

I run several dev projects locally. Every morning:

  • Port conflicts from yesterday's zombie processes
  • Forgetting which app runs on which port
  • Digging through Task Manager to find the right Node process
  • Accidentally killing the wrong thing

The Solution

PortPilot gives you a clean dashboard with four main features:

1. Port Scanner

See every listening TCP port with process name, PID, and full command line. One-click kill for any process.

PortPilot Active Ports tab showing TCP ports with process names and kill buttons

2. App Registry

Register your dev projects with start commands and preferred ports. Start/stop directly from the UI with visual countdown feedback.

3. Auto-Detection

Point PortPilot at your projects folder and it automatically finds:

  • Node.js (npm, yarn, pnpm, bun)
  • Python (uvicorn, flask, django)
  • Docker (docker-compose)
  • Go, .NET, Rust, Ruby projects

It even detects your package manager and reads port config from package.json, vite.config, .env, etc.

Add App dialog with auto-detect feature showing project name and start command fields

4. Port Conflict Resolution

When something blocks your app's port:

  • See "⚠️ Port Blocked" status
  • Click 🌐 Preview to see what's running there
  • Click "Kill Blocker" to terminate and reclaim the port

Tech Stack

Technology Purpose
Electron 27 Cross-platform (Windows + Linux)
Vanilla JS No framework bloat, ~70MB installed
Native commands netstat (Windows) / lsof (Linux)
Playwright 20/20 E2E tests, 100% coverage
CSS Variables 6-theme system

Features

  • 🔍 Browse & Auto-detect — One-click project setup with recursive scanning
  • ⭐ Favorites — Star apps for quick access, collapsible sections
  • 🐳 Docker Integration — Detects Docker Desktop status, click to start
  • 🎨 5 Themes — TokyoNight, Brutalist Dark, Nord, Dracula, Solarized

PortPilot in Brutalist Dark theme with yellow accents on black background

  • 📋 System Tray — Minimize to tray, "Stop All Apps" from menu
  • 🔒 Single Instance — Only one PortPilot runs, focuses existing window
  • 🤖 MCP Server — Control with natural language from Claude Code, Cursor, Windsurf
  • 📚 Knowledge Base — Built-in help, keyboard shortcuts, common ports reference

App Badges

PortPilot auto-detects project types and shows badges:

Badge Type
🐳 Docker
📦 Node.js
🐍 Python
🗄️ Database
Auto-start

Keyboard Shortcuts

Shortcut Action
Ctrl+R Scan ports
Ctrl+N Add new app
Ctrl+1-4 Switch tabs
Escape Close modal

Download

100% free and open source:

Windows:

Linux:

  • AppImage — Universal (98 MB)
  • .deb — Debian/Ubuntu (69 MB)

Source: GitHub

No accounts, no tracking, no nonsense. MIT licensed.


What's Next?

I'm considering:

  • macOS builds (it should work but untested)
  • Remote server monitoring
  • Docker Compose service management

What features would you want? Drop a comment or open an issue!

Top comments (0)