WinUI 3 (unpackaged, self-contained, admin). 92 detection-driven tweaks with a live score, debloat, cleanup, and tools. No snake oil - every change is backed up and revertible.
19 targets, scanned live before anything is deleted:
- Temp: user temp, Windows temp
- Caches: DirectX / NVIDIA / AMD driver caches (only the cache folders, never settings), thumbnail + icon cache, Edge / Chrome / Brave / Firefox caches
- System: Delivery Optimization cache, Windows Update leftovers, CBS/DISM logs, prefetch, previous Windows installation (Windows.old)
- Diagnostics: application crash dumps, Windows Error Reporting queue, kernel minidumps, live kernel reports (all unchecked by default)
- Recycle Bin
Files that are in use are skipped and reported, never forced. Services that lock files (wuauserv, dosvc) are stopped for the clean and restarted after, only if they were running.
Tools > Maintenance also runs DISM component store cleanup (StartComponentCleanup), which removes superseded component versions. It can take 10-30 minutes.
Grab the zip from Releases, extract it anywhere, and run Stratus.exe.
Or build from source:
dotnet build Stratus.sln -c Release
.\Stratus\bin\x64\Release\net8.0-windows10.0.22621.0\win-x64\Stratus.exe
Double-click it (UAC prompt is expected - the manifest requires administrator).
dotnet run --project Stratus.Cli -c Release -- list
dotnet run --project Stratus.Cli -c Release -- score
dotnet run --project Stratus.Cli -c Release -- info
dotnet run --project Stratus.Cli -c Release -- presets
dotnet run --project Stratus.Cli -c Release -- startup
dotnet run --project Stratus.Cli -c Release -- tasks
dotnet run --project Stratus.Cli -c Release -- cleanup
dotnet run --project Stratus.Cli -c Release -- history
dotnet run --project Stratus.Cli -c Release -- backups
dotnet run --project Stratus.Cli -c Release -- apply <tweak-id>
dotnet run --project Stratus.Cli -c Release -- revert <tweak-id>
dotnet run --project Stratus.Cli -c Release -- apply --preset <preset-id>
dotnet run --project Stratus.Cli -c Release -- revert --preset <preset-id>
dotnet run --project Stratus.Cli -c Release -- docgen
dotnet run --project Stratus.Cli -c Release -- docgen --json
dotnet run --project Stratus.Cli -c Release -- export
dotnet run --project Stratus.Cli -c Release -- import <profile.json> --dry-run
(Run from an elevated terminal for changes to succeed.)
dotnet build Stratus.sln -c Release
GitHub Actions builds the solution, runs the unit tests and a CLI smoke test on every push to main. Pushing a tag like v1.7.0 publishes the app, zips it and attaches it to a GitHub release automatically.
| Category | Count | Examples |
|---|---|---|
| Gaming | 8 | Game DVR off, Game Mode on, HAGS, FSO off, foreground priority, mouse accel off |
| Visuals | 22 | transparency off, performance visual effects, instant menus, Aero Shake off, Widgets hidden, taskbar and Explorer preferences, classic right-click menu |
| Network | 9 | Nagle off, throttling off, Games task priority, DO P2P off, SystemResponsiveness |
| Services | 19 | DiagTrack, SysMain, Spooler, Remote Registry, WER, TrkWks, PhoneSvc... |
| Privacy | 27 | telemetry, ad ID, activity, suggestions, Copilot, Recall, web search, consumer features, Edge and Brave policies, WPBT, reserved storage, OneDrive removal |
| Power | 7 | Ultimate Performance, hibernation off, Fast Startup off, EcoQoS throttling off |
Each tweak has a risk level (Safe / Recommended / Advanced), a weight used by the score, and a live IsApplied check. Tweaks that don't apply to your hardware (e.g. HAGS without an exposed HwSchMode) are excluded from the score denominator entirely.
Full reference with every registry key, default and reasoning: docs/tweaks.md (the "Learn more" link on each tweak row opens the matching section).
The Dashboard ships six curated one-click sets: Minimal, Standard, Gaming PC, Balanced, Max Privacy and Advanced. Each card shows live progress read from the system, not from what the app changed, and the same presets run headless through the CLI. Advanced presets include Advanced-risk entries, which still ask for confirmation in the app.
The Startup page lists everything that launches with Windows: the HKCU and HKLM Run keys (including the 32-bit view) and both Startup folders. Toggling uses the same mechanism as Task Manager: it writes the StartupApproved blob (02 = enabled, 03 = disabled plus a timestamp) and never touches the command itself. So the entry is not deleted, disabling is instantly reversible, and uninstalling the app later still leaves the original entry intact. "Reset changes" returns every entry Stratus touched to its exact previous state.
The Tasks page covers 16 well-known telemetry, inventory and feedback jobs (Microsoft Compatibility Appraiser, Consolidator, UsbCeip, DmClient, QueueReporting, Device, WinSAT and friends). It drives the Task Scheduler COM API directly, so it never parses localized schtasks output, and only tasks that exist on your machine are listed. Turning a task off disables it, it is never deleted, and the original state is stored in tasks.json so "Reset changes" restores it exactly.
The Debloat page lists optional features and capabilities in both directions: installed ones can be removed, missing ones can be enabled. Enable covers Windows Subsystem for Linux (with Virtual Machine Platform), Hyper-V, Windows Sandbox, .NET Framework 3.5 and the NFS client. Hyper-V carries a warning because removing it breaks WSL2 and Windows Sandbox.
The Install page drives winget from a curated catalog of 68 apps across browsers, communication, development, media, productivity, utilities and gaming. Search by name or filter by category, install or upgrade a single app, remove one, or run "Upgrade installed" to walk every catalog app that is currently installed. Installed state comes from the winget export JSON, never from parsing localized command output, and "already installed" or "already up to date" are reported as success rather than as errors. New apps are one AppEntry in AppCatalog, with no install logic in the page.
The Profile page saves every selection the app knows about into one versioned JSON file: applied tweaks, disabled startup entries and scheduled tasks, enabled Windows features, apps picked on Install, the cleanup selection, DNS profile, power plan and TCP settings. Import the file on another machine to reproduce the setup. Importing always shows a preview first, with each item marked "Will change" or "Skipped" and the reason, and it is additive only: it applies what is missing and never reverts a tweak, re-enables a task, uninstalls an app or removes a feature. A file written by a newer Stratus is refused with a clear message instead of being half read. The same file works headless through stratus export and stratus import.
Tools offers 11 DNS profiles with IPv4 and IPv6 addresses (Cloudflare, Google, Quad9, OpenDNS, AdGuard, plus their malware and family variants), a latency benchmark, and a reset back to your router's servers. IPv6 is applied best effort: an adapter with IPv6 unbound does not fail the change.
Beyond tweaks and managers, Tools has one-click fixes (point Windows time at pool.ntp.org or restore the Windows default, repair the winget sources), a launcher for 18 classic Windows consoles, restore point management, Windows Update pause, TCP settings and DISM component cleanup.
- SPEC.md describes the projects, layers, services and the tweak contract.
- AGENTS.md holds the build, test and safety rules for contributors (human or AI).
- docs/reference.md is generated from the compiled catalog by
stratus docgen;stratus docgen --jsonwrites the same metadata asdocs/catalog.json.
The Dashboard graphs the score over time from %ProgramData%\Stratus\score-history.json. A point is recorded only when the score actually changes (capped at 500), so the line stays readable.
Every apply and revert lands in %ProgramData%\Stratus\history.json (newest first, capped at 500 entries). The History page shows that timeline with an Undo button on changes still in effect, plus a viewer for every backed-up value (key path, value name, type, old value) with a Restore button per tweak.
- Closing the window hides Stratus in the notification area (toggle in Tools > Preferences); the tray tooltip shows the live score. Use Exit in the tray menu to quit for real.
- Theme follows your system by default; Dark or Light can be pinned in Tools > Preferences.
- Tweak backups:
%ProgramData%\Stratus\backups.json(every pre-change registry value / service startup state) - Settings:
%ProgramData%\Stratus\settings.json - Logs:
%ProgramData%\Stratus\logs\(one file per day, kept for 14 days) - Restore points: created via
Checkpoint-Computerbefore bulk operations (offered in "Apply recommended tweaks")
- The score reads real system state - it does not care who made a change.
- Every registry write is backed up first; Revert restores the exact original value.
- Advanced tweaks always show a confirmation dialog. Safe/Recommended do not.
- "Revert all tweaks" (Tools page) returns everything Stratus detects as applied to Windows defaults.