Skip to content
Windows Package Manager CLI (aka winget)
C++ Python C C# CMake Shell Other
Branch: master
Clone or download

Latest commit

JohnMcPMS Update spec template and spec to include link (#368)
* Update

* Update #292 - winget should install an app if there is an exact

* Update

* Update #292 - winget should install an app if there is an exact

* Update #292 - winget should install an app if there is an exact

* Update
Latest commit 2667ead May 30, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Adding "Brief Description" (#145) May 16, 2020
Localization Apply latest localization patch (#167) May 16, 2020
doc Update spec template and spec to include link (#368) May 30, 2020
src Spelling (#327) May 28, 2020
.gitignore Initial commit Jul 16, 2019
CODEOWNERS Populate with initial solution and basic application (#1) Dec 3, 2019 Initial commit Jul 16, 2019
LICENSE Initial commit Jul 16, 2019
NOTICE Apply generated NOTICE file (#136) May 13, 2020 Whitespace for the win! (#280) May 21, 2020 Adding (#127) May 11, 2020
azure-pipelines.loc.yml Initial Loc build definition. (#99) May 5, 2020
azure-pipelines.yml Add Overview to README (#172) May 18, 2020
cgmanifest.json Create vcxproj for yaml-cpp and add manifest helper lib with tests (#14) Dec 20, 2019 Adding telemetry shared items project to package manager client proje… Dec 9, 2019

Welcome to the Windows Package Manager Client (aka winget) repository

This repository contains the source code for the Windows Package Manager Client (aka winget).

The packages available to the client are in the Community repo.

The Windows Package Manager project is in Preview. We welcome all feedback, and that feedback might lead to big (maybe even breaking) changes.

Installing the client

The client requires Windows 10 1709 (build 16299) or later at this time.

Microsoft Store [Recommended]

The client is distributed within the App Installer package. While this package is pre-installed on Windows, the client will not be made generally available during the Preview period. In order to get automatic updates from the Microsoft Store that contain the client, one must do one of the following:

Once you have received the updated App Installer you should be able to execute winget. Some users have reported issues with the client not being on their PATH.

Manually Update

The same Microsoft Store package will be made available via our Releases. Note that installing this package will give you the WinGet client, but it will not enable automatic updates from the Microsoft Store.

You may need to install the Desktop Bridge VC++ v14 Redistributable Package and the associated Microsoft.VCLibs.140.00.UWPDesktop package. This should only be necessary on older builds of Windows if you get an error about missing framework packages.

Build your own

You can also build the client yourself. While the client should be perfectly functional, we are not ready to provide full support for clients running outside of the official distribution mechanisms yet. Feel free to file an Issue, but know that it may get lower prioritization.

Build Status

Build Status

Windows Package Manager 1.0 Roadmap

The plan for delivering Windows Package Manager v1.0 is described here, and will be updated as the project proceeds.

Overview of the Windows Package Manager

The Windows Package Manager is a tool designed to help you quickly and easily discover and install those tools that make your PC environment special. By using the Windows Package Manager, from one command, you can install your favorite tool: winget install <tool>

For Preview, the goal is to get something usable in your hands as soon as possible. At preview you can search, show, and install packages. Soon we will have uninstall, list and update. These items are available on our backlog, so feel free to upvote the features you want.


Client Repository

This winget-cli repository includes the source code designed to build the client. You are encouraged to participate in the development of this client. We have plenty of backlog features in our Issues. You can upvote the ones you want, add more, or even get started on one.


The client is built around the concept of sources; a set of packages effectively. Sources provide the ability to discover and retrieve the metadata about the packages, so that the client can act on it.

The default source reflects that data available from the Community repo.

We plan to better support additional sources, and additional types of sources, in the future. For now, additional sources can be configured, but only one used at a time.

Package Manager Service

The Package Manager Service is responsible for approving Pull Requests. It validates the YAML and manifest spec for spec compliance.

Building the client



We currently only build using the solution; command line methods of building a VS solution should work as well.


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.


The winget.exe client is instrumented to collect usage and diagnostic (error) data and sends it to Microsoft to help improve the product.

If you build the client yourself the instrumentation will not be enabled and no data will be sent to Microsoft.

The winget.exe client respects machine wide privacy settings and users can opt-out on their device, as documented in the Microsoft Windows privacy statement here.

In short to opt-out, go to Start, then select Settings > Privacy > Diagnostics & feedback, and select Basic.

See the privacy statement for more details.

You can’t perform that action at this time.