winget
Windows Package Manager CLI for searching, installing, upgrading, and managing software. The Windows equivalent of Homebrew.
Commands
Search for packages
winget search <query> --disable-interactivity --accept-source-agreements
Show package details
winget show <package-id> --disable-interactivity --accept-source-agreements
Install a package
winget install <package-id> --accept-package-agreements --accept-source-agreements --disable-interactivity
Install a specific version:
winget install <package-id> --version <version> --accept-package-agreements --accept-source-agreements --disable-interactivity
Upgrade packages
Check for available upgrades:
winget upgrade --disable-interactivity --accept-source-agreements
Upgrade a specific package:
winget upgrade <package-id> --accept-package-agreements --accept-source-agreements --disable-interactivity
Upgrade all packages:
winget upgrade --all --accept-package-agreements --accept-source-agreements --disable-interactivity
List installed packages
winget list --disable-interactivity --accept-source-agreements
Filter by name:
winget list <query> --disable-interactivity --accept-source-agreements
Uninstall a package
winget uninstall <package-id> --disable-interactivity
Export / Import
Export installed packages to a JSON file:
winget export -o packages.json --accept-source-agreements --disable-interactivity
Import and install from a JSON file:
winget import -i packages.json --accept-package-agreements --accept-source-agreements --disable-interactivity
Examples
# Search for VS Code
winget search "Visual Studio Code" --disable-interactivity --accept-source-agreements
# Install Firefox
winget install Mozilla.Firefox --accept-package-agreements --accept-source-agreements --disable-interactivity
# Show info about a package
winget show Microsoft.PowerToys --disable-interactivity --accept-source-agreements
# List all installed packages
winget list --disable-interactivity --accept-source-agreements
# Upgrade everything
winget upgrade --all --accept-package-agreements --accept-source-agreements --disable-interactivity
Notes
- Always use
--disable-interactivityand--accept-source-agreementsflags for non-interactive agent use. - Use
--accept-package-agreementswhen installing or upgrading to skip license prompts. - Package IDs follow the
Publisher.PackageNameformat (e.g.,Mozilla.Firefox,Microsoft.PowerToys). - Sources:
winget(community repo) andmsstore(Microsoft Store). - Some installs require admin/elevated privileges. If a command fails, suggest the user run it in an elevated terminal.
- For WSL: prefix commands with
cmd.exe /corpowershell.exe -Commandto call the Windows-side winget.