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 like2h,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
/procand/sysfilesystems) - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e4a97e9fffc489fa275dbfa11aad6455f9ec4d8eb01c583e0a03171af7b0517
|
|
| MD5 |
cd28774dd1b3c050042131304a254370
|
|
| BLAKE2b-256 |
c5ecfc1a1a96686641178f92357744313cf230bf86f6ece80c81b444238a5e2e
|
Provenance
The following attestation bundles were made for monitorify-1.0.0.tar.gz:
Publisher:
publish.yml on leonst036/Monitorify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
monitorify-1.0.0.tar.gz -
Subject digest:
6e4a97e9fffc489fa275dbfa11aad6455f9ec4d8eb01c583e0a03171af7b0517 - Sigstore transparency entry: 2465505810
- Sigstore integration time:
-
Permalink:
leonst036/Monitorify@86d204b8ccc524da2c1f6c056ee02d512cb582b1 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/leonst036
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86d204b8ccc524da2c1f6c056ee02d512cb582b1 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0016283643600ff9775ad752a9216e49f10a7c8ad137e7f4bc31c94f5888240b
|
|
| MD5 |
8df2c74f7635db0c5f8d6d7258b0ebcd
|
|
| BLAKE2b-256 |
9c17252f6a17c11100e5eb0fe3da774766228c4b28a0b72fbebd8c11ca44775a
|
Provenance
The following attestation bundles were made for monitorify-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on leonst036/Monitorify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
monitorify-1.0.0-py3-none-any.whl -
Subject digest:
0016283643600ff9775ad752a9216e49f10a7c8ad137e7f4bc31c94f5888240b - Sigstore transparency entry: 2465505883
- Sigstore integration time:
-
Permalink:
leonst036/Monitorify@86d204b8ccc524da2c1f6c056ee02d512cb582b1 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/leonst036
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86d204b8ccc524da2c1f6c056ee02d512cb582b1 -
Trigger Event:
release
-
Statement type: