🧟 zkill

Kill zombie processes blocking your ports - instantly.

Stop Googling "how to kill port process" every single day.

$ zkill 3000
✔ Port 3000 is in use
Process Details:
Process: node
PID: 12345
Command: /usr/local/bin/node server.js
User: developer
? Are you sure you want to kill process 12345? (y/N) y
✔ Process 12345 terminated successfully
Port 3000 is now available.
$ _
npm install -g zombie-port-killer

Why zkill?

Every developer faces port conflicts. We built zkill to solve this once and for all.

🎯

One Command

Instead of memorizing different commands for each OS, just run zkill 3000

🌍

Cross-Platform

Works identically on macOS, Linux, and Windows. No more platform-specific commands.

🔒

Safe Mode

Asks for confirmation before killing. Warns about system processes. You're always in control.

🧠

Project Aware

Remembers which ports belong to which projects. Automatically cleans up when you switch.

Fast

Less than 100ms to detect and kill processes. Pure TypeScript with zero external dependencies.

🎨

Beautiful CLI

Color-coded output, loading spinners, and clear messages. A joy to use.

Quick Start

Installation

npm install -g zombie-port-killer

Or use yarn or pnpm:

yarn global add zombie-port-killer
pnpm add -g zombie-port-killer

Usage

Kill a process on a specific port:

zkill 3000

Kill without confirmation:

zkill 3000 --force

List all active ports:

zkill scan

Show system information:

zkill info

Before vs After

😰 Before zkill

macOS:
lsof -ti :3000 | xargs kill -9
Linux:
sudo ss -lptn 'sport = :3000' | grep -oP '(?<=pid=)\d+' | xargs sudo kill -9
Windows:
FOR /F "tokens=5" %P IN ('netstat -ano ^| findstr :3000') DO TaskKill /PID %P /F

✨ With zkill

macOS:
zkill 3000
Linux:
zkill 3000
Windows:
zkill 3000
🎉

One command. All platforms.

Frequently Asked Questions

Common questions about zkill's security, usage, and features.

🔒 Is zkill secure? Can I trust it?

Yes! zkill is 100% safe and transparent.

  • Open Source: Every line of code is public on GitHub. You can audit it yourself.
  • Zero Telemetry: No tracking, no analytics, no data collection. Nothing leaves your machine.
  • No Network Requests: zkill runs entirely offline. You can verify this with network monitoring.
  • Minimal Dependencies: Only 4 trusted npm packages (chalk, commander, inquirer, ora) - all extremely popular.
  • Standard Commands: Uses the same OS commands you'd run manually (lsof, ps, kill, etc.)
  • Safe by Default: Always asks for confirmation before killing processes.

Want proof? Clone the repo and read the source code. It's only ~2,000 lines of TypeScript. View on GitHub →

⚙️ How does zkill work?

zkill finds and kills processes using a cross-platform approach:

  • macOS: Uses lsof to find processes
  • Linux: Uses ss or netstat
  • Windows: Uses netstat and taskkill

These are the same commands you'd run manually - zkill just makes it easier and cross-platform.

💻 Does it work on Windows/Linux/macOS?

Yes! zkill works on all three platforms:

  • ✅ macOS (Intel & Apple Silicon)
  • ✅ Linux (Ubuntu, Debian, Fedora, etc.)
  • ✅ Windows (PowerShell, CMD, Git Bash)

The same command works identically everywhere: zkill 3000

⚠️ Will zkill accidentally kill my database or important services?

No, it's safe:

  • zkill asks for confirmation before killing any process
  • It shows you details about what process will be killed
  • It warns you if the process looks like a system service
  • You must explicitly target a specific port - it won't randomly kill things

Pro tip: Use zkill scan first to see what's running before killing anything.

🔑 Do I need sudo/admin privileges?

Usually not. For your own development servers (the most common case), no special privileges needed.

You only need elevated privileges for:

  • Processes owned by other users
  • System services (like databases running as system user)
  • Ports below 1024 on some systems
🏭 Can I use zkill in production?

zkill is designed for local development, not production servers.

For production environments, use proper process managers:

  • PM2, systemd, or supervisord for Node.js apps
  • Kubernetes for containerized apps
  • Docker Compose for multi-container setups

zkill is perfect for fixing "Port 3000 already in use" errors during development!

💰 Is zkill free?

Yes! 100% free and open source.

  • MIT License - use it anywhere, for anything
  • No paid tiers, no premium features
  • No ads, no tracking, no upsells
  • Free forever

If you find it useful, consider giving it a ⭐ star on GitHub!

🎯 Can I kill multiple ports at once?

Not yet, but it's coming in v1.1!

Planned features:

  • zkill 3000 8000 5432 - Multiple ports
  • zkill --range 3000-3010 - Port ranges
  • zkill --name node - Kill by process name

For now, run zkill multiple times for multiple ports.

Still have questions?

Ask on GitHub Issues

Ready to kill some zombies? 🧟

Join developers worldwide who've stopped Googling port commands.

npm install -g zombie-port-killer