CLI tool
mjishnu/alt-app-installer avatar
mjishnu/alt-app-installer

Alt App Installer: Microsoft Store apps without the Store client

A Program To Download And Install Microsoft Store Apps Without Store

844 stars63 forksPythonMIT

At a glance

What is it?
Alt App Installer is a Python and Qt program that downloads and installs Microsoft Store applications on Windows without the Store or the App Installer, by generating delivery links from Microsoft's own catalogue and delivery APIs and fetching the packages with a multi-part downloader. The project now recommends its successor, Raven, while continuing to maintain this one.
Who is it for?
Adopt Alt App Installer if you need Microsoft Store applications on a Windows image that has no Store client, such as a LTSC deployment, and you want the catalogue and the dependencies resolved for you rather than sourcing packages by hand. Do not adopt it as a way to sidestep the licensing of paid titles, because the package format it prefers is the one the Store encrypts for that reason, and the README is explicit that the alternative format needs administrator privileges.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 79 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the tool actually does

Alt App Installer is a program to download and install Microsoft Store apps, and the repository description says the same thing more bluntly: a program to download and install Microsoft Store apps without the Store.

The feature list spells out the scope. It can download and install Microsoft Store uwp apps, in the appx, msix, eappx and appxbundle formats, without needing the Microsoft Store or the App Installer. It can also download non-uwp apps present in the Microsoft Store. It auto downloads the latest app according to your system architecture, x64 or x32. It can install already downloaded Store apps, it can get Store apps by providing its url, and it downloads and installs the app along with all its dependencies.

Two things stand out in that list. The first is the format preference, which is the interesting engineering decision and gets its own section below. The second is that the tool is not a scraper of a website. It talks to Microsoft's own catalogue and delivery services, the same ones the Store client uses, and it does the link generation and the fetching itself.

There is a second project for the command line, alt app installer cli, and the README recommends the successor, Raven, which it says provides improved stability and many new features. It is equally clear that Alt App Installer will continue to be maintained, but that users are strongly recommended to adopt Raven.

The project is Python, MIT licensed, on the main branch, with releases 2.7.1 in January 2026, 2.7.2 a day later and 2.7.3 in June 2026, and a last push on 2026-08-05. The requirements are Windows 10 or 11 and an internet connection.

The pipeline, from a catalogue page to an installed app

The How it works section describes the chain, and it is a good illustration of how much of the Store's plumbing is publicly reachable.

The program opens a browser that lets the user select the file or game they want to install and returns its url. That url is parsed and the product key is obtained, and then, using the Microsoft Display Catalog API, the category id and the file name are retrieved. With that data the app can send a request to the Microsoft Delivery Optimization service API and retrieve the data for the selected application. That data is then parsed according to the system architecture of the user, the favourable type, and the latest version.

The favourable type is the part to notice, and the README describes those formats as decrypted file formats which do not need admin privilege to install. The alternative is the encrypted format, which does.

After that the app retrieves the download links using the API, and the files are downloaded with pypdl, which allows for concurrent and multi-part downloading, which makes the download faster. The downloader can also resume interrupted downloads and can automatically use a new url in case the current download link expires. Finally the downloaded files are installed via the subprocess module.

So the design is: a browser for selection, two Microsoft APIs for resolution, a downloader for fetching, and the operating system for installation. The two APIs it leans on are credited at the end of the README, StoreLib and MS-Store-API, both described as APIs for download link generation, and pypdl is the downloader.

The format preference is the decision worth understanding

The feature list contains one line that tells you how the tool thinks about installation, and it is the line to read carefully.

Priority for downloading Appx, Msix, appxbundle and so on, over other encrypted format like Eappx which needs admin privilege to install.

So there are two package formats for the same application, one of them encrypted and one of them not, and the Store uses the encrypted one. The tool prefers the unencrypted one, and the reason it gives is that the unencrypted format does not need administrator privileges to install.

That is a coherent reason from an administrator's point of view, and it also happens to be the reason the encrypted format exists, because the encrypted package is what the Store's own licensing and update machinery operates on. A deployment tool that sideloads unencrypted packages is doing what every offline or unattended deployment does, and it is also doing something the Store client would not do for you.

The other selection rules are more mundane and are handled automatically. The architecture of the machine, x64 or x32, decides which package is fetched, and the latest version is preferred, so a user does not have to know that a Store title ships in several variants for several platforms.

The README's own troubleshooting section then acknowledges that the dependency resolution is the part that goes wrong. When installation of dependencies fails, the cause is often that the dependencies are already installed, and the answer is to check the start menu first. If the program is still not installed, there are two ways to solve this, and the first is to enable Ignore Version under Options, Advanced and Dependencies, which downloads all versions of the dependencies available for the system. The second is to enable Ignore All Filters in the same place, which downloads all available dependencies and can take time.

Three ways to install it, and a signing certificate

The How to use the app section covers three routes, and they are the standard ones for a Windows utility.

The first is the release executable. You download the alt app installer.exe from the releases page and run it, or build it from source. The second is winget, and the command is a single line:

powershell
winget install mjishnu.altappinstaller

The third is a source build, and the README walks through it in git bash terms. Install git, open a git bash terminal, clone the repository, install python3 and pip, change into the cloned folder, install the requirements with pip install -r requirements.txt, and then run the run.bat script or the run command from the cloned folder.

Then there is the passage in both install routes about antivirus false positives, and it is the part that deserves scrutiny from anyone deploying this. If you encounter a false antivirus positive, the README tells you to download altappinstaller-cert.zip from the releases, extract the contents and install the .cer file or run install cert.bat, and then run the executable from the extracted folder.

So the answer to an antivirus warning is to install a signing certificate into the machine's trust store and run the program from a folder that contains the extracted certificate. The README calls these false positives, and unsigned executables distributed outside the Microsoft Store are a well known cause of them. Still, the instruction is to add a certificate to the system, and an administrator should treat that as a decision about their machine rather than as a footnote.

Once it runs, the flow is simple: click choose app, search for the application, click select in the top bar after the page has fully loaded, wait for the process to complete, and check the start menu. You can also install already downloaded apps through Install from file, or paste a url in Get from Link, both under Options.

Three dependencies, one of them a browser

The requirements file is three lines, and they describe the whole architecture.

text
pypdl
pyqt6
PyQt6-WebEngine

pypdl is the downloader, the same one the README credits for concurrent and multi-part downloading with resume and automatic link refresh. PyQt6 is the user interface toolkit, and PyQt6-WebEngine is the embedded browser, which is what the How it works section means by the app opening a browser that allows the user to select the file or game they want to install and returns its url.

That last dependency is worth pausing on. The selection step is not a headless scraper with a hardcoded search. It is a real browser engine, driven by a person, that navigates to the catalogue and returns a url. That is a sturdier design than trying to keep an undocumented query in sync with a service that can change at any time, and it also explains the screenshots in the README, which show a window with a choose app button rather than a command line.

The repository layout is correspondingly small. There is an app/ directory for the application, requirements.txt, resources.txt, run.bat for the Windows entry point, the .github/ directory, the README and the LICENSE. The whole of the network and catalogue logic lives in the Python code and in the two API libraries it leans on, StoreLib and MS-Store-API, and the README credits both of them for download link generation alongside pypdl for the downloader.

Maintenance, and the successor to point at

The project's own status is stated at the top of the README, and it is the first thing anyone should read.

Alt App Installer is now superseded by Raven, which provides improved stability and many new features, and the recommendation is strong. But Alt App Installer will continue to be maintained, and the releases show that it is being maintained rather than merely promised: 2.7.1 on 2026-01-15, 2.7.2 on 2026-01-16, and 2.7.3 on 2026-06-15. The last push to the repository was on 2026-08-05, so the tree is still moving.

That gives a fairly clear picture of where a new user should start. The successor is the one with the improvements, this one is the one with the longer history and the older documentation. For a project that has to keep working on an existing fleet, the maintained status of the older tool is a real argument for it, and for a new deployment the recommendation in the README is the sensible default.

There is also a small project worth knowing about, the alt app installer cli, for people who would rather script the installation than click through a window. Since the catalogue and delivery APIs are the same, the two tools differ mostly in how the user selects the application and in how much of the dependency resolution is exposed.

And for anything that goes wrong, the README says you can open an issue or ask the author directly on Discord, which is a small project with a direct support channel rather than a queue.

Editorial conclusion

Adopt Alt App Installer if you need Microsoft Store applications on a Windows image that has no Store client, such as a LTSC deployment, and you want the catalogue and the dependencies resolved for you rather than sourcing packages by hand. Do not adopt it as a way to sidestep the licensing of paid titles, because the package format it prefers is the one the Store encrypts for that reason, and the README is explicit that the alternative format needs administrator privileges. Before you deploy it, read the certificate instructions, since the project tells users to install a signing certificate when antivirus flags the binary, and check the successor, because the maintainer recommends moving to Raven and this repository is only being kept working.

Frequently asked questions

What can Alt App Installer install?

Microsoft Store applications in the appx, msix, eappx and appxbundle formats, plus non-uwp apps that are present in the Store, along with their dependencies. It picks the latest version for your architecture, x64 or x32, and can also install packages you already downloaded or fetch one from a Store url.

How do I install Alt App Installer?

Download the alt app installer.exe from the releases page, or install it with winget using winget install mjishnu.altappinstaller, or build it from source with git, pip install -r requirements.txt and the run.bat script. The README also explains what to do if antivirus flags the executable, including installing the certificate from altappinstaller-cert.zip.

Why does Alt App Installer prefer Appx and Msix over Eappx?

The README states the reason is that the encrypted Eappx format needs administrator privilege to install, while the decrypted formats do not, so the tool gives them priority. It also selects the package matching your system architecture and the latest version.

Is Alt App Installer still being worked on?

Yes, although the README recommends its successor Raven, which it says offers improved stability and more features. Alt App Installer will continue to be maintained: releases 2.7.1, 2.7.2 and 2.7.3 landed between January and June 2026, and the last push was on 2026-08-05.

Official sources

  1. License: MIT
  2. mjishnu/alt-app-installer on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mjishnu-alt-app-installer.svg)](https://hysenlabs.com/projects/mjishnu-alt-app-installer)

Was this useful?