Install and Manage Dev Tools with Windows Package Manager (winget)
Difficulty: Beginner | Time Required: 15-20 minutesIntroduction
Windows Package Manager (winget) is a fast, consistent way to install and manage developer tools on Windows. Instead of downloading installers from multiple websites, you can search for a tool, install it with one command, and keep it up to date with a single upgrade command. This tutorial walks you through using winget to set up a developer-friendly environment on Windows 10 (1809+) or Windows 11.
Prerequisites
- A supported Windows version:
- Windows 10 version 1809 or later (winget requires the App Installer, typically installed via Microsoft Store)
- Windows 11
- Access to the Microsoft Store to install or update App Installer if winget isn’t present.
- Basic familiarity with a command line (Windows Terminal, Command Prompt, or PowerShell).
1) Confirm winget is available
- Open Windows Terminal or Command Prompt.
- Type:
winget --version
- If you see a version number, you’re ready. If the command isn’t found, install or update App Installer from the Microsoft Store (this provides winget on Windows 10/11).
- In the same terminal, run:
winget --version(to verify again)- If you’re not on the latest App Installer, update via Microsoft Store (App Installer).Winget itself updates with Windows/App Installer updates.
- For each tool you want, first search to confirm the exact package ID. Examples:
winget search vscodewinget search gitwinget search nodejswinget search pythonwinget search windowsterminalwinget search dockerDesktop
- Look for the line that shows the exact package ID (it will look like something like Microsoft.VisualStudioCode, Git.Git, OpenJS.NodeJS, Python.Python.3, Microsoft.WindowsTerminal, Docker.DockerDesktop, etc..
Tip: It’s fine to install a few tools in succession. If you prefer, you can script this later.
- Visual Studio Code
- ID example: Microsoft.VisualStudioCode
- Command:
winget install -e --id Microsoft.VisualStudioCode
- Git
- ID example: Git.Git
- Command:
winget install -e --id Git.Git
- Node.js
- Search first to confirm the exact ID (example: OpenJS.NodeJS)
- Command (replace <ID> with the exact result you saw):
winget install -e --id <ID>
- Python (3.x)
- ID example: Python.Python.3
- Command:
winget install -e --id Python.Python.3
- Windows Terminal
- ID example: Microsoft.WindowsTerminal
- Command:
winget install -e --id Microsoft.WindowsTerminal
- Docker Desktop
- ID example: Docker.DockerDesktop
- Command:
winget install -e --id Docker.DockerDesktop
- The
-eflag means “exact match” to avoid ambiguous results. - If you don’t know the exact ID, use
winget search <tool-name>again and copy the ID from the results. - Some tools may require a restart or elevated permissions. Winget will prompt you if necessary.
- After installing each tool, you can confirm by listing installed packages:
winget list
- You can also launch the tool to confirm it starts correctly (e.g., open VS Code or Windows Terminal).
- To upgrade all apps you’ve installed with winget:
winget upgrade --all
- If you want to upgrade a specific tool:
winget upgrade --id Microsoft.VisualStudioCode
- Keeping tools up to date helps you get the latest features and security fixes with minimal effort.
- If you want to remove a tool:
winget uninstall --id Microsoft.VisualStudioCode -e
- Replace the ID with the exact one for the tool you want to remove.
- If a command says a package isn’t found:
- Re-run a search for the exact ID:
winget search <tool-name> - Some tools aren’t available in winget yet; in that case, install from the official website.
- Re-run a search for the exact ID:
- If installation prompts for elevated privileges:
- Run Windows Terminal as Administrator or approve the UAC prompt when asked.
- Network and proxy considerations:
- If you’re on a corporate network or behind a proxy, ensure your network settings allow access to the Windows Package Manager sources. You may need to configure a proxy in your environment or ask IT for access.
- Knowing when to use specific versions:
- Winget typically installs the latest stable release unless you specify a particular version. If you need a specific version, check the package details with
winget show --id <ID> -eto see available versions.
- Winget typically installs the latest stable release unless you specify a particular version. If you need a specific version, check the package details with
- If winget is slow or failing to reach sources:
- Try
winget source update, then retry the install.
- Try
- Windows 10 vs Windows 11 considerations:
- On Windows 11, winget comes preinstalled and is generally up to date with system updates.
- On Windows 10, ensure App Installer is installed and updated from the Microsoft Store to get winget functionality.
Using winget to install and manage development tools provides a consistent, repeatable setup with easy maintenance. You can quickly add new tools, keep everything up to date with a single command, and remove software you no longer need without juggling multiple installers. This approach saves time, reduces setup friction, and helps you maintain a clean, organized development environment across Windows 10 and Windows 11.
Key Takeaways:
- Winget offers a simple, centralized way to install and upgrade dev tools with one command set.
- Always verify the exact package ID with winget search before installing.
- You can install multiple tools quickly and keep them up to date with winget upgrade --all.
- If a package isn’t available in winget, you can install it from the official site or hub, and use winget for the rest of your toolkit.
This tutorial was generated to help WindowsForum.com users get the most out of their Windows experience.