Experimental Features
WinGet includes experimental features that are in development and not yet ready for general release. These features allow early adopters to test new functionality and provide feedback.Overview
Experimental features are:- Disabled by default to avoid disrupting users
- Configured via settings.json to enable/disable
- Work in progress and may have incomplete functionality
- Subject to change before official release
Viewing Available Features
To see all available experimental features and their current status:- Feature name
- Current status (Enabled/Disabled)
- Link to related issue or specification
Features may be managed by group policy. Use
winget --info to view any policies in effect on your system.Enabling Experimental Features
Enable features by editing your settings.json file:-
Open settings:
-
Add the
experimentalFeaturessection: - Save the file and restart your terminal
Available Experimental Features
Direct MSI Installation
Enable direct MSI installation using MSI APIs instead of msiexec.
- Improved performance for MSI installations
- Better error handling and logging
- More control over the installation process
- Users who frequently install MSI packages
- Automation scenarios requiring precise control
- Troubleshooting MSI installation issues
Font Management
Enable font installation and management capabilities.
winget font command.
- Lists installed font families
- Shows number of installed font faces per family
- Supports standard WinGet search and filter operations
Font packages must be properly formatted in the package repository with
installerType: font.Source Priority
Enable priority-based source ordering.
- Sources with higher priority appear earlier in search results
- Higher priority sources are selected first when multiple sources have the same package
- Priority is the lowest factor in search ordering (after match quality and field)
- Corporate environments with internal package repositories
- Preferring specific sources for certain packages
- Managing multiple package sources efficiently
Source Priority Configuration
Source Priority Configuration
When adding sources with priority enabled:Search results will prioritize packages from higher-priority sources.
Resume (Command Resume)
Enable automatic command resumption after interruption.
- Commands can resume up to
maxResumestimes - Prevents infinite reboot loops
- Tracks resume state in WinGet’s data store
Reference Implementation Features
These features exist as reference implementations and examples:Experimental CMD
Reference implementation for an experimental command.
Experimental ARG
Reference implementation for an experimental argument.
These reference features demonstrate how experimental features are implemented in WinGet’s codebase.
Feature Lifecycle
Development Phase
- Feature flagged - Added to codebase behind experimental flag
- Settings added - Configuration option added to settings schema
- Testing - Early adopters test and provide feedback
- Refinement - Feature improved based on feedback
Release Phase
- Stabilization - Feature considered stable
- Documentation - Full documentation written
- Default enabled - Feature enabled by default
- Flag removal - Experimental flag removed from codebase
Deprecation Phase
If a feature is not released:- Announcement - Deprecation announced
- Removal - Code and settings removed
- Setting ignored - Old setting name preserved (ignored) to prevent reuse
Using Experimental Features Safely
Best Practices
Best Practices
- Test in non-production - Try features in development environments first
- Monitor behavior - Watch for unexpected behavior or errors
- Report issues - File bugs on the WinGet GitHub repository
- Stay updated - Check release notes for feature changes
- Disable if needed - Turn off features that cause problems
Error Handling
If you attempt to use an experimental command or option that isn’t enabled:- Run
winget settings - Enable the required feature
- Save and retry the command
Checking Feature Status
Programmatically check if features are enabled:Complete Example
Enable multiple experimental features:Troubleshooting
Feature not working after enabling
Feature not working after enabling
- Verify JSON syntax is correct in settings.json
- Ensure feature name matches exactly (case-sensitive)
- Restart your terminal/command prompt
- Run
winget featuresto confirm feature is enabled - Check
winget --infofor group policies that may override settings
Settings file errors
Settings file errors
If you get schema validation errors:
-
Ensure the schema line is present:
- Validate JSON syntax using a linter
- Check for typos in feature names
-
Ensure boolean values are
trueorfalse(not strings)
See Also
- Settings Configuration - All WinGet settings
- Features Command - View experimental feature status
- WinGet Settings Schema - JSON schema reference