Skip to main content

Terminal dashboard for ports, processes, and Docker containers

Project description

whosat

A terminal dashboard for ports, processes, and Docker containers.
Like htop but focused on network ports.

PyPI Python License


Built with Textual for a rich TUI experience.

Features

  • Port & Process Monitoring -- See all listening ports with owning processes, CPU/memory usage, and uptime
  • Memory View -- System-wide process memory usage with GPU memory tracking (NVIDIA)
  • Docker Integration -- Optional container monitoring alongside system processes
  • Group & Flat Views -- Group processes by name or view as a flat list
  • Detail Panel -- Expand any process to see full network info, open ports, resource usage, and CPU sparkline
  • Actions -- Ping, curl, and kill processes directly from the TUI
  • Live Refresh -- Configurable auto-refresh (15s / 30s / 1m / 2m / off)
  • Theming -- 6 built-in themes (matrix, nord, dracula, tokyo-night, gruvbox, solarized)
  • Search & Filter -- Search by process name, port, or IP; filter by scope (system / docker)
  • Keyboard Driven -- Full keyboard navigation with vim-style shortcuts
  • Cross-platform -- Linux, macOS, and WSL2

Install

pip install whosat

With Docker support:

pip install 'whosat[docker]'

Usage

whosat

That's it. whosat will scan your system and display all listening ports and their processes.

Keyboard Shortcuts

Key Action
1 / 2 Switch to Ports / Memory view
Up / Down Navigate rows
Enter Expand/collapse row + open detail panel
Esc Close detail panel / modal / clear search
/ Focus search
R Refresh data
G Toggle group/flat view
K Kill selected process
S Cycle scope (ALL / SYS / DOCKER)
T Cycle theme
Y Copy IP:PORT to clipboard
Q Quit

Configuration

On first run, whosat creates ~/.whosat/config.toml with default categories and settings.

theme = "matrix"
refresh_interval = 30

[[categories]]
name = "python"
icon = "snake"
section = "System"
match = ["python3", "python", "uvicorn", "gunicorn", "celery"]

# Add your own:
# [[port_names]]
# port = 8020
# name = "My App"
# icon = "robot"

Requirements

  • Python 3.10+
  • Linux, macOS, or WSL2
  • Optional: Docker SDK for container monitoring
  • Optional: NVIDIA GPU for GPU memory tracking in memory view

License

MIT

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

whosat-0.1.0.tar.gz (51.1 kB view details)

Uploaded Source

Built Distribution

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

whosat-0.1.0-py3-none-any.whl (57.1 kB view details)

Uploaded Python 3

File details

Details for the file whosat-0.1.0.tar.gz.

File metadata

  • Download URL: whosat-0.1.0.tar.gz
  • Upload date:
  • Size: 51.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for whosat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 174c8a2153621a5dc5c6b770c5ea6a11be06129823706772d1df5235a7a6bd2a
MD5 a3c1864d7ad453f7b1fffe1cdd9cea7e
BLAKE2b-256 875626e468d0c7dc5a94bf28196dc6063a3b4f294787175a86555d7709b7ec1a

See more details on using hashes here.

File details

Details for the file whosat-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: whosat-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 57.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for whosat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb157025e6eb6fa2ad2e833a447a6f272d57d4c99532ac1fd3f379dc240b6d75
MD5 628ec1cacb6cbfe895823475a675ea14
BLAKE2b-256 11c4e834abf63e10659358cfb0e7c1704497969a311c8b809d6a37927323fa1e

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