A Windows system-tray app that backs up your app configs, profiles, and registry settings to OneDrive — so a fresh Windows install takes minutes, not hours.
Built with C# / WPF / .NET 9. Personal-use project.
- Backs up config files, profiles, and registry keys for tracked apps to OneDrive (SHA-256 diff — only copies changed files)
- Restores them on a new machine with a single click, with optional winget install before restore
- Tracks backup status per app — shows last backup time, file count, backup size
- Dark UI with system tray icon, per-machine manifest, and scheduled auto-backup support
| App | What's backed up |
|---|---|
| TranslucentTB | RoamingState\settings.json (MSIX glob) |
| SoundSwitch | %APPDATA%\SoundSwitch |
| EqualizerAPO + Peace | config\*.txt,*.csv,*.peace,*.apo,*.eq |
| PowerToys | %LOCALAPPDATA%\Microsoft\PowerToys\**\*.json |
| MSI Afterburner | Profiles\ |
| RivaTuner Statistics Server | Profiles\ (no extension) |
| FanControl | Configurations\ |
| HASS.Agent | Client\config\*.json |
| HWiNFO64 | Registry: HKCU\Software\HWiNFO64 |
| Tailscale | %LOCALAPPDATA%\Tailscale |
| VibePollo (Sunshine) | config\ |
| Custom Scripts | C:\Scripts |
You can also add custom folders via the Apps tab.
- Per-app Backup Now and Backup All Now (dashboard)
- Restore tab — shows backup age, file count, and restore readiness per machine; one-click restore or install-and-restore via winget
- App detection — finds installs via exe path, registry key, MSIX package glob, or config-folder presence; falls back to user-supplied "Locate" path
- Custom icon picker — override the auto-detected icon for any app
- Open folder shortcuts — open config or backup folder from each app card
- Manifest — JSON file stored per machine in OneDrive; tracks every backed-up file with SHA-256, size, and timestamp
- Notifications — optional toast when backup completes with changes
- Tweaks tab — quality-of-life Windows tweaks (separate from backup)
- System tray — runs in background; left-click opens window, right-click for quick actions
ConfigVault/
├── Models/ AppProfile, BackupManifest, ManifestEntry, AppSettings
├── Services/
│ ├── AppProfileRegistry.cs All built-in app profiles
│ ├── BackupService.cs File copy (SHA diff) + registry export
│ ├── RestoreService.cs File restore + registry import
│ ├── InstallDetectionService.cs Exe / registry / MSIX / glob detection
│ ├── PathResolver.cs Token expansion + glob segment walking
│ ├── WingetService.cs winget install wrapper
│ └── SchedulerService.cs Task Scheduler integration
├── ViewModels/ MVVM: MainViewModel, AppStatusViewModel, RestoreViewModel, ...
├── Views/ WPF XAML: MainWindow, DashboardView, AppsView, RestoreView, ...
└── App.xaml Global dark theme styles
Requires .NET 9 SDK.
dotnet build
dotnet runTests (sandboxed, no OneDrive writes):
cd ConfigVault.Tests
dotnet runStored at %APPDATA%\ConfigVault\settings.json:
OneDrivePath— root backup destinationMachineName— folder name used to separate per-machine backupsCustomFolderProfiles— user-added custom folder backupsCustomInstallPaths— user-supplied exe paths for "Locate..." overridesCustomIconPaths— user-supplied icons for app cardsNotificationsEnabled/NotificationIntervalDays


