Skip to content

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, .dat traffic 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 bidirectional window.chrome.webview JSON messaging.

Next Steps for Developers

Released under the GNU General Public License v3.0.