Semantic CLI tool for process management. Target by port, process id (PID), name or path. proc on :3000 # what's on port 3000? proc for/script.py # what's running this file? proc by node --in --min-cpu 5 # node in cwd using >5% CPU proc kill :3000,:8080,node # kill mixed targets at once proc info :3000,1234 # info for port + PID
I built proc because I got tired of googling "how to kill what's on port 3000" every few weeks.
The answer is always the same — lsof -i :3000 -t | xargs kill -9 — and I can never remember it. I'd look it up, copy the one-liner, run it, and forget it again by next week. Every developer I know has the same experience.
So I built a CLI where the command you'd guess is the command that works. proc on :3000 shows what's there. proc kill :3000 kills it. proc free :3000 kills it AND verifies the port is actually free. No pipes, no flags to memorize, no man pages.
What started as 3 commands grew into 19 as I kept hitting adjacent problems: "which of my processes are orphaned?" (proc orphans), "why is this port busy?" (proc why :3000), "can I pause this process without killing it?" (proc freeze node). Each one passed a simple test — does it make the common case one obvious command?
It's written in Rust, works on macOS/Linux/Windows, and installs via brew, npm, cargo, or a shell script. Every command outputs JSON with --json for scripting and AI agent integration.
The whole thing is open source. If you've ever wished lsof made sense on the first try, give it a spin.
Report
No reviews yetBe the first to leave a review for Proc CLI
MakePrintable