A free, open-source alternative Microsoft Store client for Windows
Raven is a modern, native Windows application that serves as a fully-featured alternative to the Microsoft Store. It can do everything the official store does β search, download, install, and update apps β while also adding powerful capabilities like sideloading external UWP/MSIX packages, exporting Store apps for offline use, and bandwidth-saving delta downloads.
Built with WinUI 3 and .NET 10, Raven delivers a clean, fluent UI that feels right at home on Windows 10 and 11.
- Store Search β search the Microsoft Store catalog directly from the title bar with real-time auto-suggest (including app icons and titles).
- Advanced Search β filter and query apps with more granular control over results.
- App Details β full app detail pages with descriptions, screenshots, version info, and dependency listings.
- Market & Language Selection β browse the Store as it appears in any region/language combination.
- Download Store Apps β download any app package directly from Microsoft's CDN for offline installation or archival.
- Delta Downloads β save bandwidth with intelligent block-level delta downloads. Only changed blocks are fetched using BlockMap diffing, drastically reducing download sizes for updates.
- Export Packages β download
.appx,.msix,.appxbundle, and.msixbundlefiles for external use, backup, or redistribution to other machines. - Download Manager β a full download queue with progress tracking, pause/resume, and status animations.
- Install Store Apps β install downloaded packages directly, just like the Microsoft Store.
- Sideload External Packages β install
.appx,.msix,.appxbundle, or.msixbundlefiles from anywhere β not just the Store. Drag-and-drop or browse to select. - Dependency Resolution β automatic detection and installation of required framework dependencies.
- Force Install β option to forcibly reinstall or downgrade packages when a newer version is already present.
- Update Checking β scans all installed Store-signed packaged apps and compares them against the latest available versions.
- Delta Updates β applies block-level differential updates to minimize download sizes.
- Batch & Individual Updates β update all apps at once or pick and choose which ones to update.
- Version Comparison β intelligently determines the latest available version per architecture and OS build.
- Unpackaged Deployment β runs as a standalone
.exewithout requiring MSIX packaging or Windows App Installer. - Theme Support β light, dark, and system-default themes with seamless switching.
- Structured Logging β separate log files for runtime events, installations, and crashes via Serilog.
- Localization-Ready β UI strings use a resource-based localization system (
x:Uid). - Self-Update Check β checks GitHub for newer releases of Raven itself.
- Windows 10 Version 2004, Build 19041+
- Windows App SDK Runtime (Not needed for self-contained)
- Statisfy all system requirements (excluding runtimes if running self contained version)
- Download the latest version of Raven from releases according to your system architecture.
- Extract the contents of the zip and run
raven.exe. - If you encounter a false antivirus positive, download
raven_cert.zipfrom releases, extract the contents and installraven.ceror runinstall_raven_cert.bat.
- Install winget and run
winget install mjishnu.raven- If you encounter a false antivirus positive, download
raven_cert.zipfrom releases, extract the contents and installraven.ceror runinstall_raven_cert.bat. - Search for the
ravenin startmenu and run
Raven follows the MVVM pattern and uses dependency injection via Microsoft.Extensions.Hosting.
Raven.slnx
βββ Raven/ # WinUI 3 Application (UI layer)
β βββ Views/ # XAML pages: Shell, Search, App Details,
β β # Downloads, Installations, Updates, Settings
β βββ ViewModels/ # MVVM view models (CommunityToolkit.Mvvm)
β βββ Services/ # App-level services: navigation, downloads,
β β # package installation, update checking
β βββ Helpers/ # Utilities: delta downloads, BlockMap parsing,
β β # download URL resolution, version comparison
β βββ Models/ # Data models: AppInfo, DownloadItem, UpdateItem
β βββ Contracts/ # Service interfaces
β βββ Layouts/ # Custom WinUI layouts (VirtualGridLayout)
β βββ Styles/ # XAML resource dictionaries
β βββ Strings/ # Localized string resources (en-us)
β
βββ Raven.Updater/ # Self-update helper executable
β βββ Program.cs # Copies update payload and relaunches Raven
β
βββ StoreListings/ # Git submodule β Microsoft Store API wrapper
βββ StoreListings.Library/
βββ StoreEdgeFDProduct.cs # Store product queries
βββ DCATPackage.cs # Dependency catalog lookups
βββ FE3Handler.cs # Package download link resolution
| Package | Purpose |
|---|---|
| Microsoft.WindowsAppSDK | WinUI 3 framework |
| CommunityToolkit.Mvvm | MVVM source generators & helpers |
| CommunityToolkit.WinUI | WinUI media controls & effects |
| Downloader | Multi-part file download engine |
| WinUIEx | Window management extensions |
| Serilog | Structured logging |
| StoreListings | Microsoft Store API wrapper (submodule) |
- .NET 10 SDK
- Visual Studio 2026 with the following workloads:
- .NET Desktop Development
- Windows App SDK / WinUI Development
- Windows 10 SDK (26100)
- Desktop development with C++ (the MSVC linker is needed to publish, since Raven publishes as NativeAOT)
git clone --recurse-submodules https://github.com/mjishnu/Raven.git
cd RavenIf you've already cloned without
--recurse-submodules, initialize the submodule manually:git submodule update --init --recursive
From Visual Studio:
- Open
Raven.slnx - Set
Ravenas the startup project - Select your target platform (
x64,x86, orarm64) - Press F5 to build and run
From the command line:
dotnet build Raven.slnx -c Debug -p:Platform=x64
dotnet run --project Raven -c Debug| Architecture | Status |
|---|---|
| x64 | β Supported |
| x86 | β Supported |
| ARM64 | β Supported |
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a branch for your feature or fix (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m "Add my feature") - Push to your branch (
git push origin feature/my-feature) - Open a Pull Request
- Use
x:Uid-based localized strings in XAML β no hardcoded text - Follow existing MVVM patterns and DI conventions
- StoreListings for the Microsoft Store API wrapper.
- Alt App Installer the predecessor to this project.
This project is licensed under the Apache License 2.0 β see the LICENSE file for details.