Real-time PC monitoring widget for Windows. A pinned, always-on-top status bar showing CPU / GPU / RAM / disk / network / processes / IP — plus a full 7-tab dashboard with hardware inventory. Built with Tauri v2 + Rust + Svelte 5.
┌──────────────────────────────────────────┐
│ root@sysmon:~$ ─ x │
│ [OVR][CPU][MEM][GPU][NET][PROC][SYS] │
│──────────────────────────────────────────│
│ root@sysmon:~$ stat --all │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ CPU 42% │ RAM 71% │ GPU 12% 47°C │
│ ▼ 1.2 MB/s ▲ 0.1 MB/s 192.168.0.x│
│ ╭──────────────────────────────╮ │
│ │ █▄ ██▄ █ │ │
│ │██ ██ █▄█ ▄██ │ │
│ ╰──────────────────────────────╯ │
└──────────────────────────────────────────┘
Download SysMonitor for Windows (.exe — 3.9 MB) ← click to download
Alternative formats:
| Format | Size | Direct link |
|---|---|---|
| NSIS installer (recommended) | 3.9 MB | SysMonitor_2.0.0_x64-setup.exe |
| MSI installer | 5.6 MB | SysMonitor_2.0.0_x64.msi |
| All releases / changelog | — | github.com/saqibzahoor-dev/sysmonitor/releases |
System requirements: Windows 10 or 11 (64-bit), .NET Framework 4.8 (preinstalled on Win10/11). ~25 MB on disk after install.
Click Download — saves SysMonitor_2.0.0_x64-setup.exe to your Downloads folder.
Double-click the installer in File Explorer.
If you see a SmartScreen warning ("Windows protected your PC"):
The installer runs automatically — no UAC prompt, no setup wizard. It extracts to %LOCALAPPDATA%\SysMonitor\ and exits.
SysMonitor launches. A thin status bar appears at the bottom-left of your primary monitor showing your CPU / RAM / GPU / network in real time.
(Optional) Pin it to startup: the installer adds a Start Menu entry. To auto-launch at login, right-click the SysMonitor entry in Start Menu → Open file location → drag the shortcut into shell:startup (run Win+R → shell:startup).
CPU temperature requires administrator privileges for the LibreHardwareMonitor kernel driver to access AMD/Intel ring-0 thermal sensors. GPU temperature works without admin.
%LOCALAPPDATA%\SysMonitor\sysmonitor.exe → Run as administratorTo make admin launch persistent, create a shortcut → Properties → Advanced → check Run as administrator.
%LOCALAPPDATA%\SysMonitor\uninstall.exeUninstall removes everything cleanly (the .exe is per-user so it does not touch other users on the machine).
| Mode | Behavior |
|---|---|
| Compact (floating) (default) | Content-sized pinned bar — drag anywhere; stays on top |
| Compact (AppBar) | Full screen-edge dock — reserves space, other windows shrink |
| Full window | Frameless 7-tab dashboard |
| Tray-only | Hidden; only the tray icon remains |
Switch from the right-click tray menu or the compact bar's right-click context menu.
| Tab | Content |
|---|---|
| OVR | At-a-glance 6-cell grid (CPU%, RAM%, GPU%, ↓↑, IP) |
| CPU | Per-core usage with ASCII bars, frequency, temperature |
| MEM | RAM/swap bars + top-5 RAM consumers |
| GPU | Per-GPU load, temperature, VRAM |
| NET | Throughput, ping, full network info, ASCII chart |
| PROC | Sortable top-10 process table + uptime |
| SYS | Hardware inventory (mobo, BIOS, RAM, CPU, GPU, drives, network adapters) |
rustup default stable-msvc)net48 target (for the C# sidecar)# Install JS deps
npm install
# Build the C# sidecar binary (one-time / after sidecar changes)
./scripts/build-sidecar.ps1
# Dev mode (hot reload)
cargo tauri dev
# Production build (installer + portable exe)
cargo tauri build
cd src-tauri
cargo test
# 114 tests pass
src-tauri/src/
lib.rs # Orchestrator, 1s tick loop, system-update event
cpu_monitor.rs # Per-core CPU usage + frequency (sysinfo)
cpu_temp.rs # CPU temperature (WMI thermal zone fallback)
memory_monitor.rs # RAM + swap (sysinfo)
disk_monitor.rs # Per-drive I/O + free space (sysinfo + WMI)
process_monitor.rs # Top-N processes + uptime (sysinfo)
gpu_monitor.rs # GPU data from sidecar bridge
network_monitor.rs # Byte-counter delta for net throughput
ping_monitor.rs # ICMP ping to 8.8.8.8
network_info.rs # SSID, IPs, gateway, DNS, MAC, signal
session_tracker.rs # Totals, peaks, active connections
event_logger.rs # Speed drop / IP change detection
system_info.rs # One-shot WMI hardware inventory
lhm_bridge.rs # Sidecar spawn + JSON parse (tokio-based)
appbar.rs # SHAppBarMessage register/unregister + DWM corner pref
corner_position.rs # Pure corner-position math (TDD-covered)
compact_menu.rs # Native popup-menu layout
settings.rs # Persistent settings + v1 migration
tray.rs # System tray icon & menu
sidecar/
Program.cs # LibreHardwareMonitorLib wrapper (net48 + Costura)
SysmonSensor.csproj
src/
routes/
+page.svelte # Full window (7 tabs)
compact/+page.svelte # Compact bar route
lib/components/ # OverviewTab, CpuTab, MemTab, GpuTab, NetTab,
# ProcTab, SysTab, CompactBar, TitleBar, TabBar, ContextMenu
lib/stores/system.js # Svelte store + Tauri event listener
lib/utils/formatting.js
styles/ # Terminal theme CSS
— — you're running non-elevated. Right-click %LOCALAPPDATA%\SysMonitor\sysmonitor.exe → Run as administrator.— — your GPU may not be supported by LibreHardwareMonitor. Currently supports NVIDIA, AMD (discrete + most APUs), and Intel.See CONTRIBUTING.md.
MIT (this project) — see LICENSE. LibreHardwareMonitorLib is MPL-2.0; the bundled DLL ships with its own license notice in the installer.
Built by Saqib Zahoor · WeboTech Studio