Repolode
microsoft

microsoft/winget-cli

Microsoft's command-line package manager for Windows, with a PowerShell module and COM API for installing and updating apps.

Open-source alternative to:Chocolatey

Stars
26,517
Forks
1,814
Open issues
1,320
Last commit
5 hours ago

What is it?

WinGet is the Windows Package Manager. It lets you search, install, upgrade and remove applications from the command line with a single command such as `winget install <package>`. The client reads packages from two default sources: the Microsoft Store and the community-maintained WinGet package repository.

Beyond the CLI, the repository contains the Microsoft.WinGet.Client PowerShell module for scripting package operations with native cmdlets, and a COM API for programmatic access from other Windows applications. Sources are pluggable, so organizations can point the client at private REST-based sources and configure policies through group policy.

The client targets Windows 10 1809 and later, Windows 11 and Windows Server 2025, and is distributed through the Microsoft Store App Installer package. The code is written in C++ and includes build and test instructions for developers who want to work on the client itself.

Key features

  • 01Install, upgrade and uninstall Windows applications from the command line.
  • 02Access packages from the Microsoft Store and the WinGet community repository.
  • 03PowerShell module with cmdlets such as Find-WinGetPackage and Install-WinGetPackage.
  • 04COM API for programmatic access from other Windows applications.
  • 05Support for private REST-based package sources.

Use cases

  • Setting up a new Windows PC with a scripted list of developer tools.
  • Automating software installation and updates across managed machines with PowerShell.
  • Hosting an internal package source for an organization's approved applications.

Quick start

  1. 1

    Install the App Installer package (which includes the WinGet client) from the Microsoft Store

  2. 2

    Install the Microsoft.WinGet.Client PowerShell module

    Install-Module -Name Microsoft.WinGet.Client
  3. 3

    Install a package, for example Visual Studio Code

    Install-WinGetPackage -Id Microsoft.VisualStudioCode

Things to know

  • Windows only, and needs Windows 10 1809 or later, Windows 11, or Windows Server 2025.
  • Does not run on Windows Server Core, and Windows Server 2019 and 2022 are unsupported.

Topics

FAQ

What is winget-cli?
Microsoft's command-line package manager for Windows, with a PowerShell module and COM API for installing and updating apps. WinGet is the Windows Package Manager. It lets you search, install, upgrade and remove applications from the command line with a single command such as `winget install <package>`. The client reads packages from two default sources: the Microsoft Store and the community-maintained WinGet package repository.
Is winget-cli free to use? What license does it have?
winget-cli is open source under the MIT license. Check the license terms before using it in commercial products.
Is winget-cli still maintained?
Actively maintained. The last commit to winget-cli was on Oct 22, 2026.
What can I use winget-cli for?
Setting up a new Windows PC with a scripted list of developer tools. Automating software installation and updates across managed machines with PowerShell. Hosting an internal package source for an organization's approved applications.
How do I install winget-cli?
Install the App Installer package (which includes the WinGet client) from the Microsoft Store Install the Microsoft.WinGet.Client PowerShell module: Install-Module -Name Microsoft.WinGet.Client Install a package, for example Visual Studio Code: Install-WinGetPackage -Id Microsoft.VisualStudioCode
Where can I get winget-cli?
The source code and installation instructions are on GitHub: https://github.com/microsoft/winget-cli

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects