Windows hardware monitor with a Python/Tkinter UI and a self-contained .NET bridge built on LibreHardwareMonitor. Shows real-time CPU, GPU, RAM, and storage data with live graphs, AVX2/FMA stress testing, and RAM stability testing. Requires Administrator rights for low-level sensor access.
main.py— app entry pointcore/— Python UI, sensor bridge client, formatting, and stress test orchestrationLHMBridge/— self-contained .NET sensor bridge, exposes local HTTP endpointsassets/— app icon (logo.ico) used by PyInstallervendor/— checked-in LibreHardwareMonitor runtime filesbuild_all.bat— full clean release build (bridge → PyInstaller → installer)dev.bat— fast local run for development (auto-elevates, rebuilds bridge if needed)obfuscar.xml— Obfuscar config for LHMBridge.dll symbol obfuscationrequirements.txt— Python runtime dependenciesrequirements-build.txt— build-time dependencies
git clone https://github.com/toadjo/HardwareToad
cd HardwareToad
pip install -r requirements.txt
dev.bat- Auto-elevates to Administrator
- Rebuilds
dist\LHMBridgewhen the exe or required DLLs are missing - Starts
LHMBridge.exeand launchesmain.py
- Cleans all build artifacts
- Installs Python build dependencies
- Publishes LHMBridge (with Obfuscar obfuscation if installed)
- Packages the app with PyInstaller using
hardware_toad.spec - Reads
APP_VERSIONfromcore/constants.pyand passes it to Inno Setup
- Windows 10 or newer (64-bit)
- Python 3.11+
- .NET SDK (to build LHMBridge from source)
- Inno Setup 6 (optional, for installer output)
- Administrator rights at runtime
HardwareToad includes several layers of protection for the local sensor bridge:
- Token auth — a random 256-bit token is generated at startup and required on every HTTP request to LHMBridge
- SHA256 integrity check — LHMBridge.exe is hashed on first run; any modification is detected and blocks startup
- Obfuscar — LHMBridge.dll symbols are renamed at build time. Install with:
dotnet tool install --tool-path .tools\obfuscar Obfuscar.GlobalTool
dist/is generated output — do not treat as sourcevendor/LibreHardwareMonitor/contains the runtime files used byLHMBridge.csproj- The app icon is embedded via
assets\logo.ico— referenced inhardware_toad.spec - Version lives in one place:
core/constants.py→APP_VERSION