PRS SYSTEM — Advanced PC Performance Monitor
A production-grade, cyberpunk-themed desktop application and CLI tool for
real-time hardware telemetry. Built with PyQt6, pyqtgraph, psutil,
GPUtil and WMI — every hardware query runs on a dedicated background
QThread, so the interface never freezes.
prs system → opens the performance dashboard (GUI)
prs → native "command not recognized" error on stderr
prs hi → same native error, naming the full invocation
(byte-exact PowerShell format on Windows)
Features
| Page | What it shows |
|---|---|
| Dashboard | CPU / RAM / GPU / Disk / Net-speed cards + 60-second live charts |
| CPU | Animated speedometer gauge, model, cores/threads, base & live frequency, per-core bars, temperature, voltage, power, fan RPM |
| GPU | Gauge, VRAM bar, temperature — NVIDIA (GPUtil) with AMD / Intel fallback (WMI) |
| Memory | RAM gauge, total / used / available, module speed, swap usage |
| Storage | Multi-drive table: capacity, read/write speeds, SMART temperature & health |
| Network | Download/upload meters, live ping, IP address, adapter type, session totals |
| Battery | Charge gauge, charging state, health %, cycle count, time remaining |
| Processes | Task-manager table (Name, PID, CPU%, RAM%), search filter, sortable, Kill action |
| Sensors | Color-coded temperature dashboard (green < 70 °C, yellow 70–85 °C, red > 85 °C) + audible alerts |
| Performance Mode | Normal / Balanced / Gaming / Maximum Performance power profiles (Windows powercfg) |
| AI Assistant | Local heuristic advisor that flags resource-heavy processes and suggests fixes (no network needed) |
| Cleaner | Temp-file scanner with a functional CLEAN NOW action (locked files are skipped) |
| About Your System | Card-grid PC report: OS (version/build/arch/install date/user), processor (model/manufacturer/socket/cache/clocks), chassis, motherboard, BIOS, every RAM DIMM, every GPU with driver, display, storage usage bars, network adapters, battery health/cycles, runtime |
| Settings | 5 themes, refresh interval, alert thresholds, beep toggle |
| Mini Overlay | Always-on-top, frameless, draggable HUD with two car-speedometer gauges (CPU / RAM) and a live battery indicator — toggle from the sidebar |
Alerting
An audible warning beep (via winsound on Windows) fires when CPU / RAM / Disk
load exceeds 85% or battery drops below 15% (thresholds are configurable).
Installation
# 1. (Recommended) create a virtual environment
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # macOS / Linux
# 2. install the package (pulls PyQt6, pyqtgraph, psutil, GPUtil, WMI)
pip install -e .
# 3. run it
prs system
To run without installing, the same entry point works from the repo root:
python main.py
Note for Linux users: temperature and battery sensors require the
lm-sensors/acpitooling to be present; the app degrades gracefully to "N/A" when a sensor is unavailable.
CLI usage
Two libraries share the prs command and delegate to each other at
runtime (no subprocess spawning):
- prs-system owns
prs system(GUI) andprs help - prs-tree-explorer owns every tree command - when installed
(
pip install prs-tree-explorer), typingprsprints the tree of the current directory andprs <path>prints the tree of that path (unquoted paths containing spaces are reconstructed automatically); otherwise prs-system falls back to the native "command not recognized" error
prs system Launch the performance dashboard (GUI)
prs Directory tree of current dir (via prs-tree-explorer)
prs <path> Directory tree of that path (via prs-tree-explorer)
prs help | -h | --help Show package help
prs <anything else> Delegated to prs-tree-explorer; or the native
"command not recognized" error if it is not installed
The error output matches what the shell itself prints: PowerShell's
ObjectNotFound: (<cmd>:String) [], CommandNotFoundException block on
Windows, bash: <cmd>: command not found on macOS/Linux. It is written
directly to stderr without spawning any subprocess.
Coexistence note: both packages register a
prsconsole script, so the one installed last owns theprsshim on PATH. Each package delegates to the other by import, so either install order works - prs-system delegates bareprsto prs-tree-explorer, and prs-tree-explorer should routeprs systemback toprs_system.gui.
Themes
Five built-in glassmorphism themes, switchable live from Settings:
- Cyber Blue — neon cyan
#00F0FF+ purple on deep AMOLED#0B0E14 - Neon Green — phosphor green on dark emerald
- Orange Racing — hot orange on carbon black
- AMOLED Black — pure black with blue/violet accents (OLED-friendly)
- Glass Mode — frosted translucent cards over a deep blue gradient
Project layout
prs_system/
├── __init__.py
├── cli.py # CLI router & OS command execution
├── gui.py # Main PyQt6 application window
├── config.py # Themes, QSS engine, constants, settings store
├── workers.py # Multi-threaded telemetry / process / cleaner workers
├── ui/
│ ├── sidebar.py # Left navigation
│ ├── header.py # Page header + live clock
│ ├── ststusbar.py # Bottom live status strip
│ ├── speedometer.py # 240° animated neon ring gauge
│ ├── mini_overlay.py # Always-on-top floating widget
│ ├── cards.py # Glassmorphism metric/info cards
│ └── alert.py # Audible warning triggers
└── views/ # One module per dashboard tab
├── dashboard_view.py ├── cpu_view.py ├── gpu_view.py
├── memory_view.py ├── storage_view.py ├── network_view.py
├── battery_view.py ├── process_view.py ├── sensors_view.py
├── performance_view.py ├── ai_view.py ├── cleaner_view.py
├── sysinfo_view.py └── settings_view.py
Requirements
- Python 3.10+
- Windows 10/11 recommended (WMI &
powercfggive the richest telemetry); Linux/macOS supported with reduced sensor depth
License
MIT
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 prs_system-1.0.0.tar.gz.
File metadata
- Download URL: prs_system-1.0.0.tar.gz
- Upload date:
- Size: 57.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b75725ef7caf369652ba9bd899dc305492cee901d6c4bb6574a3c31a433de5e
|
|
| MD5 |
8c3ddc95f917bb2667c4db2851b4832b
|
|
| BLAKE2b-256 |
c851563261052d1ae545f3800db787d9fc04266f700d4048d19974cd11884653
|
File details
Details for the file prs_system-1.0.0-py3-none-any.whl.
File metadata
- Download URL: prs_system-1.0.0-py3-none-any.whl
- Upload date:
- Size: 69.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0f667d22a8418aabf946e54ea51689aaa0f11d8d774bb3498148c11a36896ae
|
|
| MD5 |
360547dd27c2188e25f69a880a486a60
|
|
| BLAKE2b-256 |
3dfe8bc035e39cbf0aaf17c167859b612120c56a956591e9672db8889d66933e
|