Check the sources
The client ships with the community repository and the Store source. If a package is missing, refresh the sources before you conclude that it does not exist.
winget --version
winget source list
winget source update
A fresh Windows install needs twenty programs. One package manager installs them, updates them and rebuilds the list on the next machine.
Search with **winget search**, install by id with **winget install --id**, then keep the list with **winget export** and restore it on a new PC with **winget import**.
The client ships with the community repository and the Store source. If a package is missing, refresh the sources before you conclude that it does not exist.
winget --version
winget source list
winget source update
Name search returns several candidates and the first hit is not always the one you want. Use the exact identifier so the installer cannot pick a different vendor.
winget search firefox
winget install --id Mozilla.Firefox -e
Accepting the agreements and using the silent switch keeps a setup script from stopping on a prompt. Some installers ignore silent mode and still open a window; those need manual clicks.
winget install --id 7zip.7zip -e --silent --accept-package-agreements --accept-source-agreements
The upgrade command lists what has a newer version and installs it. Close the apps first: an update cannot replace a binary that is currently running.
winget upgrade
winget upgrade --all --include-unknown
The export writes a JSON file with every package and its source. On a new machine one command reinstalls the set; anything unavailable in the repository is reported and skipped.
winget export -o packages.json
winget import -i packages.json
Drivers, VPN clients and tools that break on major updates can be pinned. A pinned package is skipped by upgrade until you unpin it.
winget pin add --id <package> --blocking
winget pin list
Refresh the sources and search the exact name. Niche tools and vendor-specific utilities are often not in the repository.
The app is running. Close it, including its tray icon and background process, then retry.
The installer opened a window and waits for a click. Retry with --silent, or update that program by hand.
Store packages can require a signed-in Microsoft account. Install those from the Store app instead.
For many apps yes, for drivers and firmware no. Those still come from the vendor tool.
For per-machine installs yes, and the UAC prompt appears per package. Per-user installs work without elevation.
Uninstall a package with **winget uninstall --id <package>**. The exported JSON file is plain text and can be deleted at any time.
Free · no account needed · tracks your progress