Skip to content

Repository files navigation

🌡️ ThermalWatch

ThermalWatch Logo

ThermalWatch

A lightweight, silent hardware thermal guardian for Windows — living in your system tray, watching your CPU and GPU so you don't have to.

Platform Python License Version

No bloated dashboards. No 200MB Electron monster eating your RAM. Just a tiny tray icon that quietly watches your temps and yells at you — on your desktop and on your phone — the second something starts cooking.


📸 What It Looks Like

🖥️ Desktop Widget (v1.5.0 Frameless Rounded Design)

ThermalWatch v1.5.0 Desktop Widget

⚙️ Settings Panel (v1.5.0 Fluent Navigation & Controls)

Limits & Widget Configuration Hardware Fan Speed Control (Beta)

🚀 Why ThermalWatch?

Most hardware monitoring tools want to be the center of your desktop: giant overlays, gamer-RGB dashboards, constant CPU overhead just to tell you a number you'll glance at once a week. ThermalWatch flips that. It sits invisibly in your tray, sips almost no resources, and only speaks up when it actually matters — when your CPU or GPU crosses a threshold you define. Then it tells you twice: once on your screen, once on your phone (via ntfy.sh), so you find out even if you've walked away from your desk.

Built by people who got burned (pun intended) by a real AMD Ryzen thermal-reporting nightmare — see the Troubleshooting Saga below — and turned that pain into a feature.


✨ Features

  • 🖥️ Silent System Tray Operation — No taskbar clutter, no intrusive windows. It just lives quietly next to your clock.
  • 🤖 AI Thermal Health Advisor — Uses Google Gemini 2.5 Flash API or 100% offline Local Ollama LLM to analyze rolling 10-minute telemetry logs and diagnose thermal paste degradation, cooler pump failures, or airflow bottlenecks.
  • 🌡️ Extended Sensor Suite — Tracks CPU/GPU temperatures, live usage load rates (%), fan speeds (RPM), RAM usage/temps, NVMe/SATA SSD drive temperatures, VRM/PCH motherboard temperatures, CPU/GPU Package Power (Watts), Vcore voltages, and AMD Ryzen PBO (PPT, TDC, EDC) using LibreHardwareMonitorLib via pythonnet.
  • 🔥 Thermal Throttling Guardian — Monitors hardware thermal limit & frequency throttling flags, dispatching high-priority Windows Toast/mobile alerts and displaying a 🔥 THERMAL THROTTLING DETECTED alarm badge on the widget.
  • 🌀 Safe Hardware Fan Speed Control (Beta) — Software fan speed override engine with hardware safety features: presets (Auto, Quiet 30%, Medium 50%, High 75%, Full 100%), minimum 30% safety floor, and automatic BIOS control restoration (SetDefault()) on app exit or disabled state.
  • 🔔 Dual Alert System — Get notified locally via native Windows Toast Notifications (winotify) and remotely on your phone via ntfy.sh push notifications, so you're covered whether you're at your desk or across the room.
  • Live Real-Time Widget Hot-Reload — Sensor toggles update live on the desktop widget without restarting, with dynamic geometry height auto-resizing.
  • 🎨 Win32 Hardware-Clipped Widget — Sleek, frameless desktop widget with native Win32 window region rounding (CreateRoundRectRgn) and DWM rounded corner integration, eliminating border artifacts across all wallpapers.
  • Auto-Start on Boot (Admin-Safe) — Integrates directly with Windows Task Scheduler to launch silently at startup with the highest privileges without triggering UAC prompts every boot.
  • 🛠️ Built-in AMD Ryzen Fix — Dedicated "Download PawnIO Driver" tab in Settings for easy modern kernel driver installation on AMD Ryzen systems.
  • 🍃 Resource Efficient & Optimized — Uses lazy-loading of UI libraries to consume less than 95-130MB RAM in tray-only mode, with zero idle overhead when settings tabs are inactive.

🧰 Tech Stack

Component Technology Purpose
Language Python 3.11 Core application logic
GUI Framework CustomTkinter Modern Windows 11 Fluent interface
AI Advisor Gemini 2.5 Flash / Local Ollama Automated thermal health diagnostics & analysis
Tray Integration pystray System tray icon & menu management
Notifications winotify Native Windows 10/11 toast notifications
Mobile Push requests + ntfy.sh Remote push alerts to your phone
Hardware Access pythonnet + LibreHardwareMonitorLib.dll Bridges .NET hardware sensor library into Python

💡 The AMD Ryzen & PawnIO Saga

On AMD Ryzen processors (e.g., Ryzen 7 5700X), reading low-level SMU mailbox registers (PPT, TDC, EDC, Package Power, Core Temp) requires modern kernel-level driver access. Modern Windows 11 Core Isolation / Memory Integrity silently blocks legacy drivers.

To fix this:

  1. Open Settings → PawnIO Help in ThermalWatch.
  2. Click Download PawnIO Driver to install the modern signed kernel driver from pawnio.eu.
  3. Restart ThermalWatch as Administrator — full telemetry will populate instantly.

📦 Installation

Prerequisites

  • Windows 10 / 11 (64-bit)
  • Administrator access (required for low-level hardware sensor registers)

🅰️ Option A — Quick Start (Prebuilt .exe)

  1. Head to the Releases page and download ThermalWatch.exe.
  2. Right-click → "Run as administrator".
  3. The tray icon will appear next to your clock.

🅱️ Option B — Run from Source

git clone https://github.com/UmutCansinTorgayli/ThermalWatch.git
cd ThermalWatch
pip install -r requirements.txt
python main.py

🔨 Building Standalone Executable

pyinstaller --clean --noconfirm ThermalWatch.spec

📜 Release History

v1.5.0 — Expanded Sensors, Thermal Throttling, Preset Fan Control & UI Polish

  • 🔍 Expanded Hardware Sensors: Real-time tracking for RAM, NVMe/SATA SSDs, VRM & PCH motherboard temperatures, Package Power (Watts), Vcore voltages, and AMD Ryzen PBO (PPT, TDC, EDC).
  • 🔥 Thermal Throttling Guardian: High-priority throttling notifications and widget warning badge (🔥 THERMAL THROTTLING DETECTED).
  • 🌀 Safe Hardware Fan Speed Control (Beta): Preset speed modes (Auto (BIOS Default), Quiet 30%, Medium 50%, High 75%, Full 100%) with minimum 30% safety limit and automatic BIOS recovery on exit.
  • 🤖 AI Thermal Health Advisor: Integrated Gemini 2.5 Flash and local Ollama support for automated 10-minute telemetry diagnostics.
  • Live Real-Time Widget Hot-Reload: Instant update of sensor toggles without restarting, featuring dynamic geometry height auto-resizing.
  • 🎨 Win32 Window Clipping: Hardware-clipped window region (CreateRoundRectRgn) for smooth anti-aliased rounded corners on the widget.
  • 0% Idle UI Overhead: Paused 40ms canvas loop when settings telemetry page is inactive.

📄 License

Distributed under the MIT License. See LICENSE for details.

About

A modern Windows hardware monitor that tracks CPU/GPU thermals, loads, and fan speeds in real-time, featuring rule-based and AI-powered (Gemini & Ollama) diagnostic health reports.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages