Mata procesos por puerto.
Con estilo.

Un CLI ultrarrápido que encuentra y mata procesos que ocupan tus puertos. TUI interactivo, modo vigilancia, árboles de procesos y cero dependencias.

Por qué slay?

Todo lo que necesitas para recuperar tus puertos.

TUI Interactivo

Busca, explora y selecciona múltiples procesos con navegación por teclado.

Animaciones de Kill

Mira una bala volar por tu terminal cuando un proceso es eliminado.

Apagado Elegante

Primero SIGTERM, escala a SIGKILL solo si el proceso se niega a morir.

Modo Vigilancia

Sigue sondeando y mata automáticamente procesos que reaparecen en tu puerto.

Árboles de Procesos

Mata todo el árbol de procesos, hijos primero, para un cierre limpio.

Salida JSON

Envía NDJSON a jq para scripting, pipelines de CI y automatización.

Etiquetas Inteligentes

Detecta automáticamente Node, Python, Docker, PostgreSQL, Vite y más de 20 más.

Cero Dependencias

Sin excesos. Solo incluye lo necesario. Se instala en menos de un segundo.

Multiplataforma

Funciona en macOS (lsof), Linux (lsof) y Windows (netstat + taskkill).

Cómo empezar

Listo y funcionando con un solo comando.

Inicio Rápido
npx slay-port 3000
Instalación Global
npm i -g slay-port && slay 3000
Inicio Rápido
pnpm dlx slay-port 3000
Instalación Global
pnpm add -g slay-port && slay 3000
Inicio Rápido
yarn dlx slay-port 3000
Instalación Global
yarn global add slay-port && slay 3000
Inicio Rápido
bunx slay-port 3000
Instalación Global
bun add -g slay-port && slay 3000
Inicio Rápido
brew install hammadxcm/slay/slay-port
Instalación Global
brew install hammadxcm/slay/slay-port && slay 3000
Uso de API
import { findByPort, killProcess } from 'slay-port'

Míralo en acción

Doce formas de eliminar.

Basic Kill

slay 3000
$ slay 3000
3000 > node PID 12847 (Dev Server)
* *
***
killed PID 12847 on port 3000 [SIGKILL]

Interactive Mode

slay -i
$ slay -i
> 3000 node PID 12847 Dev Server
8080 python PID 9321 HTTP Alt
5432 pg PID 4510 PostgreSQL
↑↓ navigate space select enter confirm

Watch Mode

slay 3000 -w
$ slay 3000 -w
watching port 3000...
killed PID 12847 [SIGKILL]
watching port 3000...
process respawned as PID 12901
killed PID 12901 [SIGKILL]
watching port 3000...

Force Kill

slay 3000 -f
$ slay 3000 -f
3000 > node PID 12847 (Dev Server)
*========================***
killed PID 12847 on port 3000 [SIGKILL]
no confirmation needed (-f)

Graceful Shutdown

slay 3000 --soft
$ slay 3000 --soft
3000 > node PID 12847 (Dev Server)
sending SIGTERM...
waiting for graceful exit (5s)...
process exited gracefully [SIGTERM]

Multi-port

slay 3000 8080 5432
$ slay 3000 8080 5432
3000 > node PID 12847 (Dev Server)
8080 > python PID 9321 (HTTP Alt)
5432 > pg PID 4510 (PostgreSQL)
killed 3 processes on 3 ports

Dry Run

slay 3000 -n
$ slay 3000 -n
3000 > node PID 12847 (Dev Server)
[dry run] would kill PID 12847
no processes were harmed

Process Tree

slay 3000 -t
$ slay 3000 -t
3000 > node PID 12847 (Dev Server)
└─ PID 12848 (worker)
└─ PID 12849 (worker)
killed tree: 12849, 12848, 12847

JSON Output

slay 3000 --json
$ slay 3000 --json
{"type":"found","pid":12847,"port":3000}
{"type":"killed","pid":12847,"signal":"SIGKILL"}
{"type":"summary","killed":1,"failed":0}

UDP Ports

slay 53 --udp
$ slay 53 --udp
53/udp > mDNSResponder PID 289
*========================***
killed PID 289 on port 53/udp [SIGKILL]

All Listeners

slay --all -y
$ slay --all -y
scanning all ports...
found 5 listening processes
killed 5/5 processes
0 failed

Verbose Mode

slay 3000 -v
$ slay 3000 -v
[tcp] 3000 > node PID 12847
[signal] sending SIGKILL to 12847
[timing] kill took 12ms
killed PID 12847 on port 3000 [SIGKILL]

Programático API

Usa slay como librería en tus proyectos Node.js.

Exportaciones

  • findByPort(platform, port) Find processes on a specific port
  • findByPorts(platform, ports) Find processes on multiple ports
  • findAllListening(platform) Find all listening processes
  • killProcess(platform, proc) Kill a single process
  • killAll(platform, procs) Kill multiple processes
  • enrichLabel(proc) Add smart labels to a process
api.ts
import { findByPort, killProcess, platform }
from 'slay-port';
 
const procs = await findByPort(platform, 3000);
 
for (const proc of procs) {
const result = await killProcess(platform, proc);
console.log( `Killed $${result.pid} on $${result.port}` );
}