Skip to content

dvalfrid/rigstats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

437 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RIGStats (rig-dashboard)

Release License Platform egui

Verify Build Release pipeline

  • A gaming stats dashboard optimized for a vertical secondary display (450×1920).

  • Shows CPU, GPU, RAM, network, disk, NVMe/SSD temperatures, and motherboard sensors in real time.

  • Computer name, CPU model, GPU model, and motherboard name are detected automatically at startup.

Overview

RIGStats is a Windows desktop dashboard built with egui (native Rust UI, no WebView). It targets a vertical secondary display and shows live CPU, GPU, RAM, network, and disk data.

Screens

Main Dashboard

Main Dashboard

The main dashboard is designed for a vertical secondary display and keeps the live system view visible at a glance.

It shows:

  • CPU load, clocks, temperature and power
  • GPU load, temperature, hotspot, clocks, VRAM and fan data
  • RAM usage and installed memory details
  • Network throughput and ping
  • Disk activity, drive usage, and NVMe/SSD temperatures
  • Motherboard sensors: fan speeds, board temperatures, and voltage rails (opt-in panel)

From here you can:

  • monitor the machine continuously on a portrait side display
  • keep the app hidden to the tray when not needed
  • open the tray menu for Settings, Status, About, and Updates & Changelog

Status Dialog

Status Dialog

The Status dialog is the diagnostics view for runtime health and backend troubleshooting.

It shows:

  • scheduled task information for LibreHardwareMonitor
  • dependency health for LibreHardwareMonitor, sysinfo, and wmi
  • the current debug log path
  • the latest debug log output
  • the timestamp for the last successful refresh

From here you can:

  • confirm that sensor dependencies are healthy
  • inspect startup/runtime issues without opening external tools
  • copy the visible debug log for troubleshooting
  • refresh diagnostics on demand while the log also auto-updates in the dialog
  • export a diagnostics ZIP bundle for bug reports (see Diagnostics Export)

About Dialog

About Dialog

The About dialog is the lightweight product-information view.

It shows:

  • the current RIGStats version
  • the project license name
  • direct links to the website and contact

From here you can:

  • quickly verify which build/version is running
  • open rigstats.app in the default browser
  • contact the maintainer directly

Updates & Changelog Dialog

Updates & Changelog Dialog

The Updates & Changelog dialog handles update discovery and version history.

It shows:

  • available update version alongside the current version (when an update exists)
  • release notes for the new version sourced from GitHub (latest.json)
  • full local version history (bundled CHANGELOG.md) below the new version's notes
  • download and installation progress bar

From here you can:

  • install the latest version with one click
  • track download progress while the update is fetched
  • browse the complete release history with clickable links to GitHub diffs

Settings Dialog

Settings Dialog

The Settings dialog controls the dashboard presentation and placement behavior.

It shows:

  • opacity slider for transparency control
  • editable model name
  • display profile selector
  • always-on-top toggle

From here you can:

  • change the dashboard profile for different portrait displays
  • adjust transparency live before saving
  • override the displayed model name
  • control whether the main dashboard stays on top

Hardware Support

Data comes from two parallel sources that are merged each refresh cycle: LibreHardwareMonitor v0.9.6 (sensor telemetry via local HTTP) and sysinfo (OS-level counters). WMI provides static metadata at startup.

CPU

CPU panel

Metric Source
Total load (%) sysinfo
Per-core load (%) sysinfo
Clock frequency (GHz) sysinfo
Package temperature (°C) LHM — AMD: Core (Tctl/Tdie)
Package power (W) LHM — Package power sensor

CPU temperature is matched by sensor name: Core (Tctl/Tdie) for AMD Ryzen, CPU Package or Core Average for Intel. The AMD label is preferred when both are present (dual-CPU edge case).

GPU

GPU panel

Metric Source
Core load (%) LHM — GPU Core load
Core temperature (°C) LHM — GPU Core temperature
Hot spot temperature (°C) LHM — GPU Hot Spot temperature
Core clock (MHz) LHM — GPU Core clock
Package power (W) LHM — GPU Package power
Fan speed (RPM) LHM — GPU Fan
VRAM used / total (GB) LHM — GPU Memory Used / GPU Memory Total

Supports NVIDIA and AMD discrete GPUs through LHM. Intel Arc GPUs should work but have not been tested.

RAM

RAM panel

Metric Source
Used / free / total (GB) sysinfo
Memory type (DDR–DDR5) WMI Win32_PhysicalMemory.SMBIOSMemoryType
Speed (MHz) WMI Win32_PhysicalMemory.ConfiguredClockSpeed / Speed
Manufacturer & part number WMI Win32_PhysicalMemory

Storage

Storage panel

Metric Source
Read throughput (MB/s) LHM — aggregated across all drives; shown as purple series in sparkline
Write throughput (MB/s) LHM — aggregated across all drives; shown as pink series in sparkline
Per-drive capacity and usage sysinfo
Filesystem label sysinfo
Drive temperature (°C) LHM — highest real temperature sensor per drive (/nvme/, /hdd/, /ata/, /scsi/, /ssd/), matched to drive letter via WMI at startup

Motherboard

Motherboard panel

Metric Source
Board name WMI Win32_BaseBoard — manufacturer normalized (ASUSTeK → ASUS, Micro-Star → MSI, etc.)
Super I/O chip name LHM — grandparent of the first /lpc/ sensor node
Fan speeds (RPM) LHM — all active /lpc/ fan channels, sorted descending; 0-RPM channels hidden
Temperatures (°C) LHM — all /lpc/ temperature sensors ≥ 5 °C
Voltage rails (V) LHM — named /lpc/ voltage rails only; generic Voltage #N slots excluded

The motherboard panel is opt-in and can be enabled in Settings → Panels. Works chip-agnostically across Nuvoton NCT, ITE IT87xx, Winbond W836xx, and other Super I/O controllers.

Network

Network panel

Metric Source
Upload speed (Mbps) sysinfo — best active interface by traffic volume
Download speed (Mbps) sysinfo — best active interface by traffic volume
Active interface name sysinfo
Latency / ping (ms) Windows ping command — default gateway, falls back to 1.1.1.1

Clock

Clock panel

Metric Source
Time sysinfo
Day sysinfo
Date sysinfo

System Identity

System panel

Metadata Source
Computer / rig name hostname crate — truncated with ellipsis if too long
CPU model string sysinfo
GPU model string WMI Win32_VideoController, falls back to LHM tree
System brand / logo WMI Win32_ComputerSystem, Win32_ComputerSystemProduct, Win32_BaseBoard

Recognized System Brands

The header logo follows a three-step fallback chain:

  1. Brand logo — if the system matches a known gaming/OEM brand below.
  2. CPU architecture logo — Intel or AMD, derived from the CPU model string.
  3. Nothing — the logo area is hidden silently.

Brand logos

Brand is detected from WMI fields Win32_ComputerSystem.Manufacturer, Win32_ComputerSystem.Model, Win32_ComputerSystemProduct.Name/Version, and Win32_BaseBoard.Manufacturer/Product. Product-line names (Alienware, Legion, OMEN, Predator, AORUS) take priority over generic OEM names.

Logo Brand Detected when
ROG (ASUS) Manufacturer contains ASUS, ROG, or Republic of Gamers
MSI Manufacturer contains MSI, Micro-Star, or Micro Star
Alienware System name / model contains Alienware
Razer Manufacturer contains Razer
Lenovo Legion System name / model contains Legion
HP OMEN System name / model contains OMEN
Acer Predator System name / model contains Predator
AORUS System name / model contains AORUS
Gigabyte Manufacturer contains Gigabyte

CPU architecture fallback logos

If no brand logo matches, the detected CPU model string is used to show an architecture badge instead.

Logo Architecture Detected when
Intel CPU model contains Intel, Core i, Xeon, or Arc
AMD CPU model contains AMD, Ryzen, Athlon, or EPYC

Other recognized brands (ASRock, Corsair, NZXT, Dell, Lenovo, HP, Acer) fall through to the CPU architecture fallback. Fully unknown systems show nothing.


Diagnostics Export

The Status dialog has a Collect Diagnostics… button. Clicking it opens a native Windows save dialog and writes a single ZIP file that captures everything needed to investigate hardware compatibility issues, missing sensor support, or unexpected behaviour.

What Is Collected

File in ZIP Contents Why it is needed
manifest.json Collection timestamp (Unix seconds), RIGStats version Ties the report to a specific build
debug.log Full RIGStats debug log for the current session — starts with settings dir, os_dark_mode, settings summary, and all runtime events Startup sequence, connectivity, settings save errors
debug-prev.log Debug log from the previous session — preserved across restarts Captures the log from a session that crashed; ends with shutdown: clean if it closed normally, otherwise the last line before the crash is visible
settings.json Persisted user settings (opacity, profile, model name) Rules out configuration-specific issues
sidecar-parsed.json Last sensor payload received from the sidecar pipe — GPU temps, CPU temp, fan speeds, disk temps, etc. Most important file for adding sensor support — shows all extracted sensor values exactly as the app uses them
sensor-tree.txt Full LHM hardware and sensor tree as seen at the last sidecar service start — every hardware node, sub-hardware, sensor identifier, type, name, and value Use this to find the exact identifier for a sensor that isn't being picked up by SensorReader.cs
hardware.json WMI/CIM snapshot: OS version, CPU (name, cores, max clock), GPU (name, VRAM, driver), motherboard (manufacturer, model, product, base board), RAM (capacity per stick, speed, type code, manufacturer, part number) Hardware identification and brand detection
sidecar-service.txt Output of sc query and sc qc for the rigstats-sensor Windows Service Diagnose sidecar autostart and service registration failures
environment.txt USERNAME, USERDOMAIN, USERPROFILE, APPDATA, LOCALAPPDATA, COMPUTERNAME, PROCESSOR_ARCHITECTURE Identifies user account paths — essential for diagnosing child/standard account issues where APPDATA may be redirected
event-log.txt Recent Windows Application Event Log entries matching RIGStats — errors and critical events only Captures OS-level crash records that do not appear in the in-app debug log
sysinfo.json sysinfo snapshot: CPU brand, core count, memory totals, disk mount points, network interface names, detected RAM spec, ping target Verify what sysinfo sees on the machine
displays.json All connected monitors: name, resolution, position, scale factor, portrait/landscape, fit score for the active profile, and which monitor was selected Diagnose window placement and wrong-monitor issues

What Is Not Collected

  • No file paths outside the RIGStats data directory
  • No browser history, tokens, or credentials of any kind
  • No data is transmitted anywhere — the ZIP is written only to the location you choose
  • No telemetry is sent automatically at any time

The ZIP is purely a local file that you choose whether to share.


Stack

Component Role
egui / eframe Native UI (panels, settings, tray, all windows)
Rust / sysinfo CPU, RAM, disk, network data
LibreHardwareMonitor GPU/CPU sensors, disk temperatures, fan speeds
.NET / sensor sidecar Windows Service that streams LHM data over a named pipe

Quick Start

  1. Install git hooks (run once after cloning):

    cargo xtask setup
  2. Build and run the debug binary:

    cargo build --manifest-path src-egui/Cargo.toml
    .\target\debug\rigstats.exe
  3. Build a release installer:

    cargo xtask build

    The sensor sidecar exe is bundled automatically — no separate download required.

Documentation

Notes

  • Computer name, CPU model, and GPU model are detected automatically at startup
  • Display sleep is not currently blocked by the app
  • The app targets Windows 10/11 and requires no runtime (native egui binary)

License

This project is licensed under the MIT License. See the LICENSE file for details.