WinMonitor is a lightweight Windows hardware monitor built with .NET 10 WinForms. It combines live sensor readings, configurable system-tray icons, independent-scale charts, alerts, and CSV history in a compact desktop application.
- Monitors supported CPU, GPU, storage, memory, battery, motherboard, and fan sensors through LibreHardwareMonitor.
- Shows temperature, power, clock, load, voltage, data, PWM, and RPM values with session minimum, maximum, and average statistics.
- Displays configurable tray icons with units, threshold colors, multi-sensor rotation, and compact-mode access.
- Charts selected sensors over 1, 3, 5, 10, 20, 30, or 60 minutes. Quantity groups use independent Y axes, distinct markers, and hover labels.
- Provides threshold alerts, profiles, automatic startup, adaptive polling, daily peak reset, and English/Traditional Chinese UI.
- Exports every recorded sample from the current application session as a time-series CSV. Optional background logging writes daily CSV files.
- Reports CPU thermal-throttling state when supported, with a temperature-based fallback when direct MSR status is unavailable.
- Includes read-only ACPI EC support for known LG gram fan-speed registers. WinMonitor never writes EC registers.
- Windows 10 or Windows 11, x64
- .NET 10 Desktop Runtime to run a framework-dependent build
- .NET 10 SDK to build from source
- Administrator privileges for the widest CPU, NVMe SMART, and EC sensor access
- PawnIO 2.2.0 or later for supported privileged and EC telemetry
dotnet run --project .\src\WinMonitor\WinMonitor.csprojFor hardware diagnostics, run the sensor inventory tool from an elevated terminal:
dotnet run --project .\tools\SensorDump\SensorDump.csprojdotnet build .\src\WinMonitor\WinMonitor.csproj -c Release
dotnet run --project .\tests\WinMonitor.Tests\WinMonitor.Tests.csproj -c Release
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\publish.ps1publish.ps1 creates installed and portable builds under dist\. The portable build stores configuration beside the executable; the installed build uses %AppData%\WinMonitor.
| Path | Purpose |
|---|---|
src/WinMonitor |
WinForms application, sensor services, UI, tray integration, and configuration |
tests/WinMonitor.Tests |
Package-free regression harness |
tools/SensorDump |
Elevated sensor and EC diagnostic utility |
docs |
Hardware-specific notes and fan telemetry guidance |
ARCHITECTURE.md |
Module contracts, threading rules, and data flow |
Sensor availability depends on the hardware, firmware, privileges, and driver version. The bundled LG fan mapping currently targets known 16T90R/gram 360 firmware fields; other systems may require a new read-only profile. Use SensorDump before reporting missing telemetry.
WinMonitor's original source code is Copyright (c) 2026 Michael Lin and is available under the MIT License. Third-party components retain their own licenses; exact versions, source locations, and redistributed license texts are documented in THIRD_PARTY_NOTICES.md and licenses/. Release archives include these files and they must be preserved when redistributing WinMonitor.