what it does
no more pretending you remember ss -ltnp anymore.
four jobs. all in your terminal. no api call, no internet round-trip — just a plain tool that does what it says.
all listeners
$ portcheck
3000 node 4231 alice
5432 postgres 1208 postgres
22 sshd 903 root
5432 postgres 1208 postgres
22 sshd 903 root
what’s on a port
$ portcheck 3000
node@4231
uvicorn workers (4)
holding since 14:02
uvicorn workers (4)
holding since 14:02
free a stuck port
$ portcheck kill 3000
killed pid 4231 (node)
port 3000 now free
port 3000 now free
ci-friendly
$ portcheck --json | jq
[
{"port":3000,"pid":4231,"cmd":"node"}
]
{"port":3000,"pid":4231,"cmd":"node"}
]
install
three ways. all painless.
npm
$ npm i -g @v0idd0/portcheck
node 14+ on linux / macos / windows. updates with npm update -g.
github releases
$ curl -L github.com/voidd0/portcheck/releases/latest
single static binary. zero runtime needed. all releases →
git clone
$ git clone github.com/voidd0/portcheck
read the source, send a pr, fork it. mit licence, no cla. repo →
why we built it
ss -ltnp works on linux. lsof -i works on macos. portcheck works on both, with the same flags, and prints columns you can actually read.
no telemetry. no signup. zero deps — single static binary. mit forever — the source is public and the npm package is yours to fork.