You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Provides customizations for the Windows Package Manager.
4
-
ms.date: 08/02/2022
4
+
ms.date: 07/08/2025
5
5
ms.topic: article
6
-
ms.localizationpriority: medium
7
6
---
8
7
9
8
# settings command (winget)
10
9
11
-
The **settings** command of the [winget](./index.md)tool allows you to customize your Windows Package Manager client experience. You can change defaults and try out experimental features that are enabled in your client.
10
+
The **settings** command of [WinGet](./index.md) allows you to customize your Windows Package Manager client experience. You can change defaults and try out experimental features that are available in your client.
12
11
13
-
The **settings** command will launch your default text editor. Windows by default will launch Notepad as an option. We recommend using a tool like [Visual Studio code](https://code.visualstudio.com/).
12
+
The **settings** command will launch your default JSON editor. Windows by default will launch Notepad as an option. We recommend using a tool like [Visual Studio code](https://code.visualstudio.com/).
14
13
15
14
>[!NOTE]
16
15
>You can easily install Visual Studio Code by typing `winget install Microsoft.VisualStudioCode`
@@ -21,49 +20,68 @@ The following aliases are available for this command:
21
20
22
21
- config
23
22
23
+
## Sub-commands
24
+
25
+
The following sub-commands are available.
26
+
27
+
| Sub-Command | Description |
28
+
|-------------|-------------|
29
+
|**export**| Exports settings. |
30
+
|**set**| Sets the value of an administrator setting. |
31
+
|**reset**| Resets an administrator setting to its default value. |
32
+
33
+
## Options
34
+
The following options are available:
35
+
36
+
| Argument | Description |
37
+
|-------------|-------------|
38
+
|**--enable**| Enables the specified administrator setting. |
39
+
|**--disable**| Disables the specified administrator setting. |
40
+
|**-?,--help**| Shows help about the selected command. |
41
+
|**--wait**| Prompts the user to press any key before exiting. |
42
+
|**--logs,--open-logs**| Opens the default logs location. |
43
+
|**--verbose,--verbose-logs**| Enables verbose logging for winget. |
|**--proxy**| Sets a proxy to use for this execution. |
47
+
|**--no-proxy**| Disables the use of proxy for this execution. |
48
+
24
49
## Use the winget settings command
25
50
26
51
Launch your default JSON editing tool: `winget settings`
27
52
28
-
When you launch the settings for the first time, there will be no settings specified. At the top of the JSON file we provide a [link](https://aka.ms/winget-settings) where you can discover the latest experimental features and settings.
53
+
When you launch the settings for the first time, there will be no settings specified. At the top of the JSON file, we provide a [WinGet CLI Settings](https://aka.ms/winget-settings) link, where you can discover the latest experimental features and settings.
29
54
30
-
The code snippet below is an example of what your settings file should look like if you would like to enable or modify some of these experimental features and settings.
55
+
The code snippet below shows an example of what your settings file might look like with visual output modifications and experimental features enabled.
// For documentation on these settings, see: https://aka.ms/winget-settings
37
-
"experimentalFeatures": {
38
-
"dependencies": true,
39
-
"directMSI": false,
40
-
"zipInstall": false,
41
-
},
42
61
"visual": {
62
+
"enableSixels": true,
43
63
"progressBar": "rainbow"
44
64
},
45
-
"source": {
46
-
"autoUpdateIntervalInMinutes": 5
47
-
},
65
+
"experimentalFeatures": {
66
+
"experimentalARG": true,
67
+
"experimentalCMD": true
68
+
}
48
69
}
49
70
```
50
71
51
72
We have also defined a schema for the settings file. This allows you to use TAB to discover settings and syntax if your JSON editor supports JSON schemas.
52
73
53
-
> [!NOTE]
54
-
> Experimental features are only available in preview builds. Instructions for obtaining a preview build can be found in the [GitHub repository](https://github.com/microsoft/winget-cli).
55
-
56
74
## Updating settings
57
75
58
-
The following settings are available for the 1.0 release of the Windows Package Manager.
76
+
The following settings are available for the 1.11 release of the Windows Package Manager.
59
77
60
78
### source settings
61
79
62
80
The `source` settings involve configuration to the WinGet source.
63
81
64
82
```json
65
83
"source": {
66
-
"autoUpdateIntervalInMinutes": 3
84
+
"autoUpdateIntervalInMinutes": 60
67
85
},
68
86
```
69
87
@@ -72,7 +90,7 @@ The `source` settings involve configuration to the WinGet source.
72
90
A positive integer represents the update interval in minutes. The check for updates only happens when a source is used. A zero will disable the check for updates to a source. Any other values are invalid.
73
91
74
92
- Disable: 0
75
-
- Default: 5
93
+
- Default: 15
76
94
77
95
To manually update the source use `winget source update`.
78
96
@@ -82,7 +100,8 @@ The `visual` settings involve visual elements that are displayed by WinGet
82
100
83
101
```json
84
102
"visual": {
85
-
"progressBar": "accent"
103
+
"enableSixels": true,
104
+
"progressBar": "rainbow"
86
105
},
87
106
```
88
107
@@ -91,58 +110,52 @@ The `visual` settings involve visual elements that are displayed by WinGet
91
110
Color of the progress bar that WinGet displays when not specified by arguments.
92
111
93
112
- accent (default)
94
-
- retro
95
113
- rainbow
114
+
- retro
115
+
- sixel
116
+
- disabled
96
117
97
-
###installBehavior settings
118
+
#### anonymizeDisplayedPaths
98
119
99
-
The `installBehavior` settings affect the default behavior of installing and upgrading (where applicable) packages.
120
+
Replaces some known folder paths with their respective environment variables.
100
121
101
-
### disableInstallNotes
102
-
The `disableInstallNotes` behavior affects whether installation notes are shown after a successful install. Defaults to `false` if value is not set or is invalid.
122
+
#### enableSizels
103
123
104
-
```json
105
-
"installBehavior": {
106
-
"disableInstallNotes": true
107
-
},
108
-
```
124
+
Enables output of sixel images in certain contexts.
109
125
110
-
### portablePackageUserRoot setting
126
+
### logging settings
111
127
112
-
The `portablePackageUserRoot` setting affects the default root directory where packages are installed to under `User` scope. This setting only applies to packages with the `portable` installer type. Defaults to `%LOCALAPPDATA%/Microsoft/WinGet/Packages/` if value is not set or is invalid.
128
+
The `logging` settings control the level of detail in log files. `--verbose-logs` will override this setting and always creates a verbose log.
113
129
114
-
> Note: This setting value must be an absolute path.
The `portablePackageMachineRoot` setting affects the default root directory where packages are installed to under `Machine` scope. This setting only applies to packages with the `portable` installer type. Defaults to `%PROGRAMFILES%/WinGet/Packages/` if value is not set or is invalid.
137
+
#### level
125
138
126
-
> Note: This setting value must be an absolute path.
139
+
The following logging levels are available. Defaults to `info` if the value is not set or is invalid.
Some of the settings are duplicated under `preferences` and `requirements`.
137
150
138
-
- The `preferences` setting affects how the various available options are sorted when choosing the one to act on. For example, the default scope of package installs is for the current user, but if that is not an option then a machine level installer will be chosen.
151
+
- The `preferences` setting controls how the various available options are sorted when choosing the one to act on. For example, the default scope of package installs is for the current user, but if that is not an option then a machine level installer will be chosen.
139
152
- The `requirements` setting filters the options, potentially resulting in an empty list and a failure to install. In the previous example, a user scope requirement would result in no applicable installers and an error.
140
153
141
154
Any arguments passed on the command line will effectively override the matching `requirement` setting for the duration of that command.
142
155
143
156
#### scope
144
157
145
-
The `scope` behavior affects the choice between installing a package for the current user or for the entire machine. The matching parameter is `--scope`, and uses the same values (`user` or `machine`). See [known issues relating to package installation scope](./troubleshooting.md#scope-for-specific-user-vs-machine-wide).
158
+
The `scope` behavior controls the choice between installing a package for the current user or for the entire machine. The matching parameter is `--scope`, and uses the same values (`user` or `machine`). See [known issues relating to package installation scope](./troubleshooting.md#scope-for-specific-user-vs-machine-wide).
146
159
147
160
```json
148
161
"installBehavior": {
@@ -154,7 +167,7 @@ The `scope` behavior affects the choice between installing a package for the cur
154
167
155
168
#### locale
156
169
157
-
The `locale` behavior affects the choice of installer based on installer locale. The matching parameter is `--locale`, and uses bcp47 language tag.
170
+
The `locale` behavior controls the choice of installer based on installer locale. The matching parameter is `--locale`, and uses bcp47 language tag.
158
171
159
172
```json
160
173
"installBehavior": {
@@ -166,7 +179,7 @@ The `locale` behavior affects the choice of installer based on installer locale.
166
179
167
180
#### architectures
168
181
169
-
The `architectures` behavior affects what architectures will be selected when installing a package. The matching parameter is `--architecture`. Note that only architectures compatible with your system can be selected.
182
+
The `architectures` behavior controls what architectures will be selected when installing a package. The matching parameter is `--architecture`. Only architectures compatible with your system can be selected.
170
183
171
184
```json
172
185
"installBehavior": {
@@ -178,7 +191,7 @@ The `architectures` behavior affects what architectures will be selected when in
178
191
179
192
#### installerTypes
180
193
181
-
The `installerTypes` behavior affects what installer types will be selected when installing a package. The matching parameter is `--installer-type`.
194
+
The `installerTypes` behavior controls what installer types will be selected when installing a package. The matching parameter is `--installer-type`.
182
195
183
196
```json
184
197
"installBehavior": {
@@ -188,39 +201,97 @@ The `installerTypes` behavior affects what installer types will be selected when
188
201
},
189
202
```
190
203
191
-
### uninstallBehavior
204
+
### installBehavior settings
205
+
206
+
The `installBehavior` settings control the default behavior of installing and upgrading (where applicable) packages.
207
+
208
+
#### disableInstallNotes
209
+
210
+
The `disableInstallNotes` setting determines whether installation notes are shown after a successful install. Defaults to `false` if value is not set or is invalid.
211
+
212
+
```json
213
+
"installBehavior": {
214
+
"disableInstallNotes": true
215
+
},
216
+
```
217
+
218
+
#### portablePackageUserRoot setting
219
+
220
+
The `portablePackageUserRoot` setting defines the default root directory for installing packages under the `User` scope. This applies only to packages with the `portable` installer type. Defaults to `%LOCALAPPDATA%/Microsoft/WinGet/Packages/` if value is not set or is invalid.
The `portablePackageMachineRoot` setting defines the default root directory for installing packages under the `Machine` scope. This applies only to packages with the `portable` installer type. Defaults to `%PROGRAMFILES%/WinGet/Packages/` if the value is not set or is invalid.
The `defaultInstallRoot` setting specifies the default install location for packages that require an explicit install path, if the install location is not specified.
245
+
246
+
#### maxResumes
247
+
248
+
The `maxResumes` setting specifies the maximum number of resume attempts allowed for a single resume ID. This prevents continuous reboots if an installation requiring a reboot is not properly detected.
192
249
193
-
The `uninstallBehavior` settings affect the default behavior of uninstalling (where applicable) packages.
250
+
#### archiveExtractionMethod
251
+
252
+
The `archiveExtractionMethod` setting controls how the installer extracts archives. Supported values are `shellApi` and `tar`.
253
+
254
+
-`shellApi` uses the Windows Shell API to extract archives.
255
+
256
+
-`tar` uses the tar command to extract archives.
257
+
258
+
### UninstallBehavior
259
+
260
+
The `uninstallBehavior` setting controls whether the default uninstall process removes all files and directories relevant to this package. Only applies to the portable `installerType`.
194
261
195
262
#### purgePortablePackage
196
263
197
-
The `purgePortablePackage`behavior affects the default behavior for uninstalling a portable package. If set to `true`, uninstall will remove all files and directories relevant to the `portable` package. This setting only applies to packages with the `portable` installer type. Defaults to `false` if value is not set or is invalid.
264
+
The `purgePortablePackage`setting controls the default behavior for uninstalling a portable package. If set to `true`, uninstall will remove all files and directories relevant to the `portable` package. This setting only applies to packages with the `portable` installer type. Defaults to `false` if value is not set or is invalid.
198
265
199
266
```json
200
267
"uninstallBehavior": {
201
268
"purgePortablePackage": true
202
269
},
203
270
```
204
271
272
+
### ConfigureBehavior
273
+
274
+
The `ConfigureBehavior` setting specifies the default root directory where PowerShell modules are installed to when applying a configuration.
275
+
205
276
### downloadBehavior
206
277
207
-
The `downloadBehavior` settings affect the default behavior of downloading packages.
278
+
The `downloadBehavior` settings control the default directory where installers are downloaded to.
208
279
209
280
#### defaultDownloadDirectory
210
281
211
-
The `defaultDownloadDirectory` setting affects the default directory where packages are downloaded to. Defaults to `%USERPROFILE%/Downloads` if value is not set or is invalid.
282
+
The `defaultDownloadDirectory` setting controls the default directory where packages are downloaded to. Defaults to `%USERPROFILE%/Downloads` if value is not set or is invalid.
212
283
213
-
> Note: This setting value must be an absolute path.
The `telemetry` settings control whether winget writes ETW events that may be sent to Microsoft on a default installation of Windows.
294
+
The `telemetry` settings control whether WinGet writes ETW events that may be sent to Microsoft on a default installation of Windows.
224
295
225
296
See [details on telemetry](https://github.com/microsoft/winget-cli/blob/master/README.md#datatelemetry), and our [primary privacy statement](https://github.com/microsoft/winget-cli/blob/master/PRIVACY.md).
226
297
@@ -234,43 +305,30 @@ See [details on telemetry](https://github.com/microsoft/winget-cli/blob/master/R
234
305
235
306
If set to true, the `telemetry.disable` setting will prevent any event from being written by the program.
236
307
237
-
### network settings
308
+
### Network settings
238
309
239
-
The `network` settings influence how winget uses the network to retrieve packages and metadata.
310
+
The `network` settings influence how WinGet uses the network to retrieve packages and metadata.
240
311
241
312
#### downloader
242
313
243
-
The `downloader` setting controls which code is used when downloading packages. The default is `default`, which may be any of the options based on our determination.
314
+
The `downloader` setting controls which code is used when downloading packages. The default is `do`, which may be managed by Group Policy.
244
315
245
316
`wininet` uses the [WinINet](/windows/win32/wininet/about-wininet) APIs, while `do` uses the [Delivery Optimization](https://support.microsoft.com/windows/delivery-optimization-in-windows-10-0656e53c-15f2-90de-a87a-a2172c94cf6d) service.
246
317
247
318
```json
248
319
"network": {
249
-
"downloader": "do"
320
+
"downloader": "wininet"
250
321
}
251
322
```
252
323
253
-
### logging settings
254
-
255
-
The `logging` settings control the level of detail in log files. `--verbose-logs` will override this setting and always creates a verbose log.
256
-
257
-
258
-
```json
259
-
"logging": {
260
-
"level": "verbose"
261
-
}
262
-
```
324
+
#### doProgressTimeoutInSeconds
263
325
264
-
#### level
326
+
The `doProgressTimeoutInSeconds` specifies the number of seconds to wait without progress before fallback.
265
327
266
-
The following logging levels are available. Defaults to `info` if the value is not set or is invalid.
328
+
### Interactivity
267
329
268
-
- verbose
269
-
- info
270
-
- warning
271
-
- error
272
-
- critical
330
+
The `Interactivity` setting controls whether interactive prompts are shown by the Windows Package Manager client.
273
331
274
-
## Enabling experimental features
332
+
###Enabling experimental features
275
333
276
334
To discover which experimental features are available, go to [https://aka.ms/winget-settings](https://aka.ms/winget-settings) where you can see the experimental features available to you.
0 commit comments