{"id":47604210,"url":"https://github.com/dvalfrid/rigstats","last_synced_at":"2026-06-01T00:00:48.210Z","repository":{"id":344289233,"uuid":"1181252530","full_name":"dvalfrid/rigstats","owner":"dvalfrid","description":"A gaming stats dashboard optimized for a vertical secondary display","archived":false,"fork":false,"pushed_at":"2026-05-29T20:24:56.000Z","size":6092,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T22:11:44.458Z","etag":null,"topics":["cpu","dashboard","gaming","gpu","hardware-monitoring","portrait-display","rust","system-monitor","tauri","windows"],"latest_commit_sha":null,"homepage":"https://rigstats.app/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dvalfrid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-13T23:09:33.000Z","updated_at":"2026-05-29T20:25:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"fa42c57b-4022-4758-8b9d-30322f5c7012","html_url":"https://github.com/dvalfrid/rigstats","commit_stats":null,"previous_names":["dvalfrid/rigstats"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/dvalfrid/rigstats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvalfrid%2Frigstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvalfrid%2Frigstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvalfrid%2Frigstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvalfrid%2Frigstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dvalfrid","download_url":"https://codeload.github.com/dvalfrid/rigstats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dvalfrid%2Frigstats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33753925,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu","dashboard","gaming","gpu","hardware-monitoring","portrait-display","rust","system-monitor","tauri","windows"],"created_at":"2026-04-01T19:01:12.985Z","updated_at":"2026-06-01T00:00:48.179Z","avatar_url":"https://github.com/dvalfrid.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RIGStats (rig-dashboard)\n\n- A gaming stats dashboard optimized for a vertical secondary display (450×1920).\n\n- Shows CPU, GPU, RAM, network, disk, NVMe/SSD temperatures, and motherboard sensors in real time.\n\n- Computer name, CPU model, GPU model, and motherboard name are detected automatically at startup.\n\n## Overview\n\nRIGStats is a Windows desktop dashboard built with Tauri v2. It targets a vertical secondary display and shows live CPU, GPU, RAM, network, and disk data.\n\n## Screens\n\n### Main Dashboard\n\n\u003cimg src=\"assets/rigStats.png\" width=\"260\" alt=\"Main Dashboard\"\u003e\n\nThe main dashboard is designed for a vertical secondary display and keeps the live system view visible at a glance.\n\nIt shows:\n\n- CPU load, clocks, temperature and power\n- GPU load, temperature, hotspot, clocks, VRAM and fan data\n- RAM usage and installed memory details\n- Network throughput and ping\n- Disk activity, drive usage, and NVMe/SSD temperatures\n- Motherboard sensors: fan speeds, board temperatures, and voltage rails (opt-in panel)\n\nFrom here you can:\n\n- monitor the machine continuously on a portrait side display\n- keep the app hidden to the tray when not needed\n- open the tray menu for `Settings`, `Status`, `About`, and `Updates \u0026 Changelog`\n\n### Status Dialog\n\n\u003cimg src=\"assets/status-dialog.png\" width=\"480\" alt=\"Status Dialog\"\u003e\n\nThe Status dialog is the diagnostics view for runtime health and backend troubleshooting.\n\nIt shows:\n\n- scheduled task information for LibreHardwareMonitor\n- dependency health for LibreHardwareMonitor, `sysinfo`, and `wmi`\n- the current debug log path\n- the latest debug log output\n- the timestamp for the last successful refresh\n\nFrom here you can:\n\n- confirm that sensor dependencies are healthy\n- inspect startup/runtime issues without opening external tools\n- copy the visible debug log for troubleshooting\n- refresh diagnostics on demand while the log also auto-updates in the dialog\n- export a diagnostics ZIP bundle for bug reports (see [Diagnostics Export](#diagnostics-export))\n\n### About Dialog\n\n\u003cimg src=\"assets/about-dialog.png\" width=\"480\" alt=\"About Dialog\"\u003e\n\nThe About dialog is the lightweight product-information view.\n\nIt shows:\n\n- the current RIGStats version\n- the project license name\n- direct links to the website and contact\n\nFrom here you can:\n\n- quickly verify which build/version is running\n- open rigstats.app in the default browser\n- contact the maintainer directly\n\n### Updates \u0026 Changelog Dialog\n\n\u003cimg src=\"assets/update-dialog.png\" width=\"480\" alt=\"Updates \u0026amp; Changelog Dialog\"\u003e\n\nThe Updates \u0026 Changelog dialog handles update discovery and version history.\n\nIt shows:\n\n- available update version alongside the current version (when an update exists)\n- release notes for the new version sourced from GitHub (`latest.json`)\n- full local version history (bundled CHANGELOG.md) below the new version's notes\n- download and installation progress bar\n\nFrom here you can:\n\n- install the latest version with one click\n- track download progress while the update is fetched\n- browse the complete release history with clickable links to GitHub diffs\n\n### Settings Dialog\n\n\u003cimg src=\"assets/settings-dialog.png\" width=\"480\" alt=\"Settings Dialog\"\u003e\n\nThe Settings dialog controls the dashboard presentation and placement behavior.\n\nIt shows:\n\n- opacity slider for transparency control\n- editable model name\n- display profile selector\n- always-on-top toggle\n\nFrom here you can:\n\n- change the dashboard profile for different portrait displays\n- adjust transparency live before saving\n- override the displayed model name\n- control whether the main dashboard stays on top\n\n## Hardware Support\n\nData comes from two parallel sources that are merged each refresh cycle:\n**LibreHardwareMonitor v0.9.6** (sensor telemetry via local HTTP) and **sysinfo** (OS-level counters).\nWMI provides static metadata at startup.\n\n### CPU\n\n\u003cimg src=\"assets/cpu-panel.png\" width=\"200\" alt=\"CPU panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Total load (%) | sysinfo |\n| Per-core load (%) | sysinfo |\n| Clock frequency (GHz) | sysinfo |\n| Package temperature (°C) | LHM — AMD: `Core (Tctl/Tdie)` |\n| Package power (W) | LHM — `Package` power sensor |\n\n\u003e CPU temperature is matched by sensor name: `Core (Tctl/Tdie)` for AMD Ryzen, `CPU Package` or `Core Average` for Intel.\n\u003e The AMD label is preferred when both are present (dual-CPU edge case).\n\n### GPU\n\n\u003cimg src=\"assets/gpu-panel.png\" width=\"200\" alt=\"GPU panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Core load (%) | LHM — `GPU Core` load |\n| Core temperature (°C) | LHM — `GPU Core` temperature |\n| Hot spot temperature (°C) | LHM — `GPU Hot Spot` temperature |\n| Core clock (MHz) | LHM — `GPU Core` clock |\n| Package power (W) | LHM — `GPU Package` power |\n| Fan speed (RPM) | LHM — `GPU Fan` |\n| VRAM used / total (GB) | LHM — `GPU Memory Used` / `GPU Memory Total` |\n\nSupports NVIDIA and AMD discrete GPUs through LHM.\nIntel Arc GPUs should work but have not been tested.\n\n### RAM\n\n\u003cimg src=\"assets/ram-panel.png\" width=\"200\" alt=\"RAM panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Used / free / total (GB) | sysinfo |\n| Memory type (DDR–DDR5) | WMI `Win32_PhysicalMemory.SMBIOSMemoryType` |\n| Speed (MHz) | WMI `Win32_PhysicalMemory.ConfiguredClockSpeed` / `Speed` |\n| Manufacturer \u0026 part number | WMI `Win32_PhysicalMemory` |\n\n### Storage\n\n\u003cimg src=\"assets/storage-panel.png\" width=\"200\" alt=\"Storage panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Read throughput (MB/s) | LHM — aggregated across all drives; shown as purple series in sparkline |\n| Write throughput (MB/s) | LHM — aggregated across all drives; shown as pink series in sparkline |\n| Per-drive capacity and usage | sysinfo |\n| Filesystem label | sysinfo |\n| Drive temperature (°C) | LHM — highest real temperature sensor per drive (`/nvme/`, `/hdd/`, `/ata/`, `/scsi/`, `/ssd/`), matched to drive letter via WMI at startup |\n\n### Motherboard\n\n\u003cimg src=\"assets/motherboard-panel.png\" width=\"200\" alt=\"Motherboard panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Board name | WMI `Win32_BaseBoard` — manufacturer normalized (ASUSTeK → ASUS, Micro-Star → MSI, etc.) |\n| Super I/O chip name | LHM — grandparent of the first `/lpc/` sensor node |\n| Fan speeds (RPM) | LHM — all active `/lpc/` fan channels, sorted descending; 0-RPM channels hidden |\n| Temperatures (°C) | LHM — all `/lpc/` temperature sensors ≥ 5 °C |\n| Voltage rails (V) | LHM — named `/lpc/` voltage rails only; generic `Voltage #N` slots excluded |\n\nThe 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.\n\n### Network\n\n\u003cimg src=\"assets/network-panel.png\" width=\"200\" alt=\"Network panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Upload speed (Mbps) | sysinfo — best active interface by traffic volume |\n| Download speed (Mbps) | sysinfo — best active interface by traffic volume |\n| Active interface name | sysinfo |\n| Latency / ping (ms) | Windows `ping` command — default gateway, falls back to `1.1.1.1` |\n\n### Clock\n\n\u003cimg src=\"assets/clock-panel.png\" width=\"200\" alt=\"Clock panel\"\u003e\n\n| Metric | Source |\n| --- | --- |\n| Time | sysinfo |\n| Day | sysinfo |\n| Date | sysinfo |\n\n### System Identity\n\n\u003cimg src=\"assets/system-panel.png\" width=\"200\" alt=\"System panel\"\u003e\n\n| Metadata | Source |\n| --- | --- |\n| Computer / rig name | `hostname` crate — truncated with ellipsis if too long |\n| CPU model string | sysinfo |\n| GPU model string | WMI `Win32_VideoController`, falls back to LHM tree |\n| System brand / logo | WMI `Win32_ComputerSystem`, `Win32_ComputerSystemProduct`, `Win32_BaseBoard` |\n\n### Recognized System Brands\n\nThe header logo follows a three-step fallback chain:\n\n1. **Brand logo** — if the system matches a known gaming/OEM brand below.\n2. **CPU architecture logo** — Intel or AMD, derived from the CPU model string.\n3. **Nothing** — the logo area is hidden silently.\n\n#### Brand logos\n\nBrand is detected from WMI fields `Win32_ComputerSystem.Manufacturer`, `Win32_ComputerSystem.Model`,\n`Win32_ComputerSystemProduct.Name/Version`, and `Win32_BaseBoard.Manufacturer/Product`.\nProduct-line names (Alienware, Legion, OMEN, Predator, AORUS) take priority over generic OEM names.\n\n| Logo | Brand | Detected when |\n| --- | --- | --- |\n| \u003cimg src=\"frontend/assets/ROG_logo_red.png\" width=\"48\"\u003e | **ROG (ASUS)** | Manufacturer contains `ASUS`, `ROG`, or `Republic of Gamers` |\n| \u003cimg src=\"frontend/assets/msi.png\" width=\"48\"\u003e | **MSI** | Manufacturer contains `MSI`, `Micro-Star`, or `Micro Star` |\n| \u003cimg src=\"frontend/assets/Alienware.png\" width=\"48\"\u003e | **Alienware** | System name / model contains `Alienware` |\n| \u003cimg src=\"frontend/assets/Razer.png\" width=\"48\"\u003e | **Razer** | Manufacturer contains `Razer` |\n| \u003cimg src=\"frontend/assets/Lenovo-Legion.png\" width=\"48\"\u003e | **Lenovo Legion** | System name / model contains `Legion` |\n| \u003cimg src=\"frontend/assets/HP-Omen.png\" width=\"48\"\u003e | **HP OMEN** | System name / model contains `OMEN` |\n| \u003cimg src=\"frontend/assets/Acer-Predator.png\" width=\"48\"\u003e | **Acer Predator** | System name / model contains `Predator` |\n| \u003cimg src=\"frontend/assets/AORUS-Gigabyte.png\" width=\"48\"\u003e | **AORUS** | System name / model contains `AORUS` |\n| \u003cimg src=\"frontend/assets/gigabyte.png\" width=\"48\"\u003e | **Gigabyte** | Manufacturer contains `Gigabyte` |\n\n#### CPU architecture fallback logos\n\nIf no brand logo matches, the detected CPU model string is used to show an architecture badge instead.\n\n| Logo | Architecture | Detected when |\n| --- | --- | --- |\n| \u003cimg src=\"frontend/assets/intel.png\" width=\"48\"\u003e | **Intel** | CPU model contains `Intel`, `Core i`, `Xeon`, or `Arc` |\n| \u003cimg src=\"frontend/assets/AMD-Radeon-Ryzen-Symbol.png\" width=\"48\"\u003e | **AMD** | CPU model contains `AMD`, `Ryzen`, `Athlon`, or `EPYC` |\n\nOther recognized brands (ASRock, Corsair, NZXT, Dell, Lenovo, HP, Acer) fall through to the CPU\narchitecture fallback. Fully unknown systems show nothing.\n\n---\n\n## Diagnostics Export\n\nThe 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.\n\n### What Is Collected\n\n| File in ZIP | Contents | Why it is needed |\n| --- | --- | --- |\n| `manifest.json` | Collection timestamp (Unix seconds), RIGStats version | Ties the report to a specific build |\n| `debug.log` | Full RIGStats debug log from disk | Startup sequence, LHM connectivity, error events |\n| `settings.json` | Persisted user settings (opacity, profile, model name) | Rules out configuration-specific issues |\n| `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 |\n| `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` |\n| `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 |\n| `sidecar-service.txt` | Output of `sc query` and `sc qc` for the `rigstats-sensor` Windows Service | Diagnose sidecar autostart and service registration failures |\n| `environment.txt` | `PROCESSOR_ARCHITECTURE`, `COMPUTERNAME`, Windows build and display version | OS-level context for platform-specific bugs |\n| `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 |\n| `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 |\n\n### What Is Not Collected\n\n- No file paths outside the RIGStats data directory\n- No browser history, tokens, or credentials of any kind\n- No data is transmitted anywhere — the ZIP is written only to the location you choose\n- No telemetry is sent automatically at any time\n\nThe ZIP is purely a local file that you choose whether to share.\n\n---\n\n## Stack\n\n| Component | Role |\n| --- | --- |\n| **Tauri v2** | App framework (native window, IPC, system tray, auto-update) |\n| **Rust / sysinfo** | CPU, RAM, disk, network data |\n| **LibreHardwareMonitor** | GPU/CPU sensors, disk/network throughput |\n| **HTML / CSS / JS** | Dashboard UI (renderer) |\n\n---\n\n## Quick Start\n\n1. Install dependencies:\n\n   ```powershell\n   npm install\n   ```\n\n2. Start development mode:\n\n   ```powershell\n   npm start\n   ```\n\n3. Build installer:\n\n   ```powershell\n   npm run build\n   ```\n\n  The sensor sidecar exe is bundled automatically — no separate download required.\n\n## Documentation\n\n- [Setup Guide](docs/setup.md)\n- [Release And CI](docs/release.md)\n- [Architecture](docs/architecture.md)\n- [Troubleshooting](docs/troubleshooting.md)\n- [Changelog](CHANGELOG.md)\n- [Roadmap](ROADMAP.md)\n\n## Notes\n\n- Computer name, CPU model, and GPU model are detected automatically at startup\n- Display sleep is not currently blocked by the app\n- The app targets Windows 10/11 and Tauri v2\n\n## License\n\nThis project is licensed under the MIT License.\nSee the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvalfrid%2Frigstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdvalfrid%2Frigstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdvalfrid%2Frigstats/lists"}