# WinGet changelog > The Windows Package Manager command-line tool. - Vendor: Microsoft - Category: Developer Tools - Official site: https://learn.microsoft.com/windows/package-manager/ - Tracked by: What's New (https://whatsnew.fyi/product/winget) - Harvested from: GitHub (microsoft/winget-cli) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v1.30.90-preview — Windows Package Manager 1.30.90-preview - Date: 2026-08-06 - Version: v1.30.90-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.30.90-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.30.90-preview - Labels: Pre-release - **changed** — Updated NUnit to v4 - **fixed** — Fixed a crash (0x8000ffff) when using --disable-interactivity with the Resume experimental feature enabled during install operations - **fixed** — Bubble up child process errors in IndexCreationTool - **changed** — Block admin uninstall of user package This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.30 Nothing yet. ##### Bug Fixes * Updated NUnit to v4 * Fixed a crash (`0x8000ffff`) when using `--disable-interactivity` with the Resume experimental feature enabled during install operations. ##### What's Changed * Bubble up child process errors in IndexCreationTool by @pl4nty in https://github.com/microsoft/winget-cli/pull/6261 * Bump brace-expansion and @vscode/vsce in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6380 * Bump manifest version to 1.30 by @Trenly in https://github.com/microsoft/winget-cli/pull/6379 * Bump linkify-it from 5.0.1 to 5.0.2 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6384 * Bump fast-uri from 3.1.2 to 3.1.4 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6385 * Block admin uninstall of user package by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6345 **Full Changelog**: https://github.com/microsoft/winget-cli/compare/v1.30.80-preview...v1.30.90-preview ### v1.30.80-preview — Windows Package Manager 1.30.80-preview - Date: 2026-07-29 - Version: v1.30.80-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.30.80-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.30.80-preview - Labels: Pre-release - **changed** — Updated NUnit to v4 - **fixed** — Fixed a crash (0x8000ffff) when using --disable-interactivity with the Resume experimental feature enabled during install operations - **changed** — Bump js-yaml from 4.1.1 to 4.3.0 in /tools/WinGetLogViewer - **added** — Optional telemetry event for Microsoft Store catalog installs (msstore source) This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.30 Nothing yet. ##### Bug Fixes * Updated NUnit to v4 * Fixed a crash (`0x8000ffff`) when using `--disable-interactivity` with the Resume experimental feature enabled during install operations. ##### What's Changed * Bump js-yaml from 4.1.1 to 4.3.0 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6359 * Fix portable tests impacted by ADO image by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6354 * /await:strict and fixes for it by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6240 * Fix NuGet packages path by @florelis in https://github.com/microsoft/winget-cli/pull/6365 * Update in-codebase documentation for E2E tests by @Trenly in https://github.com/microsoft/winget-cli/pull/6355 * Update NUnit to v4 by @Trenly in https://github.com/microsoft/winget-cli/pull/6287 * Use NUnit key constraints in DSCv3 settings tests by @Trenly in https://github.com/microsoft/winget-cli/pull/6371 * Optional Telemetry Event for Microsoft Store Catalog Installs (msstore Source) by @shmuelie in https://github.com/microsoft/winget-cli/pull/6352 ##### New Contributors * @shmuelie made their first contribution in https://github.com/microsoft/winget-cli/pull/6352 **Full Changelog**: https://github.com/microsoft/winget-cli/compare/v1.30.50-preview...v1.30.80-preview ### v1.30.70-preview — Windows Package Manager 1.30.70-preview - Date: 2026-07-22 - Version: v1.30.70-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.30.70-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.30.70-preview - Labels: Pre-release - **fixed** — Fixed a crash (0x8000ffff) when using --disable-interactivity with the Resume experimental feature enabled during install operations - **fixed** — Fixed configuration elevation validation for standard flow - **fixed** — Fixed punctuation in error messages - **fixed** — Fixed cpprest checked iterator build error This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.30 Nothing yet. ##### Bug Fixes * Fixed a crash (`0x8000ffff`) when using `--disable-interactivity` with the Resume experimental feature enabled during install operations. ##### What's Changed * Apply latest loc patch by @florelis in https://github.com/microsoft/winget-cli/pull/6262 * Remove old Store certs, replace test use with generated ones by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6275 * Add .gitattributes and normalize line endings across repo by @tianon-sso in https://github.com/microsoft/winget-cli/pull/6267 * Renormalize by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6276 * Change event type by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6273 * Update minor version, archive release notes by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6279 * Align .gitattributes and .editorconfig by @Trenly in https://github.com/microsoft/winget-cli/pull/6285 * Doc manifest schema process by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6280 * Fix crash with --disable-interactivity and EFResume by @Trenly in https://github.com/microsoft/winget-cli/pull/6302 * Fix configuration elevation validation for standard flow by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6307 * Bump markdown-it from 14.1.1 to 14.2.0 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6296 * Bump undici from 7.25.0 to 7.28.0 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6305 * Bump form-data from 4.0.5 to 4.0.6 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6311 * Clean vcpkg artifacts on solution clean by @Trenly in https://github.com/microsoft/winget-cli/pull/6339 * Fix punctuation in error messages by @idleberg in https://github.com/microsoft/winget-cli/pull/6314 * Fix cpprest checked iterator build error by @Trenly in https://github.com/microsoft/winget-cli/pull/6301 * Undo normalization of external files by @florelis in https://github.com/microsoft/winget-cli/pull/6336 ##### New Contributors * @tianon-sso made their first contribution in https://github.com/microsoft/winget-cli/pull/6267 * @idleberg made their first contribution in https://github.com/microsoft/winget-cli/pull/6314 **Full Changelog**: https://github.com/microsoft/winget-cli/compare/v1.29.240...v1.30.70-preview ### v1.30.50-preview — Windows Package Manager 1.30.50-preview - Date: 2026-07-17 - Version: v1.30.50-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.30.50-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.30.50-preview - Labels: Pre-release - **fixed** — Fixed a crash (0x8000ffff) when using --disable-interactivity with the Resume experimental feature enabled during install operations - **fixed** — Fixed configuration elevation validation for standard flow - **fixed** — Fixed punctuation in error messages - **fixed** — Fixed cpprest checked iterator build error This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.30 Nothing yet. ##### Bug Fixes * Fixed a crash (`0x8000ffff`) when using `--disable-interactivity` with the Resume experimental feature enabled during install operations. ##### What's Changed * Apply latest loc patch by @florelis in https://github.com/microsoft/winget-cli/pull/6262 * Remove old Store certs, replace test use with generated ones by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6275 * Add .gitattributes and normalize line endings across repo by @tianon-sso in https://github.com/microsoft/winget-cli/pull/6267 * Renormalize by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6276 * Change event type by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6273 * Update minor version, archive release notes by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6279 * Align .gitattributes and .editorconfig by @Trenly in https://github.com/microsoft/winget-cli/pull/6285 * Doc manifest schema process by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6280 * Fix crash with --disable-interactivity and EFResume by @Trenly in https://github.com/microsoft/winget-cli/pull/6302 * Fix configuration elevation validation for standard flow by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6307 * Bump markdown-it from 14.1.1 to 14.2.0 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6296 * Bump undici from 7.25.0 to 7.28.0 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6305 * Bump form-data from 4.0.5 to 4.0.6 in /tools/WinGetLogViewer by @dependabot[bot] in https://github.com/microsoft/winget-cli/pull/6311 * Clean vcpkg artifacts on solution clean by @Trenly in https://github.com/microsoft/winget-cli/pull/6339 * Fix punctuation in error messages by @idleberg in https://github.com/microsoft/winget-cli/pull/6314 * Fix cpprest checked iterator build error by @Trenly in https://github.com/microsoft/winget-cli/pull/6301 * Undo normalization of external files by @florelis in https://github.com/microsoft/winget-cli/pull/6336 ##### New Contributors * @tianon-sso made their first contribution in https://github.com/microsoft/winget-cli/pull/6267 * @idleberg made their first contribution in https://github.com/microsoft/winget-cli/pull/6314 **Full Changelog**: https://github.com/microsoft/winget-cli/compare/v1.29.240...v1.30.50-preview ### v1.29.280 — Windows Package Manager 1.29.280 - Date: 2026-06-24 - Version: v1.29.280 - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.280 - Permalink: https://whatsnew.fyi/product/winget/releases/v1.29.280 - **added** — Source Priority feature allows assigning numerical priority to sources, affecting result ordering and disambiguation in package selection - **added** — Preserve installer arguments across export and import, capturing --override and --custom arguments in export files and reapplying them during import - **added** — --no-progress flag disables all progress reporting and is universally available on all commands - **added** — MCP upgrade support with upgradeable parameter in find-winget-packages and upgradeOnly parameter in install-winget-package - **added** — Authenticated GitHub API requests in PowerShell module using GH_TOKEN or GITHUB_TOKEN environment variables - **added** — User setting logging.fileNameStrategy for controlling installer log file naming strategies: manifest, timestamp, guid, or shortguid - **added** — Sortable winget list output via --sort field flag with --ascending/--descending direction and persistent output.sortOrder setting - **changed** — Installer type selection now follows default priority order of MSIX, MSI/Wix/Burn, Nullsoft/Inno/EXE, and Portable instead of manifest order - **changed** — REST result match criteria now correctly set to prevent results from being sorted to the top automatically - **fixed** — winget list no longer truncates output when stdout is redirected to a file or variable and computes column widths from full result set - **fixed** — Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean This is the latest of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.29 #### New Feature: Source Priority > [!NOTE] > Experimental under `sourcePriority`; defaulted to disabled. With this feature, one can assign a numerical priority to sources when added or later through the `source edit` command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal. > [!TIP] > Search result ordering in winget is currently based on these values in this order: > 1. Match quality (how well a valid field matches the search request) > 2. Match field (which field was matched against the search request) > 3. Source order (was always relevant, but with priority you can more easily affect this) Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely `install`) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands. ###### REST result match criteria update Along with the source priority change, the results from REST sources (like `msstore`) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically. ##### Minor Features ###### Preserve installer arguments across export and import `winget export` now captures the `--override` and `--custom` arguments that were used when a package was originally installed and saves them into the export file. When subsequently running `winget import`, those values are automatically re-applied during installation — `--override` replaces all installer arguments and `--custom` appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected. ###### --no-progress flag Added a new `--no-progress` command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the `visual.progressBar` setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable. ###### MCP `upgrade` support The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios: - **`find-winget-packages`** now accepts an `upgradeable` parameter (default: `false`). When set to `true`, it lists only installed packages that have available upgrades — equivalent to `winget upgrade`. The `query` parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?" - **`install-winget-package`** now accepts an `upgradeOnly` parameter (default: `false`). When set to `true`, it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to `install-winget-package` without `upgradeOnly` instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with `find-winget-packages` with `upgradeable=true`, "Update all my apps." ###### Authenticated GitHub API requests in PowerShell module The PowerShell module now automatically uses `GH_TOKEN` or `GITHUB_TOKEN` environment variables to authenticate _[Truncated at 4000 characters — full notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.280]_ ### v1.29.250 — Windows Package Manager 1.29.250 - Date: 2026-06-05 - Version: v1.29.250 - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.250 - Permalink: https://whatsnew.fyi/product/winget/releases/v1.29.250 - Labels: Pre-release - **added** — Added source priority feature to assign numerical priority to sources, affecting search result ordering and package selection preference - **added** — Added --no-progress flag to disable all progress reporting across all commands - **added** — Added preservation of installer arguments (--override and --custom) across winget export and import operations - **added** — Added upgradeable parameter to MCP find-winget-packages tool to list only installed packages with available upgrades - **added** — Added upgradeOnly parameter to MCP install-winget-package tool to upgrade only already-installed packages - **added** — Added support for GH_TOKEN and GITHUB_TOKEN environment variables in PowerShell module for authenticated GitHub API requests - **added** — Added logging.fileNameStrategy user setting to control installer log file naming with options: manifest, timestamp, guid, and shortguid - **added** — Added --sort flag to winget list command with support for multiple sort fields and --ascending/--descending direction flags - **added** — Added output.sortOrder persistent setting for winget list sorting - **changed** — Changed REST source results to correctly set match criteria to prevent automatic sorting to the top of results - **changed** — Changed installer type selection to prioritize MSIX, then MSI/Wix/Burn, then Nullsoft/Inno/EXE, then Portable regardless of manifest order - **changed** — Changed winget list output to no longer truncate columns when stdout is redirected to a file or variable - **changed** — Changed spinner and progress bar output to be suppressed when no console is attached for cleaner redirected output This is a release candidate of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.29 #### New Feature: Source Priority > [!NOTE] > Experimental under `sourcePriority`; defaulted to disabled. With this feature, one can assign a numerical priority to sources when added or later through the `source edit` command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal. > [!TIP] > Search result ordering in winget is currently based on these values in this order: > 1. Match quality (how well a valid field matches the search request) > 2. Match field (which field was matched against the search request) > 3. Source order (was always relevant, but with priority you can more easily affect this) Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely `install`) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands. ###### REST result match criteria update Along with the source priority change, the results from REST sources (like `msstore`) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically. ##### Minor Features ###### Preserve installer arguments across export and import `winget export` now captures the `--override` and `--custom` arguments that were used when a package was originally installed and saves them into the export file. When subsequently running `winget import`, those values are automatically re-applied during installation — `--override` replaces all installer arguments and `--custom` appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected. ###### --no-progress flag Added a new `--no-progress` command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the `visual.progressBar` setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable. ###### MCP `upgrade` support The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios: - **`find-winget-packages`** now accepts an `upgradeable` parameter (default: `false`). When set to `true`, it lists only installed packages that have available upgrades — equivalent to `winget upgrade`. The `query` parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?" - **`install-winget-package`** now accepts an `upgradeOnly` parameter (default: `false`). When set to `true`, it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to `install-winget-package` without `upgradeOnly` instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with `find-winget-packages` with `upgradeable=true`, "Update all my apps." ###### Authenticated GitHub API requests in PowerShell module The PowerShell module now automatically uses `GH_TOKEN` or `GITHUB_TOKEN` environment variables to aut _[Truncated at 4000 characters — full notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.250]_ ### v1.29.240 — Windows Package Manager 1.29.240 - Date: 2026-05-29 - Version: v1.29.240 - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.240 - Permalink: https://whatsnew.fyi/product/winget/releases/v1.29.240 - Labels: Pre-release - **added** — Source Priority feature (experimental) allows assigning numerical priority to sources, affecting search result ordering and package selection - **added** — winget export now captures --override and --custom installer arguments and winget import automatically re-applies them during reinstallation - **added** — --no-progress command-line flag disables all progress reporting and takes precedence over the visual.progressBar setting - **added** — MCP find-winget-packages tool now accepts upgradeable parameter to list only installed packages with available upgrades - **added** — MCP install-winget-package tool now accepts upgradeOnly parameter to upgrade only already-installed packages - **added** — PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests - **changed** — Installer type selection now prefers MSIX, then MSI/Wix/Burn, then Nullsoft/Inno/EXE, then Portable, regardless of manifest order - **changed** — winget list no longer truncates output when stdout is redirected to a file or variable - **changed** — REST source results now correctly set match criteria to prevent automatic sorting to the top - **added** — logging.fileNameStrategy user setting controls default naming strategy for installer log files with options manifest, timestamp, guid, or shortguid This is a release candidate of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). Note: This version is not fully localized yet. Localized strings will be included in a future build before stable release. ##### New in v1.29 #### New Feature: Source Priority > [!NOTE] > Experimental under `sourcePriority`; defaulted to disabled. With this feature, one can assign a numerical priority to sources when added or later through the `source edit` command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal. > [!TIP] > Search result ordering in winget is currently based on these values in this order: > 1. Match quality (how well a valid field matches the search request) > 2. Match field (which field was matched against the search request) > 3. Source order (was always relevant, but with priority you can more easily affect this) Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely `install`) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands. ###### REST result match criteria update Along with the source priority change, the results from REST sources (like `msstore`) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically. ##### Minor Features ###### Preserve installer arguments across export and import `winget export` now captures the `--override` and `--custom` arguments that were used when a package was originally installed and saves them into the export file. When subsequently running `winget import`, those values are automatically re-applied during installation — `--override` replaces all installer arguments and `--custom` appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected. ###### --no-progress flag Added a new `--no-progress` command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the `visual.progressBar` setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable. ###### MCP `upgrade` support The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios: - **`find-winget-packages`** now accepts an `upgradeable` parameter (default: `false`). When set to `true`, it lists only installed packages that have available upgrades — equivalent to `winget upgrade`. The `query` parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?" - **`install-winget-package`** now accepts an `upgradeOnly` parameter (default: `false`). When set to `true`, it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to `install-winget-package` without `upgradeOnly` instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with `find-winget-packages` with `upgradeable=true`, "Update all my apps." ###### Authenticated GitHub API requests _[Truncated at 4000 characters — full notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.240]_ ### v1.29.170-preview — Windows Package Manager 1.29.170-preview - Date: 2026-05-07 - Version: v1.29.170-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.170-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.29.170-preview - Labels: Pre-release - **added** — Source Priority feature (experimental) to assign numerical priority to sources, affecting search result ordering and package selection preference - **added** — Preserve installer arguments across export and import using --override and --custom flags - **added** — --no-progress flag to disable all progress reporting universally across commands - **added** — MCP find-winget-packages tool now accepts upgradeable parameter to list only installed packages with available upgrades - **added** — MCP install-winget-package tool now accepts upgradeOnly parameter to upgrade only already-installed packages - **added** — PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests - **changed** — REST source results now correctly set match criteria to prevent automatic sorting to top of results - **changed** — winget list and similar table commands no longer truncate output when stdout is redirected to file or variable - **changed** — Spinner and progress bar output are suppressed when no console is attached - **fixed** — winget export now works when the destination path is a hidden file - **fixed** — Fixed useLatest property in DSC v3 Microsoft.WinGet/Package resource schema to emit boolean false instead of string - **fixed** — SignFile in WinGetSourceCreator now supports optional RFC 3161 timestamp server via TimestampServer property - **fixed** — File and directory paths passed to signtool.exe and makeappx.exe are now quoted to fix failures with spaces in paths - **fixed** — DSC export now correctly exports WinGet Admin Settings This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.29 #### New Feature: Source Priority > [!NOTE] > Experimental under `sourcePriority`; defaulted to disabled. With this feature, one can assign a numerical priority to sources when added or later through the `source edit` command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal. > [!TIP] > Search result ordering in winget is currently based on these values in this order: > 1. Match quality (how well a valid field matches the search request) > 2. Match field (which field was matched against the search request) > 3. Source order (was always relevant, but with priority you can more easily affect this) Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely `install`) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands. ###### REST result match criteria update Along with the source priority change, the results from REST sources (like `msstore`) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically. ##### Minor Features ###### Preserve installer arguments across export and import `winget export` now captures the `--override` and `--custom` arguments that were used when a package was originally installed and saves them into the export file. When subsequently running `winget import`, those values are automatically re-applied during installation — `--override` replaces all installer arguments and `--custom` appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected. ###### --no-progress flag Added a new `--no-progress` command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the `visual.progressBar` setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable. ###### MCP `upgrade` support The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios: - **`find-winget-packages`** now accepts an `upgradeable` parameter (default: `false`). When set to `true`, it lists only installed packages that have available upgrades — equivalent to `winget upgrade`. The `query` parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?" - **`install-winget-package`** now accepts an `upgradeOnly` parameter (default: `false`). When set to `true`, it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to `install-winget-package` without `upgradeOnly` instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with `find-winget-packages` with `upgradeable=true`, "Update all my apps." ###### Authenticated GitHub API requests in Po _[Truncated at 4000 characters — full notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.170-preview]_ ### v1.29.160-preview — Windows Package Manager 1.29.160-preview - Date: 2026-05-01 - Version: v1.29.160-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.160-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.29.160-preview - Labels: Pre-release - **added** — Source Priority feature to assign numerical priority to sources, affecting search result ordering and package disambiguation - **added** — Preserve installer arguments (--override and --custom) across export and import operations - **added** — --no-progress flag to disable all progress reporting universally across commands - **added** — MCP find-winget-packages tool now accepts upgradeable parameter to list only installed packages with available upgrades - **added** — MCP install-winget-package tool now accepts upgradeOnly parameter to upgrade only already-installed packages - **added** — PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests - **changed** — REST source results now correctly set match criteria to prevent automatic sorting to top of results - **changed** — winget list and similar table commands no longer truncate output when stdout is redirected - **changed** — Spinner and progress bar output are suppressed when no console is attached - **fixed** — winget export now works when the destination path is a hidden file - **fixed** — Fixed useLatest property in DSC v3 Microsoft.WinGet/Package resource schema to emit boolean false instead of string false - **fixed** — SignFile in WinGetSourceCreator now supports optional RFC 3161 timestamp server via new TimestampServer property - **fixed** — File and directory paths passed to signtool.exe and makeappx.exe are now quoted to fix failures when paths contain spaces - **fixed** — DSC export now correctly exports WinGet Admin Settings This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.29 #### New Feature: Source Priority > [!NOTE] > Experimental under `sourcePriority`; defaulted to disabled. With this feature, one can assign a numerical priority to sources when added or later through the `source edit` command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal. > [!TIP] > Search result ordering in winget is currently based on these values in this order: > 1. Match quality (how well a valid field matches the search request) > 2. Match field (which field was matched against the search request) > 3. Source order (was always relevant, but with priority you can more easily affect this) Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely `install`) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands. ###### REST result match criteria update Along with the source priority change, the results from REST sources (like `msstore`) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically. ##### Minor Features ###### Preserve installer arguments across export and import `winget export` now captures the `--override` and `--custom` arguments that were used when a package was originally installed and saves them into the export file. When subsequently running `winget import`, those values are automatically re-applied during installation — `--override` replaces all installer arguments and `--custom` appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected. ###### --no-progress flag Added a new `--no-progress` command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the `visual.progressBar` setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable. ###### MCP `upgrade` support The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios: - **`find-winget-packages`** now accepts an `upgradeable` parameter (default: `false`). When set to `true`, it lists only installed packages that have available upgrades — equivalent to `winget upgrade`. The `query` parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?" - **`install-winget-package`** now accepts an `upgradeOnly` parameter (default: `false`). When set to `true`, it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to `install-winget-package` without `upgradeOnly` instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with `find-winget-packages` with `upgradeable=true`, "Update all my apps." ###### Authenticated GitHub API requests in Po _[Truncated at 4000 characters — full notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.160-preview]_ ### v1.29.140-preview — Windows Package Manager 1.29.140-preview - Date: 2026-04-16 - Version: v1.29.140-preview - Original notes: https://github.com/microsoft/winget-cli/releases/tag/v1.29.140-preview - Permalink: https://whatsnew.fyi/product/winget/releases/v1.29.140-preview - Labels: Pre-release - **added** — Source priority feature allowing assignment of numerical priority to sources for affecting search result ordering and package selection - **added** — Add --no-progress flag to disable all progress reporting across all commands - **added** — PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests - **added** — TimestampServer property on the Signature model in WinGetSourceCreator to support optional RFC 3161 timestamp server for SignFile - **fixed** — File and directory paths passed to signtool.exe and makeappx.exe are now quoted to fix failures when paths contain spaces - **fixed** — REST source results now correctly set match criteria to prevent them from being sorted to the top automatically This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by [filing an issue](https://github.com/microsoft/winget-cli/issues). ##### New in v1.29 #### New Feature: Source Priority > [!NOTE] > Experimental under `sourcePriority`; defaulted to disabled. With this feature, one can assign a numerical priority to sources when added or later through the `source edit` command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal. > [!TIP] > Search result ordering in winget is currently based on these values in this order: > 1. Match quality (how well a valid field matches the search request) > 2. Match field (which field was matched against the search request) > 3. Source order (was always relevant, but with priority you can more easily affect this) Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely `install`) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands. ###### REST result match criteria update Along with the source priority change, the results from REST sources (like `msstore`) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically. ##### Minor Features ###### --no-progress flag Added a new `--no-progress` command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the `visual.progressBar` setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable. ###### Authenticated GitHub API requests in PowerShell module The PowerShell module now automatically uses `GH_TOKEN` or `GITHUB_TOKEN` environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use `-Verbose` to see which token is being used. ##### Bug Fixes * `SignFile` in `WinGetSourceCreator` now supports an optional RFC 3161 timestamp server via the new `TimestampServer` property on the `Signature` model. When set, `signtool.exe` is called with `/tr /td sha256`, embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires. * File and directory paths passed to `signtool.exe` and `makeappx.exe` are now quoted, fixing failures when paths contain spaces. ##### What's Changed * docs: fix multiple documentation issues (#5296, #5921, #5108, #4372, #5867) by @GrantMeStrength in https://github.com/microsoft/winget-cli/pull/6110 * Revert help link in DscCommand by @JohnMcPMS in https://github.com/microsoft/winget-cli/pull/6111 * Update Moq, curl, and c-ares by @Trenly in https://github.com/microsoft/winget-cli/pull/6112 * Add Timeserver Support for SourceCreator and support spaces in paths and file names by @Trenly in https://github.com/microsoft/winget-cli/pull/6113 ##### New Contributors * @GrantMeStrength made their first contribution in https://github.com/microsoft/winget-cli/pull/6110 **Full Changelog**: https://github.com/microsoft/winget-cli/compare/v1.29.70-preview...v1.29.140-preview