WinGet: Windows package manager with CLI and API
Multi-interface Windows package manager for Store and community repositories.
Learn more about winget-cli
WinGet is a package management tool for Windows systems that abstracts software installation and updates through multiple interfaces. The project consists of a command-line interface, PowerShell modules, and a COM API that allow programmatic access to package management functionality. It integrates with two default package sources: the Microsoft Store for consumer applications and the WinGet community repository hosted on GitHub. The tool requires Windows 10 build 17763 or later and manages installer execution, including handling elevation prompts and administrator privilege contexts.

Multiple interface layers
Provides access through CLI, PowerShell modules, and COM API, allowing integration at different levels of Windows automation and scripting workflows.
Dual package sources
Accesses packages from both the Microsoft Store and a community-maintained repository, with support for group policy configuration of additional sources.
Privilege-aware installation
Handles elevation prompts and administrator contexts differently based on execution mode, with distinct behavior when run with or without administrator privileges.
using Microsoft.Management.Deployment;
var packageManager = new PackageManager();
var catalog = packageManager.GetPackageCatalogByName("winget");
var searchResult = catalog.Search("Microsoft.PowerToys");
var package = searchResult.Matches[0].CatalogPackage;
var installOptions = new InstallOptions();
var installResult = await packageManager.InstallPackageAsync(package, installOptions);Servicing release fixing portable package PATH removal on upgrade and App Installer progress/elevation bugs; no breaking changes noted.
- –Upgrade portable packages safely; dev mode disabled no longer strips PATH entries during upgrade.
- –Expect App Installer progress and elevation to work correctly on older OS builds missing Windows App Runtime.
WinGet v1.12 RC2 replaces WinUI 2 with Windows App Runtime 1.8 dependency and ships production font install/uninstall with new winget-font source.
- –Update App Installer dependency from WinUI 2 to Windows App Runtime 1.8 before upgrading to avoid runtime issues.
- –Use new `winget-font` source for font packages; install/uninstall now supports user and machine scopes via manifest.
App Installer now requires Windows App Runtime 1.8 (replaces WinUI 2 dependency); font install/uninstall is production-ready with new winget-fonts source.
- –Update dependencies to Windows App Runtime 1.8 before upgrading; WinUI 2 is no longer used.
- –Use `winget search font -s winget-font` to install fonts; manifest schema v1.12 adds Font as InstallerType.
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
husky
Manage Git hooks via Node.js package.
pybind11
Header-only library creating minimal-boilerplate C++ Python bindings.
mermaid
JavaScript library rendering text-based diagrams as SVG.
plotly.py
Interactive browser-based charts from Python with declarative API.
tradingview
Custom datafeed integration for Tradingview charting library.