Developer & Contributor Guide - Architecture Overview
Welcome to the LocalTelemetry Developer & Contributor Guide!
This guide is designed for developers, contributors and open-source enthusiasts interested in understanding, building, forking or extending LocalTelemetry.
🏗️ High-Level System Architecture
LocalTelemetry is composed of three main projects in a decoupled C# / .NET 10 solution, coupled with a modern Svelte 5 frontend:
Key Subsystems
1. LocalTelemetry.Core (.NET 10 Class Library)
- Responsibility: Hardware sensor monitoring, vendor API bindings (NVML, ADL, Intel ControlLib, WDDM GPU counters), SRUM ESE parsing,
.dattraffic import and JSON configuration management. - Dependencies: No UI framework dependencies (pure C# logic).
2. LocalTelemetry.App (.NET 10 WPF Application)
- Responsibility: Manages the main application lifecycle, Win32 P/Invoke taskbar window docking (
TaskbarOverlay), System Tray context menu (TrayIconManager) and hosting WebView2 for the Svelte 5 settings panel (SettingsShell).
3. LocalTelemetry.Notifier (.NET 10 WinForms Helper)
- Responsibility: Standalone, lightweight popup notification tool. Receives alert payloads over a named pipe (
LocalTelemetryNotifier) and exits automatically when the main app (its parent process) closes.
4. Svelte 5 Settings UI (src/LocalTelemetry.App/Settings/wwwroot)
- Responsibility: Modern dark-mode configuration UI built with Svelte 5 runes (
$state,$derived,$effect), Vite, Bun and TypeScript. Communicates with WPF via bidirectionalwindow.chrome.webviewJSON messaging.