A GUI tool to download and install Microsoft Store apps without needing the Microsoft Store. Perfect for Windows LTSC editions, restricted environments, or when the Store just won't cooperate.
- ๐ Search the Microsoft Store - Find any app by name using the official Microsoft API
- Headless CLI - Search, download, install, or mirror Store packages from RMM scripts without opening the GUI
- ๐ Browse Categories - Quick access to essential apps, gaming, productivity, dev tools & more
- โก Quick Fix Presets - One-click solutions for common needs (Repair Store, Gaming Setup, Media Codecs)
- ๐งฐ LTSC Essentials - One-click preset for Terminal, PowerShell 7, WSL, Photos, Calculator, and Snipping Tool
- WSL Distro Sideload - Queues Ubuntu and Debian Store distribution packages for offline WSL installs
- ๐ LTSC Gap Scan - Detects missing LTSC components and queues the matching Store packages automatically
- ๐ฎ Xbox Core Queue - Queues Xbox Identity and Gaming Services with known-good version pinning and fallback logging
- โญ User Profile - Stores recent searches and pinned favorite apps per Windows user profile
- Workspace UI - Uses a responsive graphite/cyan shell with scroll-safe navigation, source/signature/admin status, favorites, and a dedicated queue inspector
- ๐จ Theme Modes - Uses System, Dark, or Light mode with Windows accent-color matching
- ๐ Release Notes - Fetches per-app notes from Microsoft Store product pages
- โจ Smart Select - Automatically picks the best packages and dependency frameworks (bundles, correct architecture, newest versions)
- โญ๏ธ Delta Detection - Skips packages when the same or newer version is already installed
- ๐งญ Architecture Override - Force x64, x86, ARM64, ARM, or neutral package selection when needed
- ๐ก๏ธ Package Trust Gate - Requires valid Authenticode and Windows chain evidence, manifest-to-signer identity consistency, architecture/type sanity, and Store product binding before automation
- Reviewable Quarantine - Keeps identity-valid packages with unknown product bindings out of install, rollback, cache, mirror, and export workflows until the user reviews the exact source, identity, publisher, manifest, revocation state, and hash
- Package Ingress Guard - Rejects unsafe package names, URLs, redirects, persisted paths, cache entries, and export staging before they can reach disk or PowerShell
- ๐ Verified Downloads - Writes packages atomically and records SHA-256 metadata before cache reuse
- Verified Resumable Downloads - Binds
.partdata to source identity, validators, expected length, and SHA-256 progress before usingIf-Range; enforces package-size and disk-reserve limits and refreshes expired Store URLs - Keep Updated Mode - Re-checks installed catalog apps and queues newer Store bundles while the app is open
- Rollback Cache - Keeps the last two cached package versions and can reinstall the previous cached app version
- Package Diff - Compares cached package versions for manifest capability and dependency changes
- Crash-Safe State - Versions and atomically replaces local profile, queue, cache, repair, resume, mirror, and operation state; invalid generations are quarantined for recovery instead of overwritten
- Windows Capability Preflight - Distinguishes current-user and elevated machine inventory from denial, timeout, policy, service, endpoint, and reboot conditions before queueing or mutation
- Source Health - Detects StoreEdgeFD, RG-Adguard, WinGet, and Store CLI availability with fallback hints
- Store Query Controls - Persists RG-Adguard ring, Store language, and market for localized package lookup and deployment artifacts
- Verified Python Setup - Uses exact transitive pins, SHA-256 artifact locks, and tested offline wheelhouses
- Previewed Diagnostics Bundle - Recursively redacts credentials, signed-URL secrets, local paths, commands, source health, queue state, logs, and repair evidence, then shows the exact ZIP contents before saving
- Accessibility Guardrails - Keeps core theme contrast and the welcome surface usable at 100, 125, and 150 percent scaling
- ๐ฅ Download Queue - Queue multiple packages with progress tracking
- ๐ฆ Install Packages - Install downloaded apps directly (requires Admin)
- ๐ง Inspected Store Repair - Shows the exact preconditions, backups, mutations, permissions, and reboot impact before Store, provisioning, licensing, or cache work can run
- Verified Repair Restore - Uses exclusive transactions, restrictive backup ACLs, hash-verified copies, safe-checkpoint cancellation, and repeatable in-app restore without consuming the backup
- ๐ฅ Provisioning Repair - Backs up AppX deprovisioning state before clearing Store tombstones and re-registering existing packages
- ๐ Licensing Reset - Backs up ClipSVC state before verified service and package recovery
- ๐งน Cache Rebuild - Backs up and verifies Store cache folders before recreating them
- ๐๏ธ Shared Offline Cache - Mirrors downloaded AppX/MSIX artifacts to a shared folder for air-gapped reuse
- Allowlisted Package Mirror - Serves only hash-current, trust-approved packages and a sanitized index; loopback is the default and LAN mode requires short-lived bearer authentication
- ๐งพ DISM Provisioning Export - Generates fleet-ready PowerShell scripts that call DISM for queued packages
- ๐ WinGet Import Export - Saves selected Store apps as a reproducible WinGet
msstoreimport manifest - App Installer Export - Writes
.appinstallermanifests plus package folders for lightweight App Installer deployments - ๐ฆ IntuneWin Export - Packages downloaded queue items with install and detection scripts for Intune Win32 apps
- ๐ Verbose Console - Detailed logging with error hints and troubleshooting tips
- Truthful Operations - Serializes conflicting work, supports safe cancellation and shutdown, reports partial success consistently, and retains a bounded telemetry-free journal under
%APPDATA%\MSStoreHelper
- Windows 10/11 (including LTSC editions)
- CPython 3.11-3.14 on Windows x64, x86, or ARM64
- Administrator rights (for installation only)
Install the artifact-hashed dependencies before first run:
customtkinter- Modern UI frameworkrequests- HTTP clientbeautifulsoup4- HTML parsing
# Clone or download
git clone https://github.com/SysAdminDoc/MSStoreHelper.git
cd MSStoreHelper
# Install the exact, wheel-only dependency graph
py -3 -m pip install --require-hashes -r requirements.txt
# Run
python MSStoreHelper.pyFor offline PCs, prepare a wheelhouse on a connected PC:
py -3 scripts\build_wheelhouse.py --output wheelhouse --test
py -3 -m pip install --no-index --find-links wheelhouse --require-hashes -r requirements.txtThe wheelhouse command selects the lock for the running interpreter and
architecture, verifies every wheel against its SHA-256, writes a manifest, performs
an offline install, and runs the test suite. To prepare another target, pass one of
the committed files under locks\ with --lock.
# Right-click PowerShell โ Run as Administrator
python MSStoreHelper.py# Search without opening the GUI
python MSStoreHelper.py --search terminal --json
# Download a catalog app, product ID, or package identity
python MSStoreHelper.py --download Microsoft.WindowsTerminal --output C:\Packages --json
# Install from an elevated RMM shell without opening the GUI
python MSStoreHelper.py --install Microsoft.WindowsTerminal --output C:\Packages --json
# Pre-download and serve a loopback-only package mirror
python MSStoreHelper.py --download Microsoft.WindowsTerminal --output C:\MSStoreMirror --json
python MSStoreHelper.py --mirror C:\MSStoreMirror --port 8765 --json
# Explicit LAN HTTP (replace the advertised address with this PC's LAN IP).
# The generated bearer token is shown once and expires after 15 minutes.
python MSStoreHelper.py --mirror C:\MSStoreMirror --host 0.0.0.0 --advertise-host 192.0.2.10 --lan --acknowledge-cleartext-risk --port 8765 --json
# Prefer HTTPS on a LAN when a PEM certificate and key are available.
python MSStoreHelper.py --mirror C:\MSStoreMirror --host 0.0.0.0 --advertise-host mirror.example.test --lan --tls-cert C:\TLS\mirror.pem --tls-key C:\TLS\mirror-key.pem --port 8765 --jsonMirror routes are limited to /msstorehelper-mirror-index.json and the
trust-approved /packages/... entries listed in that index. Send the LAN
token only in the Authorization: Bearer ... headerโnever in a URL. Access
records are retained in a bounded, redacted
msstorehelper-mirror-access.jsonl file beside the cache.
- Search by Name: Type an app name (e.g., "Spotify", "VLC", "Firefox") and click Search
- Browse Categories: Click a category in the sidebar to see curated app lists
- Store Query: Click "Query: Retail / en-US / US" to change RG-Adguard ring, Store language, or market
- Quick Actions: Use presets for common tasks like LTSC Essentials, Store repair, or gaming setup
- Scan LTSC Gaps: Run elevated, then click "๐ Scan LTSC Gaps"; machine and provisioned-package inventory must complete successfully before missing components can be queued
- Xbox Core: Click "๐ฎ Queue Xbox Core" to queue Xbox Identity and Gaming Services through the pinned install path
- Keep Updated: Enable "Keep updated" or click "Check" to queue newer packages for the verified current-user inventory; unavailable inventory or package sources stop without claiming the device is current
- Pin Favorites: Select apps and click "Pin Selected" to show them in the Workspace for this Windows user
- Release Notes: Click "Notes" on an app row to fetch Microsoft Store page notes
- Click "Get Files" on any search result, or select multiple apps and click "Get Selected Apps"
- Review the available packages (bundles, different architectures, versions)
- Click "โจ Smart Select" to automatically pick the best files
- Click "โ Add to Queue" to add selected packages to the download queue
- Optional: enable Shared cache and pick a shared folder for air-gapped reuse
- Click "โฌ๏ธ Download All" to start downloading
- If a package shows Review required, use its queue action to inspect the package evidence and explicitly promote it; failed signature, chain, manifest, or identity checks cannot be overridden
- Click "Diagnostics" to inspect the exact recursively redacted queue, source, log, command, and repair values before saving a support ZIP
- Add the packages and dependencies you want to deploy to the download queue
- Click "๐งพ Export DISM Script"
- Save the generated
.ps1beside the downloaded packages or in your shared cache - Run the script from an elevated PowerShell session on the target PC
- Download the queued AppX/MSIX packages
- Click "Export AppInstaller"
- Save the
.appinstaller; MSStoreHelper copies the required packages into a sibling folder - Install with
Add-AppxPackage -AppInstallerFile <file.appinstaller>
- Download the queued AppX/MSIX packages
- Click "๐ฆ Export IntuneWin"
- Select
IntuneWinAppUtil.exeif MSStoreHelper cannot find it automatically - Save the
.intunewin; MSStoreHelper also writes a sidecar detection script
- Browse a category or search for apps
- Select the apps you want to reproduce on other PCs
- Click "Export WinGet"
- Import the saved
.jsonwithwinget import -i <file>
- After downloading, click "Install"
- Note: Requires Administrator privileges
- Only hash-current packages that passed the trust gate or received a journaled review can be installed
- Check the console output for any errors or hints
- To roll back, queue the app identity and click "Rollback" to install the newest trusted cached version below the current version
- Click "Diff" to compare cached manifest permissions and dependencies between the newest two trusted cached versions
If you see errors like "The server stumbled" or "needs to be online":
- Scroll to Admin Tools and choose an Inspect action
- Review the exact plan, impact, permissions, reboot guidance, backup targets, commands, and postconditions
- Choose how many verified backups to retain, acknowledge the inspected plan, and select Run Verified Repair
- Use Cancel at Safe Checkpoint to stop between mutation steps; the active step is never interrupted mid-change
- Choose Restore Backup to inspect and run a hash-verified restore. Restore verifies files, registry state, services, and package identities while keeping the source backup reusable
| Tip | Description |
|---|---|
| Use Bundles | Files ending in .msixbundle or .appxbundle work on all architectures |
| Avoid Encrypted | Skip .eappx and .emsix files - they won't install without a license |
| Install Dependencies First | Smart Select queues VCLibs, .NET Native, and UI.Xaml before main apps |
| Check Windows Version | Some apps require Windows 11 - check the console for compatibility errors |
| Smart Select | Let the tool pick the best packages automatically |
| Error Code | Meaning | Solution |
|---|---|---|
0x80073CFD |
App requires newer Windows | App incompatible - try older version |
0x80073D06 |
Higher version installed | Treated as a no-op; you already have a newer version |
0x80073D02 |
Package in use | Close the app and retry |
0x80073D19 |
Missing dependency | Install VCLibs/.NET first |
0x80073CFF |
Sideloading disabled | Enable Developer Mode in Windows Settings |
0x80073CF3 |
Already installed | App already exists |
MSStoreHelper uses two APIs:
-
Microsoft Store Search API (
storeedgefd.dsx.mp.microsoft.com)- Same API used by WinGet and Intune
- Returns app metadata and Package IDs
-
RG-AdGuard Store API (
store.rg-adguard.net)- Provides direct download links for Store packages
- Returns all available versions and architectures
Packages are downloaded to %USERPROFILE%\Downloads\MSStoreHelper. Before any package can enter automation, MSStoreHelper binds its filename and source metadata to its signed manifest, validates the Windows certificate chain and revocation result, and records a hash-bound trust report. Packages with valid evidence but no authoritative Store product-to-identity mapping remain quarantined until an explicit review is written to %APPDATA%\MSStoreHelper\trust-review.jsonl. Trusted packages are installed using PowerShell's Add-AppxPackage cmdlet.
MSStoreHelper/
โโโ MSStoreHelper.py # Main application
โโโ diagnostic_bundle.py # Recursive redaction, preview, and atomic ZIP output
โโโ mirror_service.py # Allowlisted HTTP routes, LAN auth, Range, and audit
โโโ store_sources.py # Store source health, retry, and fallback helpers
โโโ msstore_package_resolution.py # Package selection and install ordering
โโโ package_ingress.py # Package filename, URL, and path boundary
โโโ package_trust.py # Signature, manifest, identity, and promotion policy
โโโ repair_transaction.py # Fail-closed repair, backup, and restore engine
โโโ state_repository.py # Versioned atomic state, locking, migration, and recovery
โโโ windows_capabilities.py # Scoped AppX inventory and Windows preflight evidence
โโโ pyproject.toml # Python package metadata
โโโ requirements.in # Canonical fully pinned dependency graph
โโโ requirements.txt # Aggregate artifact-hashed Windows lock
โโโ locks/ # Per-interpreter and architecture hash locks
โโโ scripts/
โ โโโ lock_dependencies.py # Reproducible lock generator
โ โโโ build_wheelhouse.py # Offline wheelhouse build and verification
โโโ tests/
โ โโโ test_dependency_locks.py # Runtime floor and supply-chain lock tests
โ โโโ test_package_resolution.py # Resolver tests
โ โโโ test_package_ingress.py # Adversarial ingress and path tests
โ โโโ test_package_trust.py # Trust, quarantine, and promotion-gate tests
โ โโโ test_mirror_service.py # Mirror boundary, auth, Range, and audit tests
โ โโโ test_store_repair.py # Store repair tests
โ โโโ test_offline_cache.py # Shared cache tests
โ โโโ test_dism_export.py # DISM export tests
โ โโโ test_winget_export.py # WinGet manifest tests
โ โโโ test_diagnostics_bundle.py # Diagnostics ZIP tests
โ โโโ test_integration_harness.py # Mocked Store/PowerShell workflow tests
โ โโโ test_cli.py # Headless CLI workflow tests
โ โโโ test_accessibility.py # Theme contrast and DPI guardrails
โ โโโ test_appinstaller_export.py # App Installer manifest tests
โ โโโ test_intune_export.py # IntuneWin package tests
โ โโโ test_ltsc_workflow.py # LTSC preset tests
โ โโโ test_keep_updated.py # Installed catalog update tests
โ โโโ test_package_diff.py # Cached manifest diff tests
โ โโโ test_user_profile.py # Search history and favorites tests
โ โโโ test_state_repository.py # Crash, migration, quarantine, and concurrency tests
โ โโโ test_windows_capabilities.py # Inventory status and preflight tests
โ โโโ test_dependency_bootstrap.py # Dependency setup tests
โ โโโ test_release_notes.py # Store page release-note tests
โ โโโ test_store_sources.py # Source health and fallback tests
โโโ README.md # This file
โโโ LICENSE # MIT License
โโโ icon.png / icon.ico # App icon assets
โโโ screenshot.png # README screenshot
Default settings can be modified at the top of MSStoreHelper.py:
APP_VERSION = "3.36.0"
DEFAULT_OUTPUT = os.path.join(os.environ['USERPROFILE'], "Downloads", "MSStoreHelper")The built-in catalog includes:
| Category | Apps |
|---|---|
| ๐ ๏ธ Essential Repairs | Microsoft Store, App Installer, Xbox Identity |
| โ๏ธ System Components | VC++ Runtime, HEVC Codec, AV1 Codec, WebP |
| ๐ป Productivity | Windows Terminal, PowerToys, Notepad, Calculator, Snipping Tool, Photos |
| ๐ฎ Gaming | Xbox App, Xbox Game Bar, Gaming Services |
| ๐ Browsers | Firefox, Brave |
| ๐ ๏ธ Developer Tools | VS Code, Python 3.12, PowerShell 7, WSL |
| ๐ง WSL Distributions | Ubuntu, Debian |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- RG-AdGuard - For providing the package download API
- CustomTkinter - For the modern UI framework
- Microsoft - For the Store search API
This tool is provided as-is for legitimate use cases such as:
- Installing apps on Windows LTSC editions
- Offline/restricted environments
- Troubleshooting Store issues
Always download apps from official sources. The author is not responsible for any misuse of this tool.
Made with โค๏ธ for the Windows LTSC community
