Terminal port inspector for diagnosing which processes hold network ports
Browse active network ports in a terminal, inspect the owning process, and terminate it safely: lsoff offers both a quick command-line lookup and an interactive terminal user interface. Created by yutat23 for desktop environments, the tool reads native OS interfaces directly and supports TCP and UDP filtering. It targets developers, system administrators, and homelab operators who need a consistent, single-file tool to diagnose port conflicts across multiple desktops.
What does lsoff actually do when you need to find a port owner?
lsoff lists processes holding TCP or UDP ports and exposes details such as executable path and working directory. The tool provides an interactive terminal user interface for browsing ports and a CLI mode that can emit JSON for scripting. It reads native OS interfaces directly, rather than parsing other tools, so results reflect the platform's own records.
Does it affect system performance during inspection or while running live?
The tool performs lookups by querying native APIs and supports automatic refresh and manual reload, which keeps scans lightweight. Because it ships as a zero-dependency binary compiled in Go, it runs as a single standalone file and does not spawn external parsers. That design reduces extra process overhead and helps keep CPU and memory use modest during short inspections.
Is it safe to terminate processes from the interface and how does scripting fit in?
Termination includes a built-in safety confirmation and PID reuse protection using checks such as CreationTime on Windows to avoid killing a newly reused PID. For automation, the CLI can output JSON, so scripts can parse results and act programmatically. The combination of safety checks and machine-readable output suits workflows that mix manual and scripted interventions.
Recommended for command-line operators who accept a terminal-only workflow
The tool fits administrators and developers who prefer terminal tools and need cross-platform parity across desktop systems. It requires command-line familiarity for installation and scripted use, and it does not provide a graphical desktop interface, which limits adoption for users who expect a GUI. Use the JSON CLI for automation and enable manual reloads during live troubleshooting sessions.





