A desktop system-monitoring application built with Python and PyQt5. It provides a graphical dashboard for viewing live system resource usage, process activity, network and storage information, and hardware details.
System Monitor brings essential performance information into one desktop interface. It tracks CPU, memory, disk, and network activity, presents usage history in charts, and includes tools for inspecting processes and exporting collected data.
- Live CPU, memory, and disk usage indicators
- Network throughput, traffic statistics, and interface information
- Process list with search, sorting, resource usage, and an option to terminate a selected process
- Charts for CPU, memory, disk, and network activity
- Storage partition and system information views
- Historical data stored locally and exportable to CSV
- Optional GPU, temperature, and battery readings when supported by the hardware and system
- Configurable monitoring refresh rate
- Python — application logic and system integration
- PyQt5 / Qt Charts — desktop interface, charts, and UI updates
- psutil — system, process, disk, network, temperature, and battery metrics
- SQLite — local monitoring history
- GPUtil — optional GPU monitoring
- JSON and CSV — settings and data export
- Threading and Qt worker threads — background monitoring tasks
- Python 3.7 or newer
- Dependencies listed in
requirements.txt - A desktop environment capable of running PyQt5
GPU, temperature, and battery readings depend on available hardware, drivers, and operating-system sensor support. GPU monitoring is optional and uses GPUtil.
-
Clone or download this repository.
-
Install the dependencies:
python -m pip install -r requirements.txt
On systems where Python 3 is invoked as
python3, use:python3 -m pip install -r requirements.txt
-
Start the application:
python system_monitor_glass.py
Alternatively, use the included launch scripts:
run.baton Windows or./run.shon Linux/macOS. The matchinginstall.batandinstall.shscripts install the listed dependencies.
The application keeps its monitoring history in system_monitor.db and its refresh-rate setting in monitor_settings.json, in the working directory. Historical records can be exported from the application as a CSV file.