winget on Windows

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.

Installing, using and removing jq with wingetSass
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-interactivity
Output
Found 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 uninstalled

winget 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.