HumWatch
"What hums beneath the shell."
A self-hosted, local-first hardware monitoring system for Windows and Linux PCs. Each machine runs a lightweight agent that collects full hardware telemetry — thermals, performance, battery, fans, processes — stores a year of rolling history in a local SQLite database, and serves a real-time dashboard on a single port. No cloud. No accounts. All data stays on your machine. Network-agnostic — works over LAN, Tailscale, ZeroTier, WireGuard, or any overlay network.
Primary Stanzas
Zero-Config Discovery
If your machine has a battery, battery metrics appear. If it has a discrete GPU, GPU metrics appear. No config files to edit, no hardware to specify. HumWatch figures it out.
7-Day Rolling History
All telemetry is stored in a local SQLite database in WAL mode. Query historical data through the REST API with automatic downsampling based on the requested time range. Old data rolls off after 7 days.
Network-Agnostic
Designed to work over any network you already have. LAN, Tailscale, ZeroTier, WireGuard — if machines can reach each other, HumWatch works. Auto-discovers other instances on your local subnet and via Tailscale or ZeroTier CLI if installed.
Active Transmissions
System Manifest
HumWatch serves a full dashboard from the same port as its API. Each section gets its own sidebar page with dedicated visualizations.
[Overview]
CPU load, GPU load, RAM usage, temperatures, and battery at a glance. Everything important on one screen.
[CPU & GPU]
Per-core load and temperatures, clock speeds, power draw. GPU metrics appear automatically when a discrete GPU is present — no configuration needed.
[Memory, Disk & Network]
RAM and swap usage over time, top memory consumers, read and write speeds, volume usage, upload and download rates with cumulative transfer tracking.
[Processes]
Top 10 resource-consuming processes, updated live. See what is eating your CPU and memory in real time.
[Machines]
Multi-machine view with status cards. Add machines by IP — or let HumWatch auto-discover other instances on your local subnet and via Tailscale or ZeroTier CLI. Click any card to open that machine's full dashboard. Each agent listens on every interface by default, so it answers on localhost and on its LAN or overlay address without configuration. Set host in config.json to 127.0.0.1 if you want it local-only.
[Connection Status]
The sidebar shows a live connection indicator: green means live, amber means reconnecting, gray means disconnected. All updates arrive via Server-Sent Events — no polling, no page refresh.
Hardware Telemetry
- CPU per-core temp, load, clock speed, power
- GPU temp, load, VRAM, core/mem clocks
- Memory & Swap usage over time
- Disk read/write throughput and volume usage
- Network upload/download and cumulative transfer
- Battery charge level, rate, voltage, and health
- Individual fan RPMs
- Top processes by CPU and memory
Additional Components
[Theme Engine]
Ships with three themes: Default (void black with gold and teal accents), Light (warm off-white with blue), and Terminal (green on black, monospace, scanlines). Creating your own is a matter of editing CSS custom properties.
[REST API]
Every metric HumWatch collects is available through a clean REST API on the same port as the dashboard. Health checks, machine identity, current readings, historical time-series, process lists, and a Server-Sent Events stream for real-time integration.
Installation
[Windows Installer (Recommended)]
Download HumWatch-Setup-vX.X.X.exe from the releases page and run it. The installer bundles Python 3.12, all dependencies, LibreHardwareMonitor, Windows service registration, a firewall rule, and auto-start on boot. Once installed, open http://localhost:9100 in your browser.
[Linux Package]
Grab the .deb from the releases page and install it with sudo dpkg -i humwatch_X.X.X_amd64.deb. It drops into /opt/HumWatch, registers a systemd service, and starts on boot. A portable tarball is there too if you would rather not touch your package manager. Sensor data comes from amdgpu sysfs and psutil.
[From Source (Windows or Linux)]
- Clone the repository and run
pip install -r requirements.txt - (Windows) Optionally run the LibreHardwareMonitor download script for full sensor access.
- Run
python -m agent.mainto start the agent (or set it up as a systemd service). - Open http://localhost:9100 in your browser.
[Sensor Access Note]
On Windows without LibreHardwareMonitor, or on Linux natively, HumWatch runs in psutil-only mode — CPU load, memory, disk, network, battery basics, and temperatures (if exposed via native sensors). With LHM on Windows, you also get advanced voltages, GPU metrics, fan speeds, and per-core clocks.
Requirements
- OS: Windows 10/11 or Linux
- Browser: Any modern browser for the dashboard
- Optional: Tailscale, ZeroTier, WireGuard, or similar for multi-machine access across networks
Tech Stack
- Agent: Python, FastAPI, Uvicorn, psutil, aiosqlite
- Sensors: LibreHardwareMonitor (optional, via pythonnet)
- Database: SQLite in WAL mode
- Dashboard: Vanilla JavaScript, Chart.js 4, Lucide Icons
- Fonts: Inter, JetBrains Mono
Get HumWatch
GPL-3.0 — Copyright © 2026 Static Hum Studio