An all-in-one control suite for custom gaming PCs — hardware monitoring, a real portrait-display mode, a Windows optimisation centre, RGB control without extra software, and per-game automation. One clean, fast, unpackaged Windows app.
Every existing option is either bloated and slow (HWiNFO's sheer density, Armoury Crate's background services), locked to one vendor's ecosystem (NZXT CAM, ASUS Aura), or asks you to install something else first (OpenRGB, RTSS, iCUE) just to see your own hardware. Aether Control is built to be significantly cleaner, faster, and more focused than any of them — real sensor data, real RGB control, real Windows tuning, with as few extra moving parts as the platform allows.
One panel answers "is my PC OK right now?" — a system verdict in words, headline CPU/GPU/memory gauges, last-minute load trends, then live CPU / GPU / RAM / Storage / Motherboard / Network cards with sparkline history and tone-based severity colouring. Card rows scale with the window — edge to edge at any width. A Top Processes panel answers "what's using my CPU" without opening Task Manager.
A dedicated layout for a second monitor rotated to portrait — usage rings with history sparklines, per-fan RPM with click-to-rename, RAM/drive temp, live FPS via RTSS shared memory, and a top-processes panel. Resizable from its edges, one-click fill, and FILL keeps following the display you drag it onto.
Memory optimisation with a live readout (used %, in use / available / total) and before/after/freed result cards, a Storage Cleaner that scans real on-disk sizes before touching anything, a Startup Manager with publisher/impact per entry, Fan Control that reads and writes PWM headers with a safety floor, and Game Profiles that auto-apply a performance plan while a tracked game is running.
Corsair keyboards and mice controlled directly over USB — no iCUE, no OpenRGB, nothing to install. Everything else routes through OpenRGB's SDK server if it's running. Peripheral detection works independently and needs zero vendor software either.
Detected peripherals by vendor, quick links to each vendor's own configuration software, and an honest firmware/driver overview — BIOS version + ROM date, GPU name + driver, chipset INF (or a real motherboard-model row), each linked to that vendor's support page. An optional Windows Update search lists pending driver/firmware updates; Aether never installs anything.
Toast notifications when CPU/GPU temperature crosses a threshold you set, with hysteresis so it doesn't spam you at the line. Live metrics on tray hover. History records every tracked metric on a 60-second cadence and rolls it up daily/weekly/monthly, charted.
A capability report (app and library versions, OS, elevation state, detected hardware, live sensor counts) plus one-click export of a support zip — report, latest snapshot and recent logs — so a bug report carries its own evidence.
IAetherPlugin plus optional capability interfaces (IDashboardWidgetProvider, ITrayMetricProvider, IOptimisationTaskProvider). Each plugin loads into its own collectible AssemblyLoadContext — add or remove one without restarting the app.
GlobalMemoryStatusEx directly after LibreHardwareMonitor's own Memory sensor was caught, via a live diagnostic, reporting physically impossible numbers on real hardware.
| Project | TFM | Purpose |
|---|---|---|
AetherControl.Core | net8.0 | Models, enums, service interfaces, events — no dependencies |
AetherControl.Plugins.Abstractions | net8.0 | IAetherPlugin and capability interfaces third-party modules implement |
AetherControl.Data | net8.0 | SQLite schema, migrations, repositories (settings, history, layouts) |
AetherControl.Services | net8.0-windows | Hardware monitoring, optimisation, RGB (Corsair direct HID + OpenRGB), firmware/driver detection, plugin loading |
AetherControl.App | net8.0-windows10.0.19041.0 | WinUI 3 shell — overview, portrait mode, tray, all feature pages |
AetherControl.Plugins.Sample | net8.0 | Reference plugin (system uptime widget) |
tests/AetherControl.Tests | net8.0-windows | xUnit tests against the Data/Services layer (run in CI on every push) |
MVVM throughout the app layer (CommunityToolkit.Mvvm), one safe
LibreHardwareMonitor session shared across the whole app (with self-healing
reads that detect poisoned Super I/O values and reopen instead of publishing
garbage), SQLite (WAL mode) for durable state, and small JSON stores for
state that doesn't need a relational shape. Ships as its own standalone
.exe — unpackaged, not MSIX.
Built in tracked phases — ROADMAP.md is the full, honest build log: what's done, what's deliberately deferred and why, and bugs that were root-caused with real diagnostic traces rather than guessed at.
Rather than re-deriving hardware-sensor behaviour from scratch, the parts that needed real-hardware validation were ported from proven, already-tested code.
CPU/GPU/RAM sensor name-matching, best-GPU-by-VRAM selection, FanLabelStore, ProcessRankerService, RtssFpsSource, and Portrait Mode's entire layout and control set.
CorsairHidDirect ported into CorsairHidDirectService — direct-HID Corsair RGB control, including the full known-product table and per-PID HID report layouts.
Visual reference for radial gauges, animated numbers, severity-based tone colouring, the RAM cleaner technique, and Startup Manager's layout.