--- layout: default title: proc description: "Semantic CLI tool for process management. Target by port, PID, name or path." ---
process management that makes sense.
target by port, pid, name or path. one syntax everywhere.
proc on :3000
proc kill :3000
proc free :3000
proc why :3000
proc by node --in .
proc wait node
| task | without proc | with proc |
|---|---|---|
| what's on port 3000? | lsof -i :3000 -P -n |
proc on :3000 |
| kill it | lsof -i :3000 -t | xargs kill -9 |
proc kill :3000 |
| free the port | lsof -t -i:3000 | xargs kill && sleep 1 && lsof -i:3000 |
proc free :3000 |
| wait for process | while ps aux | grep node | grep -v grep; do sleep 5; done |
proc wait node |
| find orphans | no standard tool | proc orphans |
| pause a process | kill -STOP $(pgrep node) |
proc freeze node |
proc on :3000 what's on this port?proc by node find by nameproc for ./app.js what's running this file?proc in . processes in this directoryproc why :3000 trace ancestryproc orphans find abandoned processesproc ports all listening portsproc tree process hierarchyproc kill :3000 force killproc stop node graceful shutdownproc free :3000 kill + verify port freedproc freeze node pause (SIGSTOP)proc thaw node resume (SIGCONT)proc wait node block until exittargets work everywhere: :port, PID, name. comma-separate for multiple. add --in . to scope to current directory. add --json for structured output.
proc kill :3000,:8080,node --in . --json --yes
brew install yazeed/proc/proc
npm install -g proc-cli
cargo install proc-cli
curl -fsSL https://raw.githubusercontent.com/yazeed/proc/main/install.sh | bash