Skip to main content

Monitorify

A lightweight system monitor that runs right in your terminal. It tracks CPU usage, memory consumption, network activity, disk metrics, and process states in real time with historical graphing — no bloated dependencies, just a clean, high-performance TUI dashboard.

Built with Python and Textual. Reads directly from /proc and /sys for lightning-fast, native performance on Linux.


Features

  • CPU & System Info — Live CPU percentage, multi-timeframe braille graphing, OS kernel, hostname, and system uptime.
  • Memory (RAM) — Real-time memory utilization, percentage, and historical graph.
  • Network Throughput — Split-view upload/download graph with current speed, peak throughput, and total transferred bytes.
  • Disk Metrics — I/O activity rates (reads/writes) and storage capacity breakdown for physical disks.
  • Process Monitor — Interactive list of running processes with CPU/RAM metrics, process state, uptime, and real-time inspector.
  • Background Collector Daemon — Lightweight collector logging metrics to an SQLite database (~/.local/share/monitorify/monitorify.db) with automatic pruning.
  • Customizable Menu (m) — Toggle widget visibility, adjust collection frequency, and set history graph duration (1m, 5m, 10m, 30m, 1h, or custom durations like 2h, 1d).

Quick Start

# Recommended — isolated install via pipx
pipx install git+https://github.com/leonst036/Monitorify.git

# Then launch the dashboard
monitorify

For full installation options (pip, source, systemd daemon) see INSTALL.md.


Usage

Dashboard

monitorify
Key Action
m Open settings menu (toggle widgets, set intervals, change history window)
q / c Quit

Standalone Background Daemon

monitorify-daemon

Metrics are written to ~/.local/share/monitorify/monitorify.db continuously.


Configuration & Paths

Monitorify follows XDG base directory conventions:

Purpose Default Path Environment Variable
Database ~/.local/share/monitorify/monitorify.db MONITORIFY_DB_PATH
Daemon PID /run/user/<uid>/monitorify/daemon.pid MONITORIFY_PID_PATH
Interval 1.0 seconds MONITORIFY_INTERVAL
Retention 604800 seconds (7 days) MONITORIFY_RETENTION

Project Structure

Monitorify/
├── pyproject.toml               # Package build configuration & entry points
├── README.md                    # This file
├── INSTALL.md                   # Full installation guide
├── main.py                      # Developer entrypoint shim
├── src/
│   └── monitorify/
│       ├── __init__.py          # Package metadata (__version__)
│       ├── __main__.py          # python -m monitorify entrypoint
│       ├── config.py            # XDG path handling & environment settings
│       ├── main.py              # Dashboard runner & daemon supervisor
│       ├── daemon.py            # Standalone metrics collector daemon
│       ├── collector/
│       │   ├── manager.py       # Worker lifecycle coordinator
│       │   ├── worker.py        # Background metric collection thread
│       │   └── schema.py        # Dataclass metric structures
│       ├── stats/
│       │   ├── cpuStats.py      # /proc/stat CPU calculator
│       │   ├── ramStats.py      # /proc/meminfo RAM calculator
│       │   ├── networkStats.py  # /proc/net/dev throughput calculator
│       │   ├── DiskStats.py     # /proc/diskstats I/O & storage parser
│       │   └── programmList.py  # /proc process parser & cache thread
│       ├── storage/
│       │   └── db.py            # SQLite metrics storage & historical queries
│       └── ui/
│           └── tui/
│               ├── tui.py       # Main Textual App
│               ├── css/
│               │   └── tui.css  # TUI styling & themes
│               ├── components/
│               │   ├── menu.py          # Settings sidebar component
│               │   └── widgetManager.py # Dynamic grid layout organizer
│               └── widgets/
│                   ├── brailleGraph.py       # High-density Unicode graph
│                   ├── cpuWidget.py          # CPU monitor widget
│                   ├── ramWidget.py          # RAM monitor widget
│                   ├── networkWidget.py      # Network monitor widget
│                   ├── diskWidget.py         # Disk I/O & storage widget
│                   ├── programmListWidget.py # Interactive process list
│                   ├── procInfoWidget.py     # Process details panel
│                   └── statusWidget.py       # Host & kernel status

Requirements

  • Python: 3.10+
  • OS: Linux (relies on /proc and /sys filesystems)
  • Terminal: Minimum 80 columns × 24 lines recommended

Download files

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

Source Distribution

monitorify-1.0.0.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

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

monitorify-1.0.0-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file monitorify-1.0.0.tar.gz.

File metadata

  • Download URL: monitorify-1.0.0.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for monitorify-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6e4a97e9fffc489fa275dbfa11aad6455f9ec4d8eb01c583e0a03171af7b0517
MD5 cd28774dd1b3c050042131304a254370
BLAKE2b-256 c5ecfc1a1a96686641178f92357744313cf230bf86f6ece80c81b444238a5e2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for monitorify-1.0.0.tar.gz:

Publisher: publish.yml on leonst036/Monitorify

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

File details

Details for the file monitorify-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: monitorify-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 33.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for monitorify-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0016283643600ff9775ad752a9216e49f10a7c8ad137e7f4bc31c94f5888240b
MD5 8df2c74f7635db0c5f8d6d7258b0ebcd
BLAKE2b-256 9c17252f6a17c11100e5eb0fe3da774766228c4b28a0b72fbebd8c11ca44775a

See more details on using hashes here.

Provenance

The following attestation bundles were made for monitorify-1.0.0-py3-none-any.whl:

Publisher: publish.yml on leonst036/Monitorify

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

Release history Release notifications | RSS feed

1.1.0

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page