A modern, high-performance desktop hardware and GPU telemetry dashboard built with Python, PyQt6, psutil, and NVIDIA NVML (nvidia-ml-py).
Pulse Telemetry delivers real-time system monitoring with smooth, antialiased cubic-bezier wave graphs, comprehensive NVIDIA GPU telemetry, kernel concurrency statistics, and responsive dark/light/OLED themes.
-
⚡ Real-Time Hardware Telemetry
- CPU Utilization: Live overall load percentage, logical core count, and current clock frequency (MHz).
- Physical Memory (RAM): Real-time memory consumption, percentage, and total capacity.
- NVIDIA GPU Core & VRAM: Direct hardware queries via NVML for core load (%), dedicated VRAM allocation, GPU core temperature (°C), and real-time power draw (W).
- GPU Power-Saving & D3Cold State Resilient: Gracefully detects dynamic standby/sleep states on hybrid and modern NVIDIA laptops without throwing exceptions.
- Kernel Concurrency: Active Process ID (PID) count and total kernel thread tracking.
- Network Bandwidth: Live download/upload speed gauges (MB/s) and aggregated bandwidth throughput (Mbps).
-
🎨 Modern & Responsive UI
- Custom Sub-Pixel Antialiased Wave Graphs: Smooth cubic-bezier curve rendering with dynamic gradient area fills and live beacon indicators.
- Always on Top (Pin Window): Keep the telemetry dashboard pinned over full-screen games, benchmarks, and workflows.
- Customizable Themes: Built-in support for Dark, OLED Black, and Light modes.
- Dynamic Font & UI Scaling: Integrated Open Sans typography with adjustable base font scaling.
- Configurable Polling Rates: Choose between
0.5s(High Speed),1.0s(Normal), and2.0s(Battery Saver).
-
📦 Cross-Platform Packaging Ready
- Native Linux
.debinstaller generation with full FreeDesktop desktop entry and icons. - Windows
.exesingle-file bundling support with custom multi-resolution icons.
- Native Linux
pulse-telemetry/
├── assets/ # Application icon assets (.ico and .png)
│ ├── icon.ico
│ └── icon.png
├── Open_Sans/ # Bundled Open Sans font suite (OFL licensed)
├── releases/ # Packaged distributions (e.g., .deb installer)
├── scripts/
│ └── build_deb.sh # Automated Debian (.deb) package build pipeline
├── app.py # Main PyQt6 dashboard application & telemetry engine
├── generate_icons.py # Vector-based icon generator using QPainter
├── gpu_stress.py # Pure ctypes CUDA driver GPU stress utility
├── requirements.txt # Python package dependencies
├── RUN.md # Packaging and build execution commands
└── README.md # Project documentation
- Python:
>= 3.9 - Linux (Debian/Ubuntu, Fedora, Arch) or Windows 10/11
- (Optional) NVIDIA GPU with proprietary drivers installed for NVML telemetry and CUDA support.
git clone https://github.com/your-username/pulse-telemetry.git
cd pulse-telemetryUsing standard Python virtual environments:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txtOr using uv (recommended for high speed):
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txtpython app.py
# or with uv
uv run app.pyTo build a standalone Debian package:
chmod +x ./scripts/build_deb.sh
./scripts/build_deb.shTo install the generated .deb package:
sudo apt install ./releases/pulse-telemetry_1.0.0_amd64.debOnce installed, Pulse Telemetry will appear in your system applications menu with full icon and desktop launcher support.
To freeze and compile a standalone, windowed .exe binary:
uv run pyinstaller --noconfirm --onefile --windowed \
--name "PulseTelemetry_1.0.0" \
--specpath "build" \
--distpath "releases" \
--icon "$(pwd -W)/assets/icon.ico" \
--hidden-import "pynvml" \
--add-data "$(pwd -W)/Open_Sans;Open_Sans" \
--add-data "$(pwd -W)/assets;assets" \
app.pyThe resulting binary will be placed inside the releases/ folder.
A lightweight, zero-dependency CUDA driver stress utility utilizing pure Python ctypes (libcuda.so.1 / nvcuda.dll). It allocates dedicated VRAM buffers and pumps asynchronous memory operations to test GPU telemetry under heavy load without needing external benchmarking software:
python gpu_stress.py(Press Ctrl+C to terminate the stress test and cleanly release allocated VRAM.)
Generates high-resolution application branding icons (icon.png and multi-layered icon.ico from 16x16 up to 256x256) programmatically using PyQt6 vector paths:
python generate_icons.pyClick the ⚙ (Gear) icon in the top header to configure:
- Pin Window (Always on Top): Toggle keeping the window persistently above other active applications.
- Theme Selection: Switch on the fly between
Dark,OLED Black, andLight. - Font Scale: Dynamic UI font scaling slider (
10pt-18pt). - Telemetry Frequency:
0.5s(High Speed / Responsive)1.0s(Normal - Default)2.0s(Battery Saver / Low Overhead)
User preferences are persisted across application restarts using QSettings.
This project is licensed under the MIT License. The bundled Open Sans fonts are distributed under the SIL Open Font License 1.1.