Skip to content
PORTKILLER
PK
PORTKILLER System_Purge_Utility_v1.0
SYSTEM STATUS: PORTS TREMBLING IN FEAR
Target Locked: Localhost

Address already in use
(Errno::EADDRINUSE)

Murder stuck ports. Save your sanity.

You have a deadline. Don't waste it fighting zombie processes. PortKiller lives in your menu bar. It chooses violence so you don't have to.

dev — -zsh — 80x24
$ npm run dev
> project-alpha@0.1.0 dev
> next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
Error: listen EADDRINUSE: address already in use :::3000
at Server.setupListenHandle [as _listen2] (net.js:1317:14)
$

/var/log/developer_tears.log

HOST: MACBOOK-PRO-LATE-NIGHT UPTIME: 32 HOURS
[23:45:12] FATAL_ERROR :: Port 3000 occupied. Unknown entity.
> User attempted `lsof -i :3000`
> User attempted `kill -9`
> Result: Process regenerated. Sanity -10%.
[01:15:00] WARNING :: Docker Daemon sync failure.
> Container status: STOPPED.
> Reality: Port still listening.
> Diagnosis: The Docker Black Hole.
[03:30:45] SYSTEM_PANIC :: Manual reboot initiated.
> Flow state: DESTROYED.
> User is currently crying in the shower.
>_
PortKiller v1.0
localhost:8080
Java (Spring Boot)
localhost:3000
Node (Next.js)
localhost:5432
Postgres (Docker)
KILLED
// TERMINATE WITH EXTREME PREJUDICE

One click.
Mass Extinction.

Weapons of Port Destruction.

You don't need a terminal command. You need a hitman. PortKiller scans for active ports and Docker containers in real-time. When something gets stuck, it ends it. No mercy.

  • Lives in your menubar, always one click from murder. No more Alt+Tabbing to Terminal like a caveman. Your ports are one misclick away from oblivion.
  • No more googling "how to kill process on port 3000" at 2 AM. Find the port, click kill, problem solved. Your future self will thank you.
  • Asks nicely first. Waits 2 seconds. Process still breathing? SIGKILL. We tried diplomacy. Violence was always the answer.
  • Detects PostgreSQL, Redis, MySQL hiding as brew services. Stop them without remembering "brew services stop" commands. Because who memorizes that at 3 AM?
  • See which containers are hoarding ports. Stop them with one click. No more "docker ps | grep 8080" archaeology.
  • Get alerted when ports start listening. Catch rogue dev servers before they ruin your day. Big Brother, but for localhost.
  • Shows which git project spawned each process. No more mystery PIDs. See "my-app" instead of "node (PID: 42069)".
  • Verifies PIDs before killing. Won't murder innocent processes that recycled an ID. Smart enough to avoid friendly fire.
  • Config file locked with 0600 permissions. Because your port-killing preferences are nobody's business.

[ DEVELOPER CONFESSIONS ]

Things Devs Scream Into The Void

"I've typed 'kill -9' so many times it autocompletes in my dreams."

Every Node.js Dev
Ever

"Docker told me the container was stopped. Docker lied. Docker always lies."

Nginx Survivor
Localhost Warrior

"I closed VS Code 47 times. Port 5173 is still in use. I think Vite has achieved sentience and it's angry."

Frontend Dev
Moments before install

[ END THE SUFFERING ]

Stop Killing Ports The Hard Way

Port management shouldn't cost money. Or your sanity.

FREE FOREVER.

Works on macOS 12+ (Apple Silicon & Intel) • Windows coming soon (maybe)