Windows Package Manager, known as WINGET by its users, is a command-line-based package manager that allows you to quickly find, download, install, upgrade, uninstall and configure applications on Windows 10 and Windows 11 computers.

Microsoft’s Windows Package Manager makes it easy to manage apps by running a single command – Winget in the command prompt. For instance, if you wish to install or update an app on your computer, you can just invoke a quick ‘Winget’ command to find and install the latest version of an application by its name without having to go through the additional steps of searching online, downloading and manually installing it.

Winget is a built-in tool in Windows 11 that makes installing, updating, configuring, and removing multiple apps seamless. In this article, we will look at how to install (if it’s not already installed) and use Windows Package Manager (Winget) in Windows 11.

How to Install the WINGET (Windows Package Manager) in Windows 11

Windows Package Manager (Winget) command-line tool is actually bunded with Windows 11 by default as the ‘App Installer’. By any chance the App Installer is not installed on your Windows 11 PC, you need to install it from the Microsoft Store. If it’s already installed, make sure it is updated with the latest version.

If you have not already installed App Installer on your computer, there are two ways you can install it:

Get the App Installer from the Microsoft Store. To do this, open Microsoft Store and search for ‘App Installer’.

Then, open the ‘App Installer’ page and click the ‘Get’ button to install it. If you already have the app, click the ‘Update’ button to update the app.

If you wish to install the Windows Package Manager with an offline installer, you can download the latest version of this app from the GitHub page.

Visit the Windows Package Manager release page on GitHub and select the latest version.

Once the Windows Package Manager’s latest version page opens up, click the ‘.msixbundle’ (Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) download link under the Assets section to download the offline installer.

After the file is downloaded, double-click on it to install the app. Then, click the ‘Install’ button in the wizard. If you see an ‘App Installer is already installed’ message, just click the ‘Reinstall’ button to reinstall the app.

Once the app is installed, reboot the computer.

How to Use WINGET, the Windows Package Manager in Windows 11

Once you have installed Windows Package Manager Command line tools, you can run winget from the Command Prompt window or the Command prompt shell in the Windows Terminal.

To run the Winget command, first, open Commands Prompt as an administrator. To do this, click Start on Windows 11 and search for ‘Command Prompt’ or ‘CMD’. Then, right-click the top result, and select the ‘Run as administrator’ option. If you see a UAC warning dialog box, click ‘Yes’ to confirm.

To start with, simply type Winget on the command prompt and press Enter.

You will get a list of commands and information about how to use the tool. These are the Winget commands that are available:

commandaction
InstallInstalls the given package
ShowShows information about a package
SourceManage sources of packages
SearchFind and show basic info of packages
ListDisplay installed packages
UpgradeUpgrades the given package
UninstallUninstalls the given package
HashHelper to hash installer files
ValidateValidates a manifest file
SettingsOpen settings or set administrator settings
FeaturesShows the status of experimental features
ExportExports a list of the installed packages
Import Imports all the packages in a file

In addition to the above commands, you will also get commands to check the Windows Package Manager version and get more information about the tool:

  • - - version: Display version of the tool
  • - - info: Display general info of the tool

To get more details about the tool, type the following command and press Enter:

winget --info

Winget commands are not case sensitive, so you can use lowercase, uppercase, or a mixture of both, it will work the same.

Each of the above-mentioned commands has its own set of options/switches which can be used with the commands to discover, install, upgrade, remove and configure applications as per your need.

To get more information and view options for a specific command, pass the help -? argument after the command name. For example, if want to know more info about thesearch command as well as its arguments and options, enter the below command:

winget search -?

Quickly Search for Apps in the Winget

Winget repositories are filled with hundreds of useful software, everything from common Windows desktop software to developer tools.

You can use Winget to quickly find and install applications from its repository by referring to app name, tag, id, or others. If you want to find an app, you will need to use the search command. To search for an app, use the following command:

winget search <App_name>

Where replace ‘<App_ name>’ with the name of the app you want to install.

Example:

Let’s say you want to install the ‘Twitter’ app, you can use the following command to install the app instead of hunting for it online:

winget search twitter

When you execute your first command, Winget will inform you that the MS store source requires you to view the source agreement before using the tool. You can check out the agreement from this URL –

Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction

If you agree to all the source agreements terms, simply type ‘Y’ and press Enter.

Now, the Winget will search for the app and show you a list of all the apps that has the name ‘Twitter’ in them as shown below. In the below screenshot, the top result is the correct app we want.

If you search for an app with a wrong name, id, moniker (nickname), or tag, you will get an error message saying ‘No package found matching input criteria’ as shown below.

You can also use -q or --query arguments to search for the app packages available to winget that contain the query word (Twitter):

winget search -q twitter

or

winget search --query twitter

These query arguments are optional, the values will also work without them.

If the name of the program contains any space, enclose the app name in quotation marks. For example:

winget search "Mozilla Firefox"

Filter Your Search Results in Winget

As you can see below, when we searched for software packages with the keyword “Twitter”, Winget will return all packages that may have the word “Twitter” in the name, Id, moniker, or Tag field. It will also display the apps the has the part of the name as ‘Twitter’.

If you get hundreds of results like this, it will be hard to find the specific application that you’re looking for.

Fortunately, Winget gives a list of search query filters (options) that allows you to narrow down your search or limit the returned results. To view the options that are supported by the search command, run the below command:

winget search -?
This image has an empty alt attribute; its file name is allthings.how-how-to-use-winget-in-windows-11-image-9.png

The search can be filtered with the following options:

  • --id: Filter results by id
  • --name: Filter results by name
  • --moniker: Filter results by moniker
  • --tag: Filter results by tag
  • --command: Filter results by command
  • -n or --count: Show only the specified number of results
  • -s or --source: Find package using the specified source
  • -e or--exact: Find package using exact match

Filter Your Search Results by Name

Now, with the above options, you can filter your search results. You can easily limit the search to the name of the application alone. The syntax:

winget search --name <App Name>

Let’s say you only want to find the app packages that have the word Twitter in the ‘Name’ field of the result. You can use the below command to try that:

winget search --name Twitter

As you can see the winget only return the results that the string ‘Twitter’ in the ‘Name’ field and others omitted.

Filter Your Search Results by ID

You can also limit your search to the ID of the application. Every application package has a specific ID which is a combination of letters and numbers (e.g. 9WZDNCRFJ110) or a combination of publisher and the application name (e.g. Mozilla.Firefox).

If you want to find the packages by the app ID, you can use the following command to filter your search:

winget search --ID <App_ID>

or

winget search --ID = <App_ID>

Where replace the <App_ID> argument with the ID of the application you want to search for.

Example 1:

For instance, Twitter app ID from the MS store is 9WZDNCRFJ140. When you have an ID that is a combination of letters and numbers, you’ll need to add a = sign between the ID command and the argument:

winget search --ID = 9WZDNCRFJ140

Also, make sure to add a single <space> before and after the equal sign =.

Example 2:

However, if you have an ID that is a combination of publisher and the application name, you can enter the ID argument with or without the = sign.

For example, let’s say you search for ‘firefox’ in winget, you will see all the results with the string ‘firefox’ in any field as shown in the below screenshot. As you can see below the ID includes the publisher and the application name.

Now, if you want to limit the search to the ID of the firefox application, you can use either of the following commands:

winget search --ID Mozilla.Firefox

or

winget search --ID=Mozilla.Firefox

In the above commands, the ID is the combination of the publisher and the application name. You may also have noticed in the above commands, you can enter the app ID with or without the = sign, and if you include the equal sign (=), make sure to leave no space before and after the = sign for this kind of app ID.

As you can see above, you will get the returned results requiring that ID Mozilla.Firefox is found in the only ‘ID’ field of the results.

Filter Your Search Results by Tags

You can also limit the search to the tags listed for the application packages. For instance, if you want to filter your search result with the tag ‘firefox’, you can try either of the following commands:

winget search --tag firefox

or

winget search --tag=firefox

You will get the returned results with the tag ‘firefox’ listed for the packages.

Filter Your Search Results by Commands

Another way to filter your search is to use the commands listed for the application.

To get only the software packages that have the command ‘firefox’ listed, you can use either of the following commands:

winget search --command=firefox

or

winget search --command firefox

Filter Your Search Results by Moniker

If you don’t know the official or correct name of an app, you search for it with a known nickname (informal name) or moniker.

For example, you can search for ‘Iobit Uninstaller’ application with the moniker ‘Iobit’:

winget search --moniker=iobit

The above will list the apps with the matching moniker or nickname.

Filter Your Search Results by Source

Winget retrieves application packages from Microsoft Store and Winget repositories for installing and upgrading apps. When you search for applications using the Winget tool, it retrieves apps from Microsoft Store and Winget sources as well as any other custom sources you might have added. However, you can also lookup apps from one specific source instead of all using either the -s or --source option.

The syntax:

winget search -S <Source_name>

or

winget search --Source <Source_name>

Where <Source_name> is the name of the source repository, it can be either msstore or winget.

Example:

When you search for ‘Spotify’ app with any filters, you will get the following results from both sources ‘msstore’ (MS Store) and ‘winget’ repository:

To restrict the search to a specific source, type any of the following commands and press Enter.

For Microsoft Store Source:

winget search -s msstore spotify

For Winget Source:

winget search --source winget spotify

In the above commands, you can use either of the -s or --source option to filter your search by the source.

As a result, it will only retrieve results from the specified source.

Filter Your Search Results by Count

You can also specify the number of outputs or results you can get on a search for an app with the help of the -n or --count option.

To limit the number of outputs to a specified count, enter either of these commands:

winget search -n <No.of results> <App_Name>

or

winget search -count <No.of results> <App_Name>

Where replace <No. of results> to the number of results (count) you want to get for a search.

Example:

For instance, if you want to restrict the output to 5 when you’re searching for the ‘Firefox’ app, use either of these commands:

winget search -n 5 firefox

or

winget search --count 5 firefox

Find App Package using Exact String

Sometimes you only want to find the software package that matches the exact query string. In such cases, you can use e or exact option to find the package that matches the exact string in the query.

Example: To find for Recava app using exact match, try the below commands:

winget search --exact Recuva

or

winget search -e Recuva

Search App with Multiple Filter Options

You can also use multiple filter options for searching app. In the below example, we are limiting the search to the name of the application (firefox) and the number of results (3).

winget search --name=firefox --count=3

Search Multiple Apps with a Single Command

Winget can also be used to find multiple apps at a time with a single command. To do that, you’ll need to join multiple commands with ampersand && signs. Here’s an example command:

winget search vlc && winget search twitter && winget search Recuva

View Package Information in Winget

In case you want to view more information about a specific application package, you can do so with the show command.

To show more information about a package, run the following command:

winget show <App_Name> <Options>

To view the options that are available for the show command, use the following command:

winget show -?

These are the available flags (options) that can be used with the show command:

  • -m,--manifest: The path to the manifest of the package.
  • --id: Filter results by id
  • --name: Filter results by name
  • --moniker: Filter results by moniker
  • -v or --version: Use the specified version; default is the latest version
  • -s or --source: Find package using the specified source
  • -e or --exact: Find package using exact match
  • --versions: Show available versions of the package
  • --header: Optional Windows-Package-Manager REST source HTTP header
  • --accept-source-agreements: Accept all source agreements during source operations

Example 1:

For example, if you want to view details about the package ‘Spotify’ with the app ID ‘Spotify.Spotify’, run the following command:

winget show --id=Spotify.Spotify

Example 2:

Winget repositories or sources can contain multiple versions of a software package. To view the list of all available package versions, execute the following command (example):

winget show --id=7Zip.7Zip --versions

Where replace --id=7Zip.7Zip with the option and argument, you wish to use to display a list of available app versions.

Manage Sources of Packages in Winget

Windows Package Manager (Winget) allows you to add, list, update, remove, reset, and export repositories or sources. 

To manage repositories or sources, run the following command:

winget source <sub_commands> <query>

When you enter the above command, you will see the list of subcommands that you can use to manipulate the sources.

Below are all supported sub-commands for the source command:

  • add: Add a new source
  • list: List current sources
  • update: Update current sources
  • remove: Remove current sources
  • reset: Reset sources
  • export: Export current sources

For instance, to view the list of current sources, type the below command:

winget source list

To get full details about a specific source, use this command:

winget source list --name winget

To update a given source, run the following command:

winget source update --name winget

Display the List of Installed Packages

To view the list of all the installed software packages on your computer, run the following command:

winget list <query> <options>

To see the supported flag for the list command:

winget list -?

Below are the supported options for the list command:

  • --id: Filter results by id
  • --name: Filter results by name
  • --moniker: Filter results by moniker
  • --tag: Filter results by tag
  • --command: Filter results by command
  • -n or --count: Show only the specified number of results
  • -s or --source: Find package using the specified source
  • -e or--exact: Find package using exact match
  • --header: Optional Windows-Package-Manager REST source HTTP header
  • --accept-source-agreements: Accept all source agreements during source operations

Example:

There could be multiple applications having the same name are installed on your PC. For example, with the below command you can list all the apps that have ‘Xbox’ on their name.

winget list --name xbox

Install Apps on Your Computer using the Winget

After you found the app package, it’s time to install it with winget. The winget install the command allows you to quickly install any application from its repositories without having to go through the trouble of hunting down the application online, downloading it, and going through the several steps of the installation wizard.

The syntax for the Install command:

winget install <App_Name> <options>

To get more information on the install command and supported options, run the below command:

winget install -?

Here are the supported options/flags for the install command:

  • -m,--manifest: The path to the manifest of the package.
  • --id: Filter results by id
  • --name: Filter results by name
  • --moniker: Filter results by moniker
  • -v or --version: Use the specified version; default is the latest version
  • -s or --source: Find package using the specified source
  • --scope: Select install scope (user or machine)
  • -e or--exact: Find package using exact match
  • -i or --interactive: Request interactive installation; user input may be needed
  • -h or --silent: Request silent installation
  • --locale: Locale to use (BCP47 format)
  • -o or --log: Log location (if supported)
  • --override: Override arguments to be passed on to the installer
  • -l or --location: Location to install to (if supported)
  • --force: Override the installer hash check
  • --accept-package-agreements: Accept all licence agreements for packages
  • --accept-source-agreements: Accept all source agreements during source operations
  • --header: Optional Windows-Package-Manager REST source HTTP header

You can use these options to specify which application to install, how you want to install it, and where to install the specific application.

Example:

Let’s assume you want to install a VLC Media player. For that you can use the below command:

winget install vlc

Note: If the name of the program or query contains any space, enclose it in double quotation marks.

However, multiple packages are found matching your input query and it doesn’t know which one to install, so, Winget will show you the below result.

Install Apps with Winget using the App ID

What you need to do is refine your input, meaning you have to be more specific about which package to install. For that, you’ll need to use the above available options with install command to specify the correct app.

The best way to install the correct application is to use the app ID to specify the particular app package. So when you search for an app using the search command, note down the app ID of the package you want to install. If you have multiple packages with the same name, you can use the app ID to install a particular application.

To install a specific application using the app ID, use the below formula:

winget install --id=<App_ID>

For instance, let’s say you want to install the VLC media player using winget. First, look up the VLC package in the Winget and note down the app ID to get the correct app. Incorrect ID may install a different app than you intended or won’t install any app at all.

To install the VLC app from the Microsoft Store repository, use the app ID (combination of letters and numbers) from the result:

winget install --id=XPDM1ZW6815MQM

or

winget install XPDM1ZW6815MQM

You can also directly input the id argument in the command without including the --id option. As long you pass the exact and unique id argument to the command, Winget will automatically recognize it as an App ID and install that particular app.

When you execute the install command, Winget will display detailed information about the package and software license and ask whether you agree to the terms of the agreement. Simply type ‘Y’ or ‘y’ and press Enter to continue the process.

It will take a few seconds to minutes to download and install the app depending on your internet speed and the size of the app.

If you want to install with the app ID that is a combination of publisher name and app name, use the below command:

winget install --id=VideoLAN.VLC

or

winget install --id VideoLAN.VLC

When you install the app from the Winget repository which usually contains third-party applications, it doesn’t require you to accept any license agreement.

Install Apps with Winget by the App Name

If you don’t have multiple applications with the same name in the Winget repositories, you can use the app name to specify which application to install.

For instance, to install the ‘Recuva’ app, you can use the --name option with the install command:

winget install --name Recuva

Install a Specific Version of a Program with Winget

By default, Winget installs the latest available version of the program. However, you can also specify which version of an application you want to install using the -v or --version option.

To Install a specific version of an app, you can combine the ID of the application with the version option:

winget install --id=VideoLAN.VLC -v=3.0.15

or

winget install --id=VideoLAN.VLC --version=3.0.15

The latest version of VLC is ‘3.0.16’, but we specified the older version ‘3.0.15’ in the above command to install it.

Install Apps from a Specific Source

You can also specify a particular source (repository) to get your applications from (msstore, winget, or custom store). To do that, you need to use -s or --source option with the ‘install’ command. This way you can remove duplicates and install the correct application.

Let’s assume you want to install the ‘Audacity’ program from the winget repository (third-party), you can try this command:

winget install --id=Audacity.Audacity -s=winget

To install an app from the Microsoft Store repository:

winget install --id=9N66VBRR4DPL --source=msstore

Install Apps on the Current User or All User

The --scope option combined with the install command allows you to specify whether the app should be installed only on the current user or on all users (machine).

To install an application only on the current user, use the user argument for the --scope options:

winget install --id=Spotify.Spotify --scope=user

To install an application on all users, use the machine argument for the --scope options:

winget install --id=Spotify.Spotify --scope=machine

However, if you intend to specify the scope as ‘user’, you need to run this command in normal Command Prompt (not on elevated mode).

Install Apps using the Exact String in the Query

If you want to limit the selection to one package, you will need to use the id of the application along with the exact query option (-e or --exact). Unlike other options, the exact query option checks the string for case sensitivity. The App ID or name of the app should be exactly as listed in the search result. Even if a single character is in a different case, the command won’t accept the query.

Here’s a sample command to install an app using the exact string in the query (App name):

winget install Audacity.Audacity -e

or

winget install Audacity.Audacity -exact

Install Apps in Interactive Mode

When you install the app with Winget in default installation mode, it will not require any additional input from you and it will only show you installer progress during installation. However, if you need to configure or choose options during installation, you can run the installer in interactive mode. In interactive mode, you can choose your desired options in the installer wizard.

To run the installer in interactive mode, you will need to use -i or --interactive option:

winget install --id=Audacity.Audacity --interactive

or

winget install --id=Audacity.Audacity -i

Install Apps in Silent Mode

You can also run the package installation in the background without asking for any input or showing any installer progress. This mode will suppress all UI of the installation. To do this, you will need to use use the -h or --silent option with the install command.

To run the software installation in the background, run the following command:

winget install Audacity.Audacity --silent

or

winget install Audacity.Audacity -h

This will suppress all UI of the installation process.

Change the Installation Location for a Program

By default, Applications are installed on the system drive in the ‘C:\Program Files’ folder, but you can change the installation folder for a program with the -l or --locationoption.

For instance, we want to install the Notepad++ program in the “D:\Software” location instead of the default ‘C:\Program Files’ folder. For that we are going to use the below command:

winget install Notepad++.Notepad++ -e --location "D:\Software"

In the above command, ‘Notepad++.Notepad++’ is the ID of the application we want to install, exact query option -e is to limit the selection to one file, and --location is used to specify the custom installation location.

Skip Installer Hash Check

When installing software with winget, it automatically verifies the data integrity of the installer files. However, if you are installing a program for which you don’t want to check for the hash, you can use the --force option:

winget install WSAtools -e --force

Accept License Agreements

When you install certain software, you will be prompted to accept the license agreement of software packages and source. You can avoid those prompts by accepting the license agreement beforehand.

To accept the license agreement of a package, you can use the --accept-package-agreements option with the install command:

winget install --id=9WZDNCRFJ2WL --accept-package-agreements

To accept the source license agreement, you can use the --accept-source-agreements option:

winget install --id=9WZDNCRFJ2WL --accept-source-agreement

Or

You can accept both license agreements, with this command:

winget install --id=9WZDNCRFJ2WL --accept-package-agreements --accept-source-agreement

Install Multiple Applications At Once with Winget on Windows 11

Another big advantage of using Winget is that you can install multiple apps at the same time with a single command. All you have to do is join each Winget install command with two ampersand && characters into a single executable command.

Here’s the syntax for installing multiple apps with winget:

winget install <query_1> <options> && winget install <query_2> <options> && winget install <query_3? <options> && ...

Where replace <query> with the actual name or app ID and <options> with options supported by the install command.

For example, the below command will install a VLC media player, Notepad++, and Audacity applications all at once on your system:

winget install VideoLAN.VLC -e && winget install Notepad++.Notepad++ -e && winget install Audacity.Audacity -e

As you can see above, all three app packages have been installed with a single command.

Update or Upgrade Applications using Winget

Winget enables you to not only install app packages but also upgrade or uninstall the existing ones. You can upgrade any existing application with the upgrade command on your system as long as there’s an update available for the particular app.

The syntax for upgrading app using Winget is:

winget upgrade [[-q] <query>] [<options>]

To know the supported options available for the upgrade command, enter the following command:

winget upgrade -?

The following options are available for the upgrade command:

  • -m,--manifest: The path to the manifest of the package.
  • --id: Filter results by id
  • --name: Filter results by name
  • --moniker: Filter results by moniker
  • -v or --version: Use the specified version; default is the latest version
  • -s or --source: Find package using the specified source
  • -e or --exact: Find package using exact match
  • -i or --interactive: Request interactive installation; user input may be needed
  • -h or --silent: Request silent installation
  • -o or --log: Log location (if supported)
  • --override: Override arguments to be passed on to the installer
  • -l or --location: Location to install to (if supported)
  • --force: Override the installer hash check
  • --accept-package-agreements: Accept all licence agreements for packages
  • --accept-source-agreements: Accept all source agreements during source operations
  • --header: Optional Windows-Package-Manager REST source HTTP header
  • --all: Update all installed packages to latest if available

But before you upgrade any application, you need to check if your currently installed packages have any upgrades available. You can do that with the upgrade or list command which will display all the applications installed on your computer (including programs not installed via Winget).

To list all the programs installed on the computer, run this simple command:

winget upgrade

If an update is available for an app, the new version will be displayed in the corresponding ‘Available’ column as shown below.

or

winget list

To upgrade an application, simply enter the application name with the upgrade command. For example, here we want to upgrade the ‘Recuva’ app:

winget upgrade Recuva

You can also upgrade packages via winget with the help of various available options (--id, --name, --interactive, etc.). To upgrade an application via Winget by their ID, run the below command:

winget upgrade --id VideoLAN.VLC

You can also upgrade all the packages (with available updates) installed on your PC at once. To upgrade all the installed packages (if updates are available), you may execute this command:

winget upgrade --all

The --all option finds all the applications with upgrades available and the upgrade command installs the updates.

Uninstall or Remove Applications using Winget

If you want to uninstall a program via Winget, you can do that with the uninstall command. It can also remove the programs that were not installed using winget.

The syntax: 

winget uninstall [[-q] <query>] [<options>]

The uninstall command has its own set of options, which can be viewed by running this command:

winget uninstall -?

The following options are available:

  • -m,--manifest: The path to the manifest of the package
  • --id: Filter results by id
  • --name: Filter results by name
  • --moniker: Filter results by moniker
  • -v,--version: Use the specified version; default is the latest version
  • -s,--source: Find package using the specified source
  • -e,--exact: Find package using exact match
  • -i,--interactive: Request interactive installation; user input may be needed
  • -h,--silent: Request silent installation
  • -o,--log: Log location (if supported)
  • --header: Optional Windows-Package-Manager REST source HTTP header
  • --accept-source-agreements: Accept all source agreements during source operations

You can use the above options to further refine your search or selection of the correct application you want to uninstall.

Before you uninstall applications, first, view all the apps installed on your device:

winget list

Example 1:

For example, to uninstall the ‘Dinamic Wallpaper’ application, we are using the below command:

winget uninstall "Dinamic Wallpaper"

Since the query (App name) has a space, we enclosed it in double quotation marks.

Example 2:

You can use the --name option to specify the app with a specific name you want to uninstall from your PC.

winget uninstall --name Notepad++ -e

You can also add the exact query -e option to limit the selection to an exact package name.

Example 3:

If you have multiple applications with the same name, you can use the application ID to specify the correct application.

For instance, when you list the ‘Xbox’ applications on your computer, you will get multiple results.

To uninstall the ‘Xbox Game Bar Plugin’ package, you can use the --id option to specify the application ID:

winget uninstall --id=Microsoft.XboxGameOverlay_8wekyb3d8bbwe

Example 4:

Sometimes, when you uninstall a program, it can leave tons of software residue files like history, registries, save files, etc. Depending on the software, it can give you options to clear additional settings and data. To do that, you will need to use the interactive wizard for uninstalling apps.

To uninstall an application in an interactive mode, run the below command:

winget uninstall Notepad++ -e --interactive

If you want to suppress all UI and remove an application in silent mode, run the below command:

winget uninstall Notepad++ -e -h

View the Experimental Features of Windows Package Manager

The features command allows you to view the list of experimental features and status available for your version of the Windows Package Manager (winget).

To view the status of experimental features on Winget, run the following command:

winget features

You will see the list of features and whether they’re enabled or disabled in the ‘Status’ column. You can enable or disable features through Winget settings.

Configure Windows Package Manager (Winget) Settings

Windows Package Manager (Winget) settings can be edited in a JSON setting file. The ‘settings.json’ allows you to customize various Winget client experiences and preferences such as auto-update settings, UI of the progress bar, installer behavior, features, and more.

To open the settings.json file, run the below simple command:

winget settings

By default, the JSON file will open in your default text editor like Notepad. However, it is recommended to edit JSON files in a code editor preferably ‘Microsoft Visual Studio Code’ which will be easier to edit. If the default text/code editor is already set, it will automatically launch your default text editor and open up the settings file in it.

If you don’t have Visual Studio Code, you can install it with this command:

winget install Microsoft.VisualStudioCode

If you don’t want to install VS Code, you can also edit the settings in Notepad.

Once the JSON settings file opens up for the first time in your text editor, there will be no settings configured.

Change Update Interval for the Source

The autoUpdateIntervalInMinutes code specifies the time interval (in minutes) for checking updates to the source. The default update interval is set to ‘5’. You can change it as per your requirement. If you want to disable the automatic update check to a source, just change it to ‘0’.

In the below example, we are changing the update interval to ’10’ minutes.

In case you disabled the auto-update check, you can manually check updates for the source via winget source update.

Change Visual Design of the Progress Bar

You can change the visual style or color of the progress bar with the visual setting. The default color of the progress bar is ‘accent’, but you can change it to ‘retro’ or ‘rainbow’.

For instance, to change the progress bar color to ‘rainbow’, add the following code into the JSON file:

"visual": {
    "progressBar": "rainbow"
},

And make sure to add a closing bracket } at the end of the JSON code.

Change Installation Scope of the Application

You can also change the install behavior including the scope, locale, and more using the installBehavior setting.

The scope setting specifies whether a package should be installed for only the current user or the entire machine. You can set the scope of all the installation to either user or machine.

To change the scope to the current user, enter the below code:

"installBehavior": {
    "preferences": {
        "scope": "user"
    }
},

Enable or Disable Experimental Features in Winget

As we mentioned in the previous section, you can also configure the experimental features of Winget in the settings.json file. The experimentalFeatures setting allows you to enable or disable the features. To view the list of available experimental features, run winget features.

As you can above there are two features available for this version of Windows Package Manager – ‘Show Dependencies Information’ and ‘Direct MSI Installation’. Dependencies feature displays dependencies information of the package and ‘Direct MSI Installation’ allows you directly install MSI packages rather than msiexec. Note down the properties of the features which you can use in the settings to enable or disable the specific feature.

To enable the ‘Direct MSI Installation’ feature, add the below code in the JSON file:

 "experimentalFeatures": {
       "directMSI": true
   },

To enable the ‘Show Dependencies Information’ feature, include the below code in the JSON file:

 "experimentalFeatures": {
       "dependencies": true
   },

Now, run winget features command again to confirm if the features are enabled.

To disable a feature, simply change the boolean value to false in the code.

To know more about Winget settings schema and its usage, check out this article – https://raw.githubusercontent.com/microsoft/winget-cli/master/schemas/JSON/settings/settings.schema.0.2.json.

Export Installed Software to Another Computer via Winget

Another great feature of the Winget tool is that it allows you to export the installed apps on your computer to a JSON file that can be used to quickly install the same apps on another machine. This feature can come in handy if you’re trying to install the same apps on multiple computers or if you are resetting/reinstalling your computer.

However, Winget will only install the apps in the Winget repository. Other programs like pc games will not be installed through Winget JSON files.

The syntax for export command:

winget export [-o] <output> [<options>]

To view supported arguments and options, enter the below command:

winget export -?

The following is the only argument available:

  • -o or --output: Path to the JSON file to be created.

The following options are available:

  • -s or --source: Export packages from the specified source.
  • --include-versions: Include specific package versions in the JSON file.
  • --accept-source-agreements: Accept all source agreements during source operations and avoid prompt.

Example:

To export the list of installed apps on your computer to a JSON file, execute the below command:

winget export -o F:\mycomputerapps.json --include-versions

or

winget export -output F:\mycomputerapps.json --include-versions

Here, -o or --output argument specifies the path where you want to save the JSON (export) file. The –include-versions option tells the winget to include the versions of the apps currently installed in the JSON file. By default, the Import command will install the latest versions of apps from the JSON file. But if you want to export the specific versions of the apps from the existing computer, you will need to include the --include versions option.

If an installed app or version is not available in the repositories, you will see ‘Installed package/version is not available from any source message’ and those apps will not be included in the JSON file.

As you can see below, the newly created JSON file contains the list of programs installed on your machine.

Import Application List from Another Computer via Winget

The import command allows you to install the list of programs from a JSON file on your computer.

The syntax for the import command:

winget import [-i] <import-file> [<options>]

To view supported arguments and options, enter the below command:

winget import -?

The following arguments are supported:

  • -i or --import-file: Path to the JSON file to import

The following options are supported:

  • --ignore-unavailable: Ignore unavailable packages
  • --ignore-versions: Ignore versions specified in the JSON file and install the latest available version
  • --accept-package-agreements: Accept all license agreements for packages
  • --accept-source-agreements: Accept all source agreements during source operations

Example:

To install (import) the applications from a JSON file on a computer, run the command:

winget import -i F:\mycomputerapps.json --ignore-unavailable --ignore-versions

or

winget import –-import-file F:\mycomputerapps.json --ignore-unavailable --ignore-versions

In the above command, -i or --import-file argument specifies the path to the JSON file you want to import. The --ignore-unavailable option suppresses the error you get when a specified package in the JSON file is not available in the repositories. And --ignore-versions option ignores versions specified in the JSON file and installs the latest available version of the apps.

If a package is already installed, Winget will try to find an update for that package. If it’s already up-to-date, you will see the ‘package is already installed:’ and ‘No applicable update is found’ message.

That’s it.