Port janitor · v1.1.2
Your ports have squatters.Kick them out.
Kickoutchi shows which process owns each open TCP/UDP port, lets you inspect the family around it, then terminates stale port-owning processes safely — from a guided TUI or a script-friendly CLI.
linux · macos · windowstwo binaries: kickoutchi & kickMIT
Interactive demo device: a pocket port janitor. Use the scan, inspect, and kick buttons to replay how Kickoutchi finds a process squatting on a port and kicks it out.
01 · Inspect first
See the whole family before you swing the boot.
A stale dev server is rarely one process. kick inspectshows ancestors, descendants, and the process group — read-only — then tells you the exact command for the scope you choose. Nothing dies until you type it.
- 01Inspect the PID or port — who spawned it, what it spawned.
- 02Pick a scope: one process, the tree, or the Unix process group.
- 03Type the scope word to confirm. Kickoutchi verifies the port is really free.
02 · Two ways in
Two ways to clear the swamp
Open the TUI when you want to look around. Reach for the CLI when you already know the target.
The swamp tour
Guided TUI
Run either binary with no command to open the terminal UI. Browse, search, sort, inspect details, and use x/X for one PID or t/T for Linux/macOS tree cleanup.
kickoutchiThe swamp shortcut
Scriptable CLI
Print ports as a table or stable JSON, inspect process families, and choose process, tree, or Unix group scope with a fixed exit-code contract.
kick list --json03 · The arsenal
A small tool that takes ports seriously
Practical first, playful second. Everything here is real behaviour.
See every open port
Lists listening TCP sockets and bound UDP sockets using native collectors • no scraping ss, netstat, or lsof.
Know what owns it
Shows PID, process name, parent, path, command line, bind scope, and permission status whenever the OS lets it through.
Tree and group cleanup
Opt in to --tree for descendants when a stale dev stack has more than one PID. POSIX process-group cleanup stays Linux/macOS-only.
Inspect before you kick
Read-only inspect shows ancestors, descendants, siblings, command lines, ports, and scoped kill hints. Linux/macOS also show process groups.
TUI or CLI
Open the guided terminal UI for a tour of open ports, or drive the script-friendly CLI when you already know the target.
Safe by default
Every termination is confirmed. Unix scoped kills freeze and verify; Windows tree kill contains via Job Objects; ambiguous ports are never guessed.
Linux, macOS, Windows
Native collection per OS. Linux/macOS support tree and group scope; Windows supports inspect and CLI tree kill, with --group unavailable.
Docker-aware
Explains Docker-owned or partial-metadata ports in details when the Docker CLI is available. Docker owners are protected by default; Docker itself is optional.
Filters & sorting
Narrow the table with port:, proto:, scope:, protected:, and parent: filters, then sort by port, pid, protocol, process, parent, or scope.
Built for scripts
Stable JSON, fixed exit codes, --yes gates that re-check fresh scope, and explicit CLI-only inspect/group commands make automation predictable.
04 · Guardrails
Safe by default
Terminating the wrong process is the scary part. Kickoutchi treats it that way: lots of guardrails, no silent surprises.
How termination stays safe- 00Every termination is confirmed — and --yes still prints the banner, warnings, and fresh-scan refusals.
- 01PID 0, PID 1, Kickoutchi's own PID, and Windows PID 4 are blocked outright.
- 02kill --port refuses ambiguous ports instead of guessing which PID to hit.
- 03Protected processes, including Docker owners, require typing the PID or process name to confirm.
- 04Tree scope is opt-in, typed, and bounded; group scope stays Linux/macOS-only.
- 05Unix scoped kills freeze first; Windows tree kill uses Job Object containment.
- 06Names, paths, and status text are sanitized against control, ANSI, bidi, and zero-width tricks.
05 · Get it
Install in one line
Linux, macOS, and Windows get installers, archives, inspect, and explicit tree cleanup. Group scope stays Unix-only.
Platforms & packages
Honest status, kept compact.
Linux
Native /proc collection with pidfd-backed tree/group kill and inspect.
macOS
Native libproc / sysctl collection with tree/group kill and inspect.
Windows
Native IP Helper listing, inspect, single-process kill, and CLI tree kill via Job Objects.
CLEAR THE SWAMP.
Install Kickoutchi, run it once with no arguments, and see the processes and process families using your local ports.
$ kickoutchi