winget 26,463 , the Windows Package Manager (github.com/microsoft/winget-cli (https://github.com/microsoft/winget-cli 26,463 ), MIT), ships with Windows 10 and 11 through the App Installer package. Its catalog is a GitHub 29 repository of YAML manifests, github.com/microsoft/winget-pkgs (https://github.com/microsoft/winget-pkgs 11,115 ), that anyone can send a pull request to; automated checks and moderators review each one. A manifest does not contain the software: it points at the publisher's own installer and records its SHA-256 hash. This book's Windows 11 host runs winget 1.29.380, without administrator rights.
winget install --id jqlang.jq --exact --accept-package-agreements --disable-interactivity
$env:Path += ';' + [Environment]::GetEnvironmentVariable('Path', 'User')
'{"title":"Salt and Saffron","price":24}' | jq -c '{title, price}'
winget list --id jqlang.jq
winget uninstall --id jqlang.jq --exact --disable-interactivityFound jq [jqlang.jq] Version 1.8.2
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/jqlang/jq/releases/download/jq-1.8.2/jq-windows-amd64.exe
Successfully verified installer hash
Starting package install...
Path environment variable modified; restart your shell to use the new value.
Command line alias added: "jq"
Successfully installed
{"title":"Salt and Saffron","price":24}
Name Id Version Source
------------------------------
jq jqlang.jq 1.8.2 winget
Found jq [jqlang.jq]
Starting package uninstall...
Successfully uninstalledwinget downloaded jq 133,477 straight from its GitHub release and checked the manifest's hash. jq is a portable package, a bare .exe that winget normally links into %LOCALAPPDATA%\Microsoft\WinGet\Links; symbolic links need Developer Mode or elevation, so here it added the package folder to the user PATH instead, which the second line reloads. Most packages are MSI or EXE installers that winget runs silently, sometimes behind a UAC prompt. winget upgrade --all updates everything it recognizes, even software installed by hand.