# vlottiz/vexis-pc-monitor-and-controll architecture

> Architecture diagram of the GitHub repository vlottiz/vexis-pc-monitor-and-controll, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vlottiz/vexis-pc-monitor-and-controll
- Repository: https://github.com/vlottiz/vexis-pc-monitor-and-controll

## Overview

VEXIS is a Windows hardware-monitoring and control app. Users navigate its WebView dashboard to inspect live hardware and processes, control fans and RGB, and use recording and maintenance tools; MainForm is the host that connects the UI to runtime services. The README documents broader dashboard and control capabilities than the sampled excerpts demonstrate, so uncertain internal wiring is omitted. External hardware and integrations are shown at the relevant service boundaries.

Main entry points: [`MainForm.cs`](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MainForm.cs) (App host), [`nav.js`](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/nav.js) (Navigation and settings UI), [`storage.html`](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/storage.html) (Storage page), [`SensorService.cs`](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/SensorService.cs) (Hardware readings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Dashboard UI"]
  node_main["App host<br/>[MainForm.cs]"]
  node_nav["Navigation and settings UI<br/>[nav.js]"]
  node_home["Dashboard<br/>[home.html]"]
  node_monitorpages["Monitor pages<br/>[temps.html]"]
  node_storagepage["Storage page<br/>[storage.html]"]
  node_processpage["Processes page<br/>[processes.html]"]
  node_threadpage["Thread viewer<br/>[threads.html]"]
  node_fanpage["Fan control page<br/>[fans.html]"]
  node_rgbpage["RGB page<br/>[rgb.html]"]
  node_recordpage["Recording page<br/>[record.html]"]
end

subgraph group_monitor["Monitoring"]
  node_sensors["Hardware readings<br/>[SensorService.cs]"]
  node_hardwaredb["Hardware identification<br/>[HardwareDB.cs]"]
  node_storage["Drive readings<br/>[StorageReader.cs]"]
  node_processes["Process monitor<br/>[ProcessMonitor.cs]"]
end

subgraph group_control["Device control"]
  node_fans["Fan control<br/>[FanController.cs]"]
  node_profiles["Fan profiles<br/>[FanProfiles.cs]"]
  node_openrgb["OpenRGB protocol client<br/>[OpenRGBClient.cs]"]
  node_msi["MSI RGB clients"]
  node_hid["MSI HID client<br/>[MsiHidClient.cs]"]
end

subgraph group_tools["Tools and settings"]
  node_recorder["CSV recorder<br/>[CsvRecorder.cs]"]
  node_duplicates["Duplicate finder<br/>[DuplicateFinder.cs]"]
  node_config["App configuration<br/>[Config.cs]"]
  node_updates["Update manager<br/>[UpdateManager.cs]"]
end

subgraph group_platform["Windows integrations"]
  node_startup["Startup manager<br/>[StartupManager.cs]"]
end

node_user(("PC user"))
node_windows["Windows hardware and OS"]
node_hardware["PC hardware"]
node_openrgbservice["OpenRGB service"]
node_msicenter["MSI Center SDK"]
node_github["GitHub releases"]

node_user -->|"opens and uses"| node_main
node_main -->|"hosts UI"| node_nav
node_nav -->|"navigates"| node_home
node_nav -->|"navigates"| node_monitorpages
node_nav -->|"navigates"| node_storagepage
node_nav -->|"navigates"| node_processpage
node_nav -->|"navigates"| node_threadpage
node_nav -->|"navigates"| node_fanpage
node_nav -->|"navigates"| node_rgbpage
node_nav -->|"navigates"| node_recordpage
node_home -->|"requests data"| node_main
node_monitorpages -->|"requests data"| node_main
node_storagepage -->|"requests data"| node_main
node_processpage -->|"requests data"| node_main
node_threadpage -->|"requests data"| node_main
node_main -->|"starts and polls"| node_sensors
node_main -->|"requests drive data"| node_storage
node_main -->|"requests process data"| node_processes
node_sensors -->|"reads sensors"| node_hardware
node_sensors -.->|"uses fallback data"| node_hardwaredb
node_hardwaredb -->|"queries WMI"| node_windows
node_storage -->|"queries drive data"| node_windows
node_processes -->|"reads processes"| node_windows
node_fanpage -->|"sends controls"| node_main
node_main -->|"dispatches fan actions"| node_fans
node_main -->|"applies profiles"| node_profiles
node_fans -->|"reads and controls fans"| node_hardware
node_main -.->|"dispatches RGB actions"| node_openrgb
node_main -.->|"dispatches RGB actions"| node_msi
node_main -.->|"dispatches RGB actions"| node_hid
node_openrgb -.->|"uses SDK protocol"| node_openrgbservice
node_msi -.->|"calls local SDK"| node_msicenter
node_hid -.->|"controls device"| node_hardware
node_recordpage -->|"sends recording commands"| node_main
node_main -->|"starts and manages"| node_recorder
node_recorder -->|"writes CSV files"| node_windows
node_storagepage -->|"requests duplicate scan"| node_main
node_main -->|"dispatches scan"| node_duplicates
node_duplicates -->|"scans files"| node_windows
node_nav -->|"saves preferences"| node_config
node_main -->|"loads settings"| node_config
node_main -->|"checks and installs"| node_updates
node_updates -->|"checks and downloads"| node_github
node_main -->|"sets logon startup"| node_startup
node_startup -->|"registers scheduled task"| node_windows

click node_main "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MainForm.cs"
click node_nav "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/nav.js"
click node_home "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/home.html"
click node_monitorpages "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/temps.html"
click node_storagepage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/storage.html"
click node_processpage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/processes.html"
click node_threadpage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/threads.html"
click node_fanpage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/fans.html"
click node_rgbpage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/rgb.html"
click node_recordpage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/record.html"
click node_sensors "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/SensorService.cs"
click node_hardwaredb "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/HardwareDB.cs"
click node_storage "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/StorageReader.cs"
click node_processes "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/ProcessMonitor.cs"
click node_fans "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/FanController.cs"
click node_profiles "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/FanProfiles.cs"
click node_openrgb "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/OpenRGBClient.cs"
click node_msi "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MysticLightClient.cs"
click node_hid "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MsiHidClient.cs"
click node_recorder "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/CsvRecorder.cs"
click node_duplicates "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/DuplicateFinder.cs"
click node_config "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/Config.cs"
click node_updates "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/UpdateManager.cs"
click node_startup "https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/StartupManager.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_nav,node_home,node_monitorpages,node_storagepage,node_processpage,node_threadpage,node_fanpage,node_rgbpage,node_recordpage,node_user toneBlue
class node_sensors,node_hardwaredb,node_storage,node_processes toneAmber
class node_fans,node_profiles,node_openrgb,node_msi,node_hid toneMint
class node_recorder,node_duplicates,node_config,node_updates toneRose
class node_startup,node_windows,node_hardware,node_openrgbservice,node_msicenter,node_github toneIndigo
```

## Components

### Dashboard UI

- [App host](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MainForm.cs): `MainForm.cs`
- [Navigation and settings UI](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/nav.js): `nav.js`
- [Dashboard](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/home.html): `home.html`
- [Monitor pages](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/temps.html): `temps.html`
- [Storage page](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/storage.html): `storage.html`
- [Processes page](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/processes.html): `processes.html`
- [Thread viewer](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/threads.html): `threads.html`
- [Fan control page](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/fans.html): `fans.html`
- [RGB page](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/rgb.html): `rgb.html`
- [Recording page](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/record.html): `record.html`

### Monitoring

- [Hardware readings](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/SensorService.cs): `SensorService.cs`
- [Hardware identification](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/HardwareDB.cs): `HardwareDB.cs`
- [Drive readings](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/StorageReader.cs): `StorageReader.cs`
- [Process monitor](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/ProcessMonitor.cs): `ProcessMonitor.cs`

### Device control

- [Fan control](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/FanController.cs): `FanController.cs`
- [Fan profiles](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/FanProfiles.cs): `FanProfiles.cs`
- [OpenRGB protocol client](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/OpenRGBClient.cs): `OpenRGBClient.cs`
- [MSI RGB clients](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MysticLightClient.cs): `MysticLightClient.cs`
- [MSI HID client](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/MsiHidClient.cs): `MsiHidClient.cs`

### Tools and settings

- [CSV recorder](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/CsvRecorder.cs): `CsvRecorder.cs`
- [Duplicate finder](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/DuplicateFinder.cs): `DuplicateFinder.cs`
- [App configuration](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/Config.cs): `Config.cs`
- [Update manager](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/UpdateManager.cs): `UpdateManager.cs`

### Windows integrations

- [Startup manager](https://github.com/vlottiz/vexis-pc-monitor-and-controll/blob/main/StartupManager.cs): `StartupManager.cs`

### Other components

- **PC user**
- **Windows hardware and OS**
- **PC hardware**
- **OpenRGB service**
- **MSI Center SDK**
- **GitHub releases**

## Connections

- PC user → App host: opens and uses
- App host → Navigation and settings UI: hosts UI
- Navigation and settings UI → Dashboard: navigates
- Navigation and settings UI → Monitor pages: navigates
- Navigation and settings UI → Storage page: navigates
- Navigation and settings UI → Processes page: navigates
- Navigation and settings UI → Thread viewer: navigates
- Navigation and settings UI → Fan control page: navigates
- Navigation and settings UI → RGB page: navigates
- Navigation and settings UI → Recording page: navigates
- Dashboard → App host: requests data
- Monitor pages → App host: requests data
- Storage page → App host: requests data
- Processes page → App host: requests data
- Thread viewer → App host: requests data
- App host → Hardware readings: starts and polls
- App host → Drive readings: requests drive data
- App host → Process monitor: requests process data
- Hardware readings → PC hardware: reads sensors
- Hardware readings → Hardware identification: uses fallback data
- Hardware identification → Windows hardware and OS: queries WMI
- Drive readings → Windows hardware and OS: queries drive data
- Process monitor → Windows hardware and OS: reads processes
- Fan control page → App host: sends controls
- App host → Fan control: dispatches fan actions
- App host → Fan profiles: applies profiles
- Fan control → PC hardware: reads and controls fans
- App host → OpenRGB protocol client: dispatches RGB actions
- App host → MSI RGB clients: dispatches RGB actions
- App host → MSI HID client: dispatches RGB actions
- OpenRGB protocol client → OpenRGB service: uses SDK protocol
- MSI RGB clients → MSI Center SDK: calls local SDK
- MSI HID client → PC hardware: controls device
- Recording page → App host: sends recording commands
- App host → CSV recorder: starts and manages
- CSV recorder → Windows hardware and OS: writes CSV files
- Storage page → App host: requests duplicate scan
- App host → Duplicate finder: dispatches scan
- Duplicate finder → Windows hardware and OS: scans files
- Navigation and settings UI → App configuration: saves preferences
- App host → App configuration: loads settings
- App host → Update manager: checks and installs
- Update manager → GitHub releases: checks and downloads
- App host → Startup manager: sets logon startup
- Startup manager → Windows hardware and OS: registers scheduled task
