System Monitor
Real-time dashboard with PC Health Score, hardware metrics, and network diagnostics. Auto-refreshes every 3 seconds.
PC Health Score
Composite score from 0 to 100 with grade letter (A+ down to F). Updates on tab open or Refresh button.
RAM (30 pts): penalizes usage above 30%, 50%, 70%, 80%, 90%
CPU (20 pts): penalizes load above 25%, 50%, 70%, 90%
Disk (30 pts): independent penalties for low free GB and high % used — takes the larger penalty
Temperature (10 pts): worst of CPU and GPU temp; penalizes above 55°C, 65°C, 75°C, 85°C. GPU temp read via nvidia-smi
Uptime (10 pts): penalizes >7 days and >14 days without reboot
Actionable tips listed below the score (e.g. 'System drive 87% full — consider cleanup')
Hardware cards (3×2 layout)
Inline SVG icons throughout — chip, RAM stick, GPU PCB, disk cylinders, clock, globe.
CPU: usage % + temperature inline (when WMI exposes it — common on Intel; AMD requires OpenHardwareMonitor or LibreHardwareMonitor running)
RAM: used / total GB with gauge bar + free GB
GPU: usage % + temperature inline + name + VRAM (from nvidia-smi)
DISCO (spans 2 cols): per-drive % used with colored bars
ACTIVO: uptime (Xd Yh Zm) + boot time ('Iniciado lun 11:24')
RED (full-width below): per-host latency rows + DNS selector + speed test
Network latency & DNS
Continuously pings 1.1.1.1, 8.8.8.8, and google.com via TCP. Each result rendered as a row.
Status dot color: green (<30ms), amber (30-100ms), red (>100ms), grey (timeout)
Latency badge same color tier, monospace tabular numbers
DNS selector: 9 providers (Google, Cloudflare, OpenDNS, Quad9, AdGuard variants) + DHCP reset
Speed Test button: full Speedtest.net run via speedtest-go (download/upload/ping)
Temperature reading sources
CodeWinOptimizer tries multiple WMI namespaces and falls back gracefully.
Order: root\OpenHardwareMonitor → root\LibreHardwareMonitor → \Thermal Zone Information perf counter → MSAcpi_ThermalZoneTemperature
GPU temp: nvidia-smi --query-gpu=temperature.gpu (AMD/Intel GPU temps not yet supported)
If none returns a value (common on AMD without OHM/LHM), the CPU card simply omits the temp instead of showing 'n/a'