Ever needed to kill a process blocking a port but had to juggle lsof, netstat, and kill just to do it? pkll handles it in one command — and shows you exactly what you're about to kill before you do it.
$ pkll 3000
Process on port 3000
─────────────────────────────────────
Name node
PID 48291
User yoftahe
Uptime 1h 23m
Type TCP
Command node server.js
Kill this process? [y/N]
- Safe by default — Shows process details and prompts for confirmation before killing
- Informative — Displays name, PID, user, uptime, connection type, and full command
- Cross-platform — Works on Linux, macOS, and Windows
- Fast — Single binary, no runtime, no dependencies
- Colored output — Easy to read at a glance
curl -fsSL https://github.com/yofabr/pkll/releases/latest/download/install.sh | shirm https://github.com/yofabr/pkll/releases/latest/download/install.ps1 | iexcargo install pkllDownload the binary for your platform from the latest release:
| Platform | File |
|---|---|
| Linux x64 | pkll-x86_64-unknown-linux-gnu.tar.xz |
| Linux ARM64 | pkll-aarch64-unknown-linux-gnu.tar.xz |
| macOS Intel | pkll-x86_64-apple-darwin.tar.xz |
| macOS Apple Silicon | pkll-aarch64-apple-darwin.tar.xz |
| Windows x64 | pkll-x86_64-pc-windows-msvc.zip |
| Windows ARM64 | pkll-aarch64-pc-windows-msvc.zip |
pkll <port>Examples:
pkll 3000 # Kill whatever is running on port 3000
pkll 8080 # Kill whatever is running on port 8080Before killing anything, pkll displays:
| Field | Description |
|---|---|
| Name | Process name |
| PID | Process ID |
| User | Owning user |
| Uptime | How long the process has been running |
| Type | TCP or UDP |
| FD | File descriptor |
| Command | Full command line |
You always get a confirmation prompt — no accidental kills.
