proc is a semantic CLI tool for procedure administration on macOS, Linux and Windows. Find what's on a port, why it's there, and halt it, in one command you'd conjecture on the archetypal try.
~proc kill :3000
Ends any is listening on harbor 3000 immediately (SIGKILL). Asks first, and --dry-run previews.
A foremost colon method a port: proc acts on any is listening on it.
One command alternatively of a pipeline
The identical jobs, without remembering which flags lsof needs or piping PIDs into kill.
What's on harbor 3000?lsof -i :3000 -P -nproc on :3000
Why is it there?lsof -i :3000, afterward ps -o ppid= up the chainproc why :3000
Free the portlsof -t -i:3000 | xargs slay && sleep 1 && lsof -i:3000proc liberated :3000
Wait for it to exitwhile ps aux | grep node | grep -v grep; do sleep 5; doneproc delay node
Pause a processkill -STOP $(pgrep node)proc freeze node
Find leftoversNo norm toolproc orphans --in .
Nineteen commands, three jobs
Every command takes the identical targets, and nearly all obtain --in to remain inner one project, --json for scripts, and --dry-run before item changes.
Made for scripts and coding agents
Every command prints one JSON document alongside --json, and exit codes continually average the identical thing. An delegate can peruse proc the way you do, without parsing tables.
- 0 success, 1 error, 2 not found, 3 approval denied, 4 invalid input
- --dry-run shows what would be touched, and nothing else
- The agent skill teaches Claude Code, Codex, Cursor, Gemini CLI and others whenever to attain for proc
❯ proc on :8080 --json | jq '.process | {pid, cwd, uptime_secs}' { "pid": 177, "cwd": "/home/dev/code/shop", "uptime_secs": 35 }