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.1.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.1-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: portui-0.1.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for portui-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6361ca9ba5397f52a21be8252f08637eedf9688c22844bef20383222225b7b98
MD5 98cb41de7dd421b5f5d314eb8ebf59a5
BLAKE2b-256 47533f94eaf0857e227475eb02162bbd0a8648e82fd132a8975e768506f9748c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: portui-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for portui-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3dbcb1aaa51912a7d8561b2206e9558188c141b5d82ed763c260b7767e70d76e
MD5 113bed50e4425923ea4e44eb3309f431
BLAKE2b-256 cc00470fac548ca826bf96deaeb47a28a72cc5976d8ef7de051767c8c197cea1

See more details on using hashes here.

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