A little more than a year ago, with very little fanfare, Microsoft sneaked a very cool, very powerful little utility into Windows. It’s called the Windows Package Manager or winget
for short. winget
is Microsoft’s answer to apt
or yum
(or other) application package managers on Linux orHomeBrew
on the Mac.winget
lets you easily install, update, and remove Windows applications from a DOS command line. Not only is this a great way to install apps on Windows, it allows easy scripting so that you can easily spin up a new machine with your favorite apps.
winget
was introduced with Windows 1709 (The 2020 Fall Creators Update). If you’ve been updating your PC regularly winget
is probably on your PC. Open a command line and type winget
to see if it’s installed. If it is, you’ll see a screen like Figure 1 below:

Figure 1. winget
is installed
If you get an error, first use winver
from a command line to make sure you have version 1709 or higher as shown in Figure 2 below:

Figure 2. Using WinVer to see what version of Windows you have installed
If you don’t have winget
installed but do have Windows version 1709 or later, use these directions to install it or install it manually from this site.
Using winget
Typing winget
without command line arguments shows winget's
available commands:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
install Installs the given package show Shows information about a package source Manage sources of packages search Find and show basic info of packages list Display installed packages upgrade Upgrades the given package uninstall Uninstalls the given package hash Helper to hash installer files validate Validates a manifest file settings Open settings or set administrator settings features Shows the status of experimental features export Exports a list of the installed packages import Installs all the packages in a file |
To get a sense of the software that winget
provides, use the search command without any arguments:
1 |
winget search |
You can also use the winget.run site to search for winget
packages.
In mid-November, 2021, more than 2900 software packages are available through winget
. Many are free, or at least "freemium" packages, but some need to be licensed, so after installing you may need to acquire a license. winget's
philosophy is that you generally know what you’re looking for. Therefore, if you are unfamiliar with a package you see listed, it’s prudent to research with Google before installing it. That said, if you’re using it to set up a PC with your favorite utilities, you probably already know what you want.
Let’s assume you want to install the Firefox Developer Edition browser. First, search for Firefox with this command:
1 |
winget search firefox |
winget
responds with the packages that reference ‘firefox’

Figure 3. Using winget’s search command
We want to install the product in the red box, so type
1 |
winget install "Firefox Developer Edition" |
on the command line and press enter. In less than a minute, Firefox Developer Edition is installed for you.
If, like me, you use MS Edge exclusively as downloader for Firefox Developer Edition or Chrome, rejoice that with winget
you don’t need MS Edge for anything!
Some products have multiple source entries in the winget
product repository. Let’s say you want to download 7-Zip, the popular zip utility. When you search for 7-Zip, winget
displays:
winget
repository that provides the download you requested. I didn’t like the sound of “Unofficial” so I downloaded 7-Zip from the winget
source by using the -s
flag:
1 |
winget install 7-Zip -s winget |
Scriptable installs
With virtual machines so easily available now it’s not uncommon for me to need to spin three or four VMs per month. I have a text file namedwinget-install.txt
with the following contents:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
winget install "Firefox Developer Edition" winget install "Visual Studio Professional 2019" winget install "Microsoft SQL Server 2019 Developer" winget install "Microsoft SQL Server Management Studio" winget install "Microsoft Visual Studio Code" winget install winmerge winget install Notepad++ -s winget winget install 7zip -s msstore winget install everything -s winget winget install fileseek winget install "Docker Desktop" winget install "Python 3.9" winget install sharex -s winget winget install COM-SQLite winget install "DB Browser for SQLite" |
winget's
Import command installs all of those applications with a single command:
1 |
winget import -i winget-install.txt |
winget
provides a huge head start for setting up a developer’s PC.
For quickly spinning up a new developer PC, winget
is highly recommended. Read more about it here and/or watch this YouTube video.