Skip to main content

A terminal UI for monitoring and managing local listening ports

Project description

PorTUI

A terminal UI application for monitoring local listening ports and managing the processes that own them.

Features

  • Real-time display of listening ports with process information
  • Configurable columns (Port, IP, Protocol, Process, PID, User, State, Command)
  • Sortable by Port, IP, Process, PID, User, State, or Protocol (numerical IP sorting)
  • Sort order maintained during auto-refresh
  • Inline tree view with real process hierarchy (toggle with t) — parent processes are resolved from the OS even when they don't hold ports (e.g. Chrome → Chrome Helper)
  • Protocol filter to show TCP only, UDP only, or both (cycle with h)
  • Real-time text filtering across all fields
  • Port detail overlay with full untruncated command line (press Enter, Escape to close)
  • Auto-refresh with configurable interval (pauses during interaction)
  • Prominent visual indicator when auto-refresh is paused
  • Kill processes with choice of graceful (SIGTERM) or force (SIGKILL)
  • Cross-platform (macOS, Linux, Windows)

Installation & Usage

Run without installing (recommended)

uvx portui

Install globally

uv tool install portui
portui

Install with pip

pip install portui
portui

Run from source

uv run portui.py

Keyboard Shortcuts

Key Action
↑/↓ or j/k Navigate rows
Enter Show full port/process details
/ Focus filter input (Escape to clear and exit)
h Cycle protocol filter (Both → TCP → UDP)
c Toggle column configuration
s Cycle sort column (Port → IP → Process → PID → User → State → Protocol)
t Toggle tree view (htop-style process hierarchy)
x Kill selected process
r Manual refresh
p Pause/resume auto-refresh
i Set refresh interval
? Show help
q Quit

Requirements

  • Python 3.9+
  • uv (for uvx usage)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portui-0.1.3.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portui-0.1.3-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file portui-0.1.3.tar.gz.

File metadata

  • Download URL: portui-0.1.3.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for portui-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a83e5aa97d9b4f31b23125317bd544505eeaa1a416786a55183b34faa8300bed
MD5 4568d986714432489d9eed5bab73c0a9
BLAKE2b-256 b7b1a1bd03329154f11f05f022aa81d24d7753ff0a4efe15e60161bc3f7225fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for portui-0.1.3.tar.gz:

Publisher: publish.yml on lowtrak/PorTUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file portui-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: portui-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for portui-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e837be96a4d2b083cab486712c72954c17e90d71ad2a92f05e596b1995fd898d
MD5 0b8e1f7e3252fa632012066d2473d697
BLAKE2b-256 865b748e32ec0c7c0dd34e512fc3ac3f1713d8ee0a8a22aa11cff2863b9aecab

See more details on using hashes here.

Provenance

The following attestation bundles were made for portui-0.1.3-py3-none-any.whl:

Publisher: publish.yml on lowtrak/PorTUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page