Development Tools

Windows Package Manager (winget)

The winget tool is a command-line interface for interacting with the Windows Package Manager system. It is available on Windows 11 (and Windows 10 since version 1709). You can use winget to quickly install or update many programs on your computer with no need to download and run an installer program explicitly.

While winget is a relatively new feature of Windows (and not all software can be installed using it), packages are available for a number of useful programming tools.

The winget command-line utility is part of the App Installer component, which is usually already installed on Windows computers. If you find that winget is not installed on your computer, you can use the Windows Store to install the App Installer (and with it, winget).

Winget commands

You interact with winget by opening a PowerShell terminal and typing commands for winget to perform.

Example: a summary of winget commands

You can see a summary of the commands winget performs by typing

> winget

Listing and searching for packages

You can print a list of the packages installed on your computer using the list command. If you include a query in the command, the list will be restricted to packages matching your search query.

Listing installed packages

> winget list [query]

You can search for a package in the repository using the search command. This searches the entire repository (including packages that are not installed on your computer). Again, you can narrow your search by providing a query.

Searching for a package

> winget search [query]

Installing, upgrading, and removing packages

Once you've identified the package you want to install (usually by its package id), you can use the install command to install it, along with any missing dependencies the package requires.

Installing a package

> winget install [query]

The upgrade command is used to display available updates and to update a particular package.

Updating a package

> winget upgrade [query]

Used without a query, this command prints a list of packages which have an update available. You provide a package name (as a query) to update the named package. You can also use the option --all to request that every available update be installed.

Finally, you can remove a package using the uninstall command.

Removing an installed package

> winget uninstall [query]