Quick Comparison
| Feature | fkill-cli | portrm |
|---|---|---|
| Language | Node.js | Rust |
| Binary size | ~15MB (with node_modules) | ~1.2MB |
| Dependencies | 30+ | 0 |
| Node.js required | Yes | No |
| Kill by port | fkill :3000 | ptrm fix 3000 |
| Kill by name | fkill node | ptrm fix --name node |
| Interactive mode | Yes (TUI) | Interactive prompts |
| Safety system | None | 3-tier (SAFE/WARNING/BLOCKED) |
| Service identification | No | Yes (13+ categories with confidence scores) |
| Graceful shutdown | No (SIGKILL by default) | Yes (SIGTERM first) |
| Auto-restart | No | --run flag |
| Port scanning | No | ptrm scan |
| Stack management | No | Profiles, monitoring |
| VS Code extension | No | Yes |
| Config file | No | .ptrm.toml |
Why Developers Switch from fkill
1. Safety matters
fkill sends SIGKILL by default. That means no cleanup, no graceful shutdown, no warning if you are about to kill PostgreSQL or Docker. portrm has a 3-tier safety system that identifies what is running on each port and warns you before touching anything critical.
2. Zero dependency footprint
fkill-cli requires Node.js and pulls in 30+ npm packages. That is 15MB+ of dependencies for killing a process. portrm is a single ~1.2MB Rust binary with zero runtime dependencies. Install it on any machine, any CI runner, any container.
3. More than a killer
fkill does one thing: kill processes. portrm is a complete port management toolkit: scan ports, inspect services, fix conflicts, restart services, manage dev stacks, monitor ports, and generate config files.
4. Graceful shutdown
portrm sends SIGTERM first, giving the process time to clean up connections, flush writes, and exit properly. Only if the process ignores the signal does portrm escalate to SIGKILL. fkill-cli goes straight to force-killing.
5. Dev stack awareness
portrm understands your dev stack. It can start multiple services from a .ptrm.toml profile, monitor them, and restart any that crash. fkill has no concept of development workflows.
Usage Comparison
# Kill process on port 3000
# fkill:
$ fkill :3000
# portrm:
$ ptrm fix 3000
# Kill process on port 3000 and restart dev server
# fkill:
$ fkill :3000 && npm run dev
# portrm:
$ ptrm fix 3000 --run "npm run dev"
# See what's using a port before killing
# fkill: not possible
# portrm:
$ ptrm 3000
# Port 3000 - node (Next.js dev server)
# PID: 84921 | Memory: 145MB | Uptime: 2h
# Safety: SAFE to kill
# Scan all ports
# fkill: not possible
# portrm:
$ ptrm scan
When fkill Might Be Better
- You want a full-screen interactive TUI to browse all processes
- You primarily kill by process name, not port
- You already have Node.js and prefer npm-only tooling
Ready to upgrade?
Drop-in replacement. Same muscle memory, more capabilities.