// Code generated by `usage generate go`. DO NOT EDIT.
//
// Binding tables for `mise`, read by
// [github.com/jdx/usage/go/argv]. Regenerate rather than editing: the spec is
// the definition, and a hand-edit here is a difference no reviewer can see.
//
// These are package-level variables holding plain data, so the linker lays them
// out and nothing runs before main.

package mise

import "github.com/jdx/usage/go/argv"

// Keys identify a table entry without a string comparison: switch on the Key an
// event carries rather than on its Name, which is there for diagnostics.
const (
	CmdRoot                                      uint64 = 1
	FlagContinueOnError                          uint64 = 2
	FlagCd                                       uint64 = 3
	FlagEnv                                      uint64 = 4
	FlagForce                                    uint64 = 5
	FlagJobs                                     uint64 = 6
	FlagDryRun                                   uint64 = 7
	FlagProfile                                  uint64 = 8
	FlagQuiet                                    uint64 = 9
	FlagShell                                    uint64 = 10
	FlagTool                                     uint64 = 11
	FlagVerbose                                  uint64 = 12
	FlagVersion                                  uint64 = 13
	FlagYes                                      uint64 = 14
	FlagDebug                                    uint64 = 15
	FlagLogLevel                                 uint64 = 16
	FlagNoConfig                                 uint64 = 17
	FlagNoEnv                                    uint64 = 18
	FlagNoHooks                                  uint64 = 19
	FlagNoTimings                                uint64 = 20
	FlagOutput                                   uint64 = 21
	FlagRaw                                      uint64 = 22
	FlagLocked                                   uint64 = 23
	FlagSilent                                   uint64 = 24
	FlagTimings                                  uint64 = 25
	FlagTrace                                    uint64 = 26
	ArgTask                                      uint64 = 27
	ArgTaskArgs                                  uint64 = 28
	ArgTaskArgsLast                              uint64 = 29
	CmdActivate                                  uint64 = 30
	FlagActivateQuiet                            uint64 = 31
	FlagActivateShell                            uint64 = 32
	FlagActivateNoHookEnv                        uint64 = 33
	FlagActivateShims                            uint64 = 34
	FlagActivateStatus                           uint64 = 35
	ArgActivateShellType                         uint64 = 36
	CmdToolAlias                                 uint64 = 37
	FlagToolAliasTool                            uint64 = 38
	FlagToolAliasNoHeader                        uint64 = 39
	CmdToolAliasGet                              uint64 = 40
	ArgToolAliasGetTool                          uint64 = 41
	ArgToolAliasGetAlias                         uint64 = 42
	CmdToolAliasLs                               uint64 = 43
	FlagToolAliasLsNoHeader                      uint64 = 44
	ArgToolAliasLsTool                           uint64 = 45
	CmdToolAliasSet                              uint64 = 46
	ArgToolAliasSetTool                          uint64 = 47
	ArgToolAliasSetAlias                         uint64 = 48
	ArgToolAliasSetValue                         uint64 = 49
	CmdToolAliasUnset                            uint64 = 50
	ArgToolAliasUnsetTool                        uint64 = 51
	ArgToolAliasUnsetAlias                       uint64 = 52
	CmdAsdf                                      uint64 = 53
	ArgAsdfArgs                                  uint64 = 54
	CmdBackends                                  uint64 = 55
	CmdBackendsLs                                uint64 = 56
	CmdBinPaths                                  uint64 = 57
	FlagBinPathsBinNames                         uint64 = 58
	FlagBinPathsJson                             uint64 = 59
	ArgBinPathsToolVersion                       uint64 = 60
	CmdBootstrap                                 uint64 = 61
	FlagBootstrapDryRun                          uint64 = 62
	FlagBootstrapYes                             uint64 = 63
	FlagBootstrapForceDotfiles                   uint64 = 64
	FlagBootstrapOnly                            uint64 = 65
	FlagBootstrapPromptSecrets                   uint64 = 66
	FlagBootstrapSkip                            uint64 = 67
	FlagBootstrapUpdate                          uint64 = 68
	CmdBootstrapApplyAccountPlan                 uint64 = 69
	CmdBootstrapApplyServicePlan                 uint64 = 70
	CmdBootstrapApplyFirewallPlan                uint64 = 71
	CmdBootstrapApplySystemPlan                  uint64 = 72
	CmdBootstrapInspectSystemFiles               uint64 = 73
	CmdBootstrapInspectFirewallPlan              uint64 = 74
	CmdBootstrapAccounts                         uint64 = 75
	CmdBootstrapAccountsApply                    uint64 = 76
	FlagBootstrapAccountsApplyDryRun             uint64 = 77
	FlagBootstrapAccountsApplyYes                uint64 = 78
	CmdBootstrapAccountsStatus                   uint64 = 79
	FlagBootstrapAccountsStatusJson              uint64 = 80
	FlagBootstrapAccountsStatusMissing           uint64 = 81
	CmdBootstrapCompose                          uint64 = 82
	CmdBootstrapComposeApply                     uint64 = 83
	FlagBootstrapComposeApplyDryRun              uint64 = 84
	FlagBootstrapComposeApplyYes                 uint64 = 85
	CmdBootstrapComposeStatus                    uint64 = 86
	FlagBootstrapComposeStatusJson               uint64 = 87
	FlagBootstrapComposeStatusMissing            uint64 = 88
	CmdBootstrapDotfiles                         uint64 = 89
	CmdBootstrapDotfilesAdd                      uint64 = 90
	FlagBootstrapDotfilesAddForce                uint64 = 91
	FlagBootstrapDotfilesAddGlobal               uint64 = 92
	FlagBootstrapDotfilesAddLocal                uint64 = 93
	FlagBootstrapDotfilesAddMode                 uint64 = 94
	FlagBootstrapDotfilesAddDryRun               uint64 = 95
	FlagBootstrapDotfilesAddNoApply              uint64 = 96
	FlagBootstrapDotfilesAddPath                 uint64 = 97
	FlagBootstrapDotfilesAddSource               uint64 = 98
	FlagBootstrapDotfilesAddYes                  uint64 = 99
	ArgBootstrapDotfilesAddTarget                uint64 = 100
	CmdBootstrapDotfilesApply                    uint64 = 101
	FlagBootstrapDotfilesApplyForce              uint64 = 102
	FlagBootstrapDotfilesApplyDryRun             uint64 = 103
	FlagBootstrapDotfilesApplyYes                uint64 = 104
	ArgBootstrapDotfilesApplyTarget              uint64 = 105
	CmdBootstrapDotfilesEdit                     uint64 = 106
	FlagBootstrapDotfilesEditApply               uint64 = 107
	FlagBootstrapDotfilesEditMode                uint64 = 108
	FlagBootstrapDotfilesEditSource              uint64 = 109
	FlagBootstrapDotfilesEditYes                 uint64 = 110
	ArgBootstrapDotfilesEditTarget               uint64 = 111
	CmdBootstrapDotfilesStatus                   uint64 = 112
	FlagBootstrapDotfilesStatusJson              uint64 = 113
	FlagBootstrapDotfilesStatusMissing           uint64 = 114
	ArgBootstrapDotfilesStatusTarget             uint64 = 115
	CmdBootstrapDotfilesUnapply                  uint64 = 116
	FlagBootstrapDotfilesUnapplyForce            uint64 = 117
	FlagBootstrapDotfilesUnapplyDryRun           uint64 = 118
	FlagBootstrapDotfilesUnapplyYes              uint64 = 119
	ArgBootstrapDotfilesUnapplyTarget            uint64 = 120
	CmdBootstrapFiles                            uint64 = 121
	CmdBootstrapFilesApply                       uint64 = 122
	FlagBootstrapFilesApplyDryRun                uint64 = 123
	FlagBootstrapFilesApplyYes                   uint64 = 124
	FlagBootstrapFilesApplyPromptSecrets         uint64 = 125
	CmdBootstrapFilesStatus                      uint64 = 126
	FlagBootstrapFilesStatusJson                 uint64 = 127
	FlagBootstrapFilesStatusMissing              uint64 = 128
	FlagBootstrapFilesStatusPromptSecrets        uint64 = 129
	CmdBootstrapFirewall                         uint64 = 130
	CmdBootstrapFirewallApply                    uint64 = 131
	FlagBootstrapFirewallApplyDryRun             uint64 = 132
	FlagBootstrapFirewallApplyYes                uint64 = 133
	CmdBootstrapFirewallStatus                   uint64 = 134
	FlagBootstrapFirewallStatusJson              uint64 = 135
	FlagBootstrapFirewallStatusMissing           uint64 = 136
	CmdBootstrapLaunchd                          uint64 = 137
	CmdBootstrapLaunchdApply                     uint64 = 138
	FlagBootstrapLaunchdApplyDryRun              uint64 = 139
	FlagBootstrapLaunchdApplyYes                 uint64 = 140
	CmdBootstrapLaunchdStatus                    uint64 = 141
	FlagBootstrapLaunchdStatusJson               uint64 = 142
	FlagBootstrapLaunchdStatusMissing            uint64 = 143
	CmdBootstrapLinux                            uint64 = 144
	CmdBootstrapLinuxSystemdUnits                uint64 = 145
	CmdBootstrapLinuxSystemdUnitsApply           uint64 = 146
	FlagBootstrapLinuxSystemdUnitsApplyDryRun    uint64 = 147
	FlagBootstrapLinuxSystemdUnitsApplyYes       uint64 = 148
	CmdBootstrapLinuxSystemdUnitsStatus          uint64 = 149
	FlagBootstrapLinuxSystemdUnitsStatusJson     uint64 = 150
	FlagBootstrapLinuxSystemdUnitsStatusMissing  uint64 = 151
	CmdBootstrapMacos                            uint64 = 152
	CmdBootstrapMacosDefaults                    uint64 = 153
	CmdBootstrapMacosDefaultsApply               uint64 = 154
	FlagBootstrapMacosDefaultsApplyDryRun        uint64 = 155
	FlagBootstrapMacosDefaultsApplyYes           uint64 = 156
	CmdBootstrapMacosDefaultsStatus              uint64 = 157
	FlagBootstrapMacosDefaultsStatusJson         uint64 = 158
	FlagBootstrapMacosDefaultsStatusMissing      uint64 = 159
	CmdBootstrapMacosLaunchdAgents               uint64 = 160
	CmdBootstrapMacosLaunchdAgentsApply          uint64 = 161
	FlagBootstrapMacosLaunchdAgentsApplyDryRun   uint64 = 162
	FlagBootstrapMacosLaunchdAgentsApplyYes      uint64 = 163
	CmdBootstrapMacosLaunchdAgentsStatus         uint64 = 164
	FlagBootstrapMacosLaunchdAgentsStatusJson    uint64 = 165
	FlagBootstrapMacosLaunchdAgentsStatusMissing uint64 = 166
	CmdBootstrapMacosDefaults2                   uint64 = 167
	CmdBootstrapMacosDefaultsApply2              uint64 = 168
	FlagBootstrapMacosDefaultsApplyDryRun2       uint64 = 169
	FlagBootstrapMacosDefaultsApplyYes2          uint64 = 170
	CmdBootstrapMacosDefaultsStatus2             uint64 = 171
	FlagBootstrapMacosDefaultsStatusJson2        uint64 = 172
	FlagBootstrapMacosDefaultsStatusMissing2     uint64 = 173
	CmdBootstrapMiseShellActivate                uint64 = 174
	CmdBootstrapMiseShellActivateApply           uint64 = 175
	FlagBootstrapMiseShellActivateApplyDryRun    uint64 = 176
	FlagBootstrapMiseShellActivateApplyYes       uint64 = 177
	CmdBootstrapMiseShellActivateStatus          uint64 = 178
	FlagBootstrapMiseShellActivateStatusJson     uint64 = 179
	FlagBootstrapMiseShellActivateStatusMissing  uint64 = 180
	CmdBootstrapPackages                         uint64 = 181
	CmdBootstrapPackagesApply                    uint64 = 182
	FlagBootstrapPackagesApplyManager            uint64 = 183
	FlagBootstrapPackagesApplyDryRun             uint64 = 184
	FlagBootstrapPackagesApplyYes                uint64 = 185
	FlagBootstrapPackagesApplyUpdate             uint64 = 186
	ArgBootstrapPackagesApplyPackage             uint64 = 187
	CmdBootstrapPackagesBrew                     uint64 = 188
	CmdBootstrapPackagesBrewTap                  uint64 = 189
	FlagBootstrapPackagesBrewTapLocal            uint64 = 190
	FlagBootstrapPackagesBrewTapDryRun           uint64 = 191
	FlagBootstrapPackagesBrewTapPath             uint64 = 192
	ArgBootstrapPackagesBrewTapTap               uint64 = 193
	ArgBootstrapPackagesBrewTapUrl               uint64 = 194
	CmdBootstrapPackagesBrewUntap                uint64 = 195
	FlagBootstrapPackagesBrewUntapLocal          uint64 = 196
	FlagBootstrapPackagesBrewUntapDryRun         uint64 = 197
	FlagBootstrapPackagesBrewUntapPath           uint64 = 198
	ArgBootstrapPackagesBrewUntapTaps            uint64 = 199
	CmdBootstrapPackagesImport                   uint64 = 200
	FlagBootstrapPackagesImportEnv               uint64 = 201
	FlagBootstrapPackagesImportGlobal            uint64 = 202
	FlagBootstrapPackagesImportManager           uint64 = 203
	FlagBootstrapPackagesImportAll               uint64 = 204
	FlagBootstrapPackagesImportDryRun            uint64 = 205
	FlagBootstrapPackagesImportPath              uint64 = 206
	CmdBootstrapPackagesPrune                    uint64 = 207
	FlagBootstrapPackagesPruneManager            uint64 = 208
	FlagBootstrapPackagesPruneDryRun             uint64 = 209
	FlagBootstrapPackagesPruneYes                uint64 = 210
	CmdBootstrapPackagesStatus                   uint64 = 211
	FlagBootstrapPackagesStatusJson              uint64 = 212
	FlagBootstrapPackagesStatusMissing           uint64 = 213
	CmdBootstrapPackagesUpgrade                  uint64 = 214
	FlagBootstrapPackagesUpgradeManager          uint64 = 215
	FlagBootstrapPackagesUpgradeDryRun           uint64 = 216
	FlagBootstrapPackagesUpgradeYes              uint64 = 217
	ArgBootstrapPackagesUpgradePackage           uint64 = 218
	CmdBootstrapPackagesUse                      uint64 = 219
	FlagBootstrapPackagesUseEnv                  uint64 = 220
	FlagBootstrapPackagesUseGlobal               uint64 = 221
	FlagBootstrapPackagesUseDryRun               uint64 = 222
	FlagBootstrapPackagesUsePath                 uint64 = 223
	FlagBootstrapPackagesUseYes                  uint64 = 224
	ArgBootstrapPackagesUsePackage               uint64 = 225
	CmdBootstrapPlan                             uint64 = 226
	FlagBootstrapPlanJson                        uint64 = 227
	FlagBootstrapPlanDetailedExitcode            uint64 = 228
	FlagBootstrapPlanPromptSecrets               uint64 = 229
	CmdBootstrapPlugins                          uint64 = 230
	CmdBootstrapPluginsApply                     uint64 = 231
	FlagBootstrapPluginsApplyDryRun              uint64 = 232
	CmdBootstrapPluginsStatus                    uint64 = 233
	FlagBootstrapPluginsStatusMissing            uint64 = 234
	CmdBootstrapRemote                           uint64 = 235
	FlagBootstrapRemoteAll                       uint64 = 236
	FlagBootstrapRemoteBootstrapCommand          uint64 = 237
	FlagBootstrapRemoteConnectTimeout            uint64 = 238
	FlagBootstrapRemoteCopyLink                  uint64 = 239
	FlagBootstrapRemoteCopyLinks                 uint64 = 240
	FlagBootstrapRemoteExclude                   uint64 = 241
	FlagBootstrapRemoteFailFast                  uint64 = 242
	FlagBootstrapRemoteForceDotfiles             uint64 = 243
	FlagBootstrapRemoteHost                      uint64 = 244
	FlagBootstrapRemoteIdentityFile              uint64 = 245
	FlagBootstrapRemoteDryRun                    uint64 = 246
	FlagBootstrapRemoteKeepStaging               uint64 = 247
	FlagBootstrapRemoteMiseBin                   uint64 = 248
	FlagBootstrapRemoteOnly                      uint64 = 249
	FlagBootstrapRemotePort                      uint64 = 250
	FlagBootstrapRemotePromptSecrets             uint64 = 251
	FlagBootstrapRemoteRemoteEnv                 uint64 = 252
	FlagBootstrapRemoteRemoteMise                uint64 = 253
	FlagBootstrapRemoteSkip                      uint64 = 254
	FlagBootstrapRemoteSource                    uint64 = 255
	FlagBootstrapRemoteSshOption                 uint64 = 256
	FlagBootstrapRemoteTag                       uint64 = 257
	FlagBootstrapRemoteUpdate                    uint64 = 258
	FlagBootstrapRemoteYes                       uint64 = 259
	ArgBootstrapRemoteTarget                     uint64 = 260
	CmdBootstrapRepos                            uint64 = 261
	CmdBootstrapReposApply                       uint64 = 262
	FlagBootstrapReposApplyDryRun                uint64 = 263
	FlagBootstrapReposApplyYes                   uint64 = 264
	CmdBootstrapReposExec                        uint64 = 265
	FlagBootstrapReposExecContinueOnError        uint64 = 266
	FlagBootstrapReposExecDryRun                 uint64 = 267
	ArgBootstrapReposExecPath                    uint64 = 268
	ArgBootstrapReposExecCommand                 uint64 = 269
	CmdBootstrapReposStatus                      uint64 = 270
	FlagBootstrapReposStatusJson                 uint64 = 271
	FlagBootstrapReposStatusMissing              uint64 = 272
	CmdBootstrapReposUpdate                      uint64 = 273
	FlagBootstrapReposUpdateDryRun               uint64 = 274
	FlagBootstrapReposUpdateYes                  uint64 = 275
	ArgBootstrapReposUpdatePath                  uint64 = 276
	CmdBootstrapSecrets                          uint64 = 277
	CmdBootstrapSecretsStatus                    uint64 = 278
	FlagBootstrapSecretsStatusJson               uint64 = 279
	FlagBootstrapSecretsStatusMissing            uint64 = 280
	CmdBootstrapServices                         uint64 = 281
	CmdBootstrapServicesApply                    uint64 = 282
	FlagBootstrapServicesApplyDryRun             uint64 = 283
	FlagBootstrapServicesApplyYes                uint64 = 284
	CmdBootstrapServicesStatus                   uint64 = 285
	FlagBootstrapServicesStatusJson              uint64 = 286
	FlagBootstrapServicesStatusMissing           uint64 = 287
	CmdBootstrapStatus                           uint64 = 288
	FlagBootstrapStatusJson                      uint64 = 289
	FlagBootstrapStatusMissing                   uint64 = 290
	FlagBootstrapStatusPromptSecrets             uint64 = 291
	CmdBootstrapSystemd                          uint64 = 292
	CmdBootstrapSystemdApply                     uint64 = 293
	FlagBootstrapSystemdApplyDryRun              uint64 = 294
	FlagBootstrapSystemdApplyYes                 uint64 = 295
	CmdBootstrapSystemdStatus                    uint64 = 296
	FlagBootstrapSystemdStatusJson               uint64 = 297
	FlagBootstrapSystemdStatusMissing            uint64 = 298
	CmdBootstrapUser                             uint64 = 299
	CmdBootstrapUserApply                        uint64 = 300
	FlagBootstrapUserApplyDryRun                 uint64 = 301
	FlagBootstrapUserApplyYes                    uint64 = 302
	CmdBootstrapUserStatus                       uint64 = 303
	FlagBootstrapUserStatusJson                  uint64 = 304
	FlagBootstrapUserStatusMissing               uint64 = 305
	CmdCache                                     uint64 = 306
	CmdCacheClear                                uint64 = 307
	FlagCacheClearOutdate                        uint64 = 308
	FlagCacheClearTask                           uint64 = 309
	ArgCacheClearTool                            uint64 = 310
	CmdCachePath                                 uint64 = 311
	CmdCachePrune                                uint64 = 312
	FlagCachePruneVerbose                        uint64 = 313
	FlagCachePruneDryRun                         uint64 = 314
	ArgCachePruneTool                            uint64 = 315
	CmdCacheTask                                 uint64 = 316
	FlagCacheTaskJson                            uint64 = 317
	ArgCacheTaskTask                             uint64 = 318
	CmdCompletion                                uint64 = 319
	FlagCompletionShell                          uint64 = 320
	FlagCompletionIncludeBashCompletionLib       uint64 = 321
	FlagCompletionUsage                          uint64 = 322
	ArgCompletionShell                           uint64 = 323
	CmdConfig                                    uint64 = 324
	FlagConfigJson                               uint64 = 325
	FlagConfigNoHeader                           uint64 = 326
	FlagConfigTrackedConfigs                     uint64 = 327
	CmdConfigGet                                 uint64 = 328
	FlagConfigGetFile                            uint64 = 329
	ArgConfigGetKey                              uint64 = 330
	CmdConfigLs                                  uint64 = 331
	FlagConfigLsJson                             uint64 = 332
	FlagConfigLsNoHeader                         uint64 = 333
	FlagConfigLsTrackedConfigs                   uint64 = 334
	CmdConfigSet                                 uint64 = 335
	FlagConfigSetFile                            uint64 = 336
	FlagConfigSetType                            uint64 = 337
	ArgConfigSetKey                              uint64 = 338
	ArgConfigSetValue                            uint64 = 339
	CmdCurrent                                   uint64 = 340
	ArgCurrentPlugin                             uint64 = 341
	CmdDeactivate                                uint64 = 342
	CmdDirenv                                    uint64 = 343
	CmdDirenvActivate                            uint64 = 344
	CmdDirenvEnvrc                               uint64 = 345
	CmdDirenvExec                                uint64 = 346
	CmdDotfiles                                  uint64 = 347
	CmdDotfilesAdd                               uint64 = 348
	FlagDotfilesAddForce                         uint64 = 349
	FlagDotfilesAddGlobal                        uint64 = 350
	FlagDotfilesAddLocal                         uint64 = 351
	FlagDotfilesAddMode                          uint64 = 352
	FlagDotfilesAddDryRun                        uint64 = 353
	FlagDotfilesAddNoApply                       uint64 = 354
	FlagDotfilesAddPath                          uint64 = 355
	FlagDotfilesAddSource                        uint64 = 356
	FlagDotfilesAddYes                           uint64 = 357
	ArgDotfilesAddTarget                         uint64 = 358
	CmdDotfilesApply                             uint64 = 359
	FlagDotfilesApplyForce                       uint64 = 360
	FlagDotfilesApplyDryRun                      uint64 = 361
	FlagDotfilesApplyYes                         uint64 = 362
	ArgDotfilesApplyTarget                       uint64 = 363
	CmdDotfilesEdit                              uint64 = 364
	FlagDotfilesEditApply                        uint64 = 365
	FlagDotfilesEditMode                         uint64 = 366
	FlagDotfilesEditSource                       uint64 = 367
	FlagDotfilesEditYes                          uint64 = 368
	ArgDotfilesEditTarget                        uint64 = 369
	CmdDotfilesStatus                            uint64 = 370
	FlagDotfilesStatusJson                       uint64 = 371
	FlagDotfilesStatusMissing                    uint64 = 372
	ArgDotfilesStatusTarget                      uint64 = 373
	CmdDotfilesUnapply                           uint64 = 374
	FlagDotfilesUnapplyForce                     uint64 = 375
	FlagDotfilesUnapplyDryRun                    uint64 = 376
	FlagDotfilesUnapplyYes                       uint64 = 377
	ArgDotfilesUnapplyTarget                     uint64 = 378
	CmdDoctor                                    uint64 = 379
	FlagDoctorJson                               uint64 = 380
	CmdDoctorPath                                uint64 = 381
	FlagDoctorPathFull                           uint64 = 382
	CmdEn                                        uint64 = 383
	FlagEnShell                                  uint64 = 384
	ArgEnDir                                     uint64 = 385
	CmdEnv                                       uint64 = 386
	FlagEnvDotenv                                uint64 = 387
	FlagEnvJson                                  uint64 = 388
	FlagEnvShell                                 uint64 = 389
	FlagEnvJsonExtended                          uint64 = 390
	FlagEnvRedacted                              uint64 = 391
	FlagEnvValues                                uint64 = 392
	ArgEnvToolVersion                            uint64 = 393
	CmdExec                                      uint64 = 394
	FlagExecCommand                              uint64 = 395
	FlagExecJobs                                 uint64 = 396
	FlagExecAllowEnv                             uint64 = 397
	FlagExecAllowNet                             uint64 = 398
	FlagExecAllowRead                            uint64 = 399
	FlagExecAllowWrite                           uint64 = 400
	FlagExecDenyAll                              uint64 = 401
	FlagExecDenyEnv                              uint64 = 402
	FlagExecDenyNet                              uint64 = 403
	FlagExecDenyRead                             uint64 = 404
	FlagExecDenyWrite                            uint64 = 405
	FlagExecFreshEnv                             uint64 = 406
	FlagExecNoDeps                               uint64 = 407
	FlagExecRaw                                  uint64 = 408
	ArgExecToolVersion                           uint64 = 409
	ArgExecCommand                               uint64 = 410
	CmdFmt                                       uint64 = 411
	FlagFmtAll                                   uint64 = 412
	FlagFmtCheck                                 uint64 = 413
	FlagFmtStdin                                 uint64 = 414
	CmdGenerate                                  uint64 = 415
	CmdGenerateBootstrap                         uint64 = 416
	FlagGenerateBootstrapLocalize                uint64 = 417
	FlagGenerateBootstrapVersion                 uint64 = 418
	FlagGenerateBootstrapWrite                   uint64 = 419
	FlagGenerateBootstrapLocalizedDir            uint64 = 420
	FlagGenerateBootstrapWindows                 uint64 = 421
	CmdGenerateConfig                            uint64 = 422
	FlagGenerateConfigGlobal                     uint64 = 423
	FlagGenerateConfigDryRun                     uint64 = 424
	FlagGenerateConfigToolVersions               uint64 = 425
	ArgGenerateConfigPath                        uint64 = 426
	CmdGenerateDevcontainer                      uint64 = 427
	FlagGenerateDevcontainerImage                uint64 = 428
	FlagGenerateDevcontainerMountMiseData        uint64 = 429
	FlagGenerateDevcontainerName                 uint64 = 430
	FlagGenerateDevcontainerWrite                uint64 = 431
	CmdGenerateGitPreCommit                      uint64 = 432
	FlagGenerateGitPreCommitTask                 uint64 = 433
	FlagGenerateGitPreCommitWrite                uint64 = 434
	FlagGenerateGitPreCommitHook                 uint64 = 435
	ArgGenerateGitPreCommitMiseArg               uint64 = 436
	CmdGenerateGithubAction                      uint64 = 437
	FlagGenerateGithubActionTask                 uint64 = 438
	FlagGenerateGithubActionWrite                uint64 = 439
	FlagGenerateGithubActionName                 uint64 = 440
	CmdGenerateTaskDocs                          uint64 = 441
	FlagGenerateTaskDocsInject                   uint64 = 442
	FlagGenerateTaskDocsIndex                    uint64 = 443
	FlagGenerateTaskDocsMulti                    uint64 = 444
	FlagGenerateTaskDocsOutput                   uint64 = 445
	FlagGenerateTaskDocsRoot                     uint64 = 446
	FlagGenerateTaskDocsStyle                    uint64 = 447
	CmdGenerateTaskStubs                         uint64 = 448
	FlagGenerateTaskStubsDir                     uint64 = 449
	FlagGenerateTaskStubsMiseBin                 uint64 = 450
	CmdGenerateToolStub                          uint64 = 451
	FlagGenerateToolStubBin                      uint64 = 452
	FlagGenerateToolStubBootstrap                uint64 = 453
	FlagGenerateToolStubBootstrapVersion         uint64 = 454
	FlagGenerateToolStubChecksumAlgorithm        uint64 = 455
	FlagGenerateToolStubFetch                    uint64 = 456
	FlagGenerateToolStubHttp                     uint64 = 457
	FlagGenerateToolStubLock                     uint64 = 458
	FlagGenerateToolStubPlatformBin              uint64 = 459
	FlagGenerateToolStubPlatformUrl              uint64 = 460
	FlagGenerateToolStubSkipDownload             uint64 = 461
	FlagGenerateToolStubUrl                      uint64 = 462
	FlagGenerateToolStubVersion                  uint64 = 463
	ArgGenerateToolStubOutput                    uint64 = 464
	CmdGithub                                    uint64 = 465
	CmdGithubToken                               uint64 = 466
	FlagGithubTokenOauth                         uint64 = 467
	FlagGithubTokenRaw                           uint64 = 468
	FlagGithubTokenRefresh                       uint64 = 469
	FlagGithubTokenUnmask                        uint64 = 470
	ArgGithubTokenHost                           uint64 = 471
	CmdGlobal                                    uint64 = 472
	FlagGlobalFuzzy                              uint64 = 473
	FlagGlobalPath                               uint64 = 474
	FlagGlobalPin                                uint64 = 475
	FlagGlobalRemove                             uint64 = 476
	ArgGlobalToolVersion                         uint64 = 477
	CmdHookEnv                                   uint64 = 478
	FlagHookEnvForce                             uint64 = 479
	FlagHookEnvQuiet                             uint64 = 480
	FlagHookEnvShell                             uint64 = 481
	FlagHookEnvReason                            uint64 = 482
	FlagHookEnvStatus                            uint64 = 483
	CmdHookNotFound                              uint64 = 484
	FlagHookNotFoundShell                        uint64 = 485
	ArgHookNotFoundBin                           uint64 = 486
	CmdImplode                                   uint64 = 487
	FlagImplodeDryRun                            uint64 = 488
	FlagImplodeConfig                            uint64 = 489
	CmdEdit                                      uint64 = 490
	FlagEditGlobal                               uint64 = 491
	FlagEditDryRun                               uint64 = 492
	FlagEditToolVersions                         uint64 = 493
	ArgEditPath                                  uint64 = 494
	CmdInstall                                   uint64 = 495
	FlagInstallForce                             uint64 = 496
	FlagInstallJobs                              uint64 = 497
	FlagInstallDryRun                            uint64 = 498
	FlagInstallVerbose                           uint64 = 499
	FlagInstallDryRunCode                        uint64 = 500
	FlagInstallIncludeTaskTools                  uint64 = 501
	FlagInstallMinimumReleaseAge                 uint64 = 502
	FlagInstallMonorepo                          uint64 = 503
	FlagInstallRaw                               uint64 = 504
	FlagInstallShared                            uint64 = 505
	FlagInstallSystem                            uint64 = 506
	ArgInstallToolVersion                        uint64 = 507
	CmdInstallInto                               uint64 = 508
	ArgInstallIntoToolVersion                    uint64 = 509
	ArgInstallIntoPath                           uint64 = 510
	CmdLatest                                    uint64 = 511
	FlagLatestInstalled                          uint64 = 512
	FlagLatestMinimumReleaseAge                  uint64 = 513
	ArgLatestToolVersion                         uint64 = 514
	ArgLatestAsdfVersion                         uint64 = 515
	CmdLink                                      uint64 = 516
	FlagLinkForce                                uint64 = 517
	ArgLinkToolVersion                           uint64 = 518
	ArgLinkPath                                  uint64 = 519
	CmdLocal                                     uint64 = 520
	FlagLocalParent                              uint64 = 521
	FlagLocalFuzzy                               uint64 = 522
	FlagLocalPath                                uint64 = 523
	FlagLocalPin                                 uint64 = 524
	FlagLocalRemove                              uint64 = 525
	ArgLocalToolVersion                          uint64 = 526
	CmdLock                                      uint64 = 527
	FlagLockGlobal                               uint64 = 528
	FlagLockJobs                                 uint64 = 529
	FlagLockDryRun                               uint64 = 530
	FlagLockPlatform                             uint64 = 531
	FlagLockBump                                 uint64 = 532
	FlagLockJson                                 uint64 = 533
	FlagLockLocal                                uint64 = 534
	FlagLockMinimumReleaseAge                    uint64 = 535
	ArgLockTool                                  uint64 = 536
	CmdLs                                        uint64 = 537
	FlagLsCurrent                                uint64 = 538
	FlagLsGlobal                                 uint64 = 539
	FlagLsInstalled                              uint64 = 540
	FlagLsJson                                   uint64 = 541
	FlagLsLocal                                  uint64 = 542
	FlagLsMissing                                uint64 = 543
	FlagLsOffline                                uint64 = 544
	FlagLsPlugin                                 uint64 = 545
	FlagLsAllSources                             uint64 = 546
	FlagLsMonorepo                               uint64 = 547
	FlagLsNoHeader                               uint64 = 548
	FlagLsOutdated                               uint64 = 549
	FlagLsPrefix                                 uint64 = 550
	FlagLsPrunable                               uint64 = 551
	ArgLsInstalledTool                           uint64 = 552
	CmdLsRemote                                  uint64 = 553
	FlagLsRemoteAll                              uint64 = 554
	FlagLsRemoteMinimumReleaseAge                uint64 = 555
	FlagLsRemoteJson                             uint64 = 556
	FlagLsRemoteNoVersionsHost                   uint64 = 557
	FlagLsRemotePrerelease                       uint64 = 558
	FlagLsRemoteStrictMetadata                   uint64 = 559
	ArgLsRemoteToolVersion                       uint64 = 560
	ArgLsRemotePrefix                            uint64 = 561
	CmdMcp                                       uint64 = 562
	CmdOci                                       uint64 = 563
	CmdOciBuild                                  uint64 = 564
	FlagOciBuildCopy                             uint64 = 565
	FlagOciBuildOutput                           uint64 = 566
	FlagOciBuildFrom                             uint64 = 567
	FlagOciBuildIncludeGlobal                    uint64 = 568
	FlagOciBuildTag                              uint64 = 569
	FlagOciBuildMountPoint                       uint64 = 570
	FlagOciBuildNoMise                           uint64 = 571
	FlagOciBuildOwner                            uint64 = 572
	CmdOciPush                                   uint64 = 573
	FlagOciPushCacheFrom                         uint64 = 574
	FlagOciPushFrom                              uint64 = 575
	FlagOciPushImageDir                          uint64 = 576
	FlagOciPushIncludeGlobal                     uint64 = 577
	FlagOciPushMountPoint                        uint64 = 578
	FlagOciPushNoCache                           uint64 = 579
	FlagOciPushNoMise                            uint64 = 580
	FlagOciPushOwner                             uint64 = 581
	FlagOciPushUpdateIndex                       uint64 = 582
	ArgOciPushRef                                uint64 = 583
	CmdOciRun                                    uint64 = 584
	FlagOciRunEngine                             uint64 = 585
	FlagOciRunFrom                               uint64 = 586
	FlagOciRunImageDir                           uint64 = 587
	FlagOciRunIncludeGlobal                      uint64 = 588
	FlagOciRunKeep                               uint64 = 589
	FlagOciRunMountPoint                         uint64 = 590
	FlagOciRunNoMise                             uint64 = 591
	FlagOciRunOwner                              uint64 = 592
	FlagOciRunVolume                             uint64 = 593
	FlagOciRunEnv                                uint64 = 594
	FlagOciRunInteractive                        uint64 = 595
	FlagOciRunTty                                uint64 = 596
	FlagOciRunWorkdir                            uint64 = 597
	ArgOciRunCmd                                 uint64 = 598
	CmdOutdated                                  uint64 = 599
	FlagOutdatedBump                             uint64 = 600
	FlagOutdatedJson                             uint64 = 601
	FlagOutdatedL                                uint64 = 602
	FlagOutdatedInactive                         uint64 = 603
	FlagOutdatedLocal                            uint64 = 604
	FlagOutdatedMonorepo                         uint64 = 605
	FlagOutdatedNoHeader                         uint64 = 606
	ArgOutdatedToolVersion                       uint64 = 607
	CmdPatrons                                   uint64 = 608
	FlagPatronsJson                              uint64 = 609
	FlagPatronsRefresh                           uint64 = 610
	CmdPlugins                                   uint64 = 611
	FlagPluginsAll                               uint64 = 612
	FlagPluginsCore                              uint64 = 613
	FlagPluginsUrls                              uint64 = 614
	FlagPluginsRefs                              uint64 = 615
	FlagPluginsUser                              uint64 = 616
	CmdPluginsInstall                            uint64 = 617
	FlagPluginsInstallAll                        uint64 = 618
	FlagPluginsInstallForce                      uint64 = 619
	FlagPluginsInstallJobs                       uint64 = 620
	FlagPluginsInstallVerbose                    uint64 = 621
	ArgPluginsInstallNewPlugin                   uint64 = 622
	ArgPluginsInstallGitUrl                      uint64 = 623
	ArgPluginsInstallRest                        uint64 = 624
	CmdPluginsLink                               uint64 = 625
	FlagPluginsLinkForce                         uint64 = 626
	ArgPluginsLinkName                           uint64 = 627
	ArgPluginsLinkDir                            uint64 = 628
	CmdPluginsLs                                 uint64 = 629
	FlagPluginsLsAll                             uint64 = 630
	FlagPluginsLsCore                            uint64 = 631
	FlagPluginsLsOutdated                        uint64 = 632
	FlagPluginsLsUrls                            uint64 = 633
	FlagPluginsLsRefs                            uint64 = 634
	FlagPluginsLsUser                            uint64 = 635
	CmdPluginsLsRemote                           uint64 = 636
	FlagPluginsLsRemoteUrls                      uint64 = 637
	FlagPluginsLsRemoteOnlyNames                 uint64 = 638
	CmdPluginsUninstall                          uint64 = 639
	FlagPluginsUninstallAll                      uint64 = 640
	FlagPluginsUninstallPurge                    uint64 = 641
	ArgPluginsUninstallPlugin                    uint64 = 642
	CmdPluginsUpdate                             uint64 = 643
	FlagPluginsUpdateJobs                        uint64 = 644
	ArgPluginsUpdatePlugin                       uint64 = 645
	CmdDeps                                      uint64 = 646
	FlagDepsExplain                              uint64 = 647
	FlagDepsForce                                uint64 = 648
	FlagDepsDryRun                               uint64 = 649
	FlagDepsList                                 uint64 = 650
	FlagDepsMonorepo                             uint64 = 651
	FlagDepsOnly                                 uint64 = 652
	FlagDepsSkip                                 uint64 = 653
	ArgDepsProvider                              uint64 = 654
	CmdDepsAdd                                   uint64 = 655
	FlagDepsAddDev                               uint64 = 656
	ArgDepsAddPackages                           uint64 = 657
	CmdDepsInstall                               uint64 = 658
	FlagDepsInstallExplain                       uint64 = 659
	FlagDepsInstallForce                         uint64 = 660
	FlagDepsInstallDryRun                        uint64 = 661
	FlagDepsInstallList                          uint64 = 662
	FlagDepsInstallMonorepo                      uint64 = 663
	FlagDepsInstallOnly                          uint64 = 664
	FlagDepsInstallSkip                          uint64 = 665
	ArgDepsInstallProvider                       uint64 = 666
	CmdDepsRemove                                uint64 = 667
	ArgDepsRemovePackages                        uint64 = 668
	CmdPrune                                     uint64 = 669
	FlagPruneDryRun                              uint64 = 670
	FlagPruneConfigs                             uint64 = 671
	FlagPruneDryRunCode                          uint64 = 672
	FlagPruneMonorepo                            uint64 = 673
	FlagPruneTools                               uint64 = 674
	ArgPruneInstalledTool                        uint64 = 675
	CmdRegistry                                  uint64 = 676
	FlagRegistryBackend                          uint64 = 677
	FlagRegistryComplete                         uint64 = 678
	FlagRegistryHideAliased                      uint64 = 679
	FlagRegistryJson                             uint64 = 680
	FlagRegistrySecurity                         uint64 = 681
	ArgRegistryName                              uint64 = 682
	CmdRenderHelp                                uint64 = 683
	CmdReshim                                    uint64 = 684
	FlagReshimForce                              uint64 = 685
	ArgReshimTool                                uint64 = 686
	ArgReshimVersion                             uint64 = 687
	CmdRun                                       uint64 = 688
	FlagRunAffected                              uint64 = 689
	FlagRunAffectedBase                          uint64 = 690
	FlagRunAffectedExplain                       uint64 = 691
	FlagRunAffectedHead                          uint64 = 692
	FlagRunAffectedJson                          uint64 = 693
	FlagRunAll                                   uint64 = 694
	FlagRunContinueOnError                       uint64 = 695
	FlagRunCd                                    uint64 = 696
	FlagRunForce                                 uint64 = 697
	FlagRunJobs                                  uint64 = 698
	FlagRunDryRun                                uint64 = 699
	FlagRunOutput                                uint64 = 700
	FlagRunQuiet                                 uint64 = 701
	FlagRunRaw                                   uint64 = 702
	FlagRunShell                                 uint64 = 703
	FlagRunSilent                                uint64 = 704
	FlagRunTool                                  uint64 = 705
	FlagRunAllowEnv                              uint64 = 706
	FlagRunAllowNet                              uint64 = 707
	FlagRunAllowRead                             uint64 = 708
	FlagRunAllowWrite                            uint64 = 709
	FlagRunDenyAll                               uint64 = 710
	FlagRunDenyEnv                               uint64 = 711
	FlagRunDenyNet                               uint64 = 712
	FlagRunDenyRead                              uint64 = 713
	FlagRunDenyWrite                             uint64 = 714
	FlagRunFreshEnv                              uint64 = 715
	FlagRunNoCache                               uint64 = 716
	FlagRunNoDeps                                uint64 = 717
	FlagRunNoTimings                             uint64 = 718
	FlagRunSkipDeps                              uint64 = 719
	FlagRunSkipTools                             uint64 = 720
	FlagRunTaskCache                             uint64 = 721
	FlagRunTaskCacheExplain                      uint64 = 722
	FlagRunTaskCacheExplainJson                  uint64 = 723
	FlagRunTaskCacheStats                        uint64 = 724
	FlagRunTimeout                               uint64 = 725
	FlagRunTimings                               uint64 = 726
	CmdSearch                                    uint64 = 727
	FlagSearchInteractive                        uint64 = 728
	FlagSearchMatchType                          uint64 = 729
	FlagSearchNoHeader                           uint64 = 730
	ArgSearchName                                uint64 = 731
	CmdSelfUpdate                                uint64 = 732
	FlagSelfUpdateForce                          uint64 = 733
	FlagSelfUpdateYes                            uint64 = 734
	FlagSelfUpdateNoPlugins                      uint64 = 735
	ArgSelfUpdateVersion                         uint64 = 736
	CmdSet                                       uint64 = 737
	FlagSetEnv                                   uint64 = 738
	FlagSetGlobal                                uint64 = 739
	FlagSetAgeEncrypt                            uint64 = 740
	FlagSetAgeKeyFile                            uint64 = 741
	FlagSetAgeRecipient                          uint64 = 742
	FlagSetAgeSshRecipient                       uint64 = 743
	FlagSetComplete                              uint64 = 744
	FlagSetFile                                  uint64 = 745
	FlagSetNoRedact                              uint64 = 746
	FlagSetPrompt                                uint64 = 747
	FlagSetRemove                                uint64 = 748
	FlagSetStdin                                 uint64 = 749
	ArgSetEnvVar                                 uint64 = 750
	CmdSettings                                  uint64 = 751
	FlagSettingsAll                              uint64 = 752
	FlagSettingsJson                             uint64 = 753
	FlagSettingsLocal                            uint64 = 754
	FlagSettingsToml                             uint64 = 755
	FlagSettingsComplete                         uint64 = 756
	FlagSettingsJsonExtended                     uint64 = 757
	ArgSettingsSetting                           uint64 = 758
	ArgSettingsValue                             uint64 = 759
	CmdSettingsAdd                               uint64 = 760
	FlagSettingsAddLocal                         uint64 = 761
	ArgSettingsAddSetting                        uint64 = 762
	ArgSettingsAddValue                          uint64 = 763
	CmdSettingsGet                               uint64 = 764
	FlagSettingsGetLocal                         uint64 = 765
	ArgSettingsGetSetting                        uint64 = 766
	CmdSettingsLs                                uint64 = 767
	FlagSettingsLsAll                            uint64 = 768
	FlagSettingsLsJson                           uint64 = 769
	FlagSettingsLsLocal                          uint64 = 770
	FlagSettingsLsToml                           uint64 = 771
	FlagSettingsLsComplete                       uint64 = 772
	FlagSettingsLsJsonExtended                   uint64 = 773
	ArgSettingsLsSetting                         uint64 = 774
	CmdSettingsSet                               uint64 = 775
	FlagSettingsSetLocal                         uint64 = 776
	ArgSettingsSetSetting                        uint64 = 777
	ArgSettingsSetValue                          uint64 = 778
	CmdSettingsUnset                             uint64 = 779
	FlagSettingsUnsetLocal                       uint64 = 780
	ArgSettingsUnsetKey                          uint64 = 781
	CmdShell                                     uint64 = 782
	FlagShellJobs                                uint64 = 783
	FlagShellUnset                               uint64 = 784
	FlagShellRaw                                 uint64 = 785
	ArgShellToolVersion                          uint64 = 786
	CmdShellAlias                                uint64 = 787
	FlagShellAliasNoHeader                       uint64 = 788
	CmdShellAliasGet                             uint64 = 789
	ArgShellAliasGetShellAlias                   uint64 = 790
	CmdShellAliasLs                              uint64 = 791
	FlagShellAliasLsNoHeader                     uint64 = 792
	CmdShellAliasSet                             uint64 = 793
	ArgShellAliasSetShellAlias                   uint64 = 794
	ArgShellAliasSetCommand                      uint64 = 795
	CmdShellAliasUnset                           uint64 = 796
	ArgShellAliasUnsetShellAlias                 uint64 = 797
	CmdSponsors                                  uint64 = 798
	CmdSync                                      uint64 = 799
	CmdSyncNode                                  uint64 = 800
	FlagSyncNodeBrew                             uint64 = 801
	FlagSyncNodeNodenv                           uint64 = 802
	FlagSyncNodeNvm                              uint64 = 803
	CmdSyncPython                                uint64 = 804
	FlagSyncPythonPyenv                          uint64 = 805
	FlagSyncPythonUv                             uint64 = 806
	CmdSyncRuby                                  uint64 = 807
	FlagSyncRubyBrew                             uint64 = 808
	CmdTasks                                     uint64 = 809
	FlagTasksGlobal                              uint64 = 810
	FlagTasksJson                                uint64 = 811
	FlagTasksLocal                               uint64 = 812
	FlagTasksExtended                            uint64 = 813
	FlagTasksAll                                 uint64 = 814
	FlagTasksComplete                            uint64 = 815
	FlagTasksHidden                              uint64 = 816
	FlagTasksNameOnly                            uint64 = 817
	FlagTasksNoHeader                            uint64 = 818
	FlagTasksSort                                uint64 = 819
	FlagTasksSortOrder                           uint64 = 820
	FlagTasksUsage                               uint64 = 821
	ArgTasksTask                                 uint64 = 822
	CmdTasksAdd                                  uint64 = 823
	FlagTasksAddAlias                            uint64 = 824
	FlagTasksAddDepends                          uint64 = 825
	FlagTasksAddDir                              uint64 = 826
	FlagTasksAddFile                             uint64 = 827
	FlagTasksAddHide                             uint64 = 828
	FlagTasksAddQuiet                            uint64 = 829
	FlagTasksAddRaw                              uint64 = 830
	FlagTasksAddSources                          uint64 = 831
	FlagTasksAddWaitFor                          uint64 = 832
	FlagTasksAddDependsPost                      uint64 = 833
	FlagTasksAddDescription                      uint64 = 834
	FlagTasksAddOutputs                          uint64 = 835
	FlagTasksAddRunWindows                       uint64 = 836
	FlagTasksAddShell                            uint64 = 837
	FlagTasksAddSilent                           uint64 = 838
	ArgTasksAddTask                              uint64 = 839
	ArgTasksAddRun                               uint64 = 840
	CmdTasksDeps                                 uint64 = 841
	FlagTasksDepsCompact                         uint64 = 842
	FlagTasksDepsDot                             uint64 = 843
	FlagTasksDepsHidden                          uint64 = 844
	ArgTasksDepsTasks                            uint64 = 845
	CmdTasksEdit                                 uint64 = 846
	FlagTasksEditPath                            uint64 = 847
	ArgTasksEditTask                             uint64 = 848
	CmdTasksGraph                                uint64 = 849
	FlagTasksGraphJson                           uint64 = 850
	FlagTasksGraphExplain                        uint64 = 851
	FlagTasksGraphNoHeader                       uint64 = 852
	CmdTasksInfo                                 uint64 = 853
	FlagTasksInfoJson                            uint64 = 854
	ArgTasksInfoTask                             uint64 = 855
	CmdTasksLs                                   uint64 = 856
	FlagTasksLsGlobal                            uint64 = 857
	FlagTasksLsJson                              uint64 = 858
	FlagTasksLsLocal                             uint64 = 859
	FlagTasksLsExtended                          uint64 = 860
	FlagTasksLsAll                               uint64 = 861
	FlagTasksLsComplete                          uint64 = 862
	FlagTasksLsHidden                            uint64 = 863
	FlagTasksLsNameOnly                          uint64 = 864
	FlagTasksLsNoHeader                          uint64 = 865
	FlagTasksLsSort                              uint64 = 866
	FlagTasksLsSortOrder                         uint64 = 867
	FlagTasksLsUsage                             uint64 = 868
	CmdTasksRun                                  uint64 = 869
	FlagTasksRunAffected                         uint64 = 870
	FlagTasksRunAffectedBase                     uint64 = 871
	FlagTasksRunAffectedExplain                  uint64 = 872
	FlagTasksRunAffectedHead                     uint64 = 873
	FlagTasksRunAffectedJson                     uint64 = 874
	FlagTasksRunAll                              uint64 = 875
	FlagTasksRunContinueOnError                  uint64 = 876
	FlagTasksRunCd                               uint64 = 877
	FlagTasksRunForce                            uint64 = 878
	FlagTasksRunJobs                             uint64 = 879
	FlagTasksRunDryRun                           uint64 = 880
	FlagTasksRunOutput                           uint64 = 881
	FlagTasksRunQuiet                            uint64 = 882
	FlagTasksRunRaw                              uint64 = 883
	FlagTasksRunShell                            uint64 = 884
	FlagTasksRunSilent                           uint64 = 885
	FlagTasksRunTool                             uint64 = 886
	FlagTasksRunAllowEnv                         uint64 = 887
	FlagTasksRunAllowNet                         uint64 = 888
	FlagTasksRunAllowRead                        uint64 = 889
	FlagTasksRunAllowWrite                       uint64 = 890
	FlagTasksRunDenyAll                          uint64 = 891
	FlagTasksRunDenyEnv                          uint64 = 892
	FlagTasksRunDenyNet                          uint64 = 893
	FlagTasksRunDenyRead                         uint64 = 894
	FlagTasksRunDenyWrite                        uint64 = 895
	FlagTasksRunFreshEnv                         uint64 = 896
	FlagTasksRunNoCache                          uint64 = 897
	FlagTasksRunNoDeps                           uint64 = 898
	FlagTasksRunNoTimings                        uint64 = 899
	FlagTasksRunSkipDeps                         uint64 = 900
	FlagTasksRunSkipTools                        uint64 = 901
	FlagTasksRunTaskCache                        uint64 = 902
	FlagTasksRunTaskCacheExplain                 uint64 = 903
	FlagTasksRunTaskCacheExplainJson             uint64 = 904
	FlagTasksRunTaskCacheStats                   uint64 = 905
	FlagTasksRunTimeout                          uint64 = 906
	FlagTasksRunTimings                          uint64 = 907
	ArgTasksRunTask                              uint64 = 908
	ArgTasksRunArgs                              uint64 = 909
	ArgTasksRunArgsLast                          uint64 = 910
	CmdTasksValidate                             uint64 = 911
	FlagTasksValidateErrorsOnly                  uint64 = 912
	FlagTasksValidateJson                        uint64 = 913
	ArgTasksValidateTasks                        uint64 = 914
	CmdTestTool                                  uint64 = 915
	FlagTestToolAll                              uint64 = 916
	FlagTestToolJobs                             uint64 = 917
	FlagTestToolAllConfig                        uint64 = 918
	FlagTestToolIncludeNonDefined                uint64 = 919
	FlagTestToolRaw                              uint64 = 920
	ArgTestToolTools                             uint64 = 921
	CmdToken                                     uint64 = 922
	CmdTokenForgejo                              uint64 = 923
	FlagTokenForgejoUnmask                       uint64 = 924
	ArgTokenForgejoHost                          uint64 = 925
	CmdTokenGithub                               uint64 = 926
	FlagTokenGithubOauth                         uint64 = 927
	FlagTokenGithubRaw                           uint64 = 928
	FlagTokenGithubRefresh                       uint64 = 929
	FlagTokenGithubUnmask                        uint64 = 930
	ArgTokenGithubHost                           uint64 = 931
	CmdTokenGitlab                               uint64 = 932
	FlagTokenGitlabUnmask                        uint64 = 933
	ArgTokenGitlabHost                           uint64 = 934
	CmdTool                                      uint64 = 935
	FlagToolJson                                 uint64 = 936
	FlagToolActive                               uint64 = 937
	FlagToolBackend                              uint64 = 938
	FlagToolConfigSource                         uint64 = 939
	FlagToolDescription                          uint64 = 940
	FlagToolInstalled                            uint64 = 941
	FlagToolRequested                            uint64 = 942
	FlagToolToolOptions                          uint64 = 943
	ArgToolTool                                  uint64 = 944
	CmdToolStub                                  uint64 = 945
	ArgToolStubFile                              uint64 = 946
	ArgToolStubArgs                              uint64 = 947
	CmdTrust                                     uint64 = 948
	FlagTrustAll                                 uint64 = 949
	FlagTrustIgnore                              uint64 = 950
	FlagTrustShow                                uint64 = 951
	FlagTrustUntrust                             uint64 = 952
	ArgTrustConfigFile                           uint64 = 953
	CmdUninstall                                 uint64 = 954
	FlagUninstallAll                             uint64 = 955
	FlagUninstallDryRun                          uint64 = 956
	FlagUninstallDryRunCode                      uint64 = 957
	ArgUninstallInstalledToolVersion             uint64 = 958
	CmdUnset                                     uint64 = 959
	FlagUnsetFile                                uint64 = 960
	FlagUnsetGlobal                              uint64 = 961
	ArgUnsetEnvKey                               uint64 = 962
	CmdUntrust                                   uint64 = 963
	ArgUntrustConfigFile                         uint64 = 964
	CmdUnuse                                     uint64 = 965
	FlagUnuseEnv                                 uint64 = 966
	FlagUnuseGlobal                              uint64 = 967
	FlagUnusePath                                uint64 = 968
	FlagUnuseNoPrune                             uint64 = 969
	ArgUnuseInstalledToolVersion                 uint64 = 970
	CmdUpgrade                                   uint64 = 971
	FlagUpgradeBump                              uint64 = 972
	FlagUpgradeInteractive                       uint64 = 973
	FlagUpgradeJobs                              uint64 = 974
	FlagUpgradeL                                 uint64 = 975
	FlagUpgradeDryRun                            uint64 = 976
	FlagUpgradeExclude                           uint64 = 977
	FlagUpgradeDryRunCode                        uint64 = 978
	FlagUpgradeInactive                          uint64 = 979
	FlagUpgradeLocal                             uint64 = 980
	FlagUpgradeMinimumReleaseAge                 uint64 = 981
	FlagUpgradeMonorepo                          uint64 = 982
	FlagUpgradeNoPrune                           uint64 = 983
	FlagUpgradePrune                             uint64 = 984
	FlagUpgradeRaw                               uint64 = 985
	ArgUpgradeInstalledToolVersion               uint64 = 986
	CmdUsage                                     uint64 = 987
	CmdUse                                       uint64 = 988
	FlagUseEnv                                   uint64 = 989
	FlagUseForce                                 uint64 = 990
	FlagUseGlobal                                uint64 = 991
	FlagUseJobs                                  uint64 = 992
	FlagUseDryRun                                uint64 = 993
	FlagUsePath                                  uint64 = 994
	FlagUseDryRunCode                            uint64 = 995
	FlagUseFuzzy                                 uint64 = 996
	FlagUseMinimumReleaseAge                     uint64 = 997
	FlagUsePin                                   uint64 = 998
	FlagUseRaw                                   uint64 = 999
	FlagUseRemove                                uint64 = 1000
	ArgUseToolVersion                            uint64 = 1001
	CmdVersion                                   uint64 = 1002
	FlagVersionJson                              uint64 = 1003
	CmdWatch                                     uint64 = 1004
	FlagWatchTaskFlag                            uint64 = 1005
	FlagWatchGlob                                uint64 = 1006
	FlagWatchSkipDeps                            uint64 = 1007
	FlagWatchWatch                               uint64 = 1008
	FlagWatchWatchNonRecursive                   uint64 = 1009
	FlagWatchWatchFile                           uint64 = 1010
	FlagWatchClear                               uint64 = 1011
	FlagWatchOnBusyUpdate                        uint64 = 1012
	FlagWatchRestart                             uint64 = 1013
	FlagWatchSignal                              uint64 = 1014
	FlagWatchStopSignal                          uint64 = 1015
	FlagWatchStopTimeout                         uint64 = 1016
	FlagWatchMapSignal                           uint64 = 1017
	FlagWatchDebounce                            uint64 = 1018
	FlagWatchStdinQuit                           uint64 = 1019
	FlagWatchNoVcsIgnore                         uint64 = 1020
	FlagWatchNoProjectIgnore                     uint64 = 1021
	FlagWatchNoGlobalIgnore                      uint64 = 1022
	FlagWatchNoDefaultIgnore                     uint64 = 1023
	FlagWatchNoDiscoverIgnore                    uint64 = 1024
	FlagWatchIgnoreNothing                       uint64 = 1025
	FlagWatchPostpone                            uint64 = 1026
	FlagWatchDelayRun                            uint64 = 1027
	FlagWatchPoll                                uint64 = 1028
	FlagWatchShell                               uint64 = 1029
	FlagWatchN                                   uint64 = 1030
	FlagWatchEmitEventsTo                        uint64 = 1031
	FlagWatchOnlyEmitEvents                      uint64 = 1032
	FlagWatchEnv                                 uint64 = 1033
	FlagWatchWrapProcess                         uint64 = 1034
	FlagWatchNotify                              uint64 = 1035
	FlagWatchColor                               uint64 = 1036
	FlagWatchTimings                             uint64 = 1037
	FlagWatchQuiet                               uint64 = 1038
	FlagWatchBell                                uint64 = 1039
	FlagWatchProjectOrigin                       uint64 = 1040
	FlagWatchWorkdir                             uint64 = 1041
	FlagWatchExts                                uint64 = 1042
	FlagWatchFilter                              uint64 = 1043
	FlagWatchFilterFile                          uint64 = 1044
	FlagWatchFilterProg                          uint64 = 1045
	FlagWatchIgnore                              uint64 = 1046
	FlagWatchIgnoreFile                          uint64 = 1047
	FlagWatchFsEvents                            uint64 = 1048
	FlagWatchNoMeta                              uint64 = 1049
	FlagWatchPrintEvents                         uint64 = 1050
	FlagWatchManual                              uint64 = 1051
	ArgWatchTask                                 uint64 = 1052
	ArgWatchArgs                                 uint64 = 1053
	CmdWhere                                     uint64 = 1054
	ArgWhereToolVersion                          uint64 = 1055
	ArgWhereAsdfVersion                          uint64 = 1056
	CmdWhich                                     uint64 = 1057
	FlagWhichTool                                uint64 = 1058
	FlagWhichComplete                            uint64 = 1059
	FlagWhichPlugin                              uint64 = 1060
	FlagWhichVersion                             uint64 = 1061
	ArgWhichBinName                              uint64 = 1062
)

// Root is the command tree for `mise`. Pass it to argv.New.
var Root = &argv.Command{
	Name: "mise",
	Key:  CmdRoot,
	Flags: []*argv.Flag{
		{Key: FlagContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}},
		{Key: FlagCd, Name: "cd", Longs: []string{"cd"}, Shorts: []byte{'C'}, TakesValue: true, Global: true},
		{Key: FlagEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'E'}, TakesValue: true, Global: true},
		{Key: FlagForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true, Global: true},
		{Key: FlagDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagProfile, Name: "profile", Longs: []string{"profile"}, Shorts: []byte{'P'}, TakesValue: true, Global: true},
		{Key: FlagQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}, Global: true},
		{Key: FlagShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}, Global: true},
		{Key: FlagVersion, Name: "version", Longs: []string{"version"}, Shorts: []byte{'V'}},
		{Key: FlagYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}, Global: true},
		{Key: FlagDebug, Name: "debug", Longs: []string{"debug"}, Global: true},
		{Key: FlagLogLevel, Name: "log-level", Longs: []string{"log-level"}, TakesValue: true, Global: true},
		{Key: FlagNoConfig, Name: "no-config", Longs: []string{"no-config"}},
		{Key: FlagNoEnv, Name: "no-env", Longs: []string{"no-env"}},
		{Key: FlagNoHooks, Name: "no-hooks", Longs: []string{"no-hooks"}},
		{Key: FlagNoTimings, Name: "no-timings", Longs: []string{"no-timings", "no-timing"}, HiddenLongs: []string{"no-timing"}},
		{Key: FlagOutput, Name: "output", Longs: []string{"output"}, TakesValue: true},
		{Key: FlagRaw, Name: "raw", Longs: []string{"raw"}, Global: true},
		{Key: FlagLocked, Name: "locked", Longs: []string{"locked"}, Global: true},
		{Key: FlagSilent, Name: "silent", Longs: []string{"silent"}, Global: true},
		{Key: FlagTimings, Name: "timings", Longs: []string{"timings", "timing"}, HiddenLongs: []string{"timing"}},
		{Key: FlagTrace, Name: "trace", Longs: []string{"trace"}, Global: true},
	},
	Args: []*argv.Arg{
		{Key: ArgTask, Name: "TASK", DoubleDash: argv.DoubleDashAutomatic},
		{Key: ArgTaskArgs, Name: "TASK_ARGS", Var: true},
		{Key: ArgTaskArgsLast, Name: "TASK_ARGS_LAST", Var: true, DoubleDash: argv.DoubleDashRequired},
	},
	Subcommands:         []*argv.Command{cmdActivate, cmdToolAlias, cmdAsdf, cmdBackends, cmdBinPaths, cmdBootstrap, cmdCache, cmdCompletion, cmdConfig, cmdCurrent, cmdDeactivate, cmdDirenv, cmdDotfiles, cmdDoctor, cmdEn, cmdEnv, cmdExec, cmdFmt, cmdGenerate, cmdGithub, cmdGlobal, cmdHookEnv, cmdHookNotFound, cmdImplode, cmdEdit, cmdInstall, cmdInstallInto, cmdLatest, cmdLink, cmdLocal, cmdLock, cmdLs, cmdLsRemote, cmdMcp, cmdOci, cmdOutdated, cmdPatrons, cmdPlugins, cmdDeps, cmdPrune, cmdRegistry, cmdRenderHelp, cmdReshim, cmdRun, cmdSearch, cmdSelfUpdate, cmdSet, cmdSettings, cmdShell, cmdShellAlias, cmdSponsors, cmdSync, cmdTasks, cmdTestTool, cmdToken, cmdTool, cmdToolStub, cmdTrust, cmdUninstall, cmdUnset, cmdUntrust, cmdUnuse, cmdUpgrade, cmdUsage, cmdUse, cmdVersion, cmdWatch, cmdWhere, cmdWhich},
	ArgRequiredElseHelp: true,
	DefaultSubcommand:   cmdRun,
}

// activate
var cmdActivate = &argv.Command{
	Name: "activate",
	Key:  CmdActivate,
	Flags: []*argv.Flag{
		{Key: FlagActivateQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}},
		{Key: FlagActivateShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagActivateNoHookEnv, Name: "no-hook-env", Longs: []string{"no-hook-env"}},
		{Key: FlagActivateShims, Name: "shims", Longs: []string{"shims"}},
		{Key: FlagActivateStatus, Name: "status", Longs: []string{"status"}},
	},
	Args: []*argv.Arg{
		{Key: ArgActivateShellType, Name: "SHELL_TYPE"},
	},
}

// tool-alias
var cmdToolAlias = &argv.Command{
	Name:    "tool-alias",
	Key:     CmdToolAlias,
	Aliases: []string{"alias", "aliases"},
	Flags: []*argv.Flag{
		{Key: FlagToolAliasTool, Name: "tool", Longs: []string{"tool", "plugin"}, HiddenLongs: []string{"plugin"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagToolAliasNoHeader, Name: "no-header", Longs: []string{"no-header"}},
	},
	Subcommands: []*argv.Command{cmdToolAliasGet, cmdToolAliasLs, cmdToolAliasSet, cmdToolAliasUnset},
}

// tool-alias get
var cmdToolAliasGet = &argv.Command{
	Name: "get",
	Key:  CmdToolAliasGet,
	Args: []*argv.Arg{
		{Key: ArgToolAliasGetTool, Name: "TOOL", Required: true},
		{Key: ArgToolAliasGetAlias, Name: "ALIAS", Required: true},
	},
}

// tool-alias ls
var cmdToolAliasLs = &argv.Command{
	Name:    "ls",
	Key:     CmdToolAliasLs,
	Aliases: []string{"list"},
	Flags: []*argv.Flag{
		{Key: FlagToolAliasLsNoHeader, Name: "no-header", Longs: []string{"no-header"}},
	},
	Args: []*argv.Arg{
		{Key: ArgToolAliasLsTool, Name: "TOOL"},
	},
}

// tool-alias set
var cmdToolAliasSet = &argv.Command{
	Name:    "set",
	Key:     CmdToolAliasSet,
	Aliases: []string{"add", "create"},
	Args: []*argv.Arg{
		{Key: ArgToolAliasSetTool, Name: "TOOL", Required: true},
		{Key: ArgToolAliasSetAlias, Name: "ALIAS", Required: true},
		{Key: ArgToolAliasSetValue, Name: "VALUE"},
	},
}

// tool-alias unset
var cmdToolAliasUnset = &argv.Command{
	Name:    "unset",
	Key:     CmdToolAliasUnset,
	Aliases: []string{"rm", "remove", "delete", "del"},
	Args: []*argv.Arg{
		{Key: ArgToolAliasUnsetTool, Name: "TOOL", Required: true},
		{Key: ArgToolAliasUnsetAlias, Name: "ALIAS"},
	},
}

// asdf
var cmdAsdf = &argv.Command{
	Name: "asdf",
	Key:  CmdAsdf,
	Args: []*argv.Arg{
		{Key: ArgAsdfArgs, Name: "ARGS", Var: true, DoubleDash: argv.DoubleDashAutomatic},
	},
}

// backends
var cmdBackends = &argv.Command{
	Name:        "backends",
	Key:         CmdBackends,
	Aliases:     []string{"b", "backend", "backend-list"},
	Subcommands: []*argv.Command{cmdBackendsLs},
}

// backends ls
var cmdBackendsLs = &argv.Command{
	Name:    "ls",
	Key:     CmdBackendsLs,
	Aliases: []string{"list"},
}

// bin-paths
var cmdBinPaths = &argv.Command{
	Name: "bin-paths",
	Key:  CmdBinPaths,
	Flags: []*argv.Flag{
		{Key: FlagBinPathsBinNames, Name: "bin-names", Longs: []string{"bin-names"}},
		{Key: FlagBinPathsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBinPathsToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// bootstrap
var cmdBootstrap = &argv.Command{
	Name:    "bootstrap",
	Key:     CmdBootstrap,
	Aliases: []string{"bs"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
		{Key: FlagBootstrapForceDotfiles, Name: "force-dotfiles", Longs: []string{"force-dotfiles"}},
		{Key: FlagBootstrapOnly, Name: "only", Longs: []string{"only"}, TakesValue: true, Delimiter: ','},
		{Key: FlagBootstrapPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}},
		{Key: FlagBootstrapSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true, Delimiter: ','},
		{Key: FlagBootstrapUpdate, Name: "update", Longs: []string{"update"}},
	},
	Subcommands: []*argv.Command{cmdBootstrapApplyAccountPlan, cmdBootstrapApplyServicePlan, cmdBootstrapApplyFirewallPlan, cmdBootstrapApplySystemPlan, cmdBootstrapInspectSystemFiles, cmdBootstrapInspectFirewallPlan, cmdBootstrapAccounts, cmdBootstrapCompose, cmdBootstrapDotfiles, cmdBootstrapFiles, cmdBootstrapFirewall, cmdBootstrapLaunchd, cmdBootstrapLinux, cmdBootstrapMacos, cmdBootstrapMacosDefaults2, cmdBootstrapMiseShellActivate, cmdBootstrapPackages, cmdBootstrapPlan, cmdBootstrapPlugins, cmdBootstrapRemote, cmdBootstrapRepos, cmdBootstrapSecrets, cmdBootstrapServices, cmdBootstrapStatus, cmdBootstrapSystemd, cmdBootstrapUser},
}

// bootstrap __apply-account-plan
var cmdBootstrapApplyAccountPlan = &argv.Command{
	Name: "__apply-account-plan",
	Key:  CmdBootstrapApplyAccountPlan,
}

// bootstrap __apply-service-plan
var cmdBootstrapApplyServicePlan = &argv.Command{
	Name: "__apply-service-plan",
	Key:  CmdBootstrapApplyServicePlan,
}

// bootstrap __apply-firewall-plan
var cmdBootstrapApplyFirewallPlan = &argv.Command{
	Name: "__apply-firewall-plan",
	Key:  CmdBootstrapApplyFirewallPlan,
}

// bootstrap __apply-system-plan
var cmdBootstrapApplySystemPlan = &argv.Command{
	Name: "__apply-system-plan",
	Key:  CmdBootstrapApplySystemPlan,
}

// bootstrap __inspect-system-files
var cmdBootstrapInspectSystemFiles = &argv.Command{
	Name: "__inspect-system-files",
	Key:  CmdBootstrapInspectSystemFiles,
}

// bootstrap __inspect-firewall-plan
var cmdBootstrapInspectFirewallPlan = &argv.Command{
	Name: "__inspect-firewall-plan",
	Key:  CmdBootstrapInspectFirewallPlan,
}

// bootstrap accounts
var cmdBootstrapAccounts = &argv.Command{
	Name:        "accounts",
	Key:         CmdBootstrapAccounts,
	Subcommands: []*argv.Command{cmdBootstrapAccountsApply, cmdBootstrapAccountsStatus},
}

// bootstrap accounts apply
var cmdBootstrapAccountsApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapAccountsApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapAccountsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapAccountsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap accounts status
var cmdBootstrapAccountsStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapAccountsStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapAccountsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapAccountsStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap compose
var cmdBootstrapCompose = &argv.Command{
	Name:        "compose",
	Key:         CmdBootstrapCompose,
	Subcommands: []*argv.Command{cmdBootstrapComposeApply, cmdBootstrapComposeStatus},
}

// bootstrap compose apply
var cmdBootstrapComposeApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapComposeApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapComposeApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapComposeApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap compose status
var cmdBootstrapComposeStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapComposeStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapComposeStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapComposeStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap dotfiles
var cmdBootstrapDotfiles = &argv.Command{
	Name:        "dotfiles",
	Key:         CmdBootstrapDotfiles,
	Subcommands: []*argv.Command{cmdBootstrapDotfilesAdd, cmdBootstrapDotfilesApply, cmdBootstrapDotfilesEdit, cmdBootstrapDotfilesStatus, cmdBootstrapDotfilesUnapply},
}

// bootstrap dotfiles add
var cmdBootstrapDotfilesAdd = &argv.Command{
	Name: "add",
	Key:  CmdBootstrapDotfilesAdd,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapDotfilesAddForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagBootstrapDotfilesAddGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagBootstrapDotfilesAddLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagBootstrapDotfilesAddMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagBootstrapDotfilesAddDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapDotfilesAddNoApply, Name: "no-apply", Longs: []string{"no-apply"}},
		{Key: FlagBootstrapDotfilesAddPath, Name: "path", Longs: []string{"path"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagBootstrapDotfilesAddSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagBootstrapDotfilesAddYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapDotfilesAddTarget, Name: "TARGET", Required: true, Var: true},
	},
}

// bootstrap dotfiles apply
var cmdBootstrapDotfilesApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapDotfilesApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapDotfilesApplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagBootstrapDotfilesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapDotfilesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapDotfilesApplyTarget, Name: "TARGET", Var: true},
	},
}

// bootstrap dotfiles edit
var cmdBootstrapDotfilesEdit = &argv.Command{
	Name: "edit",
	Key:  CmdBootstrapDotfilesEdit,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapDotfilesEditApply, Name: "apply", Longs: []string{"apply"}},
		{Key: FlagBootstrapDotfilesEditMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagBootstrapDotfilesEditSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagBootstrapDotfilesEditYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapDotfilesEditTarget, Name: "TARGET", Required: true},
	},
}

// bootstrap dotfiles status
var cmdBootstrapDotfilesStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapDotfilesStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapDotfilesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapDotfilesStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapDotfilesStatusTarget, Name: "TARGET", Var: true},
	},
}

// bootstrap dotfiles unapply
var cmdBootstrapDotfilesUnapply = &argv.Command{
	Name: "unapply",
	Key:  CmdBootstrapDotfilesUnapply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapDotfilesUnapplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagBootstrapDotfilesUnapplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapDotfilesUnapplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapDotfilesUnapplyTarget, Name: "TARGET", Var: true},
	},
}

// bootstrap files
var cmdBootstrapFiles = &argv.Command{
	Name:        "files",
	Key:         CmdBootstrapFiles,
	Subcommands: []*argv.Command{cmdBootstrapFilesApply, cmdBootstrapFilesStatus},
}

// bootstrap files apply
var cmdBootstrapFilesApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapFilesApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapFilesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapFilesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
		{Key: FlagBootstrapFilesApplyPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}},
	},
}

// bootstrap files status
var cmdBootstrapFilesStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapFilesStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapFilesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapFilesStatusMissing, Name: "missing", Longs: []string{"missing"}},
		{Key: FlagBootstrapFilesStatusPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}},
	},
}

// bootstrap firewall
var cmdBootstrapFirewall = &argv.Command{
	Name:        "firewall",
	Key:         CmdBootstrapFirewall,
	Subcommands: []*argv.Command{cmdBootstrapFirewallApply, cmdBootstrapFirewallStatus},
}

// bootstrap firewall apply
var cmdBootstrapFirewallApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapFirewallApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapFirewallApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapFirewallApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap firewall status
var cmdBootstrapFirewallStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapFirewallStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapFirewallStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapFirewallStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap launchd
var cmdBootstrapLaunchd = &argv.Command{
	Name:        "launchd",
	Key:         CmdBootstrapLaunchd,
	Subcommands: []*argv.Command{cmdBootstrapLaunchdApply, cmdBootstrapLaunchdStatus},
}

// bootstrap launchd apply
var cmdBootstrapLaunchdApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapLaunchdApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapLaunchdApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapLaunchdApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap launchd status
var cmdBootstrapLaunchdStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapLaunchdStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapLaunchdStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapLaunchdStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap linux
var cmdBootstrapLinux = &argv.Command{
	Name:        "linux",
	Key:         CmdBootstrapLinux,
	Subcommands: []*argv.Command{cmdBootstrapLinuxSystemdUnits},
}

// bootstrap linux systemd-units
var cmdBootstrapLinuxSystemdUnits = &argv.Command{
	Name:        "systemd-units",
	Key:         CmdBootstrapLinuxSystemdUnits,
	Aliases:     []string{"systemd"},
	Subcommands: []*argv.Command{cmdBootstrapLinuxSystemdUnitsApply, cmdBootstrapLinuxSystemdUnitsStatus},
}

// bootstrap linux systemd-units apply
var cmdBootstrapLinuxSystemdUnitsApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapLinuxSystemdUnitsApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapLinuxSystemdUnitsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapLinuxSystemdUnitsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap linux systemd-units status
var cmdBootstrapLinuxSystemdUnitsStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapLinuxSystemdUnitsStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapLinuxSystemdUnitsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapLinuxSystemdUnitsStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap macos
var cmdBootstrapMacos = &argv.Command{
	Name:        "macos",
	Key:         CmdBootstrapMacos,
	Subcommands: []*argv.Command{cmdBootstrapMacosDefaults, cmdBootstrapMacosLaunchdAgents},
}

// bootstrap macos defaults
var cmdBootstrapMacosDefaults = &argv.Command{
	Name:        "defaults",
	Key:         CmdBootstrapMacosDefaults,
	Subcommands: []*argv.Command{cmdBootstrapMacosDefaultsApply, cmdBootstrapMacosDefaultsStatus},
}

// bootstrap macos defaults apply
var cmdBootstrapMacosDefaultsApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapMacosDefaultsApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMacosDefaultsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapMacosDefaultsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap macos defaults status
var cmdBootstrapMacosDefaultsStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapMacosDefaultsStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMacosDefaultsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapMacosDefaultsStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap macos launchd-agents
var cmdBootstrapMacosLaunchdAgents = &argv.Command{
	Name:        "launchd-agents",
	Key:         CmdBootstrapMacosLaunchdAgents,
	Aliases:     []string{"launchd"},
	Subcommands: []*argv.Command{cmdBootstrapMacosLaunchdAgentsApply, cmdBootstrapMacosLaunchdAgentsStatus},
}

// bootstrap macos launchd-agents apply
var cmdBootstrapMacosLaunchdAgentsApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapMacosLaunchdAgentsApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMacosLaunchdAgentsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapMacosLaunchdAgentsApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap macos launchd-agents status
var cmdBootstrapMacosLaunchdAgentsStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapMacosLaunchdAgentsStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMacosLaunchdAgentsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapMacosLaunchdAgentsStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap macos-defaults
var cmdBootstrapMacosDefaults2 = &argv.Command{
	Name:        "macos-defaults",
	Key:         CmdBootstrapMacosDefaults2,
	Subcommands: []*argv.Command{cmdBootstrapMacosDefaultsApply2, cmdBootstrapMacosDefaultsStatus2},
}

// bootstrap macos-defaults apply
var cmdBootstrapMacosDefaultsApply2 = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapMacosDefaultsApply2,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMacosDefaultsApplyDryRun2, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapMacosDefaultsApplyYes2, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap macos-defaults status
var cmdBootstrapMacosDefaultsStatus2 = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapMacosDefaultsStatus2,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMacosDefaultsStatusJson2, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapMacosDefaultsStatusMissing2, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap mise-shell-activate
var cmdBootstrapMiseShellActivate = &argv.Command{
	Name:        "mise-shell-activate",
	Key:         CmdBootstrapMiseShellActivate,
	Aliases:     []string{"shell"},
	Subcommands: []*argv.Command{cmdBootstrapMiseShellActivateApply, cmdBootstrapMiseShellActivateStatus},
}

// bootstrap mise-shell-activate apply
var cmdBootstrapMiseShellActivateApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapMiseShellActivateApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMiseShellActivateApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapMiseShellActivateApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap mise-shell-activate status
var cmdBootstrapMiseShellActivateStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapMiseShellActivateStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapMiseShellActivateStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapMiseShellActivateStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap packages
var cmdBootstrapPackages = &argv.Command{
	Name:        "packages",
	Key:         CmdBootstrapPackages,
	Subcommands: []*argv.Command{cmdBootstrapPackagesApply, cmdBootstrapPackagesBrew, cmdBootstrapPackagesImport, cmdBootstrapPackagesPrune, cmdBootstrapPackagesStatus, cmdBootstrapPackagesUpgrade, cmdBootstrapPackagesUse},
}

// bootstrap packages apply
var cmdBootstrapPackagesApply = &argv.Command{
	Name:    "apply",
	Key:     CmdBootstrapPackagesApply,
	Aliases: []string{"i", "install"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesApplyManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagBootstrapPackagesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
		{Key: FlagBootstrapPackagesApplyUpdate, Name: "update", Longs: []string{"update"}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapPackagesApplyPackage, Name: "PACKAGE", Var: true},
	},
}

// bootstrap packages brew
var cmdBootstrapPackagesBrew = &argv.Command{
	Name:        "brew",
	Key:         CmdBootstrapPackagesBrew,
	Subcommands: []*argv.Command{cmdBootstrapPackagesBrewTap, cmdBootstrapPackagesBrewUntap},
}

// bootstrap packages brew tap
var cmdBootstrapPackagesBrewTap = &argv.Command{
	Name: "tap",
	Key:  CmdBootstrapPackagesBrewTap,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesBrewTapLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagBootstrapPackagesBrewTapDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesBrewTapPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapPackagesBrewTapTap, Name: "TAP", Required: true},
		{Key: ArgBootstrapPackagesBrewTapUrl, Name: "URL"},
	},
}

// bootstrap packages brew untap
var cmdBootstrapPackagesBrewUntap = &argv.Command{
	Name:    "untap",
	Key:     CmdBootstrapPackagesBrewUntap,
	Aliases: []string{"remove", "rm"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesBrewUntapLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagBootstrapPackagesBrewUntapDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesBrewUntapPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapPackagesBrewUntapTaps, Name: "TAPS", Required: true, Var: true},
	},
}

// bootstrap packages import
var cmdBootstrapPackagesImport = &argv.Command{
	Name: "import",
	Key:  CmdBootstrapPackagesImport,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesImportEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true},
		{Key: FlagBootstrapPackagesImportGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagBootstrapPackagesImportManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagBootstrapPackagesImportAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagBootstrapPackagesImportDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesImportPath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true},
	},
}

// bootstrap packages prune
var cmdBootstrapPackagesPrune = &argv.Command{
	Name: "prune",
	Key:  CmdBootstrapPackagesPrune,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesPruneManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagBootstrapPackagesPruneDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesPruneYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap packages status
var cmdBootstrapPackagesStatus = &argv.Command{
	Name:    "status",
	Key:     CmdBootstrapPackagesStatus,
	Aliases: []string{"ls"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapPackagesStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap packages upgrade
var cmdBootstrapPackagesUpgrade = &argv.Command{
	Name:    "upgrade",
	Key:     CmdBootstrapPackagesUpgrade,
	Aliases: []string{"up"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesUpgradeManager, Name: "manager", Longs: []string{"manager"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagBootstrapPackagesUpgradeDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesUpgradeYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapPackagesUpgradePackage, Name: "PACKAGE", Var: true},
	},
}

// bootstrap packages use
var cmdBootstrapPackagesUse = &argv.Command{
	Name:    "use",
	Key:     CmdBootstrapPackagesUse,
	Aliases: []string{"u"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPackagesUseEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true},
		{Key: FlagBootstrapPackagesUseGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagBootstrapPackagesUseDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapPackagesUsePath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagBootstrapPackagesUseYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapPackagesUsePackage, Name: "PACKAGE", Required: true, Var: true},
	},
}

// bootstrap plan
var cmdBootstrapPlan = &argv.Command{
	Name: "plan",
	Key:  CmdBootstrapPlan,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPlanJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapPlanDetailedExitcode, Name: "detailed-exitcode", Longs: []string{"detailed-exitcode"}},
		{Key: FlagBootstrapPlanPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}},
	},
}

// bootstrap plugins
var cmdBootstrapPlugins = &argv.Command{
	Name:        "plugins",
	Key:         CmdBootstrapPlugins,
	Subcommands: []*argv.Command{cmdBootstrapPluginsApply, cmdBootstrapPluginsStatus},
}

// bootstrap plugins apply
var cmdBootstrapPluginsApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapPluginsApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPluginsApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
	},
}

// bootstrap plugins status
var cmdBootstrapPluginsStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapPluginsStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapPluginsStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap remote
var cmdBootstrapRemote = &argv.Command{
	Name: "remote",
	Key:  CmdBootstrapRemote,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapRemoteAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagBootstrapRemoteBootstrapCommand, Name: "bootstrap-command", Longs: []string{"bootstrap-command"}, TakesValue: true},
		{Key: FlagBootstrapRemoteConnectTimeout, Name: "connect-timeout", Longs: []string{"connect-timeout"}, TakesValue: true},
		{Key: FlagBootstrapRemoteCopyLink, Name: "copy-link", Longs: []string{"copy-link"}, TakesValue: true},
		{Key: FlagBootstrapRemoteCopyLinks, Name: "copy-links", Longs: []string{"copy-links"}},
		{Key: FlagBootstrapRemoteExclude, Name: "exclude", Longs: []string{"exclude"}, TakesValue: true},
		{Key: FlagBootstrapRemoteFailFast, Name: "fail-fast", Longs: []string{"fail-fast"}},
		{Key: FlagBootstrapRemoteForceDotfiles, Name: "force-dotfiles", Longs: []string{"force-dotfiles"}},
		{Key: FlagBootstrapRemoteHost, Name: "host", Longs: []string{"host"}, TakesValue: true},
		{Key: FlagBootstrapRemoteIdentityFile, Name: "identity-file", Longs: []string{"identity-file"}, Shorts: []byte{'i'}, TakesValue: true},
		{Key: FlagBootstrapRemoteDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapRemoteKeepStaging, Name: "keep-staging", Longs: []string{"keep-staging"}},
		{Key: FlagBootstrapRemoteMiseBin, Name: "mise-bin", Longs: []string{"mise-bin"}, TakesValue: true},
		{Key: FlagBootstrapRemoteOnly, Name: "only", Longs: []string{"only"}, TakesValue: true, Delimiter: ','},
		{Key: FlagBootstrapRemotePort, Name: "port", Longs: []string{"port"}, TakesValue: true},
		{Key: FlagBootstrapRemotePromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}},
		{Key: FlagBootstrapRemoteRemoteEnv, Name: "remote-env", Longs: []string{"remote-env"}, TakesValue: true, Delimiter: ','},
		{Key: FlagBootstrapRemoteRemoteMise, Name: "remote-mise", Longs: []string{"remote-mise"}, TakesValue: true},
		{Key: FlagBootstrapRemoteSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true, Delimiter: ','},
		{Key: FlagBootstrapRemoteSource, Name: "source", Longs: []string{"source"}, TakesValue: true},
		{Key: FlagBootstrapRemoteSshOption, Name: "ssh-option", Longs: []string{"ssh-option"}, TakesValue: true},
		{Key: FlagBootstrapRemoteTag, Name: "tag", Longs: []string{"tag"}, TakesValue: true},
		{Key: FlagBootstrapRemoteUpdate, Name: "update", Longs: []string{"update"}},
		{Key: FlagBootstrapRemoteYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapRemoteTarget, Name: "TARGET", Var: true},
	},
}

// bootstrap repos
var cmdBootstrapRepos = &argv.Command{
	Name:        "repos",
	Key:         CmdBootstrapRepos,
	Subcommands: []*argv.Command{cmdBootstrapReposApply, cmdBootstrapReposExec, cmdBootstrapReposStatus, cmdBootstrapReposUpdate},
}

// bootstrap repos apply
var cmdBootstrapReposApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapReposApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapReposApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapReposApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap repos exec
var cmdBootstrapReposExec = &argv.Command{
	Name: "exec",
	Key:  CmdBootstrapReposExec,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapReposExecContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}},
		{Key: FlagBootstrapReposExecDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapReposExecPath, Name: "PATH", Var: true},
		{Key: ArgBootstrapReposExecCommand, Name: "COMMAND", Required: true, Var: true, DoubleDash: argv.DoubleDashRequired},
	},
}

// bootstrap repos status
var cmdBootstrapReposStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapReposStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapReposStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapReposStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap repos update
var cmdBootstrapReposUpdate = &argv.Command{
	Name: "update",
	Key:  CmdBootstrapReposUpdate,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapReposUpdateDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapReposUpdateYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgBootstrapReposUpdatePath, Name: "PATH", Var: true},
	},
}

// bootstrap secrets
var cmdBootstrapSecrets = &argv.Command{
	Name:        "secrets",
	Key:         CmdBootstrapSecrets,
	Subcommands: []*argv.Command{cmdBootstrapSecretsStatus},
}

// bootstrap secrets status
var cmdBootstrapSecretsStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapSecretsStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapSecretsStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapSecretsStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap services
var cmdBootstrapServices = &argv.Command{
	Name:        "services",
	Key:         CmdBootstrapServices,
	Subcommands: []*argv.Command{cmdBootstrapServicesApply, cmdBootstrapServicesStatus},
}

// bootstrap services apply
var cmdBootstrapServicesApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapServicesApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapServicesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapServicesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap services status
var cmdBootstrapServicesStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapServicesStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapServicesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapServicesStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap status
var cmdBootstrapStatus = &argv.Command{
	Name:    "status",
	Key:     CmdBootstrapStatus,
	Aliases: []string{"ls"},
	Flags: []*argv.Flag{
		{Key: FlagBootstrapStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapStatusMissing, Name: "missing", Longs: []string{"missing"}},
		{Key: FlagBootstrapStatusPromptSecrets, Name: "prompt-secrets", Longs: []string{"prompt-secrets"}},
	},
}

// bootstrap systemd
var cmdBootstrapSystemd = &argv.Command{
	Name:        "systemd",
	Key:         CmdBootstrapSystemd,
	Subcommands: []*argv.Command{cmdBootstrapSystemdApply, cmdBootstrapSystemdStatus},
}

// bootstrap systemd apply
var cmdBootstrapSystemdApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapSystemdApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapSystemdApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapSystemdApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap systemd status
var cmdBootstrapSystemdStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapSystemdStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapSystemdStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapSystemdStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// bootstrap user
var cmdBootstrapUser = &argv.Command{
	Name:        "user",
	Key:         CmdBootstrapUser,
	Subcommands: []*argv.Command{cmdBootstrapUserApply, cmdBootstrapUserStatus},
}

// bootstrap user apply
var cmdBootstrapUserApply = &argv.Command{
	Name: "apply",
	Key:  CmdBootstrapUserApply,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapUserApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagBootstrapUserApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
}

// bootstrap user status
var cmdBootstrapUserStatus = &argv.Command{
	Name: "status",
	Key:  CmdBootstrapUserStatus,
	Flags: []*argv.Flag{
		{Key: FlagBootstrapUserStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagBootstrapUserStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
}

// cache
var cmdCache = &argv.Command{
	Name:        "cache",
	Key:         CmdCache,
	Subcommands: []*argv.Command{cmdCacheClear, cmdCachePath, cmdCachePrune, cmdCacheTask},
}

// cache clear
var cmdCacheClear = &argv.Command{
	Name:    "clear",
	Key:     CmdCacheClear,
	Aliases: []string{"c", "clean"},
	Flags: []*argv.Flag{
		{Key: FlagCacheClearOutdate, Name: "outdate", Longs: []string{"outdate"}},
		{Key: FlagCacheClearTask, Name: "task", Longs: []string{"task"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgCacheClearTool, Name: "TOOL", Var: true},
	},
}

// cache path
var cmdCachePath = &argv.Command{
	Name:    "path",
	Key:     CmdCachePath,
	Aliases: []string{"dir"},
}

// cache prune
var cmdCachePrune = &argv.Command{
	Name:    "prune",
	Key:     CmdCachePrune,
	Aliases: []string{"p"},
	Flags: []*argv.Flag{
		{Key: FlagCachePruneVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}},
		{Key: FlagCachePruneDryRun, Name: "dry-run", Longs: []string{"dry-run"}},
	},
	Args: []*argv.Arg{
		{Key: ArgCachePruneTool, Name: "TOOL", Var: true},
	},
}

// cache task
var cmdCacheTask = &argv.Command{
	Name: "task",
	Key:  CmdCacheTask,
	Flags: []*argv.Flag{
		{Key: FlagCacheTaskJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
	},
	Args: []*argv.Arg{
		{Key: ArgCacheTaskTask, Name: "TASK", Required: true},
	},
}

// completion
var cmdCompletion = &argv.Command{
	Name:    "completion",
	Key:     CmdCompletion,
	Aliases: []string{"complete", "completions"},
	Flags: []*argv.Flag{
		{Key: FlagCompletionShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagCompletionIncludeBashCompletionLib, Name: "include-bash-completion-lib", Longs: []string{"include-bash-completion-lib"}},
		{Key: FlagCompletionUsage, Name: "usage", Longs: []string{"usage"}},
	},
	Args: []*argv.Arg{
		{Key: ArgCompletionShell, Name: "SHELL"},
	},
}

// config
var cmdConfig = &argv.Command{
	Name:    "config",
	Key:     CmdConfig,
	Aliases: []string{"cfg", "toml"},
	Flags: []*argv.Flag{
		{Key: FlagConfigJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagConfigNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
		{Key: FlagConfigTrackedConfigs, Name: "tracked-configs", Longs: []string{"tracked-configs"}},
	},
	Subcommands: []*argv.Command{cmdConfigGet, cmdConfigLs, cmdConfigSet},
}

// config get
var cmdConfigGet = &argv.Command{
	Name: "get",
	Key:  CmdConfigGet,
	Flags: []*argv.Flag{
		{Key: FlagConfigGetFile, Name: "file", Longs: []string{"file", "path"}, Shorts: []byte{'f'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgConfigGetKey, Name: "KEY"},
	},
}

// config ls
var cmdConfigLs = &argv.Command{
	Name:    "ls",
	Key:     CmdConfigLs,
	Aliases: []string{"list"},
	Flags: []*argv.Flag{
		{Key: FlagConfigLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagConfigLsNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
		{Key: FlagConfigLsTrackedConfigs, Name: "tracked-configs", Longs: []string{"tracked-configs"}},
	},
}

// config set
var cmdConfigSet = &argv.Command{
	Name: "set",
	Key:  CmdConfigSet,
	Flags: []*argv.Flag{
		{Key: FlagConfigSetFile, Name: "file", Longs: []string{"file", "path"}, Shorts: []byte{'f'}, TakesValue: true},
		{Key: FlagConfigSetType, Name: "type", Longs: []string{"type"}, Shorts: []byte{'t'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgConfigSetKey, Name: "KEY", Required: true},
		{Key: ArgConfigSetValue, Name: "VALUE"},
	},
}

// current
var cmdCurrent = &argv.Command{
	Name: "current",
	Key:  CmdCurrent,
	Args: []*argv.Arg{
		{Key: ArgCurrentPlugin, Name: "PLUGIN"},
	},
}

// deactivate
var cmdDeactivate = &argv.Command{
	Name: "deactivate",
	Key:  CmdDeactivate,
}

// direnv
var cmdDirenv = &argv.Command{
	Name:        "direnv",
	Key:         CmdDirenv,
	Subcommands: []*argv.Command{cmdDirenvActivate, cmdDirenvEnvrc, cmdDirenvExec},
}

// direnv activate
var cmdDirenvActivate = &argv.Command{
	Name: "activate",
	Key:  CmdDirenvActivate,
}

// direnv envrc
var cmdDirenvEnvrc = &argv.Command{
	Name: "envrc",
	Key:  CmdDirenvEnvrc,
}

// direnv exec
var cmdDirenvExec = &argv.Command{
	Name: "exec",
	Key:  CmdDirenvExec,
}

// dotfiles
var cmdDotfiles = &argv.Command{
	Name:        "dotfiles",
	Key:         CmdDotfiles,
	Subcommands: []*argv.Command{cmdDotfilesAdd, cmdDotfilesApply, cmdDotfilesEdit, cmdDotfilesStatus, cmdDotfilesUnapply},
}

// dotfiles add
var cmdDotfilesAdd = &argv.Command{
	Name: "add",
	Key:  CmdDotfilesAdd,
	Flags: []*argv.Flag{
		{Key: FlagDotfilesAddForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagDotfilesAddGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagDotfilesAddLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagDotfilesAddMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagDotfilesAddDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagDotfilesAddNoApply, Name: "no-apply", Longs: []string{"no-apply"}},
		{Key: FlagDotfilesAddPath, Name: "path", Longs: []string{"path"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagDotfilesAddSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagDotfilesAddYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgDotfilesAddTarget, Name: "TARGET", Required: true, Var: true},
	},
}

// dotfiles apply
var cmdDotfilesApply = &argv.Command{
	Name: "apply",
	Key:  CmdDotfilesApply,
	Flags: []*argv.Flag{
		{Key: FlagDotfilesApplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagDotfilesApplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagDotfilesApplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgDotfilesApplyTarget, Name: "TARGET", Var: true},
	},
}

// dotfiles edit
var cmdDotfilesEdit = &argv.Command{
	Name: "edit",
	Key:  CmdDotfilesEdit,
	Flags: []*argv.Flag{
		{Key: FlagDotfilesEditApply, Name: "apply", Longs: []string{"apply"}},
		{Key: FlagDotfilesEditMode, Name: "mode", Longs: []string{"mode"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagDotfilesEditSource, Name: "source", Longs: []string{"source"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagDotfilesEditYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgDotfilesEditTarget, Name: "TARGET", Required: true},
	},
}

// dotfiles status
var cmdDotfilesStatus = &argv.Command{
	Name:    "status",
	Key:     CmdDotfilesStatus,
	Aliases: []string{"ls"},
	Flags: []*argv.Flag{
		{Key: FlagDotfilesStatusJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagDotfilesStatusMissing, Name: "missing", Longs: []string{"missing"}},
	},
	Args: []*argv.Arg{
		{Key: ArgDotfilesStatusTarget, Name: "TARGET", Var: true},
	},
}

// dotfiles unapply
var cmdDotfilesUnapply = &argv.Command{
	Name: "unapply",
	Key:  CmdDotfilesUnapply,
	Flags: []*argv.Flag{
		{Key: FlagDotfilesUnapplyForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagDotfilesUnapplyDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagDotfilesUnapplyYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
	},
	Args: []*argv.Arg{
		{Key: ArgDotfilesUnapplyTarget, Name: "TARGET", Var: true},
	},
}

// doctor
var cmdDoctor = &argv.Command{
	Name:    "doctor",
	Key:     CmdDoctor,
	Aliases: []string{"dr"},
	Flags: []*argv.Flag{
		{Key: FlagDoctorJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
	},
	Subcommands: []*argv.Command{cmdDoctorPath},
}

// doctor path
var cmdDoctorPath = &argv.Command{
	Name:    "path",
	Key:     CmdDoctorPath,
	Aliases: []string{"paths"},
	Flags: []*argv.Flag{
		{Key: FlagDoctorPathFull, Name: "full", Longs: []string{"full"}, Shorts: []byte{'f'}},
	},
}

// en
var cmdEn = &argv.Command{
	Name: "en",
	Key:  CmdEn,
	Flags: []*argv.Flag{
		{Key: FlagEnShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgEnDir, Name: "DIR"},
	},
}

// env
var cmdEnv = &argv.Command{
	Name:    "env",
	Key:     CmdEnv,
	Aliases: []string{"e"},
	Flags: []*argv.Flag{
		{Key: FlagEnvDotenv, Name: "dotenv", Longs: []string{"dotenv"}, Shorts: []byte{'D'}},
		{Key: FlagEnvJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagEnvShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagEnvJsonExtended, Name: "json-extended", Longs: []string{"json-extended"}},
		{Key: FlagEnvRedacted, Name: "redacted", Longs: []string{"redacted"}},
		{Key: FlagEnvValues, Name: "values", Longs: []string{"values"}},
	},
	Args: []*argv.Arg{
		{Key: ArgEnvToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// exec
var cmdExec = &argv.Command{
	Name:    "exec",
	Key:     CmdExec,
	Aliases: []string{"x"},
	Flags: []*argv.Flag{
		{Key: FlagExecCommand, Name: "command", Longs: []string{"command"}, Shorts: []byte{'c'}, TakesValue: true},
		{Key: FlagExecJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagExecAllowEnv, Name: "allow-env", Longs: []string{"allow-env"}, TakesValue: true},
		{Key: FlagExecAllowNet, Name: "allow-net", Longs: []string{"allow-net"}, TakesValue: true},
		{Key: FlagExecAllowRead, Name: "allow-read", Longs: []string{"allow-read"}, TakesValue: true},
		{Key: FlagExecAllowWrite, Name: "allow-write", Longs: []string{"allow-write"}, TakesValue: true},
		{Key: FlagExecDenyAll, Name: "deny-all", Longs: []string{"deny-all"}},
		{Key: FlagExecDenyEnv, Name: "deny-env", Longs: []string{"deny-env"}},
		{Key: FlagExecDenyNet, Name: "deny-net", Longs: []string{"deny-net"}},
		{Key: FlagExecDenyRead, Name: "deny-read", Longs: []string{"deny-read"}},
		{Key: FlagExecDenyWrite, Name: "deny-write", Longs: []string{"deny-write"}},
		{Key: FlagExecFreshEnv, Name: "fresh-env", Longs: []string{"fresh-env"}},
		{Key: FlagExecNoDeps, Name: "no-deps", Longs: []string{"no-deps"}},
		{Key: FlagExecRaw, Name: "raw", Longs: []string{"raw"}},
	},
	Args: []*argv.Arg{
		{Key: ArgExecToolVersion, Name: "TOOL@VERSION", Var: true},
		{Key: ArgExecCommand, Name: "COMMAND", Var: true, DoubleDash: argv.DoubleDashRequired},
	},
}

// fmt
var cmdFmt = &argv.Command{
	Name: "fmt",
	Key:  CmdFmt,
	Flags: []*argv.Flag{
		{Key: FlagFmtAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagFmtCheck, Name: "check", Longs: []string{"check"}, Shorts: []byte{'c'}},
		{Key: FlagFmtStdin, Name: "stdin", Longs: []string{"stdin"}, Shorts: []byte{'s'}},
	},
}

// generate
var cmdGenerate = &argv.Command{
	Name:        "generate",
	Key:         CmdGenerate,
	Aliases:     []string{"gen", "g"},
	Subcommands: []*argv.Command{cmdGenerateBootstrap, cmdGenerateConfig, cmdGenerateDevcontainer, cmdGenerateGitPreCommit, cmdGenerateGithubAction, cmdGenerateTaskDocs, cmdGenerateTaskStubs, cmdGenerateToolStub},
}

// generate bootstrap
var cmdGenerateBootstrap = &argv.Command{
	Name: "bootstrap",
	Key:  CmdGenerateBootstrap,
	Flags: []*argv.Flag{
		{Key: FlagGenerateBootstrapLocalize, Name: "localize", Longs: []string{"localize"}, Shorts: []byte{'l'}},
		{Key: FlagGenerateBootstrapVersion, Name: "version", Longs: []string{"version"}, Shorts: []byte{'V'}, TakesValue: true},
		{Key: FlagGenerateBootstrapWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}, TakesValue: true, ValueOptional: true, DefaultMissing: "./bin/mise"},
		{Key: FlagGenerateBootstrapLocalizedDir, Name: "localized-dir", Longs: []string{"localized-dir"}, TakesValue: true},
		{Key: FlagGenerateBootstrapWindows, Name: "windows", Longs: []string{"windows"}},
	},
}

// generate config
var cmdGenerateConfig = &argv.Command{
	Name: "config",
	Key:  CmdGenerateConfig,
	Flags: []*argv.Flag{
		{Key: FlagGenerateConfigGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagGenerateConfigDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagGenerateConfigToolVersions, Name: "tool-versions", Longs: []string{"tool-versions"}, Shorts: []byte{'t'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgGenerateConfigPath, Name: "PATH"},
	},
}

// generate devcontainer
var cmdGenerateDevcontainer = &argv.Command{
	Name: "devcontainer",
	Key:  CmdGenerateDevcontainer,
	Flags: []*argv.Flag{
		{Key: FlagGenerateDevcontainerImage, Name: "image", Longs: []string{"image"}, Shorts: []byte{'i'}, TakesValue: true},
		{Key: FlagGenerateDevcontainerMountMiseData, Name: "mount-mise-data", Longs: []string{"mount-mise-data"}, Shorts: []byte{'m'}},
		{Key: FlagGenerateDevcontainerName, Name: "name", Longs: []string{"name"}, Shorts: []byte{'n'}, TakesValue: true},
		{Key: FlagGenerateDevcontainerWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}},
	},
}

// generate git-pre-commit
var cmdGenerateGitPreCommit = &argv.Command{
	Name:    "git-pre-commit",
	Key:     CmdGenerateGitPreCommit,
	Aliases: []string{"pre-commit"},
	Flags: []*argv.Flag{
		{Key: FlagGenerateGitPreCommitTask, Name: "task", Longs: []string{"task"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagGenerateGitPreCommitWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}},
		{Key: FlagGenerateGitPreCommitHook, Name: "hook", Longs: []string{"hook"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgGenerateGitPreCommitMiseArg, Name: "MISE_ARG", Var: true, DoubleDash: argv.DoubleDashRequired},
	},
}

// generate github-action
var cmdGenerateGithubAction = &argv.Command{
	Name: "github-action",
	Key:  CmdGenerateGithubAction,
	Flags: []*argv.Flag{
		{Key: FlagGenerateGithubActionTask, Name: "task", Longs: []string{"task"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagGenerateGithubActionWrite, Name: "write", Longs: []string{"write"}, Shorts: []byte{'w'}},
		{Key: FlagGenerateGithubActionName, Name: "name", Longs: []string{"name"}, TakesValue: true},
	},
}

// generate task-docs
var cmdGenerateTaskDocs = &argv.Command{
	Name: "task-docs",
	Key:  CmdGenerateTaskDocs,
	Flags: []*argv.Flag{
		{Key: FlagGenerateTaskDocsInject, Name: "inject", Longs: []string{"inject"}, Shorts: []byte{'i'}},
		{Key: FlagGenerateTaskDocsIndex, Name: "index", Longs: []string{"index"}, Shorts: []byte{'I'}},
		{Key: FlagGenerateTaskDocsMulti, Name: "multi", Longs: []string{"multi"}, Shorts: []byte{'m'}},
		{Key: FlagGenerateTaskDocsOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true},
		{Key: FlagGenerateTaskDocsRoot, Name: "root", Longs: []string{"root"}, Shorts: []byte{'r'}, TakesValue: true},
		{Key: FlagGenerateTaskDocsStyle, Name: "style", Longs: []string{"style"}, Shorts: []byte{'s'}, TakesValue: true},
	},
}

// generate task-stubs
var cmdGenerateTaskStubs = &argv.Command{
	Name: "task-stubs",
	Key:  CmdGenerateTaskStubs,
	Flags: []*argv.Flag{
		{Key: FlagGenerateTaskStubsDir, Name: "dir", Longs: []string{"dir"}, Shorts: []byte{'d'}, TakesValue: true},
		{Key: FlagGenerateTaskStubsMiseBin, Name: "mise-bin", Longs: []string{"mise-bin"}, Shorts: []byte{'m'}, TakesValue: true},
	},
}

// generate tool-stub
var cmdGenerateToolStub = &argv.Command{
	Name: "tool-stub",
	Key:  CmdGenerateToolStub,
	Flags: []*argv.Flag{
		{Key: FlagGenerateToolStubBin, Name: "bin", Longs: []string{"bin"}, Shorts: []byte{'b'}, TakesValue: true},
		{Key: FlagGenerateToolStubBootstrap, Name: "bootstrap", Longs: []string{"bootstrap"}},
		{Key: FlagGenerateToolStubBootstrapVersion, Name: "bootstrap-version", Longs: []string{"bootstrap-version"}, TakesValue: true},
		{Key: FlagGenerateToolStubChecksumAlgorithm, Name: "checksum-algorithm", Longs: []string{"checksum-algorithm"}, TakesValue: true},
		{Key: FlagGenerateToolStubFetch, Name: "fetch", Longs: []string{"fetch"}},
		{Key: FlagGenerateToolStubHttp, Name: "http", Longs: []string{"http"}, TakesValue: true},
		{Key: FlagGenerateToolStubLock, Name: "lock", Longs: []string{"lock"}},
		{Key: FlagGenerateToolStubPlatformBin, Name: "platform-bin", Longs: []string{"platform-bin"}, TakesValue: true},
		{Key: FlagGenerateToolStubPlatformUrl, Name: "platform-url", Longs: []string{"platform-url"}, TakesValue: true},
		{Key: FlagGenerateToolStubSkipDownload, Name: "skip-download", Longs: []string{"skip-download"}},
		{Key: FlagGenerateToolStubUrl, Name: "url", Longs: []string{"url"}, Shorts: []byte{'u'}, TakesValue: true},
		{Key: FlagGenerateToolStubVersion, Name: "version", Longs: []string{"version"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgGenerateToolStubOutput, Name: "OUTPUT", Required: true},
	},
}

// github
var cmdGithub = &argv.Command{
	Name:        "github",
	Key:         CmdGithub,
	Subcommands: []*argv.Command{cmdGithubToken},
}

// github token
var cmdGithubToken = &argv.Command{
	Name: "token",
	Key:  CmdGithubToken,
	Flags: []*argv.Flag{
		{Key: FlagGithubTokenOauth, Name: "oauth", Longs: []string{"oauth"}},
		{Key: FlagGithubTokenRaw, Name: "raw", Longs: []string{"raw"}},
		{Key: FlagGithubTokenRefresh, Name: "refresh", Longs: []string{"refresh"}},
		{Key: FlagGithubTokenUnmask, Name: "unmask", Longs: []string{"unmask"}},
	},
	Args: []*argv.Arg{
		{Key: ArgGithubTokenHost, Name: "HOST"},
	},
}

// global
var cmdGlobal = &argv.Command{
	Name: "global",
	Key:  CmdGlobal,
	Flags: []*argv.Flag{
		{Key: FlagGlobalFuzzy, Name: "fuzzy", Longs: []string{"fuzzy"}},
		{Key: FlagGlobalPath, Name: "path", Longs: []string{"path"}},
		{Key: FlagGlobalPin, Name: "pin", Longs: []string{"pin"}},
		{Key: FlagGlobalRemove, Name: "remove", Longs: []string{"remove", "rm", "unset"}, HiddenLongs: []string{"rm", "unset"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgGlobalToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// hook-env
var cmdHookEnv = &argv.Command{
	Name: "hook-env",
	Key:  CmdHookEnv,
	Flags: []*argv.Flag{
		{Key: FlagHookEnvForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagHookEnvQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}},
		{Key: FlagHookEnvShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagHookEnvReason, Name: "reason", Longs: []string{"reason"}, TakesValue: true},
		{Key: FlagHookEnvStatus, Name: "status", Longs: []string{"status"}},
	},
}

// hook-not-found
var cmdHookNotFound = &argv.Command{
	Name: "hook-not-found",
	Key:  CmdHookNotFound,
	Flags: []*argv.Flag{
		{Key: FlagHookNotFoundShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgHookNotFoundBin, Name: "BIN", Required: true},
	},
}

// implode
var cmdImplode = &argv.Command{
	Name: "implode",
	Key:  CmdImplode,
	Flags: []*argv.Flag{
		{Key: FlagImplodeDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagImplodeConfig, Name: "config", Longs: []string{"config"}},
	},
}

// edit
var cmdEdit = &argv.Command{
	Name: "edit",
	Key:  CmdEdit,
	Flags: []*argv.Flag{
		{Key: FlagEditGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagEditDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagEditToolVersions, Name: "tool-versions", Longs: []string{"tool-versions"}, Shorts: []byte{'t'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgEditPath, Name: "PATH"},
	},
}

// install
var cmdInstall = &argv.Command{
	Name:    "install",
	Key:     CmdInstall,
	Aliases: []string{"i"},
	Flags: []*argv.Flag{
		{Key: FlagInstallForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagInstallJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagInstallDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagInstallVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}},
		{Key: FlagInstallDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}},
		{Key: FlagInstallIncludeTaskTools, Name: "include-task-tools", Longs: []string{"include-task-tools"}},
		{Key: FlagInstallMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age", "before"}, HiddenLongs: []string{"before"}, TakesValue: true},
		{Key: FlagInstallMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagInstallRaw, Name: "raw", Longs: []string{"raw"}},
		{Key: FlagInstallShared, Name: "shared", Longs: []string{"shared"}, TakesValue: true},
		{Key: FlagInstallSystem, Name: "system", Longs: []string{"system"}},
	},
	Args: []*argv.Arg{
		{Key: ArgInstallToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// install-into
var cmdInstallInto = &argv.Command{
	Name: "install-into",
	Key:  CmdInstallInto,
	Args: []*argv.Arg{
		{Key: ArgInstallIntoToolVersion, Name: "TOOL@VERSION", Required: true},
		{Key: ArgInstallIntoPath, Name: "PATH", Required: true},
	},
}

// latest
var cmdLatest = &argv.Command{
	Name: "latest",
	Key:  CmdLatest,
	Flags: []*argv.Flag{
		{Key: FlagLatestInstalled, Name: "installed", Longs: []string{"installed"}, Shorts: []byte{'i'}},
		{Key: FlagLatestMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age", "before"}, HiddenLongs: []string{"before"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgLatestToolVersion, Name: "TOOL@VERSION", Required: true},
		{Key: ArgLatestAsdfVersion, Name: "ASDF_VERSION"},
	},
}

// link
var cmdLink = &argv.Command{
	Name:    "link",
	Key:     CmdLink,
	Aliases: []string{"ln"},
	Flags: []*argv.Flag{
		{Key: FlagLinkForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
	},
	Args: []*argv.Arg{
		{Key: ArgLinkToolVersion, Name: "TOOL@VERSION", Required: true},
		{Key: ArgLinkPath, Name: "PATH", Required: true},
	},
}

// local
var cmdLocal = &argv.Command{
	Name:    "local",
	Key:     CmdLocal,
	Aliases: []string{"l"},
	Flags: []*argv.Flag{
		{Key: FlagLocalParent, Name: "parent", Longs: []string{"parent"}, Shorts: []byte{'p'}},
		{Key: FlagLocalFuzzy, Name: "fuzzy", Longs: []string{"fuzzy"}},
		{Key: FlagLocalPath, Name: "path", Longs: []string{"path"}},
		{Key: FlagLocalPin, Name: "pin", Longs: []string{"pin"}},
		{Key: FlagLocalRemove, Name: "remove", Longs: []string{"remove", "rm", "unset"}, HiddenLongs: []string{"rm", "unset"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgLocalToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// lock
var cmdLock = &argv.Command{
	Name: "lock",
	Key:  CmdLock,
	Flags: []*argv.Flag{
		{Key: FlagLockGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagLockJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagLockDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagLockPlatform, Name: "platform", Longs: []string{"platform"}, Shorts: []byte{'p'}, TakesValue: true, Delimiter: ','},
		{Key: FlagLockBump, Name: "bump", Longs: []string{"bump"}},
		{Key: FlagLockJson, Name: "json", Longs: []string{"json"}},
		{Key: FlagLockLocal, Name: "local", Longs: []string{"local"}},
		{Key: FlagLockMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age", "before"}, HiddenLongs: []string{"before"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgLockTool, Name: "TOOL", Var: true},
	},
}

// ls
var cmdLs = &argv.Command{
	Name:    "ls",
	Key:     CmdLs,
	Aliases: []string{"list"},
	Flags: []*argv.Flag{
		{Key: FlagLsCurrent, Name: "current", Longs: []string{"current"}, Shorts: []byte{'c'}},
		{Key: FlagLsGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagLsInstalled, Name: "installed", Longs: []string{"installed"}, Shorts: []byte{'i'}},
		{Key: FlagLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagLsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagLsMissing, Name: "missing", Longs: []string{"missing"}, Shorts: []byte{'m'}},
		{Key: FlagLsOffline, Name: "offline", Longs: []string{"offline"}, Shorts: []byte{'o'}},
		{Key: FlagLsPlugin, Name: "plugin", Longs: []string{"plugin"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagLsAllSources, Name: "all-sources", Longs: []string{"all-sources"}},
		{Key: FlagLsMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagLsNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
		{Key: FlagLsOutdated, Name: "outdated", Longs: []string{"outdated"}},
		{Key: FlagLsPrefix, Name: "prefix", Longs: []string{"prefix"}, TakesValue: true},
		{Key: FlagLsPrunable, Name: "prunable", Longs: []string{"prunable"}},
	},
	Args: []*argv.Arg{
		{Key: ArgLsInstalledTool, Name: "INSTALLED_TOOL", Var: true},
	},
}

// ls-remote
var cmdLsRemote = &argv.Command{
	Name:    "ls-remote",
	Key:     CmdLsRemote,
	Aliases: []string{"list-all", "list-remote"},
	Flags: []*argv.Flag{
		{Key: FlagLsRemoteAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagLsRemoteMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age", "before"}, HiddenLongs: []string{"before"}, TakesValue: true},
		{Key: FlagLsRemoteJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagLsRemoteNoVersionsHost, Name: "no-versions-host", Longs: []string{"no-versions-host"}},
		{Key: FlagLsRemotePrerelease, Name: "prerelease", Longs: []string{"prerelease"}},
		{Key: FlagLsRemoteStrictMetadata, Name: "strict-metadata", Longs: []string{"strict-metadata"}},
	},
	Args: []*argv.Arg{
		{Key: ArgLsRemoteToolVersion, Name: "TOOL@VERSION"},
		{Key: ArgLsRemotePrefix, Name: "PREFIX"},
	},
}

// mcp
var cmdMcp = &argv.Command{
	Name: "mcp",
	Key:  CmdMcp,
}

// oci
var cmdOci = &argv.Command{
	Name:        "oci",
	Key:         CmdOci,
	Subcommands: []*argv.Command{cmdOciBuild, cmdOciPush, cmdOciRun},
}

// oci build
var cmdOciBuild = &argv.Command{
	Name: "build",
	Key:  CmdOciBuild,
	Flags: []*argv.Flag{
		{Key: FlagOciBuildCopy, Name: "copy", Longs: []string{"copy"}, TakesValue: true},
		{Key: FlagOciBuildOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true},
		{Key: FlagOciBuildFrom, Name: "from", Longs: []string{"from"}, TakesValue: true},
		{Key: FlagOciBuildIncludeGlobal, Name: "include-global", Longs: []string{"include-global"}},
		{Key: FlagOciBuildTag, Name: "tag", Longs: []string{"tag"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagOciBuildMountPoint, Name: "mount-point", Longs: []string{"mount-point"}, TakesValue: true},
		{Key: FlagOciBuildNoMise, Name: "no-mise", Longs: []string{"no-mise"}},
		{Key: FlagOciBuildOwner, Name: "owner", Longs: []string{"owner"}, TakesValue: true},
	},
}

// oci push
var cmdOciPush = &argv.Command{
	Name: "push",
	Key:  CmdOciPush,
	Flags: []*argv.Flag{
		{Key: FlagOciPushCacheFrom, Name: "cache-from", Longs: []string{"cache-from"}, TakesValue: true},
		{Key: FlagOciPushFrom, Name: "from", Longs: []string{"from"}, TakesValue: true},
		{Key: FlagOciPushImageDir, Name: "image-dir", Longs: []string{"image-dir"}, TakesValue: true},
		{Key: FlagOciPushIncludeGlobal, Name: "include-global", Longs: []string{"include-global"}},
		{Key: FlagOciPushMountPoint, Name: "mount-point", Longs: []string{"mount-point"}, TakesValue: true},
		{Key: FlagOciPushNoCache, Name: "no-cache", Longs: []string{"no-cache"}},
		{Key: FlagOciPushNoMise, Name: "no-mise", Longs: []string{"no-mise"}},
		{Key: FlagOciPushOwner, Name: "owner", Longs: []string{"owner"}, TakesValue: true},
		{Key: FlagOciPushUpdateIndex, Name: "update-index", Longs: []string{"update-index"}},
	},
	Args: []*argv.Arg{
		{Key: ArgOciPushRef, Name: "REF", Required: true},
	},
}

// oci run
var cmdOciRun = &argv.Command{
	Name: "run",
	Key:  CmdOciRun,
	Flags: []*argv.Flag{
		{Key: FlagOciRunEngine, Name: "engine", Longs: []string{"engine"}, TakesValue: true},
		{Key: FlagOciRunFrom, Name: "from", Longs: []string{"from"}, TakesValue: true},
		{Key: FlagOciRunImageDir, Name: "image-dir", Longs: []string{"image-dir"}, TakesValue: true},
		{Key: FlagOciRunIncludeGlobal, Name: "include-global", Longs: []string{"include-global"}},
		{Key: FlagOciRunKeep, Name: "keep", Longs: []string{"keep"}},
		{Key: FlagOciRunMountPoint, Name: "mount-point", Longs: []string{"mount-point"}, TakesValue: true},
		{Key: FlagOciRunNoMise, Name: "no-mise", Longs: []string{"no-mise"}},
		{Key: FlagOciRunOwner, Name: "owner", Longs: []string{"owner"}, TakesValue: true},
		{Key: FlagOciRunVolume, Name: "volume", Longs: []string{"volume", "mount"}, HiddenLongs: []string{"mount"}, TakesValue: true},
		{Key: FlagOciRunEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true},
		{Key: FlagOciRunInteractive, Name: "interactive", Longs: []string{"interactive"}, Shorts: []byte{'i'}},
		{Key: FlagOciRunTty, Name: "tty", Longs: []string{"tty"}, Shorts: []byte{'t'}},
		{Key: FlagOciRunWorkdir, Name: "workdir", Longs: []string{"workdir"}, Shorts: []byte{'w'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgOciRunCmd, Name: "CMD", Var: true, DoubleDash: argv.DoubleDashRequired},
	},
}

// outdated
var cmdOutdated = &argv.Command{
	Name: "outdated",
	Key:  CmdOutdated,
	Flags: []*argv.Flag{
		{Key: FlagOutdatedBump, Name: "bump", Longs: []string{"bump"}, Shorts: []byte{'b'}},
		{Key: FlagOutdatedJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagOutdatedL, Name: "l", Shorts: []byte{'l'}},
		{Key: FlagOutdatedInactive, Name: "inactive", Longs: []string{"inactive"}},
		{Key: FlagOutdatedLocal, Name: "local", Longs: []string{"local"}},
		{Key: FlagOutdatedMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagOutdatedNoHeader, Name: "no-header", Longs: []string{"no-header"}},
	},
	Args: []*argv.Arg{
		{Key: ArgOutdatedToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// patrons
var cmdPatrons = &argv.Command{
	Name: "patrons",
	Key:  CmdPatrons,
	Flags: []*argv.Flag{
		{Key: FlagPatronsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagPatronsRefresh, Name: "refresh", Longs: []string{"refresh"}},
	},
}

// plugins
var cmdPlugins = &argv.Command{
	Name:    "plugins",
	Key:     CmdPlugins,
	Aliases: []string{"p", "plugin", "plugin-list"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagPluginsCore, Name: "core", Longs: []string{"core"}, Shorts: []byte{'c'}},
		{Key: FlagPluginsUrls, Name: "urls", Longs: []string{"urls", "url"}, HiddenLongs: []string{"url"}, Shorts: []byte{'u'}},
		{Key: FlagPluginsRefs, Name: "refs", Longs: []string{"refs"}},
		{Key: FlagPluginsUser, Name: "user", Longs: []string{"user"}},
	},
	Subcommands: []*argv.Command{cmdPluginsInstall, cmdPluginsLink, cmdPluginsLs, cmdPluginsLsRemote, cmdPluginsUninstall, cmdPluginsUpdate},
}

// plugins install
var cmdPluginsInstall = &argv.Command{
	Name:    "install",
	Key:     CmdPluginsInstall,
	Aliases: []string{"i", "a", "add"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsInstallAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagPluginsInstallForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagPluginsInstallJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagPluginsInstallVerbose, Name: "verbose", Longs: []string{"verbose"}, Shorts: []byte{'v'}},
	},
	Args: []*argv.Arg{
		{Key: ArgPluginsInstallNewPlugin, Name: "NEW_PLUGIN"},
		{Key: ArgPluginsInstallGitUrl, Name: "GIT_URL"},
		{Key: ArgPluginsInstallRest, Name: "REST", Var: true},
	},
}

// plugins link
var cmdPluginsLink = &argv.Command{
	Name:    "link",
	Key:     CmdPluginsLink,
	Aliases: []string{"ln"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsLinkForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
	},
	Args: []*argv.Arg{
		{Key: ArgPluginsLinkName, Name: "NAME", Required: true},
		{Key: ArgPluginsLinkDir, Name: "DIR"},
	},
}

// plugins ls
var cmdPluginsLs = &argv.Command{
	Name:    "ls",
	Key:     CmdPluginsLs,
	Aliases: []string{"list"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsLsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagPluginsLsCore, Name: "core", Longs: []string{"core"}, Shorts: []byte{'c'}},
		{Key: FlagPluginsLsOutdated, Name: "outdated", Longs: []string{"outdated"}, Shorts: []byte{'o'}},
		{Key: FlagPluginsLsUrls, Name: "urls", Longs: []string{"urls", "url"}, HiddenLongs: []string{"url"}, Shorts: []byte{'u'}},
		{Key: FlagPluginsLsRefs, Name: "refs", Longs: []string{"refs"}},
		{Key: FlagPluginsLsUser, Name: "user", Longs: []string{"user"}},
	},
}

// plugins ls-remote
var cmdPluginsLsRemote = &argv.Command{
	Name:    "ls-remote",
	Key:     CmdPluginsLsRemote,
	Aliases: []string{"list-remote", "list-all"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsLsRemoteUrls, Name: "urls", Longs: []string{"urls"}, Shorts: []byte{'u'}},
		{Key: FlagPluginsLsRemoteOnlyNames, Name: "only-names", Longs: []string{"only-names"}},
	},
}

// plugins uninstall
var cmdPluginsUninstall = &argv.Command{
	Name:    "uninstall",
	Key:     CmdPluginsUninstall,
	Aliases: []string{"remove", "rm"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsUninstallAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagPluginsUninstallPurge, Name: "purge", Longs: []string{"purge"}, Shorts: []byte{'p'}},
	},
	Args: []*argv.Arg{
		{Key: ArgPluginsUninstallPlugin, Name: "PLUGIN", Var: true},
	},
}

// plugins update
var cmdPluginsUpdate = &argv.Command{
	Name:    "update",
	Key:     CmdPluginsUpdate,
	Aliases: []string{"up", "upgrade"},
	Flags: []*argv.Flag{
		{Key: FlagPluginsUpdateJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgPluginsUpdatePlugin, Name: "PLUGIN", Var: true},
	},
}

// deps
var cmdDeps = &argv.Command{
	Name:    "deps",
	Key:     CmdDeps,
	Aliases: []string{"dep", "prepare"},
	Flags: []*argv.Flag{
		{Key: FlagDepsExplain, Name: "explain", Longs: []string{"explain"}},
		{Key: FlagDepsForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagDepsDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagDepsList, Name: "list", Longs: []string{"list"}},
		{Key: FlagDepsMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagDepsOnly, Name: "only", Longs: []string{"only"}, TakesValue: true},
		{Key: FlagDepsSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgDepsProvider, Name: "PROVIDER"},
	},
	Subcommands: []*argv.Command{cmdDepsAdd, cmdDepsInstall, cmdDepsRemove},
}

// deps add
var cmdDepsAdd = &argv.Command{
	Name: "add",
	Key:  CmdDepsAdd,
	Flags: []*argv.Flag{
		{Key: FlagDepsAddDev, Name: "dev", Longs: []string{"dev"}, Shorts: []byte{'D'}},
	},
	Args: []*argv.Arg{
		{Key: ArgDepsAddPackages, Name: "PACKAGES", Required: true, Var: true},
	},
}

// deps install
var cmdDepsInstall = &argv.Command{
	Name: "install",
	Key:  CmdDepsInstall,
	Flags: []*argv.Flag{
		{Key: FlagDepsInstallExplain, Name: "explain", Longs: []string{"explain"}},
		{Key: FlagDepsInstallForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagDepsInstallDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagDepsInstallList, Name: "list", Longs: []string{"list"}},
		{Key: FlagDepsInstallMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagDepsInstallOnly, Name: "only", Longs: []string{"only"}, TakesValue: true},
		{Key: FlagDepsInstallSkip, Name: "skip", Longs: []string{"skip"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgDepsInstallProvider, Name: "PROVIDER"},
	},
}

// deps remove
var cmdDepsRemove = &argv.Command{
	Name: "remove",
	Key:  CmdDepsRemove,
	Args: []*argv.Arg{
		{Key: ArgDepsRemovePackages, Name: "PACKAGES", Required: true, Var: true},
	},
}

// prune
var cmdPrune = &argv.Command{
	Name: "prune",
	Key:  CmdPrune,
	Flags: []*argv.Flag{
		{Key: FlagPruneDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagPruneConfigs, Name: "configs", Longs: []string{"configs"}},
		{Key: FlagPruneDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}},
		{Key: FlagPruneMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagPruneTools, Name: "tools", Longs: []string{"tools"}},
	},
	Args: []*argv.Arg{
		{Key: ArgPruneInstalledTool, Name: "INSTALLED_TOOL", Var: true},
	},
}

// registry
var cmdRegistry = &argv.Command{
	Name: "registry",
	Key:  CmdRegistry,
	Flags: []*argv.Flag{
		{Key: FlagRegistryBackend, Name: "backend", Longs: []string{"backend"}, Shorts: []byte{'b'}, TakesValue: true},
		{Key: FlagRegistryComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagRegistryHideAliased, Name: "hide-aliased", Longs: []string{"hide-aliased"}},
		{Key: FlagRegistryJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagRegistrySecurity, Name: "security", Longs: []string{"security"}},
	},
	Args: []*argv.Arg{
		{Key: ArgRegistryName, Name: "NAME"},
	},
}

// render-help
var cmdRenderHelp = &argv.Command{
	Name: "render-help",
	Key:  CmdRenderHelp,
}

// reshim
var cmdReshim = &argv.Command{
	Name: "reshim",
	Key:  CmdReshim,
	Flags: []*argv.Flag{
		{Key: FlagReshimForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
	},
	Args: []*argv.Arg{
		{Key: ArgReshimTool, Name: "TOOL"},
		{Key: ArgReshimVersion, Name: "VERSION"},
	},
}

// run
var cmdRun = &argv.Command{
	Name:    "run",
	Key:     CmdRun,
	Aliases: []string{"r"},
	Flags: []*argv.Flag{
		{Key: FlagRunAffected, Name: "affected", Longs: []string{"affected"}},
		{Key: FlagRunAffectedBase, Name: "affected-base", Longs: []string{"affected-base"}, TakesValue: true},
		{Key: FlagRunAffectedExplain, Name: "affected-explain", Longs: []string{"affected-explain"}},
		{Key: FlagRunAffectedHead, Name: "affected-head", Longs: []string{"affected-head"}, TakesValue: true},
		{Key: FlagRunAffectedJson, Name: "affected-json", Longs: []string{"affected-json"}},
		{Key: FlagRunAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagRunContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}},
		{Key: FlagRunCd, Name: "cd", Longs: []string{"cd"}, Shorts: []byte{'C'}, TakesValue: true},
		{Key: FlagRunForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagRunJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagRunDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagRunOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true},
		{Key: FlagRunQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}},
		{Key: FlagRunRaw, Name: "raw", Longs: []string{"raw"}, Shorts: []byte{'r'}},
		{Key: FlagRunShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagRunSilent, Name: "silent", Longs: []string{"silent"}, Shorts: []byte{'S'}},
		{Key: FlagRunTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagRunAllowEnv, Name: "allow-env", Longs: []string{"allow-env"}, TakesValue: true},
		{Key: FlagRunAllowNet, Name: "allow-net", Longs: []string{"allow-net"}, TakesValue: true},
		{Key: FlagRunAllowRead, Name: "allow-read", Longs: []string{"allow-read"}, TakesValue: true},
		{Key: FlagRunAllowWrite, Name: "allow-write", Longs: []string{"allow-write"}, TakesValue: true},
		{Key: FlagRunDenyAll, Name: "deny-all", Longs: []string{"deny-all"}},
		{Key: FlagRunDenyEnv, Name: "deny-env", Longs: []string{"deny-env"}},
		{Key: FlagRunDenyNet, Name: "deny-net", Longs: []string{"deny-net"}},
		{Key: FlagRunDenyRead, Name: "deny-read", Longs: []string{"deny-read"}},
		{Key: FlagRunDenyWrite, Name: "deny-write", Longs: []string{"deny-write"}},
		{Key: FlagRunFreshEnv, Name: "fresh-env", Longs: []string{"fresh-env"}},
		{Key: FlagRunNoCache, Name: "no-cache", Longs: []string{"no-cache"}},
		{Key: FlagRunNoDeps, Name: "no-deps", Longs: []string{"no-deps"}},
		{Key: FlagRunNoTimings, Name: "no-timings", Longs: []string{"no-timings", "no-timing"}, HiddenLongs: []string{"no-timing"}},
		{Key: FlagRunSkipDeps, Name: "skip-deps", Longs: []string{"skip-deps"}},
		{Key: FlagRunSkipTools, Name: "skip-tools", Longs: []string{"skip-tools"}},
		{Key: FlagRunTaskCache, Name: "task-cache", Longs: []string{"task-cache"}, TakesValue: true},
		{Key: FlagRunTaskCacheExplain, Name: "task-cache-explain", Longs: []string{"task-cache-explain"}},
		{Key: FlagRunTaskCacheExplainJson, Name: "task-cache-explain-json", Longs: []string{"task-cache-explain-json"}},
		{Key: FlagRunTaskCacheStats, Name: "task-cache-stats", Longs: []string{"task-cache-stats"}},
		{Key: FlagRunTimeout, Name: "timeout", Longs: []string{"timeout"}, TakesValue: true},
		{Key: FlagRunTimings, Name: "timings", Longs: []string{"timings", "timing"}, HiddenLongs: []string{"timing"}},
	},
	DisableHelpFlag: true,
}

// search
var cmdSearch = &argv.Command{
	Name: "search",
	Key:  CmdSearch,
	Flags: []*argv.Flag{
		{Key: FlagSearchInteractive, Name: "interactive", Longs: []string{"interactive"}, Shorts: []byte{'i'}},
		{Key: FlagSearchMatchType, Name: "match-type", Longs: []string{"match-type"}, Shorts: []byte{'m'}, TakesValue: true},
		{Key: FlagSearchNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
	},
	Args: []*argv.Arg{
		{Key: ArgSearchName, Name: "NAME"},
	},
}

// self-update
var cmdSelfUpdate = &argv.Command{
	Name: "self-update",
	Key:  CmdSelfUpdate,
	Flags: []*argv.Flag{
		{Key: FlagSelfUpdateForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagSelfUpdateYes, Name: "yes", Longs: []string{"yes"}, Shorts: []byte{'y'}},
		{Key: FlagSelfUpdateNoPlugins, Name: "no-plugins", Longs: []string{"no-plugins"}},
	},
	Args: []*argv.Arg{
		{Key: ArgSelfUpdateVersion, Name: "VERSION"},
	},
}

// set
var cmdSet = &argv.Command{
	Name:    "set",
	Key:     CmdSet,
	Aliases: []string{"ev", "env-vars"},
	Flags: []*argv.Flag{
		{Key: FlagSetEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'E'}, TakesValue: true},
		{Key: FlagSetGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagSetAgeEncrypt, Name: "age-encrypt", Longs: []string{"age-encrypt"}},
		{Key: FlagSetAgeKeyFile, Name: "age-key-file", Longs: []string{"age-key-file"}, TakesValue: true},
		{Key: FlagSetAgeRecipient, Name: "age-recipient", Longs: []string{"age-recipient"}, TakesValue: true},
		{Key: FlagSetAgeSshRecipient, Name: "age-ssh-recipient", Longs: []string{"age-ssh-recipient"}, TakesValue: true},
		{Key: FlagSetComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagSetFile, Name: "file", Longs: []string{"file", "path"}, TakesValue: true},
		{Key: FlagSetNoRedact, Name: "no-redact", Longs: []string{"no-redact"}},
		{Key: FlagSetPrompt, Name: "prompt", Longs: []string{"prompt"}},
		{Key: FlagSetRemove, Name: "remove", Longs: []string{"remove", "rm", "unset"}, TakesValue: true},
		{Key: FlagSetStdin, Name: "stdin", Longs: []string{"stdin"}},
	},
	Args: []*argv.Arg{
		{Key: ArgSetEnvVar, Name: "ENV_VAR", Var: true},
	},
}

// settings
var cmdSettings = &argv.Command{
	Name: "settings",
	Key:  CmdSettings,
	Flags: []*argv.Flag{
		{Key: FlagSettingsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagSettingsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagSettingsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}, Global: true},
		{Key: FlagSettingsToml, Name: "toml", Longs: []string{"toml"}, Shorts: []byte{'T'}},
		{Key: FlagSettingsComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagSettingsJsonExtended, Name: "json-extended", Longs: []string{"json-extended"}},
	},
	Args: []*argv.Arg{
		{Key: ArgSettingsSetting, Name: "SETTING"},
		{Key: ArgSettingsValue, Name: "VALUE"},
	},
	Subcommands: []*argv.Command{cmdSettingsAdd, cmdSettingsGet, cmdSettingsLs, cmdSettingsSet, cmdSettingsUnset},
}

// settings add
var cmdSettingsAdd = &argv.Command{
	Name: "add",
	Key:  CmdSettingsAdd,
	Flags: []*argv.Flag{
		{Key: FlagSettingsAddLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
	},
	Args: []*argv.Arg{
		{Key: ArgSettingsAddSetting, Name: "SETTING", Required: true},
		{Key: ArgSettingsAddValue, Name: "VALUE"},
	},
}

// settings get
var cmdSettingsGet = &argv.Command{
	Name: "get",
	Key:  CmdSettingsGet,
	Flags: []*argv.Flag{
		{Key: FlagSettingsGetLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
	},
	Args: []*argv.Arg{
		{Key: ArgSettingsGetSetting, Name: "SETTING", Required: true},
	},
}

// settings ls
var cmdSettingsLs = &argv.Command{
	Name:    "ls",
	Key:     CmdSettingsLs,
	Aliases: []string{"list"},
	Flags: []*argv.Flag{
		{Key: FlagSettingsLsAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagSettingsLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagSettingsLsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}, Global: true},
		{Key: FlagSettingsLsToml, Name: "toml", Longs: []string{"toml"}, Shorts: []byte{'T'}},
		{Key: FlagSettingsLsComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagSettingsLsJsonExtended, Name: "json-extended", Longs: []string{"json-extended"}},
	},
	Args: []*argv.Arg{
		{Key: ArgSettingsLsSetting, Name: "SETTING"},
	},
}

// settings set
var cmdSettingsSet = &argv.Command{
	Name:    "set",
	Key:     CmdSettingsSet,
	Aliases: []string{"create"},
	Flags: []*argv.Flag{
		{Key: FlagSettingsSetLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
	},
	Args: []*argv.Arg{
		{Key: ArgSettingsSetSetting, Name: "SETTING", Required: true},
		{Key: ArgSettingsSetValue, Name: "VALUE"},
	},
}

// settings unset
var cmdSettingsUnset = &argv.Command{
	Name:    "unset",
	Key:     CmdSettingsUnset,
	Aliases: []string{"rm", "remove", "delete", "del"},
	Flags: []*argv.Flag{
		{Key: FlagSettingsUnsetLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
	},
	Args: []*argv.Arg{
		{Key: ArgSettingsUnsetKey, Name: "KEY", Required: true},
	},
}

// shell
var cmdShell = &argv.Command{
	Name:    "shell",
	Key:     CmdShell,
	Aliases: []string{"sh"},
	Flags: []*argv.Flag{
		{Key: FlagShellJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagShellUnset, Name: "unset", Longs: []string{"unset"}, Shorts: []byte{'u'}},
		{Key: FlagShellRaw, Name: "raw", Longs: []string{"raw"}},
	},
	Args: []*argv.Arg{
		{Key: ArgShellToolVersion, Name: "TOOL@VERSION", Required: true, Var: true},
	},
}

// shell-alias
var cmdShellAlias = &argv.Command{
	Name: "shell-alias",
	Key:  CmdShellAlias,
	Flags: []*argv.Flag{
		{Key: FlagShellAliasNoHeader, Name: "no-header", Longs: []string{"no-header"}},
	},
	Subcommands: []*argv.Command{cmdShellAliasGet, cmdShellAliasLs, cmdShellAliasSet, cmdShellAliasUnset},
}

// shell-alias get
var cmdShellAliasGet = &argv.Command{
	Name: "get",
	Key:  CmdShellAliasGet,
	Args: []*argv.Arg{
		{Key: ArgShellAliasGetShellAlias, Name: "shell_alias", Required: true},
	},
}

// shell-alias ls
var cmdShellAliasLs = &argv.Command{
	Name:    "ls",
	Key:     CmdShellAliasLs,
	Aliases: []string{"list"},
	Flags: []*argv.Flag{
		{Key: FlagShellAliasLsNoHeader, Name: "no-header", Longs: []string{"no-header"}},
	},
}

// shell-alias set
var cmdShellAliasSet = &argv.Command{
	Name:    "set",
	Key:     CmdShellAliasSet,
	Aliases: []string{"add", "create"},
	Args: []*argv.Arg{
		{Key: ArgShellAliasSetShellAlias, Name: "shell_alias", Required: true},
		{Key: ArgShellAliasSetCommand, Name: "COMMAND"},
	},
}

// shell-alias unset
var cmdShellAliasUnset = &argv.Command{
	Name:    "unset",
	Key:     CmdShellAliasUnset,
	Aliases: []string{"rm", "remove", "delete", "del"},
	Args: []*argv.Arg{
		{Key: ArgShellAliasUnsetShellAlias, Name: "shell_alias", Required: true},
	},
}

// sponsors
var cmdSponsors = &argv.Command{
	Name: "sponsors",
	Key:  CmdSponsors,
}

// sync
var cmdSync = &argv.Command{
	Name:        "sync",
	Key:         CmdSync,
	Subcommands: []*argv.Command{cmdSyncNode, cmdSyncPython, cmdSyncRuby},
}

// sync node
var cmdSyncNode = &argv.Command{
	Name: "node",
	Key:  CmdSyncNode,
	Flags: []*argv.Flag{
		{Key: FlagSyncNodeBrew, Name: "brew", Longs: []string{"brew"}},
		{Key: FlagSyncNodeNodenv, Name: "nodenv", Longs: []string{"nodenv"}},
		{Key: FlagSyncNodeNvm, Name: "nvm", Longs: []string{"nvm"}},
	},
}

// sync python
var cmdSyncPython = &argv.Command{
	Name: "python",
	Key:  CmdSyncPython,
	Flags: []*argv.Flag{
		{Key: FlagSyncPythonPyenv, Name: "pyenv", Longs: []string{"pyenv"}},
		{Key: FlagSyncPythonUv, Name: "uv", Longs: []string{"uv"}},
	},
}

// sync ruby
var cmdSyncRuby = &argv.Command{
	Name: "ruby",
	Key:  CmdSyncRuby,
	Flags: []*argv.Flag{
		{Key: FlagSyncRubyBrew, Name: "brew", Longs: []string{"brew"}},
	},
}

// tasks
var cmdTasks = &argv.Command{
	Name:    "tasks",
	Key:     CmdTasks,
	Aliases: []string{"t", "task"},
	Flags: []*argv.Flag{
		{Key: FlagTasksGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagTasksJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagTasksLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagTasksExtended, Name: "extended", Longs: []string{"extended"}, Shorts: []byte{'x'}},
		{Key: FlagTasksAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagTasksComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagTasksHidden, Name: "hidden", Longs: []string{"hidden"}},
		{Key: FlagTasksNameOnly, Name: "name-only", Longs: []string{"name-only"}},
		{Key: FlagTasksNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
		{Key: FlagTasksSort, Name: "sort", Longs: []string{"sort"}, TakesValue: true},
		{Key: FlagTasksSortOrder, Name: "sort-order", Longs: []string{"sort-order"}, TakesValue: true},
		{Key: FlagTasksUsage, Name: "usage", Longs: []string{"usage"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksTask, Name: "TASK"},
	},
	Subcommands: []*argv.Command{cmdTasksAdd, cmdTasksDeps, cmdTasksEdit, cmdTasksGraph, cmdTasksInfo, cmdTasksLs, cmdTasksRun, cmdTasksValidate},
}

// tasks add
var cmdTasksAdd = &argv.Command{
	Name: "add",
	Key:  CmdTasksAdd,
	Flags: []*argv.Flag{
		{Key: FlagTasksAddAlias, Name: "alias", Longs: []string{"alias"}, Shorts: []byte{'a'}, TakesValue: true},
		{Key: FlagTasksAddDepends, Name: "depends", Longs: []string{"depends"}, Shorts: []byte{'d'}, TakesValue: true},
		{Key: FlagTasksAddDir, Name: "dir", Longs: []string{"dir"}, Shorts: []byte{'D'}, TakesValue: true},
		{Key: FlagTasksAddFile, Name: "file", Longs: []string{"file"}, Shorts: []byte{'f'}},
		{Key: FlagTasksAddHide, Name: "hide", Longs: []string{"hide"}, Shorts: []byte{'H'}},
		{Key: FlagTasksAddQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}},
		{Key: FlagTasksAddRaw, Name: "raw", Longs: []string{"raw"}, Shorts: []byte{'r'}},
		{Key: FlagTasksAddSources, Name: "sources", Longs: []string{"sources"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagTasksAddWaitFor, Name: "wait-for", Longs: []string{"wait-for"}, Shorts: []byte{'w'}, TakesValue: true},
		{Key: FlagTasksAddDependsPost, Name: "depends-post", Longs: []string{"depends-post"}, TakesValue: true},
		{Key: FlagTasksAddDescription, Name: "description", Longs: []string{"description"}, TakesValue: true},
		{Key: FlagTasksAddOutputs, Name: "outputs", Longs: []string{"outputs"}, TakesValue: true},
		{Key: FlagTasksAddRunWindows, Name: "run-windows", Longs: []string{"run-windows"}, TakesValue: true},
		{Key: FlagTasksAddShell, Name: "shell", Longs: []string{"shell"}, TakesValue: true},
		{Key: FlagTasksAddSilent, Name: "silent", Longs: []string{"silent"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksAddTask, Name: "TASK", Required: true},
		{Key: ArgTasksAddRun, Name: "RUN", Var: true, DoubleDash: argv.DoubleDashRequired},
	},
}

// tasks deps
var cmdTasksDeps = &argv.Command{
	Name: "deps",
	Key:  CmdTasksDeps,
	Flags: []*argv.Flag{
		{Key: FlagTasksDepsCompact, Name: "compact", Longs: []string{"compact"}},
		{Key: FlagTasksDepsDot, Name: "dot", Longs: []string{"dot"}},
		{Key: FlagTasksDepsHidden, Name: "hidden", Longs: []string{"hidden"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksDepsTasks, Name: "TASKS", Var: true},
	},
}

// tasks edit
var cmdTasksEdit = &argv.Command{
	Name: "edit",
	Key:  CmdTasksEdit,
	Flags: []*argv.Flag{
		{Key: FlagTasksEditPath, Name: "path", Longs: []string{"path"}, Shorts: []byte{'p'}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksEditTask, Name: "TASK", Required: true},
	},
}

// tasks graph
var cmdTasksGraph = &argv.Command{
	Name: "graph",
	Key:  CmdTasksGraph,
	Flags: []*argv.Flag{
		{Key: FlagTasksGraphJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagTasksGraphExplain, Name: "explain", Longs: []string{"explain"}},
		{Key: FlagTasksGraphNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
	},
}

// tasks info
var cmdTasksInfo = &argv.Command{
	Name: "info",
	Key:  CmdTasksInfo,
	Flags: []*argv.Flag{
		{Key: FlagTasksInfoJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksInfoTask, Name: "TASK", Required: true},
	},
}

// tasks ls
var cmdTasksLs = &argv.Command{
	Name: "ls",
	Key:  CmdTasksLs,
	Flags: []*argv.Flag{
		{Key: FlagTasksLsGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagTasksLsJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagTasksLsLocal, Name: "local", Longs: []string{"local"}, Shorts: []byte{'l'}},
		{Key: FlagTasksLsExtended, Name: "extended", Longs: []string{"extended"}, Shorts: []byte{'x'}},
		{Key: FlagTasksLsAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagTasksLsComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagTasksLsHidden, Name: "hidden", Longs: []string{"hidden"}},
		{Key: FlagTasksLsNameOnly, Name: "name-only", Longs: []string{"name-only"}},
		{Key: FlagTasksLsNoHeader, Name: "no-header", Longs: []string{"no-header", "no-headers"}, HiddenLongs: []string{"no-headers"}},
		{Key: FlagTasksLsSort, Name: "sort", Longs: []string{"sort"}, TakesValue: true},
		{Key: FlagTasksLsSortOrder, Name: "sort-order", Longs: []string{"sort-order"}, TakesValue: true},
		{Key: FlagTasksLsUsage, Name: "usage", Longs: []string{"usage"}},
	},
}

// tasks run
var cmdTasksRun = &argv.Command{
	Name:    "run",
	Key:     CmdTasksRun,
	Aliases: []string{"r"},
	Flags: []*argv.Flag{
		{Key: FlagTasksRunAffected, Name: "affected", Longs: []string{"affected"}},
		{Key: FlagTasksRunAffectedBase, Name: "affected-base", Longs: []string{"affected-base"}, TakesValue: true},
		{Key: FlagTasksRunAffectedExplain, Name: "affected-explain", Longs: []string{"affected-explain"}},
		{Key: FlagTasksRunAffectedHead, Name: "affected-head", Longs: []string{"affected-head"}, TakesValue: true},
		{Key: FlagTasksRunAffectedJson, Name: "affected-json", Longs: []string{"affected-json"}},
		{Key: FlagTasksRunAll, Name: "all", Longs: []string{"all"}},
		{Key: FlagTasksRunContinueOnError, Name: "continue-on-error", Longs: []string{"continue-on-error"}, Shorts: []byte{'c'}},
		{Key: FlagTasksRunCd, Name: "cd", Longs: []string{"cd"}, Shorts: []byte{'C'}, TakesValue: true},
		{Key: FlagTasksRunForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagTasksRunJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagTasksRunDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagTasksRunOutput, Name: "output", Longs: []string{"output"}, Shorts: []byte{'o'}, TakesValue: true},
		{Key: FlagTasksRunQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}},
		{Key: FlagTasksRunRaw, Name: "raw", Longs: []string{"raw"}, Shorts: []byte{'r'}},
		{Key: FlagTasksRunShell, Name: "shell", Longs: []string{"shell"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagTasksRunSilent, Name: "silent", Longs: []string{"silent"}, Shorts: []byte{'S'}},
		{Key: FlagTasksRunTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagTasksRunAllowEnv, Name: "allow-env", Longs: []string{"allow-env"}, TakesValue: true},
		{Key: FlagTasksRunAllowNet, Name: "allow-net", Longs: []string{"allow-net"}, TakesValue: true},
		{Key: FlagTasksRunAllowRead, Name: "allow-read", Longs: []string{"allow-read"}, TakesValue: true},
		{Key: FlagTasksRunAllowWrite, Name: "allow-write", Longs: []string{"allow-write"}, TakesValue: true},
		{Key: FlagTasksRunDenyAll, Name: "deny-all", Longs: []string{"deny-all"}},
		{Key: FlagTasksRunDenyEnv, Name: "deny-env", Longs: []string{"deny-env"}},
		{Key: FlagTasksRunDenyNet, Name: "deny-net", Longs: []string{"deny-net"}},
		{Key: FlagTasksRunDenyRead, Name: "deny-read", Longs: []string{"deny-read"}},
		{Key: FlagTasksRunDenyWrite, Name: "deny-write", Longs: []string{"deny-write"}},
		{Key: FlagTasksRunFreshEnv, Name: "fresh-env", Longs: []string{"fresh-env"}},
		{Key: FlagTasksRunNoCache, Name: "no-cache", Longs: []string{"no-cache"}},
		{Key: FlagTasksRunNoDeps, Name: "no-deps", Longs: []string{"no-deps"}},
		{Key: FlagTasksRunNoTimings, Name: "no-timings", Longs: []string{"no-timings", "no-timing"}, HiddenLongs: []string{"no-timing"}},
		{Key: FlagTasksRunSkipDeps, Name: "skip-deps", Longs: []string{"skip-deps"}},
		{Key: FlagTasksRunSkipTools, Name: "skip-tools", Longs: []string{"skip-tools"}},
		{Key: FlagTasksRunTaskCache, Name: "task-cache", Longs: []string{"task-cache"}, TakesValue: true},
		{Key: FlagTasksRunTaskCacheExplain, Name: "task-cache-explain", Longs: []string{"task-cache-explain"}},
		{Key: FlagTasksRunTaskCacheExplainJson, Name: "task-cache-explain-json", Longs: []string{"task-cache-explain-json"}},
		{Key: FlagTasksRunTaskCacheStats, Name: "task-cache-stats", Longs: []string{"task-cache-stats"}},
		{Key: FlagTasksRunTimeout, Name: "timeout", Longs: []string{"timeout"}, TakesValue: true},
		{Key: FlagTasksRunTimings, Name: "timings", Longs: []string{"timings", "timing"}, HiddenLongs: []string{"timing"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksRunTask, Name: "TASK", DoubleDash: argv.DoubleDashAutomatic},
		{Key: ArgTasksRunArgs, Name: "ARGS", Var: true},
		{Key: ArgTasksRunArgsLast, Name: "ARGS_LAST", Var: true, DoubleDash: argv.DoubleDashRequired},
	},
	DisableHelpFlag: true,
}

// tasks validate
var cmdTasksValidate = &argv.Command{
	Name: "validate",
	Key:  CmdTasksValidate,
	Flags: []*argv.Flag{
		{Key: FlagTasksValidateErrorsOnly, Name: "errors-only", Longs: []string{"errors-only"}},
		{Key: FlagTasksValidateJson, Name: "json", Longs: []string{"json"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTasksValidateTasks, Name: "TASKS", Var: true},
	},
}

// test-tool
var cmdTestTool = &argv.Command{
	Name: "test-tool",
	Key:  CmdTestTool,
	Flags: []*argv.Flag{
		{Key: FlagTestToolAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagTestToolJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagTestToolAllConfig, Name: "all-config", Longs: []string{"all-config"}},
		{Key: FlagTestToolIncludeNonDefined, Name: "include-non-defined", Longs: []string{"include-non-defined"}},
		{Key: FlagTestToolRaw, Name: "raw", Longs: []string{"raw"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTestToolTools, Name: "TOOLS", Var: true},
	},
}

// token
var cmdToken = &argv.Command{
	Name:        "token",
	Key:         CmdToken,
	Subcommands: []*argv.Command{cmdTokenForgejo, cmdTokenGithub, cmdTokenGitlab},
}

// token forgejo
var cmdTokenForgejo = &argv.Command{
	Name: "forgejo",
	Key:  CmdTokenForgejo,
	Flags: []*argv.Flag{
		{Key: FlagTokenForgejoUnmask, Name: "unmask", Longs: []string{"unmask"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTokenForgejoHost, Name: "HOST"},
	},
}

// token github
var cmdTokenGithub = &argv.Command{
	Name: "github",
	Key:  CmdTokenGithub,
	Flags: []*argv.Flag{
		{Key: FlagTokenGithubOauth, Name: "oauth", Longs: []string{"oauth"}},
		{Key: FlagTokenGithubRaw, Name: "raw", Longs: []string{"raw"}},
		{Key: FlagTokenGithubRefresh, Name: "refresh", Longs: []string{"refresh"}},
		{Key: FlagTokenGithubUnmask, Name: "unmask", Longs: []string{"unmask"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTokenGithubHost, Name: "HOST"},
	},
}

// token gitlab
var cmdTokenGitlab = &argv.Command{
	Name: "gitlab",
	Key:  CmdTokenGitlab,
	Flags: []*argv.Flag{
		{Key: FlagTokenGitlabUnmask, Name: "unmask", Longs: []string{"unmask"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTokenGitlabHost, Name: "HOST"},
	},
}

// tool
var cmdTool = &argv.Command{
	Name: "tool",
	Key:  CmdTool,
	Flags: []*argv.Flag{
		{Key: FlagToolJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
		{Key: FlagToolActive, Name: "active", Longs: []string{"active"}},
		{Key: FlagToolBackend, Name: "backend", Longs: []string{"backend"}},
		{Key: FlagToolConfigSource, Name: "config-source", Longs: []string{"config-source"}},
		{Key: FlagToolDescription, Name: "description", Longs: []string{"description"}},
		{Key: FlagToolInstalled, Name: "installed", Longs: []string{"installed"}},
		{Key: FlagToolRequested, Name: "requested", Longs: []string{"requested"}},
		{Key: FlagToolToolOptions, Name: "tool-options", Longs: []string{"tool-options"}},
	},
	Args: []*argv.Arg{
		{Key: ArgToolTool, Name: "TOOL", Required: true},
	},
}

// tool-stub
var cmdToolStub = &argv.Command{
	Name: "tool-stub",
	Key:  CmdToolStub,
	Args: []*argv.Arg{
		{Key: ArgToolStubFile, Name: "FILE", Required: true},
		{Key: ArgToolStubArgs, Name: "ARGS", Var: true, DoubleDash: argv.DoubleDashAutomatic},
	},
	DisableHelpFlag:    true,
	DisableVersionFlag: true,
}

// trust
var cmdTrust = &argv.Command{
	Name: "trust",
	Key:  CmdTrust,
	Flags: []*argv.Flag{
		{Key: FlagTrustAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagTrustIgnore, Name: "ignore", Longs: []string{"ignore"}},
		{Key: FlagTrustShow, Name: "show", Longs: []string{"show"}},
		{Key: FlagTrustUntrust, Name: "untrust", Longs: []string{"untrust"}},
	},
	Args: []*argv.Arg{
		{Key: ArgTrustConfigFile, Name: "CONFIG_FILE"},
	},
}

// uninstall
var cmdUninstall = &argv.Command{
	Name: "uninstall",
	Key:  CmdUninstall,
	Flags: []*argv.Flag{
		{Key: FlagUninstallAll, Name: "all", Longs: []string{"all"}, Shorts: []byte{'a'}},
		{Key: FlagUninstallDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagUninstallDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}},
	},
	Args: []*argv.Arg{
		{Key: ArgUninstallInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Var: true},
	},
}

// unset
var cmdUnset = &argv.Command{
	Name: "unset",
	Key:  CmdUnset,
	Flags: []*argv.Flag{
		{Key: FlagUnsetFile, Name: "file", Longs: []string{"file", "path"}, Shorts: []byte{'f'}, TakesValue: true},
		{Key: FlagUnsetGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
	},
	Args: []*argv.Arg{
		{Key: ArgUnsetEnvKey, Name: "ENV_KEY", Var: true},
	},
}

// untrust
var cmdUntrust = &argv.Command{
	Name: "untrust",
	Key:  CmdUntrust,
	Args: []*argv.Arg{
		{Key: ArgUntrustConfigFile, Name: "CONFIG_FILE"},
	},
}

// unuse
var cmdUnuse = &argv.Command{
	Name:    "unuse",
	Key:     CmdUnuse,
	Aliases: []string{"rm", "remove"},
	Flags: []*argv.Flag{
		{Key: FlagUnuseEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true},
		{Key: FlagUnuseGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagUnusePath, Name: "path", Longs: []string{"path", "file"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagUnuseNoPrune, Name: "no-prune", Longs: []string{"no-prune"}},
	},
	Args: []*argv.Arg{
		{Key: ArgUnuseInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Required: true, Var: true},
	},
}

// upgrade
var cmdUpgrade = &argv.Command{
	Name:    "upgrade",
	Key:     CmdUpgrade,
	Aliases: []string{"up"},
	Flags: []*argv.Flag{
		{Key: FlagUpgradeBump, Name: "bump", Longs: []string{"bump"}, Shorts: []byte{'b'}},
		{Key: FlagUpgradeInteractive, Name: "interactive", Longs: []string{"interactive"}, Shorts: []byte{'i'}},
		{Key: FlagUpgradeJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagUpgradeL, Name: "l", Shorts: []byte{'l'}},
		{Key: FlagUpgradeDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagUpgradeExclude, Name: "exclude", Longs: []string{"exclude"}, Shorts: []byte{'x'}, TakesValue: true},
		{Key: FlagUpgradeDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}},
		{Key: FlagUpgradeInactive, Name: "inactive", Longs: []string{"inactive"}},
		{Key: FlagUpgradeLocal, Name: "local", Longs: []string{"local"}},
		{Key: FlagUpgradeMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age", "before"}, HiddenLongs: []string{"before"}, TakesValue: true},
		{Key: FlagUpgradeMonorepo, Name: "monorepo", Longs: []string{"monorepo"}},
		{Key: FlagUpgradeNoPrune, Name: "no-prune", Longs: []string{"no-prune"}},
		{Key: FlagUpgradePrune, Name: "prune", Longs: []string{"prune"}},
		{Key: FlagUpgradeRaw, Name: "raw", Longs: []string{"raw"}},
	},
	Args: []*argv.Arg{
		{Key: ArgUpgradeInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Var: true},
	},
}

// usage
var cmdUsage = &argv.Command{
	Name: "usage",
	Key:  CmdUsage,
}

// use
var cmdUse = &argv.Command{
	Name:    "use",
	Key:     CmdUse,
	Aliases: []string{"u"},
	Flags: []*argv.Flag{
		{Key: FlagUseEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'e'}, TakesValue: true},
		{Key: FlagUseForce, Name: "force", Longs: []string{"force"}, Shorts: []byte{'f'}},
		{Key: FlagUseGlobal, Name: "global", Longs: []string{"global"}, Shorts: []byte{'g'}},
		{Key: FlagUseJobs, Name: "jobs", Longs: []string{"jobs"}, Shorts: []byte{'j'}, TakesValue: true},
		{Key: FlagUseDryRun, Name: "dry-run", Longs: []string{"dry-run"}, Shorts: []byte{'n'}},
		{Key: FlagUsePath, Name: "path", Longs: []string{"path"}, Shorts: []byte{'p'}, TakesValue: true},
		{Key: FlagUseDryRunCode, Name: "dry-run-code", Longs: []string{"dry-run-code"}},
		{Key: FlagUseFuzzy, Name: "fuzzy", Longs: []string{"fuzzy"}},
		{Key: FlagUseMinimumReleaseAge, Name: "minimum-release-age", Longs: []string{"minimum-release-age", "before"}, HiddenLongs: []string{"before"}, TakesValue: true},
		{Key: FlagUsePin, Name: "pin", Longs: []string{"pin"}},
		{Key: FlagUseRaw, Name: "raw", Longs: []string{"raw"}},
		{Key: FlagUseRemove, Name: "remove", Longs: []string{"remove", "rm", "unset"}, HiddenLongs: []string{"rm", "unset"}, TakesValue: true},
	},
	Args: []*argv.Arg{
		{Key: ArgUseToolVersion, Name: "TOOL@VERSION", Var: true},
	},
}

// version
var cmdVersion = &argv.Command{
	Name:    "version",
	Key:     CmdVersion,
	Aliases: []string{"v"},
	Flags: []*argv.Flag{
		{Key: FlagVersionJson, Name: "json", Longs: []string{"json"}, Shorts: []byte{'J'}},
	},
}

// watch
var cmdWatch = &argv.Command{
	Name:    "watch",
	Key:     CmdWatch,
	Aliases: []string{"w"},
	Flags: []*argv.Flag{
		{Key: FlagWatchTaskFlag, Name: "task-flag", Longs: []string{"task-flag"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagWatchGlob, Name: "glob", Longs: []string{"glob"}, Shorts: []byte{'g'}, TakesValue: true},
		{Key: FlagWatchSkipDeps, Name: "skip-deps", Longs: []string{"skip-deps"}},
		{Key: FlagWatchWatch, Name: "watch", Longs: []string{"watch"}, Shorts: []byte{'w'}, TakesValue: true},
		{Key: FlagWatchWatchNonRecursive, Name: "watch-non-recursive", Longs: []string{"watch-non-recursive"}, Shorts: []byte{'W'}, TakesValue: true},
		{Key: FlagWatchWatchFile, Name: "watch-file", Longs: []string{"watch-file"}, Shorts: []byte{'F'}, TakesValue: true},
		{Key: FlagWatchClear, Name: "clear", Longs: []string{"clear"}, Shorts: []byte{'c'}, TakesValue: true, ValueOptional: true, DefaultMissing: "clear"},
		{Key: FlagWatchOnBusyUpdate, Name: "on-busy-update", Longs: []string{"on-busy-update"}, Shorts: []byte{'o'}, TakesValue: true},
		{Key: FlagWatchRestart, Name: "restart", Longs: []string{"restart"}, Shorts: []byte{'r'}},
		{Key: FlagWatchSignal, Name: "signal", Longs: []string{"signal"}, Shorts: []byte{'s'}, TakesValue: true},
		{Key: FlagWatchStopSignal, Name: "stop-signal", Longs: []string{"stop-signal"}, TakesValue: true},
		{Key: FlagWatchStopTimeout, Name: "stop-timeout", Longs: []string{"stop-timeout"}, TakesValue: true},
		{Key: FlagWatchMapSignal, Name: "map-signal", Longs: []string{"map-signal"}, TakesValue: true},
		{Key: FlagWatchDebounce, Name: "debounce", Longs: []string{"debounce"}, Shorts: []byte{'d'}, TakesValue: true},
		{Key: FlagWatchStdinQuit, Name: "stdin-quit", Longs: []string{"stdin-quit"}},
		{Key: FlagWatchNoVcsIgnore, Name: "no-vcs-ignore", Longs: []string{"no-vcs-ignore"}},
		{Key: FlagWatchNoProjectIgnore, Name: "no-project-ignore", Longs: []string{"no-project-ignore"}},
		{Key: FlagWatchNoGlobalIgnore, Name: "no-global-ignore", Longs: []string{"no-global-ignore"}},
		{Key: FlagWatchNoDefaultIgnore, Name: "no-default-ignore", Longs: []string{"no-default-ignore"}},
		{Key: FlagWatchNoDiscoverIgnore, Name: "no-discover-ignore", Longs: []string{"no-discover-ignore"}},
		{Key: FlagWatchIgnoreNothing, Name: "ignore-nothing", Longs: []string{"ignore-nothing"}},
		{Key: FlagWatchPostpone, Name: "postpone", Longs: []string{"postpone"}, Shorts: []byte{'p'}},
		{Key: FlagWatchDelayRun, Name: "delay-run", Longs: []string{"delay-run"}, TakesValue: true},
		{Key: FlagWatchPoll, Name: "poll", Longs: []string{"poll", "force-poll"}, HiddenLongs: []string{"force-poll"}, TakesValue: true, ValueOptional: true, DefaultMissing: "30s"},
		{Key: FlagWatchShell, Name: "shell", Longs: []string{"shell"}, TakesValue: true},
		{Key: FlagWatchN, Name: "n", Shorts: []byte{'n'}},
		{Key: FlagWatchEmitEventsTo, Name: "emit-events-to", Longs: []string{"emit-events-to"}, TakesValue: true},
		{Key: FlagWatchOnlyEmitEvents, Name: "only-emit-events", Longs: []string{"only-emit-events"}},
		{Key: FlagWatchEnv, Name: "env", Longs: []string{"env"}, Shorts: []byte{'E'}, TakesValue: true},
		{Key: FlagWatchWrapProcess, Name: "wrap-process", Longs: []string{"wrap-process"}, TakesValue: true},
		{Key: FlagWatchNotify, Name: "notify", Longs: []string{"notify"}, Shorts: []byte{'N'}},
		{Key: FlagWatchColor, Name: "color", Longs: []string{"color", "colour"}, HiddenLongs: []string{"colour"}, TakesValue: true},
		{Key: FlagWatchTimings, Name: "timings", Longs: []string{"timings"}},
		{Key: FlagWatchQuiet, Name: "quiet", Longs: []string{"quiet"}, Shorts: []byte{'q'}},
		{Key: FlagWatchBell, Name: "bell", Longs: []string{"bell"}},
		{Key: FlagWatchProjectOrigin, Name: "project-origin", Longs: []string{"project-origin"}, TakesValue: true},
		{Key: FlagWatchWorkdir, Name: "workdir", Longs: []string{"workdir"}, TakesValue: true},
		{Key: FlagWatchExts, Name: "exts", Longs: []string{"exts"}, Shorts: []byte{'e'}, TakesValue: true, Delimiter: ','},
		{Key: FlagWatchFilter, Name: "filter", Longs: []string{"filter"}, Shorts: []byte{'f'}, TakesValue: true},
		{Key: FlagWatchFilterFile, Name: "filter-file", Longs: []string{"filter-file"}, TakesValue: true, Delimiter: ':'},
		{Key: FlagWatchFilterProg, Name: "filter-prog", Longs: []string{"filter-prog"}, Shorts: []byte{'J'}, TakesValue: true},
		{Key: FlagWatchIgnore, Name: "ignore", Longs: []string{"ignore"}, Shorts: []byte{'i'}, TakesValue: true},
		{Key: FlagWatchIgnoreFile, Name: "ignore-file", Longs: []string{"ignore-file"}, TakesValue: true, Delimiter: ':'},
		{Key: FlagWatchFsEvents, Name: "fs-events", Longs: []string{"fs-events"}, TakesValue: true, Delimiter: ','},
		{Key: FlagWatchNoMeta, Name: "no-meta", Longs: []string{"no-meta"}},
		{Key: FlagWatchPrintEvents, Name: "print-events", Longs: []string{"print-events"}},
		{Key: FlagWatchManual, Name: "manual", Longs: []string{"manual"}},
	},
	Args: []*argv.Arg{
		{Key: ArgWatchTask, Name: "TASK", DoubleDash: argv.DoubleDashAutomatic},
		{Key: ArgWatchArgs, Name: "ARGS", Var: true, DoubleDash: argv.DoubleDashAutomatic},
	},
}

// where
var cmdWhere = &argv.Command{
	Name: "where",
	Key:  CmdWhere,
	Args: []*argv.Arg{
		{Key: ArgWhereToolVersion, Name: "TOOL@VERSION", Required: true},
		{Key: ArgWhereAsdfVersion, Name: "ASDF_VERSION"},
	},
}

// which
var cmdWhich = &argv.Command{
	Name: "which",
	Key:  CmdWhich,
	Flags: []*argv.Flag{
		{Key: FlagWhichTool, Name: "tool", Longs: []string{"tool"}, Shorts: []byte{'t'}, TakesValue: true},
		{Key: FlagWhichComplete, Name: "complete", Longs: []string{"complete"}},
		{Key: FlagWhichPlugin, Name: "plugin", Longs: []string{"plugin"}},
		{Key: FlagWhichVersion, Name: "version", Longs: []string{"version"}},
	},
	Args: []*argv.Arg{
		{Key: ArgWhichBinName, Name: "BIN_NAME"},
	},
}

// Meta is the cold table, read only by the rules that are decided once the
// last token has been read: required, choices, the env-then-default fallback,
// the var bounds, and the four that compare one entry against another. A parse
// never touches it.
//
// Indexed by key, so entry Key sits at Meta[Key-1]. A command's slot is empty:
// commands take keys too, and have no cold half.
var Meta = argv.Metadata{
	{},
	{Key: FlagContinueOnError, Name: "continue-on-error", Flag: true, RequiresIfBoolean: true, Spelling: "--continue-on-error"},
	{Key: FlagCd, Name: "cd", Flag: true, Spelling: "--cd", ValueName: "DIR"},
	{Key: FlagEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "ENV"},
	{Key: FlagForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagProfile, Name: "profile", Flag: true, Spelling: "--profile", ValueName: "PROFILE", Conflicts: []uint64{FlagEnv}},
	{Key: FlagQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet", Overrides: []uint64{FlagSilent, FlagTrace, FlagVerbose, FlagDebug, FlagLogLevel}},
	{Key: FlagShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagTool, Name: "tool", Flag: true, Spelling: "--tool", ValueName: "TOOL@VERSION", Env: "MISE_QUIET"},
	{Key: FlagVerbose, Name: "verbose", Flag: true, RequiresIfBoolean: true, Spelling: "--verbose", Overrides: []uint64{FlagQuiet, FlagSilent, FlagTrace, FlagDebug}},
	{Key: FlagVersion, Name: "version", Flag: true, RequiresIfBoolean: true, Spelling: "--version"},
	{Key: FlagYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: FlagDebug, Name: "debug", Flag: true, RequiresIfBoolean: true, Spelling: "--debug", Overrides: []uint64{FlagQuiet, FlagTrace, FlagVerbose, FlagSilent, FlagLogLevel}},
	{Key: FlagLogLevel, Name: "log-level", Flag: true, Spelling: "--log-level", ValueName: "LEVEL", Choices: []string{"trace", "debug", "info", "warning", "error"}, AcceptedChoices: []string{"trace", "debug", "info", "warning", "error"}, Overrides: []uint64{FlagQuiet, FlagTrace, FlagVerbose, FlagSilent, FlagDebug}},
	{Key: FlagNoConfig, Name: "no-config", Flag: true, RequiresIfBoolean: true, Spelling: "--no-config"},
	{Key: FlagNoEnv, Name: "no-env", Flag: true, RequiresIfBoolean: true, Spelling: "--no-env"},
	{Key: FlagNoHooks, Name: "no-hooks", Flag: true, RequiresIfBoolean: true, Spelling: "--no-hooks"},
	{Key: FlagNoTimings, Name: "no-timings", Flag: true, RequiresIfBoolean: true, Spelling: "--no-timings"},
	{Key: FlagOutput, Name: "output", Flag: true, Spelling: "--output", ValueName: "OUTPUT"},
	{Key: FlagRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw"},
	{Key: FlagLocked, Name: "locked", Flag: true, RequiresIfBoolean: true, Spelling: "--locked"},
	{Key: FlagSilent, Name: "silent", Flag: true, RequiresIfBoolean: true, Spelling: "--silent", Overrides: []uint64{FlagQuiet, FlagTrace, FlagVerbose, FlagDebug, FlagLogLevel}},
	{Key: FlagTimings, Name: "timings", Flag: true, RequiresIfBoolean: true, Spelling: "--timings"},
	{Key: FlagTrace, Name: "trace", Flag: true, RequiresIfBoolean: true, Spelling: "--trace", Overrides: []uint64{FlagQuiet, FlagSilent, FlagVerbose, FlagDebug, FlagLogLevel}},
	{Key: ArgTask, Name: "TASK"},
	{Key: ArgTaskArgs, Name: "TASK_ARGS"},
	{Key: ArgTaskArgsLast, Name: "TASK_ARGS_LAST"},
	{},
	{Key: FlagActivateQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet"},
	{Key: FlagActivateShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL", Choices: []string{"bash", "elvish", "fish", "nu", "xonsh", "zsh", "pwsh"}, AcceptedChoices: []string{"bash", "elvish", "fish", "nu", "xonsh", "zsh", "pwsh"}},
	{Key: FlagActivateNoHookEnv, Name: "no-hook-env", Flag: true, RequiresIfBoolean: true, Spelling: "--no-hook-env"},
	{Key: FlagActivateShims, Name: "shims", Flag: true, RequiresIfBoolean: true, Spelling: "--shims"},
	{Key: FlagActivateStatus, Name: "status", Flag: true, RequiresIfBoolean: true, Spelling: "--status"},
	{Key: ArgActivateShellType, Name: "SHELL_TYPE", Choices: []string{"bash", "elvish", "fish", "nu", "xonsh", "zsh", "pwsh"}, AcceptedChoices: []string{"bash", "elvish", "fish", "nu", "xonsh", "zsh", "pwsh"}},
	{},
	{Key: FlagToolAliasTool, Name: "tool", Flag: true, Spelling: "--tool", ValueName: "TOOL"},
	{Key: FlagToolAliasNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{},
	{Key: ArgToolAliasGetTool, Name: "TOOL", Required: true},
	{Key: ArgToolAliasGetAlias, Name: "ALIAS", Required: true},
	{},
	{Key: FlagToolAliasLsNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: ArgToolAliasLsTool, Name: "TOOL"},
	{},
	{Key: ArgToolAliasSetTool, Name: "TOOL", Required: true},
	{Key: ArgToolAliasSetAlias, Name: "ALIAS", Required: true},
	{Key: ArgToolAliasSetValue, Name: "VALUE"},
	{},
	{Key: ArgToolAliasUnsetTool, Name: "TOOL", Required: true},
	{Key: ArgToolAliasUnsetAlias, Name: "ALIAS"},
	{},
	{Key: ArgAsdfArgs, Name: "ARGS"},
	{},
	{},
	{},
	{Key: FlagBinPathsBinNames, Name: "bin-names", Flag: true, RequiresIfBoolean: true, Spelling: "--bin-names"},
	{Key: FlagBinPathsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: ArgBinPathsToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: FlagBootstrapDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: FlagBootstrapForceDotfiles, Name: "force-dotfiles", Flag: true, RequiresIfBoolean: true, Spelling: "--force-dotfiles"},
	{Key: FlagBootstrapOnly, Name: "only", Flag: true, Spelling: "--only", ValueName: "ONLY", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}, AcceptedChoices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook", "shell", "defaults", "launchd", "systemd"}, Conflicts: []uint64{FlagBootstrapSkip}},
	{Key: FlagBootstrapPromptSecrets, Name: "prompt-secrets", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt-secrets"},
	{Key: FlagBootstrapSkip, Name: "skip", Flag: true, Spelling: "--skip", ValueName: "SKIP", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}, AcceptedChoices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook", "shell", "defaults", "launchd", "systemd"}},
	{Key: FlagBootstrapUpdate, Name: "update", Flag: true, RequiresIfBoolean: true, Spelling: "--update"},
	{},
	{},
	{},
	{},
	{},
	{},
	{},
	{},
	{Key: FlagBootstrapAccountsApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapAccountsApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapAccountsStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapAccountsStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapComposeApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapComposeApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapComposeStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapComposeStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapDotfilesAddForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagBootstrapDotfilesAddGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Conflicts: []uint64{FlagBootstrapDotfilesAddLocal, FlagBootstrapDotfilesAddPath}},
	{Key: FlagBootstrapDotfilesAddLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local", Conflicts: []uint64{FlagBootstrapDotfilesAddGlobal, FlagBootstrapDotfilesAddPath}},
	{Key: FlagBootstrapDotfilesAddMode, Name: "mode", Flag: true, Spelling: "--mode", ValueName: "MODE"},
	{Key: FlagBootstrapDotfilesAddDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapDotfilesAddNoApply, Name: "no-apply", Flag: true, RequiresIfBoolean: true, Spelling: "--no-apply"},
	{Key: FlagBootstrapDotfilesAddPath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Conflicts: []uint64{FlagBootstrapDotfilesAddGlobal, FlagBootstrapDotfilesAddLocal}},
	{Key: FlagBootstrapDotfilesAddSource, Name: "source", Flag: true, Spelling: "--source", ValueName: "PATH"},
	{Key: FlagBootstrapDotfilesAddYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapDotfilesAddTarget, Name: "TARGET", Required: true},
	{},
	{Key: FlagBootstrapDotfilesApplyForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagBootstrapDotfilesApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapDotfilesApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapDotfilesApplyTarget, Name: "TARGET"},
	{},
	{Key: FlagBootstrapDotfilesEditApply, Name: "apply", Flag: true, RequiresIfBoolean: true, Spelling: "--apply"},
	{Key: FlagBootstrapDotfilesEditMode, Name: "mode", Flag: true, Spelling: "--mode", ValueName: "MODE"},
	{Key: FlagBootstrapDotfilesEditSource, Name: "source", Flag: true, Spelling: "--source", ValueName: "PATH"},
	{Key: FlagBootstrapDotfilesEditYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapDotfilesEditTarget, Name: "TARGET", Required: true},
	{},
	{Key: FlagBootstrapDotfilesStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapDotfilesStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{Key: ArgBootstrapDotfilesStatusTarget, Name: "TARGET"},
	{},
	{Key: FlagBootstrapDotfilesUnapplyForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagBootstrapDotfilesUnapplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapDotfilesUnapplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapDotfilesUnapplyTarget, Name: "TARGET"},
	{},
	{},
	{Key: FlagBootstrapFilesApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapFilesApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: FlagBootstrapFilesApplyPromptSecrets, Name: "prompt-secrets", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt-secrets"},
	{},
	{Key: FlagBootstrapFilesStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapFilesStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{Key: FlagBootstrapFilesStatusPromptSecrets, Name: "prompt-secrets", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt-secrets"},
	{},
	{},
	{Key: FlagBootstrapFirewallApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapFirewallApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapFirewallStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapFirewallStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapLaunchdApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapLaunchdApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapLaunchdStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapLaunchdStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{},
	{Key: FlagBootstrapLinuxSystemdUnitsApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapLinuxSystemdUnitsApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapLinuxSystemdUnitsStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapLinuxSystemdUnitsStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{},
	{Key: FlagBootstrapMacosDefaultsApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapMacosDefaultsApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapMacosDefaultsStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapMacosDefaultsStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapMacosLaunchdAgentsApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapMacosLaunchdAgentsApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapMacosLaunchdAgentsStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapMacosLaunchdAgentsStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapMacosDefaultsApplyDryRun2, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapMacosDefaultsApplyYes2, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapMacosDefaultsStatusJson2, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapMacosDefaultsStatusMissing2, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapMiseShellActivateApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapMiseShellActivateApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapMiseShellActivateStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapMiseShellActivateStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapPackagesApplyManager, Name: "manager", Flag: true, Spelling: "--manager", ValueName: "MANAGER"},
	{Key: FlagBootstrapPackagesApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: FlagBootstrapPackagesApplyUpdate, Name: "update", Flag: true, RequiresIfBoolean: true, Spelling: "--update"},
	{Key: ArgBootstrapPackagesApplyPackage, Name: "PACKAGE"},
	{},
	{},
	{Key: FlagBootstrapPackagesBrewTapLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagBootstrapPackagesBrewTapDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesBrewTapPath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Conflicts: []uint64{FlagBootstrapPackagesBrewTapLocal}},
	{Key: ArgBootstrapPackagesBrewTapTap, Name: "TAP", Required: true},
	{Key: ArgBootstrapPackagesBrewTapUrl, Name: "URL"},
	{},
	{Key: FlagBootstrapPackagesBrewUntapLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagBootstrapPackagesBrewUntapDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesBrewUntapPath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Conflicts: []uint64{FlagBootstrapPackagesBrewUntapLocal}},
	{Key: ArgBootstrapPackagesBrewUntapTaps, Name: "TAPS", Required: true},
	{},
	{Key: FlagBootstrapPackagesImportEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "ENV", Conflicts: []uint64{FlagBootstrapPackagesImportGlobal, FlagBootstrapPackagesImportPath}},
	{Key: FlagBootstrapPackagesImportGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Conflicts: []uint64{FlagBootstrapPackagesImportEnv, FlagBootstrapPackagesImportPath}},
	{Key: FlagBootstrapPackagesImportManager, Name: "manager", Flag: true, Spelling: "--manager", ValueName: "MANAGER", Choices: []string{"brew"}, AcceptedChoices: []string{"brew"}, Default: []string{"brew"}},
	{Key: FlagBootstrapPackagesImportAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagBootstrapPackagesImportDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesImportPath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Conflicts: []uint64{FlagBootstrapPackagesImportGlobal}},
	{},
	{Key: FlagBootstrapPackagesPruneManager, Name: "manager", Flag: true, Spelling: "--manager", ValueName: "MANAGER", Choices: []string{"brew", "brew-cask"}, AcceptedChoices: []string{"brew", "brew-cask"}, Default: []string{"brew"}},
	{Key: FlagBootstrapPackagesPruneDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesPruneYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapPackagesStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapPackagesStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{Key: FlagBootstrapPackagesUpgradeManager, Name: "manager", Flag: true, Spelling: "--manager", ValueName: "MANAGER"},
	{Key: FlagBootstrapPackagesUpgradeDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesUpgradeYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapPackagesUpgradePackage, Name: "PACKAGE"},
	{},
	{Key: FlagBootstrapPackagesUseEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "ENV", Conflicts: []uint64{FlagBootstrapPackagesUseGlobal, FlagBootstrapPackagesUsePath}},
	{Key: FlagBootstrapPackagesUseGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global"},
	{Key: FlagBootstrapPackagesUseDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapPackagesUsePath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Conflicts: []uint64{FlagBootstrapPackagesUseGlobal}},
	{Key: FlagBootstrapPackagesUseYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapPackagesUsePackage, Name: "PACKAGE", Required: true},
	{},
	{Key: FlagBootstrapPlanJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapPlanDetailedExitcode, Name: "detailed-exitcode", Flag: true, RequiresIfBoolean: true, Spelling: "--detailed-exitcode"},
	{Key: FlagBootstrapPlanPromptSecrets, Name: "prompt-secrets", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt-secrets"},
	{},
	{},
	{Key: FlagBootstrapPluginsApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{},
	{Key: FlagBootstrapPluginsStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{Key: FlagBootstrapRemoteAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagBootstrapRemoteBootstrapCommand, Name: "bootstrap-command", Flag: true, Spelling: "--bootstrap-command", ValueName: "COMMAND", Conflicts: []uint64{FlagBootstrapRemoteMiseBin, FlagBootstrapRemoteRemoteMise}},
	{Key: FlagBootstrapRemoteConnectTimeout, Name: "connect-timeout", Flag: true, Spelling: "--connect-timeout", ValueName: "CONNECT_TIMEOUT", Default: []string{"10"}},
	{Key: FlagBootstrapRemoteCopyLink, Name: "copy-link", Flag: true, Spelling: "--copy-link", ValueName: "PATH"},
	{Key: FlagBootstrapRemoteCopyLinks, Name: "copy-links", Flag: true, RequiresIfBoolean: true, Spelling: "--copy-links"},
	{Key: FlagBootstrapRemoteExclude, Name: "exclude", Flag: true, Spelling: "--exclude", ValueName: "PATTERN"},
	{Key: FlagBootstrapRemoteFailFast, Name: "fail-fast", Flag: true, RequiresIfBoolean: true, Spelling: "--fail-fast"},
	{Key: FlagBootstrapRemoteForceDotfiles, Name: "force-dotfiles", Flag: true, RequiresIfBoolean: true, Spelling: "--force-dotfiles"},
	{Key: FlagBootstrapRemoteHost, Name: "host", Flag: true, Spelling: "--host", ValueName: "[USER@]HOST"},
	{Key: FlagBootstrapRemoteIdentityFile, Name: "identity-file", Flag: true, Spelling: "--identity-file", ValueName: "IDENTITY_FILE"},
	{Key: FlagBootstrapRemoteDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapRemoteKeepStaging, Name: "keep-staging", Flag: true, RequiresIfBoolean: true, Spelling: "--keep-staging"},
	{Key: FlagBootstrapRemoteMiseBin, Name: "mise-bin", Flag: true, Spelling: "--mise-bin", ValueName: "MISE_BIN", Conflicts: []uint64{FlagBootstrapRemoteRemoteMise, FlagBootstrapRemoteBootstrapCommand}},
	{Key: FlagBootstrapRemoteOnly, Name: "only", Flag: true, Spelling: "--only", ValueName: "ONLY", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}, AcceptedChoices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook", "shell", "defaults", "launchd", "systemd"}, Conflicts: []uint64{FlagBootstrapRemoteSkip}},
	{Key: FlagBootstrapRemotePort, Name: "port", Flag: true, Spelling: "--port", ValueName: "PORT"},
	{Key: FlagBootstrapRemotePromptSecrets, Name: "prompt-secrets", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt-secrets"},
	{Key: FlagBootstrapRemoteRemoteEnv, Name: "remote-env", Flag: true, Spelling: "--remote-env", ValueName: "ENV"},
	{Key: FlagBootstrapRemoteRemoteMise, Name: "remote-mise", Flag: true, Spelling: "--remote-mise", ValueName: "COMMAND", Conflicts: []uint64{FlagBootstrapRemoteMiseBin, FlagBootstrapRemoteBootstrapCommand}},
	{Key: FlagBootstrapRemoteSkip, Name: "skip", Flag: true, Spelling: "--skip", ValueName: "SKIP", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}, AcceptedChoices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook", "shell", "defaults", "launchd", "systemd"}},
	{Key: FlagBootstrapRemoteSource, Name: "source", Flag: true, Spelling: "--source", ValueName: "SOURCE"},
	{Key: FlagBootstrapRemoteSshOption, Name: "ssh-option", Flag: true, Spelling: "--ssh-option", ValueName: "OPTION"},
	{Key: FlagBootstrapRemoteTag, Name: "tag", Flag: true, Spelling: "--tag", ValueName: "TAG"},
	{Key: FlagBootstrapRemoteUpdate, Name: "update", Flag: true, RequiresIfBoolean: true, Spelling: "--update"},
	{Key: FlagBootstrapRemoteYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapRemoteTarget, Name: "TARGET"},
	{},
	{},
	{Key: FlagBootstrapReposApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapReposApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapReposExecContinueOnError, Name: "continue-on-error", Flag: true, RequiresIfBoolean: true, Spelling: "--continue-on-error"},
	{Key: FlagBootstrapReposExecDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: ArgBootstrapReposExecPath, Name: "PATH"},
	{Key: ArgBootstrapReposExecCommand, Name: "COMMAND", Required: true},
	{},
	{Key: FlagBootstrapReposStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapReposStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{Key: FlagBootstrapReposUpdateDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapReposUpdateYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgBootstrapReposUpdatePath, Name: "PATH"},
	{},
	{},
	{Key: FlagBootstrapSecretsStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapSecretsStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapServicesApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapServicesApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapServicesStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapServicesStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{Key: FlagBootstrapStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{Key: FlagBootstrapStatusPromptSecrets, Name: "prompt-secrets", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt-secrets"},
	{},
	{},
	{Key: FlagBootstrapSystemdApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapSystemdApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapSystemdStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapSystemdStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagBootstrapUserApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagBootstrapUserApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{},
	{Key: FlagBootstrapUserStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagBootstrapUserStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{},
	{},
	{Key: FlagCacheClearOutdate, Name: "outdate", Flag: true, RequiresIfBoolean: true, Spelling: "--outdate"},
	{Key: FlagCacheClearTask, Name: "task", Flag: true, Spelling: "--task", ValueName: "TASK", Conflicts: []uint64{ArgCacheClearTool, FlagCacheClearOutdate}},
	{Key: ArgCacheClearTool, Name: "TOOL"},
	{},
	{},
	{Key: FlagCachePruneVerbose, Name: "verbose", Flag: true, RequiresIfBoolean: true, Spelling: "--verbose"},
	{Key: FlagCachePruneDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: ArgCachePruneTool, Name: "TOOL"},
	{},
	{Key: FlagCacheTaskJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: ArgCacheTaskTask, Name: "TASK", Required: true},
	{},
	{Key: FlagCompletionShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagCompletionIncludeBashCompletionLib, Name: "include-bash-completion-lib", Flag: true, RequiresIfBoolean: true, Spelling: "--include-bash-completion-lib"},
	{Key: FlagCompletionUsage, Name: "usage", Flag: true, RequiresIfBoolean: true, Spelling: "--usage"},
	{Key: ArgCompletionShell, Name: "SHELL", RequiredUnless: []uint64{FlagCompletionShell}},
	{},
	{Key: FlagConfigJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagConfigNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: FlagConfigTrackedConfigs, Name: "tracked-configs", Flag: true, RequiresIfBoolean: true, Spelling: "--tracked-configs"},
	{},
	{Key: FlagConfigGetFile, Name: "file", Flag: true, Spelling: "--file", ValueName: "FILE"},
	{Key: ArgConfigGetKey, Name: "KEY"},
	{},
	{Key: FlagConfigLsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagConfigLsNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: FlagConfigLsTrackedConfigs, Name: "tracked-configs", Flag: true, RequiresIfBoolean: true, Spelling: "--tracked-configs"},
	{},
	{Key: FlagConfigSetFile, Name: "file", Flag: true, Spelling: "--file", ValueName: "FILE"},
	{Key: FlagConfigSetType, Name: "type", Flag: true, Spelling: "--type", ValueName: "TYPE", Choices: []string{"infer", "string", "integer", "float", "bool", "list", "set"}, AcceptedChoices: []string{"infer", "string", "integer", "float", "bool", "list", "set"}, Default: []string{"infer"}},
	{Key: ArgConfigSetKey, Name: "KEY", Required: true},
	{Key: ArgConfigSetValue, Name: "VALUE"},
	{},
	{Key: ArgCurrentPlugin, Name: "PLUGIN"},
	{},
	{},
	{},
	{},
	{},
	{},
	{},
	{Key: FlagDotfilesAddForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagDotfilesAddGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Conflicts: []uint64{FlagDotfilesAddLocal, FlagDotfilesAddPath}},
	{Key: FlagDotfilesAddLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local", Conflicts: []uint64{FlagDotfilesAddGlobal, FlagDotfilesAddPath}},
	{Key: FlagDotfilesAddMode, Name: "mode", Flag: true, Spelling: "--mode", ValueName: "MODE"},
	{Key: FlagDotfilesAddDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagDotfilesAddNoApply, Name: "no-apply", Flag: true, RequiresIfBoolean: true, Spelling: "--no-apply"},
	{Key: FlagDotfilesAddPath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Conflicts: []uint64{FlagDotfilesAddGlobal, FlagDotfilesAddLocal}},
	{Key: FlagDotfilesAddSource, Name: "source", Flag: true, Spelling: "--source", ValueName: "PATH"},
	{Key: FlagDotfilesAddYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgDotfilesAddTarget, Name: "TARGET", Required: true},
	{},
	{Key: FlagDotfilesApplyForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagDotfilesApplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagDotfilesApplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgDotfilesApplyTarget, Name: "TARGET"},
	{},
	{Key: FlagDotfilesEditApply, Name: "apply", Flag: true, RequiresIfBoolean: true, Spelling: "--apply"},
	{Key: FlagDotfilesEditMode, Name: "mode", Flag: true, Spelling: "--mode", ValueName: "MODE"},
	{Key: FlagDotfilesEditSource, Name: "source", Flag: true, Spelling: "--source", ValueName: "PATH"},
	{Key: FlagDotfilesEditYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgDotfilesEditTarget, Name: "TARGET", Required: true},
	{},
	{Key: FlagDotfilesStatusJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagDotfilesStatusMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing"},
	{Key: ArgDotfilesStatusTarget, Name: "TARGET"},
	{},
	{Key: FlagDotfilesUnapplyForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagDotfilesUnapplyDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagDotfilesUnapplyYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: ArgDotfilesUnapplyTarget, Name: "TARGET"},
	{},
	{Key: FlagDoctorJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{},
	{Key: FlagDoctorPathFull, Name: "full", Flag: true, RequiresIfBoolean: true, Spelling: "--full"},
	{},
	{Key: FlagEnShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: ArgEnDir, Name: "DIR", Default: []string{"."}},
	{},
	{Key: FlagEnvDotenv, Name: "dotenv", Flag: true, RequiresIfBoolean: true, Spelling: "--dotenv", Overrides: []uint64{FlagEnvShell}},
	{Key: FlagEnvJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json", Overrides: []uint64{FlagEnvShell}},
	{Key: FlagEnvShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL", Overrides: []uint64{FlagEnvJson}},
	{Key: FlagEnvJsonExtended, Name: "json-extended", Flag: true, RequiresIfBoolean: true, Spelling: "--json-extended", Overrides: []uint64{FlagEnvShell}},
	{Key: FlagEnvRedacted, Name: "redacted", Flag: true, RequiresIfBoolean: true, Spelling: "--redacted"},
	{Key: FlagEnvValues, Name: "values", Flag: true, RequiresIfBoolean: true, Spelling: "--values"},
	{Key: ArgEnvToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: FlagExecCommand, Name: "command", Flag: true, Spelling: "--command", ValueName: "COMMAND", Conflicts: []uint64{ArgExecCommand}},
	{Key: FlagExecJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagExecAllowEnv, Name: "allow-env", Flag: true, Spelling: "--allow-env", ValueName: "VAR"},
	{Key: FlagExecAllowNet, Name: "allow-net", Flag: true, Spelling: "--allow-net", ValueName: "HOST"},
	{Key: FlagExecAllowRead, Name: "allow-read", Flag: true, Spelling: "--allow-read", ValueName: "PATH"},
	{Key: FlagExecAllowWrite, Name: "allow-write", Flag: true, Spelling: "--allow-write", ValueName: "PATH"},
	{Key: FlagExecDenyAll, Name: "deny-all", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-all"},
	{Key: FlagExecDenyEnv, Name: "deny-env", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-env"},
	{Key: FlagExecDenyNet, Name: "deny-net", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-net"},
	{Key: FlagExecDenyRead, Name: "deny-read", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-read"},
	{Key: FlagExecDenyWrite, Name: "deny-write", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-write"},
	{Key: FlagExecFreshEnv, Name: "fresh-env", Flag: true, RequiresIfBoolean: true, Spelling: "--fresh-env"},
	{Key: FlagExecNoDeps, Name: "no-deps", Flag: true, RequiresIfBoolean: true, Spelling: "--no-deps"},
	{Key: FlagExecRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw", Overrides: []uint64{FlagExecJobs}},
	{Key: ArgExecToolVersion, Name: "TOOL@VERSION"},
	{Key: ArgExecCommand, Name: "COMMAND", Conflicts: []uint64{FlagExecCommand}, RequiredUnless: []uint64{FlagExecCommand}},
	{},
	{Key: FlagFmtAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagFmtCheck, Name: "check", Flag: true, RequiresIfBoolean: true, Spelling: "--check"},
	{Key: FlagFmtStdin, Name: "stdin", Flag: true, RequiresIfBoolean: true, Spelling: "--stdin"},
	{},
	{},
	{Key: FlagGenerateBootstrapLocalize, Name: "localize", Flag: true, RequiresIfBoolean: true, Spelling: "--localize"},
	{Key: FlagGenerateBootstrapVersion, Name: "version", Flag: true, Spelling: "--version", ValueName: "VERSION"},
	{Key: FlagGenerateBootstrapWrite, Name: "write", Flag: true, Spelling: "--write", ValueName: "WRITE"},
	{Key: FlagGenerateBootstrapLocalizedDir, Name: "localized-dir", Flag: true, Spelling: "--localized-dir", ValueName: "LOCALIZED_DIR", Default: []string{".mise"}},
	{Key: FlagGenerateBootstrapWindows, Name: "windows", Flag: true, RequiresIfBoolean: true, Spelling: "--windows", Requires: []uint64{FlagGenerateBootstrapWrite}},
	{},
	{Key: FlagGenerateConfigGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Conflicts: []uint64{ArgGenerateConfigPath}},
	{Key: FlagGenerateConfigDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagGenerateConfigToolVersions, Name: "tool-versions", Flag: true, Spelling: "--tool-versions", ValueName: "TOOL_VERSIONS"},
	{Key: ArgGenerateConfigPath, Name: "PATH"},
	{},
	{Key: FlagGenerateDevcontainerImage, Name: "image", Flag: true, Spelling: "--image", ValueName: "IMAGE"},
	{Key: FlagGenerateDevcontainerMountMiseData, Name: "mount-mise-data", Flag: true, RequiresIfBoolean: true, Spelling: "--mount-mise-data"},
	{Key: FlagGenerateDevcontainerName, Name: "name", Flag: true, Spelling: "--name", ValueName: "NAME"},
	{Key: FlagGenerateDevcontainerWrite, Name: "write", Flag: true, RequiresIfBoolean: true, Spelling: "--write"},
	{},
	{Key: FlagGenerateGitPreCommitTask, Name: "task", Flag: true, Spelling: "--task", ValueName: "TASK", Default: []string{"pre-commit"}},
	{Key: FlagGenerateGitPreCommitWrite, Name: "write", Flag: true, RequiresIfBoolean: true, Spelling: "--write"},
	{Key: FlagGenerateGitPreCommitHook, Name: "hook", Flag: true, Spelling: "--hook", ValueName: "HOOK", Default: []string{"pre-commit"}},
	{Key: ArgGenerateGitPreCommitMiseArg, Name: "MISE_ARG"},
	{},
	{Key: FlagGenerateGithubActionTask, Name: "task", Flag: true, Spelling: "--task", ValueName: "TASK", Default: []string{"ci"}},
	{Key: FlagGenerateGithubActionWrite, Name: "write", Flag: true, RequiresIfBoolean: true, Spelling: "--write"},
	{Key: FlagGenerateGithubActionName, Name: "name", Flag: true, Spelling: "--name", ValueName: "NAME", Default: []string{"ci"}},
	{},
	{Key: FlagGenerateTaskDocsInject, Name: "inject", Flag: true, RequiresIfBoolean: true, Spelling: "--inject"},
	{Key: FlagGenerateTaskDocsIndex, Name: "index", Flag: true, RequiresIfBoolean: true, Spelling: "--index"},
	{Key: FlagGenerateTaskDocsMulti, Name: "multi", Flag: true, RequiresIfBoolean: true, Spelling: "--multi"},
	{Key: FlagGenerateTaskDocsOutput, Name: "output", Flag: true, Spelling: "--output", ValueName: "OUTPUT"},
	{Key: FlagGenerateTaskDocsRoot, Name: "root", Flag: true, Spelling: "--root", ValueName: "ROOT"},
	{Key: FlagGenerateTaskDocsStyle, Name: "style", Flag: true, Spelling: "--style", ValueName: "STYLE", Choices: []string{"simple", "detailed"}, AcceptedChoices: []string{"simple", "detailed"}, Default: []string{"simple"}},
	{},
	{Key: FlagGenerateTaskStubsDir, Name: "dir", Flag: true, Spelling: "--dir", ValueName: "DIR", Default: []string{"bin"}},
	{Key: FlagGenerateTaskStubsMiseBin, Name: "mise-bin", Flag: true, Spelling: "--mise-bin", ValueName: "MISE_BIN", Default: []string{"mise"}},
	{},
	{Key: FlagGenerateToolStubBin, Name: "bin", Flag: true, Spelling: "--bin", ValueName: "BIN"},
	{Key: FlagGenerateToolStubBootstrap, Name: "bootstrap", Flag: true, RequiresIfBoolean: true, Spelling: "--bootstrap"},
	{Key: FlagGenerateToolStubBootstrapVersion, Name: "bootstrap-version", Flag: true, Spelling: "--bootstrap-version", ValueName: "BOOTSTRAP_VERSION", Requires: []uint64{FlagGenerateToolStubBootstrap}},
	{Key: FlagGenerateToolStubChecksumAlgorithm, Name: "checksum-algorithm", Flag: true, Spelling: "--checksum-algorithm", ValueName: "CHECKSUM_ALGORITHM", Choices: []string{"blake3", "sha256"}, AcceptedChoices: []string{"blake3", "sha256"}, Default: []string{"blake3"}, Conflicts: []uint64{FlagGenerateToolStubLock, FlagGenerateToolStubSkipDownload}},
	{Key: FlagGenerateToolStubFetch, Name: "fetch", Flag: true, RequiresIfBoolean: true, Spelling: "--fetch", Conflicts: []uint64{FlagGenerateToolStubUrl, FlagGenerateToolStubPlatformUrl, FlagGenerateToolStubVersion, FlagGenerateToolStubBin, FlagGenerateToolStubPlatformBin, FlagGenerateToolStubSkipDownload, FlagGenerateToolStubLock}},
	{Key: FlagGenerateToolStubHttp, Name: "http", Flag: true, Spelling: "--http", ValueName: "HTTP", Default: []string{"http"}},
	{Key: FlagGenerateToolStubLock, Name: "lock", Flag: true, RequiresIfBoolean: true, Spelling: "--lock", Conflicts: []uint64{FlagGenerateToolStubUrl, FlagGenerateToolStubPlatformUrl, FlagGenerateToolStubBin, FlagGenerateToolStubPlatformBin, FlagGenerateToolStubFetch, FlagGenerateToolStubSkipDownload}},
	{Key: FlagGenerateToolStubPlatformBin, Name: "platform-bin", Flag: true, Spelling: "--platform-bin", ValueName: "PLATFORM_BIN"},
	{Key: FlagGenerateToolStubPlatformUrl, Name: "platform-url", Flag: true, Spelling: "--platform-url", ValueName: "PLATFORM_URL"},
	{Key: FlagGenerateToolStubSkipDownload, Name: "skip-download", Flag: true, RequiresIfBoolean: true, Spelling: "--skip-download"},
	{Key: FlagGenerateToolStubUrl, Name: "url", Flag: true, Spelling: "--url", ValueName: "URL"},
	{Key: FlagGenerateToolStubVersion, Name: "version", Flag: true, Spelling: "--version", ValueName: "VERSION", Default: []string{"latest"}},
	{Key: ArgGenerateToolStubOutput, Name: "OUTPUT", Required: true},
	{},
	{},
	{Key: FlagGithubTokenOauth, Name: "oauth", Flag: true, RequiresIfBoolean: true, Spelling: "--oauth"},
	{Key: FlagGithubTokenRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw"},
	{Key: FlagGithubTokenRefresh, Name: "refresh", Flag: true, RequiresIfBoolean: true, Spelling: "--refresh", Requires: []uint64{FlagGithubTokenOauth}},
	{Key: FlagGithubTokenUnmask, Name: "unmask", Flag: true, RequiresIfBoolean: true, Spelling: "--unmask"},
	{Key: ArgGithubTokenHost, Name: "HOST", Default: []string{"github.com"}},
	{},
	{Key: FlagGlobalFuzzy, Name: "fuzzy", Flag: true, RequiresIfBoolean: true, Spelling: "--fuzzy", Overrides: []uint64{FlagGlobalPin}},
	{Key: FlagGlobalPath, Name: "path", Flag: true, RequiresIfBoolean: true, Spelling: "--path"},
	{Key: FlagGlobalPin, Name: "pin", Flag: true, RequiresIfBoolean: true, Spelling: "--pin", Overrides: []uint64{FlagGlobalFuzzy}},
	{Key: FlagGlobalRemove, Name: "remove", Flag: true, Spelling: "--remove", ValueName: "TOOL"},
	{Key: ArgGlobalToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: FlagHookEnvForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagHookEnvQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet"},
	{Key: FlagHookEnvShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagHookEnvReason, Name: "reason", Flag: true, Spelling: "--reason", ValueName: "REASON", Choices: []string{"precmd", "chpwd"}, AcceptedChoices: []string{"precmd", "chpwd"}},
	{Key: FlagHookEnvStatus, Name: "status", Flag: true, RequiresIfBoolean: true, Spelling: "--status"},
	{},
	{Key: FlagHookNotFoundShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: ArgHookNotFoundBin, Name: "BIN", Required: true},
	{},
	{Key: FlagImplodeDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagImplodeConfig, Name: "config", Flag: true, RequiresIfBoolean: true, Spelling: "--config"},
	{},
	{Key: FlagEditGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Conflicts: []uint64{ArgEditPath}},
	{Key: FlagEditDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagEditToolVersions, Name: "tool-versions", Flag: true, Spelling: "--tool-versions", ValueName: "TOOL_VERSIONS"},
	{Key: ArgEditPath, Name: "PATH"},
	{},
	{Key: FlagInstallForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagInstallJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagInstallDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagInstallVerbose, Name: "verbose", Flag: true, RequiresIfBoolean: true, Spelling: "--verbose"},
	{Key: FlagInstallDryRunCode, Name: "dry-run-code", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run-code"},
	{Key: FlagInstallIncludeTaskTools, Name: "include-task-tools", Flag: true, RequiresIfBoolean: true, Spelling: "--include-task-tools"},
	{Key: FlagInstallMinimumReleaseAge, Name: "minimum-release-age", Flag: true, Spelling: "--minimum-release-age", ValueName: "MINIMUM_RELEASE_AGE"},
	{Key: FlagInstallMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo", Env: "MISE_MONOREPO"},
	{Key: FlagInstallRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw", Overrides: []uint64{FlagInstallJobs}},
	{Key: FlagInstallShared, Name: "shared", Flag: true, Spelling: "--shared", ValueName: "SHARED", Conflicts: []uint64{FlagInstallSystem}},
	{Key: FlagInstallSystem, Name: "system", Flag: true, RequiresIfBoolean: true, Spelling: "--system", Conflicts: []uint64{FlagInstallShared}},
	{Key: ArgInstallToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: ArgInstallIntoToolVersion, Name: "TOOL@VERSION", Required: true},
	{Key: ArgInstallIntoPath, Name: "PATH", Required: true},
	{},
	{Key: FlagLatestInstalled, Name: "installed", Flag: true, RequiresIfBoolean: true, Spelling: "--installed"},
	{Key: FlagLatestMinimumReleaseAge, Name: "minimum-release-age", Flag: true, Spelling: "--minimum-release-age", ValueName: "MINIMUM_RELEASE_AGE", Conflicts: []uint64{FlagLatestInstalled}},
	{Key: ArgLatestToolVersion, Name: "TOOL@VERSION", Required: true},
	{Key: ArgLatestAsdfVersion, Name: "ASDF_VERSION"},
	{},
	{Key: FlagLinkForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: ArgLinkToolVersion, Name: "TOOL@VERSION", Required: true},
	{Key: ArgLinkPath, Name: "PATH", Required: true},
	{},
	{Key: FlagLocalParent, Name: "parent", Flag: true, RequiresIfBoolean: true, Spelling: "--parent"},
	{Key: FlagLocalFuzzy, Name: "fuzzy", Flag: true, RequiresIfBoolean: true, Spelling: "--fuzzy", Overrides: []uint64{FlagLocalPin}},
	{Key: FlagLocalPath, Name: "path", Flag: true, RequiresIfBoolean: true, Spelling: "--path"},
	{Key: FlagLocalPin, Name: "pin", Flag: true, RequiresIfBoolean: true, Spelling: "--pin", Overrides: []uint64{FlagLocalFuzzy}},
	{Key: FlagLocalRemove, Name: "remove", Flag: true, Spelling: "--remove", ValueName: "TOOL"},
	{Key: ArgLocalToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: FlagLockGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global"},
	{Key: FlagLockJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagLockDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagLockPlatform, Name: "platform", Flag: true, Spelling: "--platform", ValueName: "PLATFORM"},
	{Key: FlagLockBump, Name: "bump", Flag: true, RequiresIfBoolean: true, Spelling: "--bump"},
	{Key: FlagLockJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagLockLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagLockMinimumReleaseAge, Name: "minimum-release-age", Flag: true, Spelling: "--minimum-release-age", ValueName: "MINIMUM_RELEASE_AGE"},
	{Key: ArgLockTool, Name: "TOOL"},
	{},
	{Key: FlagLsCurrent, Name: "current", Flag: true, RequiresIfBoolean: true, Spelling: "--current"},
	{Key: FlagLsGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Conflicts: []uint64{FlagLsLocal}},
	{Key: FlagLsInstalled, Name: "installed", Flag: true, RequiresIfBoolean: true, Spelling: "--installed"},
	{Key: FlagLsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagLsLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local", Conflicts: []uint64{FlagLsGlobal}},
	{Key: FlagLsMissing, Name: "missing", Flag: true, RequiresIfBoolean: true, Spelling: "--missing", Conflicts: []uint64{FlagLsInstalled}},
	{Key: FlagLsOffline, Name: "offline", Flag: true, RequiresIfBoolean: true, Spelling: "--offline"},
	{Key: FlagLsPlugin, Name: "plugin", Flag: true, Spelling: "--plugin", ValueName: "PLUGIN"},
	{Key: FlagLsAllSources, Name: "all-sources", Flag: true, RequiresIfBoolean: true, Spelling: "--all-sources", Conflicts: []uint64{FlagLsCurrent, FlagLsGlobal, FlagLsLocal, FlagLsPrunable}},
	{Key: FlagLsMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo", Env: "MISE_MONOREPO", Conflicts: []uint64{FlagLsAllSources, FlagLsPrunable}},
	{Key: FlagLsNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header", Conflicts: []uint64{FlagLsJson}},
	{Key: FlagLsOutdated, Name: "outdated", Flag: true, RequiresIfBoolean: true, Spelling: "--outdated"},
	{Key: FlagLsPrefix, Name: "prefix", Flag: true, Spelling: "--prefix", ValueName: "PREFIX", Requires: []uint64{ArgLsInstalledTool}},
	{Key: FlagLsPrunable, Name: "prunable", Flag: true, RequiresIfBoolean: true, Spelling: "--prunable"},
	{Key: ArgLsInstalledTool, Name: "INSTALLED_TOOL", Conflicts: []uint64{FlagLsPlugin}},
	{},
	{Key: FlagLsRemoteAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{ArgLsRemoteToolVersion, ArgLsRemotePrefix}},
	{Key: FlagLsRemoteMinimumReleaseAge, Name: "minimum-release-age", Flag: true, Spelling: "--minimum-release-age", ValueName: "MINIMUM_RELEASE_AGE"},
	{Key: FlagLsRemoteJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagLsRemoteNoVersionsHost, Name: "no-versions-host", Flag: true, RequiresIfBoolean: true, Spelling: "--no-versions-host"},
	{Key: FlagLsRemotePrerelease, Name: "prerelease", Flag: true, RequiresIfBoolean: true, Spelling: "--prerelease"},
	{Key: FlagLsRemoteStrictMetadata, Name: "strict-metadata", Flag: true, RequiresIfBoolean: true, Spelling: "--strict-metadata", Requires: []uint64{FlagLsRemoteJson, FlagLsRemoteNoVersionsHost}},
	{Key: ArgLsRemoteToolVersion, Name: "TOOL@VERSION", RequiredUnless: []uint64{FlagLsRemoteAll}},
	{Key: ArgLsRemotePrefix, Name: "PREFIX"},
	{},
	{},
	{},
	{Key: FlagOciBuildCopy, Name: "copy", Flag: true, Spelling: "--copy", ValueName: "HOST_PATH:IMAGE_PATH"},
	{Key: FlagOciBuildOutput, Name: "output", Flag: true, Spelling: "--output", ValueName: "OUTPUT", Default: []string{"./mise-oci"}},
	{Key: FlagOciBuildFrom, Name: "from", Flag: true, Spelling: "--from", ValueName: "FROM"},
	{Key: FlagOciBuildIncludeGlobal, Name: "include-global", Flag: true, RequiresIfBoolean: true, Spelling: "--include-global"},
	{Key: FlagOciBuildTag, Name: "tag", Flag: true, Spelling: "--tag", ValueName: "TAG"},
	{Key: FlagOciBuildMountPoint, Name: "mount-point", Flag: true, Spelling: "--mount-point", ValueName: "MOUNT_POINT"},
	{Key: FlagOciBuildNoMise, Name: "no-mise", Flag: true, RequiresIfBoolean: true, Spelling: "--no-mise"},
	{Key: FlagOciBuildOwner, Name: "owner", Flag: true, Spelling: "--owner", ValueName: "UID[:GID]"},
	{},
	{Key: FlagOciPushCacheFrom, Name: "cache-from", Flag: true, Spelling: "--cache-from", ValueName: "REF", Conflicts: []uint64{FlagOciPushNoCache, FlagOciPushImageDir}},
	{Key: FlagOciPushFrom, Name: "from", Flag: true, Spelling: "--from", ValueName: "FROM"},
	{Key: FlagOciPushImageDir, Name: "image-dir", Flag: true, Spelling: "--image-dir", ValueName: "IMAGE_DIR", Conflicts: []uint64{FlagOciPushFrom, FlagOciPushMountPoint, FlagOciPushNoMise, FlagOciPushOwner, FlagOciPushIncludeGlobal}},
	{Key: FlagOciPushIncludeGlobal, Name: "include-global", Flag: true, RequiresIfBoolean: true, Spelling: "--include-global"},
	{Key: FlagOciPushMountPoint, Name: "mount-point", Flag: true, Spelling: "--mount-point", ValueName: "MOUNT_POINT"},
	{Key: FlagOciPushNoCache, Name: "no-cache", Flag: true, RequiresIfBoolean: true, Spelling: "--no-cache"},
	{Key: FlagOciPushNoMise, Name: "no-mise", Flag: true, RequiresIfBoolean: true, Spelling: "--no-mise"},
	{Key: FlagOciPushOwner, Name: "owner", Flag: true, Spelling: "--owner", ValueName: "UID[:GID]"},
	{Key: FlagOciPushUpdateIndex, Name: "update-index", Flag: true, RequiresIfBoolean: true, Spelling: "--update-index"},
	{Key: ArgOciPushRef, Name: "REF", Required: true},
	{},
	{Key: FlagOciRunEngine, Name: "engine", Flag: true, Spelling: "--engine", ValueName: "ENGINE", Choices: []string{"auto", "podman", "docker"}, AcceptedChoices: []string{"auto", "podman", "docker"}, Default: []string{"auto"}},
	{Key: FlagOciRunFrom, Name: "from", Flag: true, Spelling: "--from", ValueName: "FROM"},
	{Key: FlagOciRunImageDir, Name: "image-dir", Flag: true, Spelling: "--image-dir", ValueName: "IMAGE_DIR", Conflicts: []uint64{FlagOciRunFrom, FlagOciRunMountPoint, FlagOciRunNoMise, FlagOciRunOwner, FlagOciRunIncludeGlobal}},
	{Key: FlagOciRunIncludeGlobal, Name: "include-global", Flag: true, RequiresIfBoolean: true, Spelling: "--include-global"},
	{Key: FlagOciRunKeep, Name: "keep", Flag: true, RequiresIfBoolean: true, Spelling: "--keep"},
	{Key: FlagOciRunMountPoint, Name: "mount-point", Flag: true, Spelling: "--mount-point", ValueName: "MOUNT_POINT"},
	{Key: FlagOciRunNoMise, Name: "no-mise", Flag: true, RequiresIfBoolean: true, Spelling: "--no-mise"},
	{Key: FlagOciRunOwner, Name: "owner", Flag: true, Spelling: "--owner", ValueName: "UID[:GID]"},
	{Key: FlagOciRunVolume, Name: "volume", Flag: true, Spelling: "--volume", ValueName: "HOST:CONTAINER"},
	{Key: FlagOciRunEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "KEY=VAL"},
	{Key: FlagOciRunInteractive, Name: "interactive", Flag: true, RequiresIfBoolean: true, Spelling: "--interactive"},
	{Key: FlagOciRunTty, Name: "tty", Flag: true, RequiresIfBoolean: true, Spelling: "--tty"},
	{Key: FlagOciRunWorkdir, Name: "workdir", Flag: true, Spelling: "--workdir", ValueName: "WORKDIR"},
	{Key: ArgOciRunCmd, Name: "CMD"},
	{},
	{Key: FlagOutdatedBump, Name: "bump", Flag: true, RequiresIfBoolean: true, Spelling: "--bump"},
	{Key: FlagOutdatedJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagOutdatedL, Name: "l", Flag: true, RequiresIfBoolean: true, Spelling: "-l"},
	{Key: FlagOutdatedInactive, Name: "inactive", Flag: true, RequiresIfBoolean: true, Spelling: "--inactive", Conflicts: []uint64{FlagOutdatedLocal}},
	{Key: FlagOutdatedLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagOutdatedMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo"},
	{Key: FlagOutdatedNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: ArgOutdatedToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: FlagPatronsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagPatronsRefresh, Name: "refresh", Flag: true, RequiresIfBoolean: true, Spelling: "--refresh"},
	{},
	{Key: FlagPluginsAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagPluginsCore, Name: "core", Flag: true, RequiresIfBoolean: true, Spelling: "--core", Conflicts: []uint64{FlagPluginsAll}},
	{Key: FlagPluginsUrls, Name: "urls", Flag: true, RequiresIfBoolean: true, Spelling: "--urls"},
	{Key: FlagPluginsRefs, Name: "refs", Flag: true, RequiresIfBoolean: true, Spelling: "--refs"},
	{Key: FlagPluginsUser, Name: "user", Flag: true, RequiresIfBoolean: true, Spelling: "--user", Conflicts: []uint64{FlagPluginsAll}},
	{},
	{Key: FlagPluginsInstallAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{ArgPluginsInstallNewPlugin, FlagPluginsInstallForce}},
	{Key: FlagPluginsInstallForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagPluginsInstallJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS"},
	{Key: FlagPluginsInstallVerbose, Name: "verbose", Flag: true, RequiresIfBoolean: true, Spelling: "--verbose"},
	{Key: ArgPluginsInstallNewPlugin, Name: "NEW_PLUGIN", RequiredUnless: []uint64{FlagPluginsInstallAll}},
	{Key: ArgPluginsInstallGitUrl, Name: "GIT_URL"},
	{Key: ArgPluginsInstallRest, Name: "REST"},
	{},
	{Key: FlagPluginsLinkForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: ArgPluginsLinkName, Name: "NAME", Required: true},
	{Key: ArgPluginsLinkDir, Name: "DIR"},
	{},
	{Key: FlagPluginsLsAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagPluginsLsCore, Name: "core", Flag: true, RequiresIfBoolean: true, Spelling: "--core", Conflicts: []uint64{FlagPluginsLsAll}},
	{Key: FlagPluginsLsOutdated, Name: "outdated", Flag: true, RequiresIfBoolean: true, Spelling: "--outdated"},
	{Key: FlagPluginsLsUrls, Name: "urls", Flag: true, RequiresIfBoolean: true, Spelling: "--urls"},
	{Key: FlagPluginsLsRefs, Name: "refs", Flag: true, RequiresIfBoolean: true, Spelling: "--refs"},
	{Key: FlagPluginsLsUser, Name: "user", Flag: true, RequiresIfBoolean: true, Spelling: "--user", Conflicts: []uint64{FlagPluginsLsAll}},
	{},
	{Key: FlagPluginsLsRemoteUrls, Name: "urls", Flag: true, RequiresIfBoolean: true, Spelling: "--urls"},
	{Key: FlagPluginsLsRemoteOnlyNames, Name: "only-names", Flag: true, RequiresIfBoolean: true, Spelling: "--only-names"},
	{},
	{Key: FlagPluginsUninstallAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{ArgPluginsUninstallPlugin}},
	{Key: FlagPluginsUninstallPurge, Name: "purge", Flag: true, RequiresIfBoolean: true, Spelling: "--purge"},
	{Key: ArgPluginsUninstallPlugin, Name: "PLUGIN"},
	{},
	{Key: FlagPluginsUpdateJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS"},
	{Key: ArgPluginsUpdatePlugin, Name: "PLUGIN"},
	{},
	{Key: FlagDepsExplain, Name: "explain", Flag: true, RequiresIfBoolean: true, Spelling: "--explain"},
	{Key: FlagDepsForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagDepsDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagDepsList, Name: "list", Flag: true, RequiresIfBoolean: true, Spelling: "--list"},
	{Key: FlagDepsMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo", Env: "MISE_MONOREPO"},
	{Key: FlagDepsOnly, Name: "only", Flag: true, Spelling: "--only", ValueName: "ONLY"},
	{Key: FlagDepsSkip, Name: "skip", Flag: true, Spelling: "--skip", ValueName: "SKIP"},
	{Key: ArgDepsProvider, Name: "PROVIDER"},
	{},
	{Key: FlagDepsAddDev, Name: "dev", Flag: true, RequiresIfBoolean: true, Spelling: "--dev"},
	{Key: ArgDepsAddPackages, Name: "PACKAGES", Required: true},
	{},
	{Key: FlagDepsInstallExplain, Name: "explain", Flag: true, RequiresIfBoolean: true, Spelling: "--explain"},
	{Key: FlagDepsInstallForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagDepsInstallDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagDepsInstallList, Name: "list", Flag: true, RequiresIfBoolean: true, Spelling: "--list"},
	{Key: FlagDepsInstallMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo", Env: "MISE_MONOREPO"},
	{Key: FlagDepsInstallOnly, Name: "only", Flag: true, Spelling: "--only", ValueName: "ONLY"},
	{Key: FlagDepsInstallSkip, Name: "skip", Flag: true, Spelling: "--skip", ValueName: "SKIP"},
	{Key: ArgDepsInstallProvider, Name: "PROVIDER"},
	{},
	{Key: ArgDepsRemovePackages, Name: "PACKAGES", Required: true},
	{},
	{Key: FlagPruneDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagPruneConfigs, Name: "configs", Flag: true, RequiresIfBoolean: true, Spelling: "--configs"},
	{Key: FlagPruneDryRunCode, Name: "dry-run-code", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run-code"},
	{Key: FlagPruneMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo"},
	{Key: FlagPruneTools, Name: "tools", Flag: true, RequiresIfBoolean: true, Spelling: "--tools"},
	{Key: ArgPruneInstalledTool, Name: "INSTALLED_TOOL"},
	{},
	{Key: FlagRegistryBackend, Name: "backend", Flag: true, Spelling: "--backend", ValueName: "BACKEND"},
	{Key: FlagRegistryComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagRegistryHideAliased, Name: "hide-aliased", Flag: true, RequiresIfBoolean: true, Spelling: "--hide-aliased"},
	{Key: FlagRegistryJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagRegistrySecurity, Name: "security", Flag: true, RequiresIfBoolean: true, Spelling: "--security", Requires: []uint64{FlagRegistryJson}},
	{Key: ArgRegistryName, Name: "NAME"},
	{},
	{},
	{Key: FlagReshimForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: ArgReshimTool, Name: "TOOL"},
	{Key: ArgReshimVersion, Name: "VERSION"},
	{},
	{Key: FlagRunAffected, Name: "affected", Flag: true, RequiresIfBoolean: true, Spelling: "--affected"},
	{Key: FlagRunAffectedBase, Name: "affected-base", Flag: true, Spelling: "--affected-base", ValueName: "REV", Requires: []uint64{FlagRunAffected}},
	{Key: FlagRunAffectedExplain, Name: "affected-explain", Flag: true, RequiresIfBoolean: true, Spelling: "--affected-explain", Conflicts: []uint64{FlagRunAffectedJson}, Requires: []uint64{FlagRunAffected}},
	{Key: FlagRunAffectedHead, Name: "affected-head", Flag: true, Spelling: "--affected-head", ValueName: "REV", Requires: []uint64{FlagRunAffected}},
	{Key: FlagRunAffectedJson, Name: "affected-json", Flag: true, RequiresIfBoolean: true, Spelling: "--affected-json", Conflicts: []uint64{FlagRunAffectedExplain}, Requires: []uint64{FlagRunAffected}},
	{Key: FlagRunAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{FlagRunAffected}},
	{Key: FlagRunContinueOnError, Name: "continue-on-error", Flag: true, RequiresIfBoolean: true, Spelling: "--continue-on-error"},
	{Key: FlagRunCd, Name: "cd", Flag: true, Spelling: "--cd", ValueName: "CD"},
	{Key: FlagRunForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagRunJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagRunDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagRunOutput, Name: "output", Flag: true, Spelling: "--output", ValueName: "OUTPUT", Env: "MISE_TASK_OUTPUT"},
	{Key: FlagRunQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet", Env: "MISE_QUIET"},
	{Key: FlagRunRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw"},
	{Key: FlagRunShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagRunSilent, Name: "silent", Flag: true, RequiresIfBoolean: true, Spelling: "--silent", Env: "MISE_SILENT"},
	{Key: FlagRunTool, Name: "tool", Flag: true, Spelling: "--tool", ValueName: "TOOL@VERSION"},
	{Key: FlagRunAllowEnv, Name: "allow-env", Flag: true, Spelling: "--allow-env", ValueName: "VAR"},
	{Key: FlagRunAllowNet, Name: "allow-net", Flag: true, Spelling: "--allow-net", ValueName: "HOST"},
	{Key: FlagRunAllowRead, Name: "allow-read", Flag: true, Spelling: "--allow-read", ValueName: "PATH"},
	{Key: FlagRunAllowWrite, Name: "allow-write", Flag: true, Spelling: "--allow-write", ValueName: "PATH"},
	{Key: FlagRunDenyAll, Name: "deny-all", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-all"},
	{Key: FlagRunDenyEnv, Name: "deny-env", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-env"},
	{Key: FlagRunDenyNet, Name: "deny-net", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-net"},
	{Key: FlagRunDenyRead, Name: "deny-read", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-read"},
	{Key: FlagRunDenyWrite, Name: "deny-write", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-write"},
	{Key: FlagRunFreshEnv, Name: "fresh-env", Flag: true, RequiresIfBoolean: true, Spelling: "--fresh-env"},
	{Key: FlagRunNoCache, Name: "no-cache", Flag: true, RequiresIfBoolean: true, Spelling: "--no-cache", Env: "MISE_TASK_REMOTE_NO_CACHE"},
	{Key: FlagRunNoDeps, Name: "no-deps", Flag: true, RequiresIfBoolean: true, Spelling: "--no-deps"},
	{Key: FlagRunNoTimings, Name: "no-timings", Flag: true, RequiresIfBoolean: true, Spelling: "--no-timings"},
	{Key: FlagRunSkipDeps, Name: "skip-deps", Flag: true, RequiresIfBoolean: true, Spelling: "--skip-deps", Env: "MISE_TASK_SKIP_DEPENDS"},
	{Key: FlagRunSkipTools, Name: "skip-tools", Flag: true, RequiresIfBoolean: true, Spelling: "--skip-tools"},
	{Key: FlagRunTaskCache, Name: "task-cache", Flag: true, Spelling: "--task-cache", ValueName: "TASK_CACHE", Choices: []string{"read-write", "read-only", "write-only", "off", "local-only"}, AcceptedChoices: []string{"read-write", "read-only", "write-only", "off", "local-only"}, Default: []string{"read-write"}, Env: "MISE_TASK_CACHE"},
	{Key: FlagRunTaskCacheExplain, Name: "task-cache-explain", Flag: true, RequiresIfBoolean: true, Spelling: "--task-cache-explain"},
	{Key: FlagRunTaskCacheExplainJson, Name: "task-cache-explain-json", Flag: true, RequiresIfBoolean: true, Spelling: "--task-cache-explain-json", Conflicts: []uint64{FlagRunTaskCacheExplain}, Requires: []uint64{FlagRunDryRun}},
	{Key: FlagRunTaskCacheStats, Name: "task-cache-stats", Flag: true, RequiresIfBoolean: true, Spelling: "--task-cache-stats", Conflicts: []uint64{FlagRunDryRun}},
	{Key: FlagRunTimeout, Name: "timeout", Flag: true, Spelling: "--timeout", ValueName: "TIMEOUT"},
	{Key: FlagRunTimings, Name: "timings", Flag: true, RequiresIfBoolean: true, Spelling: "--timings"},
	{},
	{Key: FlagSearchInteractive, Name: "interactive", Flag: true, RequiresIfBoolean: true, Spelling: "--interactive", Conflicts: []uint64{FlagSearchMatchType, FlagSearchNoHeader}},
	{Key: FlagSearchMatchType, Name: "match-type", Flag: true, Spelling: "--match-type", ValueName: "MATCH_TYPE", Choices: []string{"equal", "contains", "fuzzy"}, AcceptedChoices: []string{"equal", "contains", "fuzzy"}, Default: []string{"fuzzy"}},
	{Key: FlagSearchNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: ArgSearchName, Name: "NAME"},
	{},
	{Key: FlagSelfUpdateForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagSelfUpdateYes, Name: "yes", Flag: true, RequiresIfBoolean: true, Spelling: "--yes"},
	{Key: FlagSelfUpdateNoPlugins, Name: "no-plugins", Flag: true, RequiresIfBoolean: true, Spelling: "--no-plugins"},
	{Key: ArgSelfUpdateVersion, Name: "VERSION"},
	{},
	{Key: FlagSetEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "ENV", Overrides: []uint64{FlagSetGlobal, FlagSetFile}},
	{Key: FlagSetGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Overrides: []uint64{FlagSetFile, FlagSetEnv}},
	{Key: FlagSetAgeEncrypt, Name: "age-encrypt", Flag: true, RequiresIfBoolean: true, Spelling: "--age-encrypt", Requires: []uint64{ArgSetEnvVar}},
	{Key: FlagSetAgeKeyFile, Name: "age-key-file", Flag: true, Spelling: "--age-key-file", ValueName: "PATH", Requires: []uint64{FlagSetAgeEncrypt}},
	{Key: FlagSetAgeRecipient, Name: "age-recipient", Flag: true, Spelling: "--age-recipient", ValueName: "RECIPIENT", Requires: []uint64{FlagSetAgeEncrypt}},
	{Key: FlagSetAgeSshRecipient, Name: "age-ssh-recipient", Flag: true, Spelling: "--age-ssh-recipient", ValueName: "PATH_OR_PUBKEY", Requires: []uint64{FlagSetAgeEncrypt}},
	{Key: FlagSetComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagSetFile, Name: "file", Flag: true, Spelling: "--file", ValueName: "FILE"},
	{Key: FlagSetNoRedact, Name: "no-redact", Flag: true, RequiresIfBoolean: true, Spelling: "--no-redact"},
	{Key: FlagSetPrompt, Name: "prompt", Flag: true, RequiresIfBoolean: true, Spelling: "--prompt"},
	{Key: FlagSetRemove, Name: "remove", Flag: true, Spelling: "--remove", ValueName: "ENV_KEY"},
	{Key: FlagSetStdin, Name: "stdin", Flag: true, RequiresIfBoolean: true, Spelling: "--stdin", Conflicts: []uint64{FlagSetPrompt}, Requires: []uint64{ArgSetEnvVar}},
	{Key: ArgSetEnvVar, Name: "ENV_VAR"},
	{},
	{Key: FlagSettingsAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagSettingsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagSettingsLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagSettingsToml, Name: "toml", Flag: true, RequiresIfBoolean: true, Spelling: "--toml"},
	{Key: FlagSettingsComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagSettingsJsonExtended, Name: "json-extended", Flag: true, RequiresIfBoolean: true, Spelling: "--json-extended"},
	{Key: ArgSettingsSetting, Name: "SETTING"},
	{Key: ArgSettingsValue, Name: "VALUE", Conflicts: []uint64{FlagSettingsAll}},
	{},
	{Key: FlagSettingsAddLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: ArgSettingsAddSetting, Name: "SETTING", Required: true},
	{Key: ArgSettingsAddValue, Name: "VALUE"},
	{},
	{Key: FlagSettingsGetLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: ArgSettingsGetSetting, Name: "SETTING", Required: true},
	{},
	{Key: FlagSettingsLsAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagSettingsLsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagSettingsLsLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagSettingsLsToml, Name: "toml", Flag: true, RequiresIfBoolean: true, Spelling: "--toml"},
	{Key: FlagSettingsLsComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagSettingsLsJsonExtended, Name: "json-extended", Flag: true, RequiresIfBoolean: true, Spelling: "--json-extended"},
	{Key: ArgSettingsLsSetting, Name: "SETTING"},
	{},
	{Key: FlagSettingsSetLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: ArgSettingsSetSetting, Name: "SETTING", Required: true},
	{Key: ArgSettingsSetValue, Name: "VALUE"},
	{},
	{Key: FlagSettingsUnsetLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: ArgSettingsUnsetKey, Name: "KEY", Required: true},
	{},
	{Key: FlagShellJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagShellUnset, Name: "unset", Flag: true, RequiresIfBoolean: true, Spelling: "--unset"},
	{Key: FlagShellRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw", Overrides: []uint64{FlagShellJobs}},
	{Key: ArgShellToolVersion, Name: "TOOL@VERSION", Required: true},
	{},
	{Key: FlagShellAliasNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{},
	{Key: ArgShellAliasGetShellAlias, Name: "shell_alias", Required: true},
	{},
	{Key: FlagShellAliasLsNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{},
	{Key: ArgShellAliasSetShellAlias, Name: "shell_alias", Required: true},
	{Key: ArgShellAliasSetCommand, Name: "COMMAND"},
	{},
	{Key: ArgShellAliasUnsetShellAlias, Name: "shell_alias", Required: true},
	{},
	{},
	{},
	{Key: FlagSyncNodeBrew, Name: "brew", Flag: true, RequiresIfBoolean: true, Spelling: "--brew"},
	{Key: FlagSyncNodeNodenv, Name: "nodenv", Flag: true, RequiresIfBoolean: true, Spelling: "--nodenv"},
	{Key: FlagSyncNodeNvm, Name: "nvm", Flag: true, RequiresIfBoolean: true, Spelling: "--nvm"},
	{},
	{Key: FlagSyncPythonPyenv, Name: "pyenv", Flag: true, RequiresIfBoolean: true, Spelling: "--pyenv"},
	{Key: FlagSyncPythonUv, Name: "uv", Flag: true, RequiresIfBoolean: true, Spelling: "--uv"},
	{},
	{Key: FlagSyncRubyBrew, Name: "brew", Flag: true, Required: true, RequiresIfBoolean: true, Spelling: "--brew"},
	{},
	{Key: FlagTasksGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Overrides: []uint64{FlagTasksLocal}},
	{Key: FlagTasksJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagTasksLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local", Overrides: []uint64{FlagTasksGlobal}},
	{Key: FlagTasksExtended, Name: "extended", Flag: true, RequiresIfBoolean: true, Spelling: "--extended"},
	{Key: FlagTasksAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagTasksComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagTasksHidden, Name: "hidden", Flag: true, RequiresIfBoolean: true, Spelling: "--hidden"},
	{Key: FlagTasksNameOnly, Name: "name-only", Flag: true, RequiresIfBoolean: true, Spelling: "--name-only", Conflicts: []uint64{FlagTasksJson, FlagTasksExtended, FlagTasksUsage}},
	{Key: FlagTasksNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: FlagTasksSort, Name: "sort", Flag: true, Spelling: "--sort", ValueName: "COLUMN", Choices: []string{"name", "alias", "description", "source"}, AcceptedChoices: []string{"name", "alias", "description", "source"}},
	{Key: FlagTasksSortOrder, Name: "sort-order", Flag: true, Spelling: "--sort-order", ValueName: "SORT_ORDER", Choices: []string{"asc", "desc"}, AcceptedChoices: []string{"asc", "desc"}},
	{Key: FlagTasksUsage, Name: "usage", Flag: true, RequiresIfBoolean: true, Spelling: "--usage"},
	{Key: ArgTasksTask, Name: "TASK"},
	{},
	{Key: FlagTasksAddAlias, Name: "alias", Flag: true, Spelling: "--alias", ValueName: "ALIAS"},
	{Key: FlagTasksAddDepends, Name: "depends", Flag: true, Spelling: "--depends", ValueName: "DEPENDS"},
	{Key: FlagTasksAddDir, Name: "dir", Flag: true, Spelling: "--dir", ValueName: "DIR"},
	{Key: FlagTasksAddFile, Name: "file", Flag: true, RequiresIfBoolean: true, Spelling: "--file"},
	{Key: FlagTasksAddHide, Name: "hide", Flag: true, RequiresIfBoolean: true, Spelling: "--hide"},
	{Key: FlagTasksAddQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet"},
	{Key: FlagTasksAddRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw"},
	{Key: FlagTasksAddSources, Name: "sources", Flag: true, Spelling: "--sources", ValueName: "SOURCES"},
	{Key: FlagTasksAddWaitFor, Name: "wait-for", Flag: true, Spelling: "--wait-for", ValueName: "WAIT_FOR"},
	{Key: FlagTasksAddDependsPost, Name: "depends-post", Flag: true, Spelling: "--depends-post", ValueName: "DEPENDS_POST"},
	{Key: FlagTasksAddDescription, Name: "description", Flag: true, Spelling: "--description", ValueName: "DESCRIPTION"},
	{Key: FlagTasksAddOutputs, Name: "outputs", Flag: true, Spelling: "--outputs", ValueName: "OUTPUTS"},
	{Key: FlagTasksAddRunWindows, Name: "run-windows", Flag: true, Spelling: "--run-windows", ValueName: "RUN_WINDOWS"},
	{Key: FlagTasksAddShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagTasksAddSilent, Name: "silent", Flag: true, RequiresIfBoolean: true, Spelling: "--silent"},
	{Key: ArgTasksAddTask, Name: "TASK", Required: true},
	{Key: ArgTasksAddRun, Name: "RUN"},
	{},
	{Key: FlagTasksDepsCompact, Name: "compact", Flag: true, RequiresIfBoolean: true, Spelling: "--compact", Conflicts: []uint64{FlagTasksDepsDot}},
	{Key: FlagTasksDepsDot, Name: "dot", Flag: true, RequiresIfBoolean: true, Spelling: "--dot"},
	{Key: FlagTasksDepsHidden, Name: "hidden", Flag: true, RequiresIfBoolean: true, Spelling: "--hidden"},
	{Key: ArgTasksDepsTasks, Name: "TASKS"},
	{},
	{Key: FlagTasksEditPath, Name: "path", Flag: true, RequiresIfBoolean: true, Spelling: "--path"},
	{Key: ArgTasksEditTask, Name: "TASK", Required: true},
	{},
	{Key: FlagTasksGraphJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagTasksGraphExplain, Name: "explain", Flag: true, RequiresIfBoolean: true, Spelling: "--explain", Conflicts: []uint64{FlagTasksGraphJson}},
	{Key: FlagTasksGraphNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{},
	{Key: FlagTasksInfoJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: ArgTasksInfoTask, Name: "TASK", Required: true},
	{},
	{Key: FlagTasksLsGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Overrides: []uint64{FlagTasksLsLocal}},
	{Key: FlagTasksLsJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagTasksLsLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local", Overrides: []uint64{FlagTasksLsGlobal}},
	{Key: FlagTasksLsExtended, Name: "extended", Flag: true, RequiresIfBoolean: true, Spelling: "--extended"},
	{Key: FlagTasksLsAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagTasksLsComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagTasksLsHidden, Name: "hidden", Flag: true, RequiresIfBoolean: true, Spelling: "--hidden"},
	{Key: FlagTasksLsNameOnly, Name: "name-only", Flag: true, RequiresIfBoolean: true, Spelling: "--name-only", Conflicts: []uint64{FlagTasksLsJson, FlagTasksLsExtended, FlagTasksLsUsage}},
	{Key: FlagTasksLsNoHeader, Name: "no-header", Flag: true, RequiresIfBoolean: true, Spelling: "--no-header"},
	{Key: FlagTasksLsSort, Name: "sort", Flag: true, Spelling: "--sort", ValueName: "COLUMN", Choices: []string{"name", "alias", "description", "source"}, AcceptedChoices: []string{"name", "alias", "description", "source"}},
	{Key: FlagTasksLsSortOrder, Name: "sort-order", Flag: true, Spelling: "--sort-order", ValueName: "SORT_ORDER", Choices: []string{"asc", "desc"}, AcceptedChoices: []string{"asc", "desc"}},
	{Key: FlagTasksLsUsage, Name: "usage", Flag: true, RequiresIfBoolean: true, Spelling: "--usage"},
	{},
	{Key: FlagTasksRunAffected, Name: "affected", Flag: true, RequiresIfBoolean: true, Spelling: "--affected"},
	{Key: FlagTasksRunAffectedBase, Name: "affected-base", Flag: true, Spelling: "--affected-base", ValueName: "REV", Requires: []uint64{FlagTasksRunAffected}},
	{Key: FlagTasksRunAffectedExplain, Name: "affected-explain", Flag: true, RequiresIfBoolean: true, Spelling: "--affected-explain", Conflicts: []uint64{FlagTasksRunAffectedJson}, Requires: []uint64{FlagTasksRunAffected}},
	{Key: FlagTasksRunAffectedHead, Name: "affected-head", Flag: true, Spelling: "--affected-head", ValueName: "REV", Requires: []uint64{FlagTasksRunAffected}},
	{Key: FlagTasksRunAffectedJson, Name: "affected-json", Flag: true, RequiresIfBoolean: true, Spelling: "--affected-json", Conflicts: []uint64{FlagTasksRunAffectedExplain}, Requires: []uint64{FlagTasksRunAffected}},
	{Key: FlagTasksRunAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{ArgTasksRunTask, FlagTasksRunAffected}},
	{Key: FlagTasksRunContinueOnError, Name: "continue-on-error", Flag: true, RequiresIfBoolean: true, Spelling: "--continue-on-error"},
	{Key: FlagTasksRunCd, Name: "cd", Flag: true, Spelling: "--cd", ValueName: "CD"},
	{Key: FlagTasksRunForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force"},
	{Key: FlagTasksRunJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagTasksRunDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagTasksRunOutput, Name: "output", Flag: true, Spelling: "--output", ValueName: "OUTPUT", Env: "MISE_TASK_OUTPUT"},
	{Key: FlagTasksRunQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet", Env: "MISE_QUIET"},
	{Key: FlagTasksRunRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw"},
	{Key: FlagTasksRunShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagTasksRunSilent, Name: "silent", Flag: true, RequiresIfBoolean: true, Spelling: "--silent", Env: "MISE_SILENT"},
	{Key: FlagTasksRunTool, Name: "tool", Flag: true, Spelling: "--tool", ValueName: "TOOL@VERSION"},
	{Key: FlagTasksRunAllowEnv, Name: "allow-env", Flag: true, Spelling: "--allow-env", ValueName: "VAR"},
	{Key: FlagTasksRunAllowNet, Name: "allow-net", Flag: true, Spelling: "--allow-net", ValueName: "HOST"},
	{Key: FlagTasksRunAllowRead, Name: "allow-read", Flag: true, Spelling: "--allow-read", ValueName: "PATH"},
	{Key: FlagTasksRunAllowWrite, Name: "allow-write", Flag: true, Spelling: "--allow-write", ValueName: "PATH"},
	{Key: FlagTasksRunDenyAll, Name: "deny-all", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-all"},
	{Key: FlagTasksRunDenyEnv, Name: "deny-env", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-env"},
	{Key: FlagTasksRunDenyNet, Name: "deny-net", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-net"},
	{Key: FlagTasksRunDenyRead, Name: "deny-read", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-read"},
	{Key: FlagTasksRunDenyWrite, Name: "deny-write", Flag: true, RequiresIfBoolean: true, Spelling: "--deny-write"},
	{Key: FlagTasksRunFreshEnv, Name: "fresh-env", Flag: true, RequiresIfBoolean: true, Spelling: "--fresh-env"},
	{Key: FlagTasksRunNoCache, Name: "no-cache", Flag: true, RequiresIfBoolean: true, Spelling: "--no-cache", Env: "MISE_TASK_REMOTE_NO_CACHE"},
	{Key: FlagTasksRunNoDeps, Name: "no-deps", Flag: true, RequiresIfBoolean: true, Spelling: "--no-deps"},
	{Key: FlagTasksRunNoTimings, Name: "no-timings", Flag: true, RequiresIfBoolean: true, Spelling: "--no-timings"},
	{Key: FlagTasksRunSkipDeps, Name: "skip-deps", Flag: true, RequiresIfBoolean: true, Spelling: "--skip-deps", Env: "MISE_TASK_SKIP_DEPENDS"},
	{Key: FlagTasksRunSkipTools, Name: "skip-tools", Flag: true, RequiresIfBoolean: true, Spelling: "--skip-tools"},
	{Key: FlagTasksRunTaskCache, Name: "task-cache", Flag: true, Spelling: "--task-cache", ValueName: "TASK_CACHE", Choices: []string{"read-write", "read-only", "write-only", "off", "local-only"}, AcceptedChoices: []string{"read-write", "read-only", "write-only", "off", "local-only"}, Default: []string{"read-write"}, Env: "MISE_TASK_CACHE"},
	{Key: FlagTasksRunTaskCacheExplain, Name: "task-cache-explain", Flag: true, RequiresIfBoolean: true, Spelling: "--task-cache-explain"},
	{Key: FlagTasksRunTaskCacheExplainJson, Name: "task-cache-explain-json", Flag: true, RequiresIfBoolean: true, Spelling: "--task-cache-explain-json", Conflicts: []uint64{FlagTasksRunTaskCacheExplain}, Requires: []uint64{FlagTasksRunDryRun}},
	{Key: FlagTasksRunTaskCacheStats, Name: "task-cache-stats", Flag: true, RequiresIfBoolean: true, Spelling: "--task-cache-stats", Conflicts: []uint64{FlagTasksRunDryRun}},
	{Key: FlagTasksRunTimeout, Name: "timeout", Flag: true, Spelling: "--timeout", ValueName: "TIMEOUT"},
	{Key: FlagTasksRunTimings, Name: "timings", Flag: true, RequiresIfBoolean: true, Spelling: "--timings"},
	{Key: ArgTasksRunTask, Name: "TASK"},
	{Key: ArgTasksRunArgs, Name: "ARGS"},
	{Key: ArgTasksRunArgsLast, Name: "ARGS_LAST"},
	{},
	{Key: FlagTasksValidateErrorsOnly, Name: "errors-only", Flag: true, RequiresIfBoolean: true, Spelling: "--errors-only"},
	{Key: FlagTasksValidateJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: ArgTasksValidateTasks, Name: "TASKS"},
	{},
	{Key: FlagTestToolAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{ArgTestToolTools, FlagTestToolAllConfig}},
	{Key: FlagTestToolJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_TEST_TOOL_JOBS"},
	{Key: FlagTestToolAllConfig, Name: "all-config", Flag: true, RequiresIfBoolean: true, Spelling: "--all-config", Conflicts: []uint64{ArgTestToolTools, FlagTestToolAll}},
	{Key: FlagTestToolIncludeNonDefined, Name: "include-non-defined", Flag: true, RequiresIfBoolean: true, Spelling: "--include-non-defined"},
	{Key: FlagTestToolRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw", Overrides: []uint64{FlagTestToolJobs}},
	{Key: ArgTestToolTools, Name: "TOOLS", RequiredUnless: []uint64{FlagTestToolAll, FlagTestToolAllConfig}},
	{},
	{},
	{Key: FlagTokenForgejoUnmask, Name: "unmask", Flag: true, RequiresIfBoolean: true, Spelling: "--unmask"},
	{Key: ArgTokenForgejoHost, Name: "HOST", Default: []string{"codeberg.org"}},
	{},
	{Key: FlagTokenGithubOauth, Name: "oauth", Flag: true, RequiresIfBoolean: true, Spelling: "--oauth"},
	{Key: FlagTokenGithubRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw"},
	{Key: FlagTokenGithubRefresh, Name: "refresh", Flag: true, RequiresIfBoolean: true, Spelling: "--refresh", Requires: []uint64{FlagTokenGithubOauth}},
	{Key: FlagTokenGithubUnmask, Name: "unmask", Flag: true, RequiresIfBoolean: true, Spelling: "--unmask"},
	{Key: ArgTokenGithubHost, Name: "HOST", Default: []string{"github.com"}},
	{},
	{Key: FlagTokenGitlabUnmask, Name: "unmask", Flag: true, RequiresIfBoolean: true, Spelling: "--unmask"},
	{Key: ArgTokenGitlabHost, Name: "HOST", Default: []string{"gitlab.com"}},
	{},
	{Key: FlagToolJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{Key: FlagToolActive, Name: "active", Flag: true, RequiresIfBoolean: true, Spelling: "--active"},
	{Key: FlagToolBackend, Name: "backend", Flag: true, RequiresIfBoolean: true, Spelling: "--backend"},
	{Key: FlagToolConfigSource, Name: "config-source", Flag: true, RequiresIfBoolean: true, Spelling: "--config-source"},
	{Key: FlagToolDescription, Name: "description", Flag: true, RequiresIfBoolean: true, Spelling: "--description"},
	{Key: FlagToolInstalled, Name: "installed", Flag: true, RequiresIfBoolean: true, Spelling: "--installed"},
	{Key: FlagToolRequested, Name: "requested", Flag: true, RequiresIfBoolean: true, Spelling: "--requested"},
	{Key: FlagToolToolOptions, Name: "tool-options", Flag: true, RequiresIfBoolean: true, Spelling: "--tool-options"},
	{Key: ArgToolTool, Name: "TOOL", Required: true},
	{},
	{Key: ArgToolStubFile, Name: "FILE", Required: true},
	{Key: ArgToolStubArgs, Name: "ARGS"},
	{},
	{Key: FlagTrustAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all", Conflicts: []uint64{FlagTrustIgnore, FlagTrustUntrust}},
	{Key: FlagTrustIgnore, Name: "ignore", Flag: true, RequiresIfBoolean: true, Spelling: "--ignore", Conflicts: []uint64{FlagTrustUntrust}},
	{Key: FlagTrustShow, Name: "show", Flag: true, RequiresIfBoolean: true, Spelling: "--show"},
	{Key: FlagTrustUntrust, Name: "untrust", Flag: true, RequiresIfBoolean: true, Spelling: "--untrust"},
	{Key: ArgTrustConfigFile, Name: "CONFIG_FILE"},
	{},
	{Key: FlagUninstallAll, Name: "all", Flag: true, RequiresIfBoolean: true, Spelling: "--all"},
	{Key: FlagUninstallDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagUninstallDryRunCode, Name: "dry-run-code", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run-code"},
	{Key: ArgUninstallInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", RequiredUnless: []uint64{FlagUninstallAll}},
	{},
	{Key: FlagUnsetFile, Name: "file", Flag: true, Spelling: "--file", ValueName: "FILE"},
	{Key: FlagUnsetGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Overrides: []uint64{FlagUnsetFile}},
	{Key: ArgUnsetEnvKey, Name: "ENV_KEY"},
	{},
	{Key: ArgUntrustConfigFile, Name: "CONFIG_FILE"},
	{},
	{Key: FlagUnuseEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "ENV", Overrides: []uint64{FlagUnuseGlobal, FlagUnusePath}},
	{Key: FlagUnuseGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Overrides: []uint64{FlagUnusePath, FlagUnuseEnv}},
	{Key: FlagUnusePath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Overrides: []uint64{FlagUnuseGlobal, FlagUnuseEnv}},
	{Key: FlagUnuseNoPrune, Name: "no-prune", Flag: true, RequiresIfBoolean: true, Spelling: "--no-prune"},
	{Key: ArgUnuseInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION", Required: true},
	{},
	{Key: FlagUpgradeBump, Name: "bump", Flag: true, RequiresIfBoolean: true, Spelling: "--bump"},
	{Key: FlagUpgradeInteractive, Name: "interactive", Flag: true, RequiresIfBoolean: true, Spelling: "--interactive", Conflicts: []uint64{ArgUpgradeInstalledToolVersion}},
	{Key: FlagUpgradeJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagUpgradeL, Name: "l", Flag: true, RequiresIfBoolean: true, Spelling: "-l"},
	{Key: FlagUpgradeDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagUpgradeExclude, Name: "exclude", Flag: true, Spelling: "--exclude", ValueName: "INSTALLED_TOOL"},
	{Key: FlagUpgradeDryRunCode, Name: "dry-run-code", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run-code"},
	{Key: FlagUpgradeInactive, Name: "inactive", Flag: true, RequiresIfBoolean: true, Spelling: "--inactive", Conflicts: []uint64{FlagUpgradeLocal}},
	{Key: FlagUpgradeLocal, Name: "local", Flag: true, RequiresIfBoolean: true, Spelling: "--local"},
	{Key: FlagUpgradeMinimumReleaseAge, Name: "minimum-release-age", Flag: true, Spelling: "--minimum-release-age", ValueName: "MINIMUM_RELEASE_AGE"},
	{Key: FlagUpgradeMonorepo, Name: "monorepo", Flag: true, RequiresIfBoolean: true, Spelling: "--monorepo"},
	{Key: FlagUpgradeNoPrune, Name: "no-prune", Flag: true, RequiresIfBoolean: true, Spelling: "--no-prune", Overrides: []uint64{FlagUpgradePrune}},
	{Key: FlagUpgradePrune, Name: "prune", Flag: true, RequiresIfBoolean: true, Spelling: "--prune", Overrides: []uint64{FlagUpgradeNoPrune}},
	{Key: FlagUpgradeRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw", Overrides: []uint64{FlagUpgradeJobs}},
	{Key: ArgUpgradeInstalledToolVersion, Name: "INSTALLED_TOOL@VERSION"},
	{},
	{},
	{Key: FlagUseEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "ENV", Overrides: []uint64{FlagUseGlobal, FlagUsePath}},
	{Key: FlagUseForce, Name: "force", Flag: true, RequiresIfBoolean: true, Spelling: "--force", Requires: []uint64{ArgUseToolVersion}},
	{Key: FlagUseGlobal, Name: "global", Flag: true, RequiresIfBoolean: true, Spelling: "--global", Overrides: []uint64{FlagUsePath, FlagUseEnv}},
	{Key: FlagUseJobs, Name: "jobs", Flag: true, Spelling: "--jobs", ValueName: "JOBS", Env: "MISE_JOBS"},
	{Key: FlagUseDryRun, Name: "dry-run", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run"},
	{Key: FlagUsePath, Name: "path", Flag: true, Spelling: "--path", ValueName: "PATH", Overrides: []uint64{FlagUseGlobal, FlagUseEnv}},
	{Key: FlagUseDryRunCode, Name: "dry-run-code", Flag: true, RequiresIfBoolean: true, Spelling: "--dry-run-code"},
	{Key: FlagUseFuzzy, Name: "fuzzy", Flag: true, RequiresIfBoolean: true, Spelling: "--fuzzy", Overrides: []uint64{FlagUsePin}},
	{Key: FlagUseMinimumReleaseAge, Name: "minimum-release-age", Flag: true, Spelling: "--minimum-release-age", ValueName: "MINIMUM_RELEASE_AGE"},
	{Key: FlagUsePin, Name: "pin", Flag: true, RequiresIfBoolean: true, Spelling: "--pin", Overrides: []uint64{FlagUseFuzzy}},
	{Key: FlagUseRaw, Name: "raw", Flag: true, RequiresIfBoolean: true, Spelling: "--raw", Overrides: []uint64{FlagUseJobs}},
	{Key: FlagUseRemove, Name: "remove", Flag: true, Spelling: "--remove", ValueName: "TOOL"},
	{Key: ArgUseToolVersion, Name: "TOOL@VERSION"},
	{},
	{Key: FlagVersionJson, Name: "json", Flag: true, RequiresIfBoolean: true, Spelling: "--json"},
	{},
	{Key: FlagWatchTaskFlag, Name: "task-flag", Flag: true, Spelling: "--task-flag", ValueName: "TASK_FLAG"},
	{Key: FlagWatchGlob, Name: "glob", Flag: true, Spelling: "--glob", ValueName: "GLOB"},
	{Key: FlagWatchSkipDeps, Name: "skip-deps", Flag: true, RequiresIfBoolean: true, Spelling: "--skip-deps"},
	{Key: FlagWatchWatch, Name: "watch", Flag: true, Spelling: "--watch", ValueName: "PATH"},
	{Key: FlagWatchWatchNonRecursive, Name: "watch-non-recursive", Flag: true, Spelling: "--watch-non-recursive", ValueName: "PATH"},
	{Key: FlagWatchWatchFile, Name: "watch-file", Flag: true, Spelling: "--watch-file", ValueName: "PATH"},
	{Key: FlagWatchClear, Name: "clear", Flag: true, Spelling: "--clear", ValueName: "MODE", Choices: []string{"clear", "reset"}, AcceptedChoices: []string{"clear", "reset"}},
	{Key: FlagWatchOnBusyUpdate, Name: "on-busy-update", Flag: true, Spelling: "--on-busy-update", ValueName: "MODE", Choices: []string{"queue", "do-nothing", "restart", "signal"}, AcceptedChoices: []string{"queue", "do-nothing", "restart", "signal"}, Default: []string{"do-nothing"}},
	{Key: FlagWatchRestart, Name: "restart", Flag: true, RequiresIfBoolean: true, Spelling: "--restart", Conflicts: []uint64{FlagWatchOnBusyUpdate}},
	{Key: FlagWatchSignal, Name: "signal", Flag: true, Spelling: "--signal", ValueName: "SIGNAL", Conflicts: []uint64{FlagWatchRestart}},
	{Key: FlagWatchStopSignal, Name: "stop-signal", Flag: true, Spelling: "--stop-signal", ValueName: "SIGNAL"},
	{Key: FlagWatchStopTimeout, Name: "stop-timeout", Flag: true, Spelling: "--stop-timeout", ValueName: "TIMEOUT", Default: []string{"10s"}},
	{Key: FlagWatchMapSignal, Name: "map-signal", Flag: true, Spelling: "--map-signal", ValueName: "SIGNAL:SIGNAL"},
	{Key: FlagWatchDebounce, Name: "debounce", Flag: true, Spelling: "--debounce", ValueName: "TIMEOUT", Default: []string{"50ms"}},
	{Key: FlagWatchStdinQuit, Name: "stdin-quit", Flag: true, RequiresIfBoolean: true, Spelling: "--stdin-quit"},
	{Key: FlagWatchNoVcsIgnore, Name: "no-vcs-ignore", Flag: true, RequiresIfBoolean: true, Spelling: "--no-vcs-ignore"},
	{Key: FlagWatchNoProjectIgnore, Name: "no-project-ignore", Flag: true, RequiresIfBoolean: true, Spelling: "--no-project-ignore"},
	{Key: FlagWatchNoGlobalIgnore, Name: "no-global-ignore", Flag: true, RequiresIfBoolean: true, Spelling: "--no-global-ignore"},
	{Key: FlagWatchNoDefaultIgnore, Name: "no-default-ignore", Flag: true, RequiresIfBoolean: true, Spelling: "--no-default-ignore"},
	{Key: FlagWatchNoDiscoverIgnore, Name: "no-discover-ignore", Flag: true, RequiresIfBoolean: true, Spelling: "--no-discover-ignore"},
	{Key: FlagWatchIgnoreNothing, Name: "ignore-nothing", Flag: true, RequiresIfBoolean: true, Spelling: "--ignore-nothing"},
	{Key: FlagWatchPostpone, Name: "postpone", Flag: true, RequiresIfBoolean: true, Spelling: "--postpone"},
	{Key: FlagWatchDelayRun, Name: "delay-run", Flag: true, Spelling: "--delay-run", ValueName: "DURATION"},
	{Key: FlagWatchPoll, Name: "poll", Flag: true, Spelling: "--poll", ValueName: "INTERVAL"},
	{Key: FlagWatchShell, Name: "shell", Flag: true, Spelling: "--shell", ValueName: "SHELL"},
	{Key: FlagWatchN, Name: "n", Flag: true, RequiresIfBoolean: true, Spelling: "-n"},
	{Key: FlagWatchEmitEventsTo, Name: "emit-events-to", Flag: true, Spelling: "--emit-events-to", ValueName: "MODE", Choices: []string{"environment", "stdio", "file", "json-stdio", "json-file", "none"}, AcceptedChoices: []string{"environment", "stdio", "file", "json-stdio", "json-file", "none"}, Default: []string{"none"}},
	{Key: FlagWatchOnlyEmitEvents, Name: "only-emit-events", Flag: true, RequiresIfBoolean: true, Spelling: "--only-emit-events", Conflicts: []uint64{FlagWatchManual}},
	{Key: FlagWatchEnv, Name: "env", Flag: true, Spelling: "--env", ValueName: "KEY=VALUE"},
	{Key: FlagWatchWrapProcess, Name: "wrap-process", Flag: true, Spelling: "--wrap-process", ValueName: "MODE", Choices: []string{"group", "session", "none"}, AcceptedChoices: []string{"group", "session", "none"}},
	{Key: FlagWatchNotify, Name: "notify", Flag: true, RequiresIfBoolean: true, Spelling: "--notify"},
	{Key: FlagWatchColor, Name: "color", Flag: true, Spelling: "--color", ValueName: "MODE", Choices: []string{"auto", "always", "never"}, AcceptedChoices: []string{"auto", "always", "never"}, Default: []string{"auto"}},
	{Key: FlagWatchTimings, Name: "timings", Flag: true, RequiresIfBoolean: true, Spelling: "--timings"},
	{Key: FlagWatchQuiet, Name: "quiet", Flag: true, RequiresIfBoolean: true, Spelling: "--quiet"},
	{Key: FlagWatchBell, Name: "bell", Flag: true, RequiresIfBoolean: true, Spelling: "--bell"},
	{Key: FlagWatchProjectOrigin, Name: "project-origin", Flag: true, Spelling: "--project-origin", ValueName: "DIRECTORY"},
	{Key: FlagWatchWorkdir, Name: "workdir", Flag: true, Spelling: "--workdir", ValueName: "DIRECTORY"},
	{Key: FlagWatchExts, Name: "exts", Flag: true, Spelling: "--exts", ValueName: "EXTENSIONS"},
	{Key: FlagWatchFilter, Name: "filter", Flag: true, Spelling: "--filter", ValueName: "PATTERN"},
	{Key: FlagWatchFilterFile, Name: "filter-file", Flag: true, Spelling: "--filter-file", ValueName: "PATH", Env: "WATCHEXEC_FILTER_FILES"},
	{Key: FlagWatchFilterProg, Name: "filter-prog", Flag: true, Spelling: "--filter-prog", ValueName: "EXPRESSION"},
	{Key: FlagWatchIgnore, Name: "ignore", Flag: true, Spelling: "--ignore", ValueName: "PATTERN"},
	{Key: FlagWatchIgnoreFile, Name: "ignore-file", Flag: true, Spelling: "--ignore-file", ValueName: "PATH", Env: "WATCHEXEC_IGNORE_FILES"},
	{Key: FlagWatchFsEvents, Name: "fs-events", Flag: true, Spelling: "--fs-events", ValueName: "EVENTS", Choices: []string{"access", "create", "remove", "rename", "modify", "metadata"}, AcceptedChoices: []string{"access", "create", "remove", "rename", "modify", "metadata"}, Default: []string{"create,remove,rename,modify,metadata"}},
	{Key: FlagWatchNoMeta, Name: "no-meta", Flag: true, RequiresIfBoolean: true, Spelling: "--no-meta", Conflicts: []uint64{FlagWatchFsEvents}},
	{Key: FlagWatchPrintEvents, Name: "print-events", Flag: true, RequiresIfBoolean: true, Spelling: "--print-events"},
	{Key: FlagWatchManual, Name: "manual", Flag: true, RequiresIfBoolean: true, Spelling: "--manual"},
	{Key: ArgWatchTask, Name: "TASK"},
	{Key: ArgWatchArgs, Name: "ARGS"},
	{},
	{Key: ArgWhereToolVersion, Name: "TOOL@VERSION", Required: true},
	{Key: ArgWhereAsdfVersion, Name: "ASDF_VERSION"},
	{},
	{Key: FlagWhichTool, Name: "tool", Flag: true, Spelling: "--tool", ValueName: "TOOL@VERSION"},
	{Key: FlagWhichComplete, Name: "complete", Flag: true, RequiresIfBoolean: true, Spelling: "--complete"},
	{Key: FlagWhichPlugin, Name: "plugin", Flag: true, RequiresIfBoolean: true, Spelling: "--plugin", Conflicts: []uint64{FlagWhichVersion}},
	{Key: FlagWhichVersion, Name: "version", Flag: true, RequiresIfBoolean: true, Spelling: "--version", Conflicts: []uint64{FlagWhichPlugin}},
	{Key: ArgWhichBinName, Name: "BIN_NAME", RequiredUnless: []uint64{FlagWhichComplete}},
}

// HelpText is the third table, read only when a page is rendered. Neither the
// parser nor the post-binding rules touch it, and a CLI that never prints help
// does not carry it: Go's linker drops an unreferenced table whole.
//
// Indexed by key, like the others.
var HelpText = argv.HelpTable{
	{Key: CmdRoot},
	{Key: FlagContinueOnError, Hide: true, Short: "Continue running tasks even if one fails", Long: "Continue running tasks even if one fails"},
	{Key: FlagCd, ValueName: "DIR", ValueDemanded: true, Short: "Change directory before running command", Long: "Change directory before running command"},
	{Key: FlagEnv, Repeatable: true, ValueName: "ENV", ValueDemanded: true, Short: "Set the environment for loading `mise.<ENV>.toml`", Long: "Set the environment for loading `mise.<ENV>.toml`"},
	{Key: FlagForce, Hide: true, Short: "Force the operation", Long: "Force the operation"},
	{Key: FlagJobs, ValueName: "JOBS", ValueDemanded: true, Short: "How many jobs to run in parallel; values below 1 are treated as 1 [default: 8]", Long: "How many jobs to run in parallel; values below 1 are treated as 1 [default: 8]", Env: "MISE_JOBS"},
	{Key: FlagDryRun, Hide: true, Short: "Dry run, don't actually do anything", Long: "Dry run, don't actually do anything"},
	{Key: FlagProfile, Hide: true, Repeatable: true, ValueName: "PROFILE", ValueDemanded: true, Short: "Set the profile (environment)", Long: "Set the profile (environment)"},
	{Key: FlagQuiet, Short: "Suppress non-error messages", Long: "Suppress non-error messages"},
	{Key: FlagShell, Hide: true, ValueName: "SHELL", ValueDemanded: true},
	{Key: FlagTool, Hide: true, Repeatable: true, ValueName: "TOOL@VERSION", ValueDemanded: true, Short: "Tool(s) to run in addition to what is in mise.toml files e.g.: node@20 python@3.10", Long: "Tool(s) to run in addition to what is in mise.toml files\ne.g.: node@20 python@3.10", Env: "MISE_QUIET"},
	{Key: FlagVerbose, Repeatable: true, Short: "Show extra output (use -vv for even more)", Long: "Show extra output (use -vv for even more)"},
	{Key: FlagVersion, Hide: true},
	{Key: FlagYes, Short: "Answer yes to all confirmation prompts", Long: "Answer yes to all confirmation prompts"},
	{Key: FlagDebug, Hide: true, Short: "Sets log level to debug", Long: "Sets log level to debug"},
	{Key: FlagLogLevel, Hide: true, ValueName: "LEVEL", ValueDemanded: true, Choices: []string{"trace", "debug", "info", "warning", "error"}},
	{Key: FlagNoConfig, Short: "Do not load any config files", Long: "Do not load any config files\n\nCan also use `MISE_NO_CONFIG=1`"},
	{Key: FlagNoEnv, Short: "Do not load environment variables from config files", Long: "Do not load environment variables from config files\n\nCan also use `MISE_NO_ENV=1`"},
	{Key: FlagNoHooks, Short: "Do not execute hooks from config files", Long: "Do not execute hooks from config files\n\nCan also use `MISE_NO_HOOKS=1`"},
	{Key: FlagNoTimings, Hide: true, Short: "Hides elapsed time after each task completes", Long: "Hides elapsed time after each task completes\n\nDefault to always hide with `MISE_TASK_TIMINGS=0`"},
	{Key: FlagOutput, ValueName: "OUTPUT", ValueDemanded: true},
	{Key: FlagRaw, Short: "Read/write directly to stdin/stdout/stderr instead of by line", Long: "Read/write directly to stdin/stdout/stderr instead of by line"},
	{Key: FlagLocked, Short: "Require lockfile URLs to be present during installation", Long: "Require lockfile URLs to be present during installation\n\nFails if tools don't have pre-resolved URLs in the lockfile for the current platform. This prevents API calls to GitHub, aqua registry, etc. Can also be enabled via MISE_LOCKED=1 or settings.locked=true"},
	{Key: FlagSilent, Short: "Suppress all task output and mise non-error messages", Long: "Suppress all task output and mise non-error messages"},
	{Key: FlagTimings, Hide: true, Short: "Shows elapsed time after each task completes", Long: "Shows elapsed time after each task completes\n\nDefault to always show with `MISE_TASK_TIMINGS=1`"},
	{Key: FlagTrace, Hide: true, Short: "Sets log level to trace", Long: "Sets log level to trace"},
	{Key: ArgTask, Short: "Task to run", Long: "Task to run.\n\nShorthand for `mise tasks run <TASK>`."},
	{Key: ArgTaskArgs, Hide: true, Short: "Task arguments", Long: "Task arguments"},
	{Key: ArgTaskArgsLast, Hide: true},
	{Key: CmdActivate, Short: "Initializes mise in the current shell session", Long: "Initializes mise in the current shell session\n\nThis should go into your shell's rc file or login shell. Otherwise, it will only take effect in the current session. (e.g. ~/.zshrc, ~/.zprofile, ~/.zshenv, ~/.bashrc, ~/.bash_profile, ~/.profile, ~/.config/fish/config.fish, or $PROFILE for powershell)\n\nTypically, this can be added with something like the following:\n\n    echo 'eval \"$(mise activate zsh)\"' >> ~/.zshrc\n\nHowever, this requires that \"mise\" is in your PATH. If it is not, you need to specify the full path like this:\n\n    echo 'eval \"$(/path/to/mise activate zsh)\"' >> ~/.zshrc\n\nCustomize status output with `status` settings.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1meval \"$(mise activate bash)\"\x1b[22m\n    $ \x1b[1meval \"$(mise activate zsh)\"\x1b[22m\n    $ \x1b[1mmise activate fish | source\x1b[22m\n    $ \x1b[1mexecx($(mise activate xonsh))\x1b[22m\n    $ \x1b[1m(&mise activate pwsh) | Out-String | Invoke-Expression\x1b[22m\n"},
	{Key: FlagActivateQuiet, Short: "Suppress non-error messages", Long: "Suppress non-error messages"},
	{Key: FlagActivateShell, Hide: true, ValueName: "SHELL", ValueDemanded: true, Short: "Shell type to generate the script for", Long: "Shell type to generate the script for", Choices: []string{"bash", "elvish", "fish", "nu", "xonsh", "zsh", "pwsh"}},
	{Key: FlagActivateNoHookEnv, Short: "Do not automatically call hook-env", Long: "Do not automatically call hook-env\n\nThis can be helpful for debugging mise. If you run `eval \"$(mise activate --no-hook-env)\"`, then you can call `mise hook-env` manually which will output the env vars to stdout without actually modifying the environment. That way you can do things like `mise hook-env --trace` to get more information or just see the values that hook-env is outputting."},
	{Key: FlagActivateShims, Short: "Use shims instead of modifying PATH\nEffectively the same as:", Long: "Use shims instead of modifying PATH\nEffectively the same as:\n\n    PATH=\"$HOME/.local/share/mise/shims:$PATH\"\n\n`mise activate --shims` does not support all the features of `mise activate`.\nSee https://mise.jdx.dev/dev-tools/shims.html#shims-vs-path for more information"},
	{Key: FlagActivateStatus, Hide: true, Short: "Show \"mise: <TOOL>@<VERSION>\" message when changing directories", Long: "Show \"mise: <TOOL>@<VERSION>\" message when changing directories"},
	{Key: ArgActivateShellType, Short: "Shell type to generate the script for", Long: "Shell type to generate the script for", Choices: []string{"bash", "elvish", "fish", "nu", "xonsh", "zsh", "pwsh"}},
	{Key: CmdToolAlias, Short: "Manage tool version aliases."},
	{Key: FlagToolAliasTool, ValueName: "TOOL", ValueDemanded: true, Short: "Filter aliases by tool", Long: "Filter aliases by tool"},
	{Key: FlagToolAliasNoHeader, Short: "Don't show table header", Long: "Don't show table header"},
	{Key: CmdToolAliasGet, Short: "Show an alias for a tool", Long: "Show an alias for a tool\n\nThis is the contents of a tool_alias.<TOOL> entry in ~/.config/mise/config.toml", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tool-alias get node lts-hydrogen\x1b[22m\n    20.0.0\n"},
	{Key: ArgToolAliasGetTool, Demanded: true, Short: "The tool to show the alias for", Long: "The tool to show the alias for"},
	{Key: ArgToolAliasGetAlias, Demanded: true, Short: "The alias to show", Long: "The alias to show"},
	{Key: CmdToolAliasLs, Short: "List tool version aliases\nShows the aliases that can be specified.\nThese can come from user config or from plugins in `bin/list-aliases`.", Long: "List tool version aliases\nShows the aliases that can be specified.\nThese can come from user config or from plugins in `bin/list-aliases`.\n\nFor user config, aliases are defined like the following in `~/.config/mise/config.toml`:\n\n    [tool_alias.node.versions]\n    lts = \"22.0.0\"", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tool-alias ls\x1b[22m\n    node  lts-jod      22\n"},
	{Key: FlagToolAliasLsNoHeader, Short: "Don't show table header", Long: "Don't show table header"},
	{Key: ArgToolAliasLsTool, Short: "Show aliases for <TOOL>", Long: "Show aliases for <TOOL>"},
	{Key: CmdToolAliasSet, Short: "Add/update an alias for a tool/backend", Long: "Add/update an alias for a tool/backend\n\nThis modifies the contents of ~/.config/mise/config.toml", VisibleAliases: []string{"add", "create"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tool-alias set maven asdf:mise-plugins/mise-maven\x1b[22m\n    $ \x1b[1mmise tool-alias set node lts-jod 22.0.0\x1b[22m\n"},
	{Key: ArgToolAliasSetTool, Demanded: true, Short: "The tool/backend to set the alias for", Long: "The tool/backend to set the alias for"},
	{Key: ArgToolAliasSetAlias, Demanded: true, Short: "The alias to set", Long: "The alias to set"},
	{Key: ArgToolAliasSetValue, Short: "The value to set the alias to", Long: "The value to set the alias to"},
	{Key: CmdToolAliasUnset, Short: "Clears an alias for a tool/backend", Long: "Clears an alias for a tool/backend\n\nThis modifies the contents of ~/.config/mise/config.toml", VisibleAliases: []string{"rm", "remove", "delete", "del"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tool-alias unset maven\x1b[22m\n    $ \x1b[1mmise tool-alias unset node lts-jod\x1b[22m\n"},
	{Key: ArgToolAliasUnsetTool, Demanded: true, Short: "The tool/backend to remove the alias from", Long: "The tool/backend to remove the alias from"},
	{Key: ArgToolAliasUnsetAlias, Short: "The alias to remove", Long: "The alias to remove"},
	{Key: CmdAsdf, Hide: true, Short: "[internal] simulates asdf for plugins that call \"asdf\" internally"},
	{Key: ArgAsdfArgs, Short: "all arguments", Long: "all arguments"},
	{Key: CmdBackends, Short: "Manage backends", AfterLongHelp: "\x1b[1m\x1b[4mDeprecation:\x1b[22m\x1b[24m\n\nThe `mise b` alias is deprecated and will be removed in mise 2027.4.0.\nUse `mise backends` instead.\n"},
	{Key: CmdBackendsLs, Short: "List built-in backends", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise backends ls\x1b[22m\n    aqua\n    asdf\n    cargo\n    core\n    dotnet\n    gem\n    go\n    npm\n    pipx\n    spm\n    ubi\n    vfox\n"},
	{Key: CmdBinPaths, Short: "List all the active runtime bin paths"},
	{Key: FlagBinPathsBinNames, Short: "Output executable names instead of bin directories", Long: "Output executable names instead of bin directories"},
	{Key: FlagBinPathsJson, Short: "Output executable entries in JSON format (implies --bin-names)", Long: "Output executable entries in JSON format (implies --bin-names)"},
	{Key: ArgBinPathsToolVersion, Short: "Tool(s) to look up\ne.g.: ruby@3", Long: "Tool(s) to look up\ne.g.: ruby@3"},
	{Key: CmdBootstrap, Short: "Set up a machine for the current config in one command", Long: "Set up a machine for the current config in one command\n\nRuns the bootstrap steps for the current config in order:\n\n0. `mise bootstrap accounts apply` — converge `[bootstrap.users]` and\n   `[bootstrap.groups]` (Linux)\n1. `mise bootstrap plugins apply` — install `[bootstrap.plugins]`\n   1.7. `[bootstrap.hooks.pre-packages]` — optional setup hook\n2. Install built-in-manager entries from `[bootstrap.packages]` 3. `mise bootstrap files apply` — converge `[bootstrap.files]` and\n   `[bootstrap.directories]`\n4. `mise bootstrap services apply` — converge `[bootstrap.services]`\n   systemd system services (Linux)\n5. `mise bootstrap firewall apply` — converge `[bootstrap.linux.firewall]`\n   host firewall policy and rules (Linux)\n6. `mise bootstrap compose apply` — converge `[bootstrap.compose]`\n   Docker Compose projects\n7. `mise bootstrap repos apply` — clone/converge `[bootstrap.repos]`\n   surrounded by `pre-repos`/`post-repos` hooks\n8. `mise bootstrap dotfiles apply` — apply dotfiles from `[dotfiles]`\n   surrounded by `pre-dotfiles`/`post-dotfiles` hooks\n9. `mise bootstrap mise-shell-activate apply` — configure shell activation\n   from `[bootstrap.mise_shell_activate]`\n10. `mise bootstrap macos defaults apply` — write\n    `[bootstrap.macos.defaults]` entries (macOS)\n    surrounded by `pre-defaults`/`post-defaults` hooks\n11. `mise bootstrap macos launchd-agents apply` — install/load\n    `[bootstrap.macos.launchd.agents]`\n12. `mise bootstrap linux systemd-units apply` — install/start\n    `[bootstrap.linux.systemd.units]`\n13. `mise bootstrap user apply` — set `[bootstrap.user].login_shell`\n    (Unix)\n    surrounded by `pre-user`/`post-user` hooks\n14. `mise install` — install missing tools from `[tools]`\n    surrounded by `pre-tools`/`post-tools` hooks; package-plugin entries\n    from `[bootstrap.packages]` install afterward, followed by\n    `[bootstrap.hooks.post-packages]`\n15. `mise run bootstrap` — if a task named `bootstrap` is defined 16. `[bootstrap.hooks.final]` — optional final hook\n\nThe declarative steps converge — anything already in its desired state is skipped, so re-running is safe. The `bootstrap` task runs on every invocation; keep it idempotent. Use it for any project-specific setup that doesn't fit the declarative sections (seeding databases, auth flows, etc.) — it runs with the installed tools on PATH.\n\nUse `--skip <part>` to skip named parts, or `--only <part>` to run just named parts. Both flags can be repeated or comma-separated, but they cannot be used together.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap\x1b[22m                    # packages + repos + dotfiles + tools + bootstrap task\n    $ \x1b[1mmise bootstrap --force-dotfiles\x1b[22m   # replace conflicting dotfile targets\n    $ \x1b[1mmise bootstrap --skip tools,task\x1b[22m  # skip tool installation and the bootstrap task\n    $ \x1b[1mmise bootstrap --only tools\x1b[22m       # run just tool installation\n    $ \x1b[1mmise bootstrap status --missing\x1b[22m\n    $ \x1b[1mmise bootstrap packages apply --yes\x1b[22m\n    $ \x1b[1mmise bootstrap repos status\x1b[22m\n    $ \x1b[1mmise bootstrap repos apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status\x1b[22m\n    $ \x1b[1mmise bootstrap mise-shell-activate apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap macos defaults status\x1b[22m\n    $ \x1b[1mmise bootstrap macos launchd-agents apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap linux systemd-units apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap user apply --dry-run\x1b[22m\n"},
	{Key: FlagBootstrapDryRun, Short: "Print what would happen without installing anything", Long: "Print what would happen without installing anything"},
	{Key: FlagBootstrapYes, Short: "Skip confirmation prompts", Long: "Skip confirmation prompts"},
	{Key: FlagBootstrapForceDotfiles, Short: "Overwrite existing files that conflict with whole-file dotfile entries", Long: "Overwrite existing files that conflict with whole-file dotfile entries"},
	{Key: FlagBootstrapOnly, Repeatable: true, ValueName: "ONLY", ValueDemanded: true, Short: "Run only one or more bootstrap parts", Long: "Run only one or more bootstrap parts\n\nCan be passed multiple times or as a comma-separated list. Cannot be used with `--skip`.", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}},
	{Key: FlagBootstrapPromptSecrets, Short: "Prompt securely for missing bootstrap secret inputs", Long: "Prompt securely for missing bootstrap secret inputs"},
	{Key: FlagBootstrapSkip, Repeatable: true, ValueName: "SKIP", ValueDemanded: true, Short: "Skip one or more bootstrap parts", Long: "Skip one or more bootstrap parts\n\nCan be passed multiple times or as a comma-separated list.", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}},
	{Key: FlagBootstrapUpdate, Short: "Refresh package manager metadata and update configured repos", Long: "Refresh package manager metadata and update configured repos"},
	{Key: CmdBootstrapApplyAccountPlan, Hide: true},
	{Key: CmdBootstrapApplyServicePlan, Hide: true},
	{Key: CmdBootstrapApplyFirewallPlan, Hide: true},
	{Key: CmdBootstrapApplySystemPlan, Hide: true},
	{Key: CmdBootstrapInspectSystemFiles, Hide: true},
	{Key: CmdBootstrapInspectFirewallPlan, Hide: true},
	{Key: CmdBootstrapAccounts, Short: "Manage Linux users and groups from `[bootstrap.users]` and `[bootstrap.groups]`", SubcommandRequired: true},
	{Key: CmdBootstrapAccountsApply, Short: "Apply configured Linux users and groups"},
	{Key: FlagBootstrapAccountsApplyDryRun, Short: "Print what would change without changing anything", Long: "Print what would change without changing anything"},
	{Key: FlagBootstrapAccountsApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapAccountsStatus, Short: "Show configured Linux user and group state"},
	{Key: FlagBootstrapAccountsStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapAccountsStatusMissing, Short: "Exit with code 1 when any account is not converged", Long: "Exit with code 1 when any account is not converged"},
	{Key: CmdBootstrapCompose, Short: "Manage Docker Compose projects from `[bootstrap.compose]`", SubcommandRequired: true},
	{Key: CmdBootstrapComposeApply, Short: "Apply configured Docker Compose project state"},
	{Key: FlagBootstrapComposeApplyDryRun, Short: "Print what would change without changing anything", Long: "Print what would change without changing anything"},
	{Key: FlagBootstrapComposeApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapComposeStatus, Short: "Show configured Docker Compose project state"},
	{Key: FlagBootstrapComposeStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapComposeStatusMissing, Short: "Exit with code 1 when any Compose project is not converged", Long: "Exit with code 1 when any Compose project is not converged"},
	{Key: CmdBootstrapDotfiles, Short: "Manage dotfiles from `[dotfiles]`", SubcommandRequired: true},
	{Key: CmdBootstrapDotfilesAdd, Short: "Add or update dotfiles in `[dotfiles]`", Long: "Add or update dotfiles in `[dotfiles]`\n\nIf the target is already managed, this updates its source from the live target. Otherwise it creates a `[dotfiles]` entry and seeds the source under `dotfiles.root` unless `--source` is provided.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles add ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles add --mode copy ~/.config/starship.toml\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles add --source dotfiles/gitconfig ~/.gitconfig\x1b[22m\n"},
	{Key: FlagBootstrapDotfilesAddForce, Short: "Overwrite existing sources without prompting", Long: "Overwrite existing sources without prompting"},
	{Key: FlagBootstrapDotfilesAddGlobal, Short: "Write to the global config", Long: "Write to the global config"},
	{Key: FlagBootstrapDotfilesAddLocal, Short: "Write to the local config instead of the global config", Long: "Write to the local config instead of the global config"},
	{Key: FlagBootstrapDotfilesAddMode, ValueName: "MODE", ValueDemanded: true, Short: "Dotfile mode to write", Long: "Dotfile mode to write"},
	{Key: FlagBootstrapDotfilesAddDryRun, Short: "Print the config/source updates without writing anything", Long: "Print the config/source updates without writing anything"},
	{Key: FlagBootstrapDotfilesAddNoApply, Short: "Add the entry without applying it", Long: "Add the entry without applying it"},
	{Key: FlagBootstrapDotfilesAddPath, ValueName: "PATH", ValueDemanded: true, Short: "Write to this config file or directory", Long: "Write to this config file or directory"},
	{Key: FlagBootstrapDotfilesAddSource, ValueName: "PATH", ValueDemanded: true, Short: "Source path to use for a single target", Long: "Source path to use for a single target"},
	{Key: FlagBootstrapDotfilesAddYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgBootstrapDotfilesAddTarget, Demanded: true, Short: "Targets to add or update", Long: "Targets to add or update"},
	{Key: CmdBootstrapDotfilesApply, Short: "Apply dotfiles from `[dotfiles]`", Long: "Apply dotfiles from `[dotfiles]`\n\nApplies configured whole-file entries and edits that aren't in their desired state. Whole-file entries may symlink, copy, or render templates. Edit entries manage a marker-delimited block or a single line in a file mise doesn't otherwise own.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles apply\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles apply --force --yes\x1b[22m\n"},
	{Key: FlagBootstrapDotfilesApplyForce, Short: "Overwrite existing files that conflict with whole-file dotfile entries", Long: "Overwrite existing files that conflict with whole-file dotfile entries"},
	{Key: FlagBootstrapDotfilesApplyDryRun, Short: "Print the actions that would run without writing anything", Long: "Print the actions that would run without writing anything"},
	{Key: FlagBootstrapDotfilesApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgBootstrapDotfilesApplyTarget, Short: "Only apply these targets", Long: "Only apply these targets"},
	{Key: CmdBootstrapDotfilesEdit, Short: "Edit a managed dotfile source", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles edit ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles edit --apply ~/.config/starship.toml\x1b[22m\n"},
	{Key: FlagBootstrapDotfilesEditApply, Short: "Apply this target after the editor exits", Long: "Apply this target after the editor exits"},
	{Key: FlagBootstrapDotfilesEditMode, ValueName: "MODE", ValueDemanded: true, Short: "Dotfile mode to use if the target is not yet managed", Long: "Dotfile mode to use if the target is not yet managed"},
	{Key: FlagBootstrapDotfilesEditSource, ValueName: "PATH", ValueDemanded: true, Short: "Source path to use if the target is not yet managed", Long: "Source path to use if the target is not yet managed"},
	{Key: FlagBootstrapDotfilesEditYes, Short: "Skip the confirmation prompt when adding an unmanaged target", Long: "Skip the confirmation prompt when adding an unmanaged target"},
	{Key: ArgBootstrapDotfilesEditTarget, Demanded: true, Short: "Target to edit", Long: "Target to edit"},
	{Key: CmdBootstrapDotfilesStatus, Short: "Show the status of dotfiles from `[dotfiles]`", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles status\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status --json\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status --missing\x1b[22m # exit 1 if anything is out of sync\n"},
	{Key: FlagBootstrapDotfilesStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapDotfilesStatusMissing, Short: "Exit with code 1 if any configured dotfiles are not in their desired\nstate (missing, source missing, differs)", Long: "Exit with code 1 if any configured dotfiles are not in their desired\nstate (missing, source missing, differs)"},
	{Key: ArgBootstrapDotfilesStatusTarget, Short: "Only show these targets", Long: "Only show these targets"},
	{Key: CmdBootstrapDotfilesUnapply, Short: "Remove dotfiles applied from `[dotfiles]`", Long: "Remove dotfiles applied from `[dotfiles]`\n\nRemoves configured whole-file entries and edits while preserving files mise cannot identify as managed. Modified copies, templates, and plain-line edits require `--force`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles unapply\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles unapply ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles unapply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles unapply --force --yes\x1b[22m\n"},
	{Key: FlagBootstrapDotfilesUnapplyForce, Short: "Remove modified or otherwise ambiguous managed files and lines", Long: "Remove modified or otherwise ambiguous managed files and lines"},
	{Key: FlagBootstrapDotfilesUnapplyDryRun, Short: "Print the actions that would run without writing anything", Long: "Print the actions that would run without writing anything"},
	{Key: FlagBootstrapDotfilesUnapplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgBootstrapDotfilesUnapplyTarget, Short: "Only unapply these targets", Long: "Only unapply these targets"},
	{Key: CmdBootstrapFiles, Short: "Manage privileged files and directories from `[bootstrap.files]` and `[bootstrap.directories]`", SubcommandRequired: true},
	{Key: CmdBootstrapFilesApply, Short: "Apply configured privileged files and directories"},
	{Key: FlagBootstrapFilesApplyDryRun, Short: "Print what would change without changing anything", Long: "Print what would change without changing anything"},
	{Key: FlagBootstrapFilesApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: FlagBootstrapFilesApplyPromptSecrets, Short: "Prompt securely for missing bootstrap secret inputs", Long: "Prompt securely for missing bootstrap secret inputs"},
	{Key: CmdBootstrapFilesStatus, Short: "Show configured privileged file and directory state"},
	{Key: FlagBootstrapFilesStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapFilesStatusMissing, Short: "Exit with code 1 when any resource is not converged", Long: "Exit with code 1 when any resource is not converged"},
	{Key: FlagBootstrapFilesStatusPromptSecrets, Short: "Prompt securely for missing bootstrap secret inputs", Long: "Prompt securely for missing bootstrap secret inputs"},
	{Key: CmdBootstrapFirewall, Short: "Manage the Linux host firewall from `[bootstrap.linux.firewall]`", SubcommandRequired: true},
	{Key: CmdBootstrapFirewallApply, Short: "Apply the configured Linux host firewall"},
	{Key: FlagBootstrapFirewallApplyDryRun, Short: "Print what would change without changing anything", Long: "Print what would change without changing anything"},
	{Key: FlagBootstrapFirewallApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapFirewallStatus, Short: "Show configured Linux host firewall state"},
	{Key: FlagBootstrapFirewallStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapFirewallStatusMissing, Short: "Exit with code 1 when the firewall is not converged", Long: "Exit with code 1 when the firewall is not converged"},
	{Key: CmdBootstrapLaunchd, Hide: true, Short: "Manage macOS LaunchAgents from `[bootstrap.macos.launchd.agents]`", SubcommandRequired: true},
	{Key: CmdBootstrapLaunchdApply},
	{Key: FlagBootstrapLaunchdApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapLaunchdApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapLaunchdStatus},
	{Key: FlagBootstrapLaunchdStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapLaunchdStatusMissing, Short: "Exit with code 1 if any configured LaunchAgent is not in its desired state", Long: "Exit with code 1 if any configured LaunchAgent is not in its desired state"},
	{Key: CmdBootstrapLinux, Short: "Manage Linux bootstrap config from `[bootstrap.linux]`", SubcommandRequired: true},
	{Key: CmdBootstrapLinuxSystemdUnits, Short: "Manage systemd user services from `[bootstrap.linux.systemd.units]`", SubcommandRequired: true},
	{Key: CmdBootstrapLinuxSystemdUnitsApply},
	{Key: FlagBootstrapLinuxSystemdUnitsApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapLinuxSystemdUnitsApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapLinuxSystemdUnitsStatus},
	{Key: FlagBootstrapLinuxSystemdUnitsStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapLinuxSystemdUnitsStatusMissing, Short: "Exit with code 1 if any configured systemd user service is not in its desired state", Long: "Exit with code 1 if any configured systemd user service is not in its desired state"},
	{Key: CmdBootstrapMacos, Short: "Manage macOS bootstrap config from `[bootstrap.macos]`", SubcommandRequired: true},
	{Key: CmdBootstrapMacosDefaults, Short: "Manage macOS defaults from `[bootstrap.macos.defaults]`", SubcommandRequired: true},
	{Key: CmdBootstrapMacosDefaultsApply},
	{Key: FlagBootstrapMacosDefaultsApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapMacosDefaultsApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapMacosDefaultsStatus},
	{Key: FlagBootstrapMacosDefaultsStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapMacosDefaultsStatusMissing, Short: "Exit with code 1 if any configured defaults are not in their desired state", Long: "Exit with code 1 if any configured defaults are not in their desired state"},
	{Key: CmdBootstrapMacosLaunchdAgents, Short: "Manage macOS LaunchAgents from `[bootstrap.macos.launchd.agents]`", SubcommandRequired: true},
	{Key: CmdBootstrapMacosLaunchdAgentsApply},
	{Key: FlagBootstrapMacosLaunchdAgentsApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapMacosLaunchdAgentsApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapMacosLaunchdAgentsStatus},
	{Key: FlagBootstrapMacosLaunchdAgentsStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapMacosLaunchdAgentsStatusMissing, Short: "Exit with code 1 if any configured LaunchAgent is not in its desired state", Long: "Exit with code 1 if any configured LaunchAgent is not in its desired state"},
	{Key: CmdBootstrapMacosDefaults2, Hide: true, Short: "Manage macOS defaults from `[bootstrap.macos.defaults]`", SubcommandRequired: true},
	{Key: CmdBootstrapMacosDefaultsApply2},
	{Key: FlagBootstrapMacosDefaultsApplyDryRun2, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapMacosDefaultsApplyYes2, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapMacosDefaultsStatus2},
	{Key: FlagBootstrapMacosDefaultsStatusJson2, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapMacosDefaultsStatusMissing2, Short: "Exit with code 1 if any configured defaults are not in their desired state", Long: "Exit with code 1 if any configured defaults are not in their desired state"},
	{Key: CmdBootstrapMiseShellActivate, Short: "Manage mise shell activation from `[bootstrap.mise_shell_activate]`", SubcommandRequired: true},
	{Key: CmdBootstrapMiseShellActivateApply},
	{Key: FlagBootstrapMiseShellActivateApplyDryRun, Short: "Print the actions that would run without writing anything", Long: "Print the actions that would run without writing anything"},
	{Key: FlagBootstrapMiseShellActivateApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapMiseShellActivateStatus},
	{Key: FlagBootstrapMiseShellActivateStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapMiseShellActivateStatusMissing, Short: "Exit with code 1 if any configured shell activation is not in its desired state", Long: "Exit with code 1 if any configured shell activation is not in its desired state"},
	{Key: CmdBootstrapPackages, Short: "Manage bootstrap system packages from `[bootstrap.packages]`", SubcommandRequired: true},
	{Key: CmdBootstrapPackagesApply, Short: "Apply system packages from `[bootstrap.packages]`", Long: "Apply system packages from `[bootstrap.packages]`\n\nChecks which configured packages are missing and installs them with the system package manager. Built-in system managers may elevate with sudo when not running as root (see `system_packages.sudo`); package plugins never do.\n\nPackages can also be given explicitly in `manager:package` form (e.g. `apk:zlib-dev`, `apt:curl`, `brew:jq`); they are installed whether or not they appear in the config. Explicit packages and `--manager` scope the run to packages only. `install` is accepted as an alias for this command.", VisibleAliases: []string{"i"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages apply\x1b[22m\n    $ \x1b[1mmise bootstrap packages apply apk:zlib-dev apt:curl brew:jq brew-cask:firefox flatpak:org.mozilla.firefox flatpak-user:org.gnome.Builder mas:497799835\x1b[22m\n    $ \x1b[1mmise bootstrap packages apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap packages apply --manager apt --yes\x1b[22m\n"},
	{Key: FlagBootstrapPackagesApplyManager, ValueName: "MANAGER", ValueDemanded: true, Short: "Only install packages for this built-in or plugin manager", Long: "Only install packages for this built-in or plugin manager"},
	{Key: FlagBootstrapPackagesApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapPackagesApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: FlagBootstrapPackagesApplyUpdate, Short: "Refresh package manager metadata first (apk: `--update-cache`, apt: `apt-get update`)", Long: "Refresh package manager metadata first (apk: `--update-cache`, apt: `apt-get update`)"},
	{Key: ArgBootstrapPackagesApplyPackage, Short: "Packages in `manager:package` form; defaults to everything configured in [bootstrap.packages]", Long: "Packages in `manager:package` form; defaults to everything configured\nin [bootstrap.packages]"},
	{Key: CmdBootstrapPackagesBrew, Short: "Manage Homebrew taps used by bootstrap packages", Long: "Manage Homebrew taps used by bootstrap packages\n\nThese commands edit `[bootstrap.brew.taps]` so tapped formulae and casks can be fetched directly by mise without a Homebrew installation.", SubcommandRequired: true},
	{Key: CmdBootstrapPackagesBrewTap, Short: "Add a Homebrew tap URL to [bootstrap.brew.taps]", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages brew tap railwaycat/emacsmacport\x1b[22m\n    $ \x1b[1mmise bootstrap packages brew tap acme/tools https://github.com/acme/homebrew-tools.git\x1b[22m\n"},
	{Key: FlagBootstrapPackagesBrewTapLocal, Short: "Write to the local config instead of the global config", Long: "Write to the local config instead of the global config"},
	{Key: FlagBootstrapPackagesBrewTapDryRun, Short: "Print the config change without writing it", Long: "Print the config change without writing it"},
	{Key: FlagBootstrapPackagesBrewTapPath, ValueName: "PATH", ValueDemanded: true, Short: "Write to this config file or directory", Long: "Write to this config file or directory"},
	{Key: ArgBootstrapPackagesBrewTapTap, Demanded: true, Short: "Tap name, e.g. `owner/repo`", Long: "Tap name, e.g. `owner/repo`"},
	{Key: ArgBootstrapPackagesBrewTapUrl, Short: "GitHub URL for the tap. Defaults to https://github.com/<owner>/homebrew-<repo>.git", Long: "GitHub URL for the tap. Defaults to https://github.com/<owner>/homebrew-<repo>.git"},
	{Key: CmdBootstrapPackagesBrewUntap, Short: "Remove Homebrew tap URLs from [bootstrap.brew.taps]", VisibleAliases: []string{"remove", "rm"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages brew untap railwaycat/emacsmacport\x1b[22m\n"},
	{Key: FlagBootstrapPackagesBrewUntapLocal, Short: "Write to the local config instead of the global config", Long: "Write to the local config instead of the global config"},
	{Key: FlagBootstrapPackagesBrewUntapDryRun, Short: "Print the config change without writing it", Long: "Print the config change without writing it"},
	{Key: FlagBootstrapPackagesBrewUntapPath, ValueName: "PATH", ValueDemanded: true, Short: "Write to this config file or directory", Long: "Write to this config file or directory"},
	{Key: ArgBootstrapPackagesBrewUntapTaps, Demanded: true, Short: "Tap name(s), e.g. `owner/repo`", Long: "Tap name(s), e.g. `owner/repo`"},
	{Key: CmdBootstrapPackagesImport, Short: "Import installed system packages into `[bootstrap.packages]`", Long: "Import installed system packages into `[bootstrap.packages]`\n\nCurrently supports Homebrew formulae only. By default, imports linked formulae whose active keg receipt says they were installed on request. Pass `--all` to import every linked formula, including dependencies.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages import --manager brew\x1b[22m\n    $ \x1b[1mmise bootstrap packages import --manager brew --all\x1b[22m\n    $ \x1b[1mmise bootstrap packages import --manager brew --global\x1b[22m\n    $ \x1b[1mmise bootstrap packages import --manager brew --dry-run\x1b[22m\n"},
	{Key: FlagBootstrapPackagesImportEnv, ValueName: "ENV", ValueDemanded: true, Short: "Write to the config file for this environment (mise.<ENV>.toml)", Long: "Write to the config file for this environment (mise.<ENV>.toml)"},
	{Key: FlagBootstrapPackagesImportGlobal, Short: "Write to the global config (~/.config/mise/config.toml)", Long: "Write to the global config (~/.config/mise/config.toml)"},
	{Key: FlagBootstrapPackagesImportManager, ValueName: "MANAGER", ValueDemanded: true, Short: "Only import packages for this manager. Currently only `brew` is supported.", Long: "Only import packages for this manager. Currently only `brew` is supported.", Choices: []string{"brew"}, Default: []string{"brew"}},
	{Key: FlagBootstrapPackagesImportAll, Short: "Import every linked formula, including dependencies", Long: "Import every linked formula, including dependencies"},
	{Key: FlagBootstrapPackagesImportDryRun, Short: "Print the config change without writing config", Long: "Print the config change without writing config"},
	{Key: FlagBootstrapPackagesImportPath, ValueName: "PATH", ValueDemanded: true, Short: "Write to this config file or directory", Long: "Write to this config file or directory"},
	{Key: CmdBootstrapPackagesPrune, Short: "Prune installed system packages no longer declared in `[bootstrap.packages]`", Long: "Prune installed system packages no longer declared in `[bootstrap.packages]`\n\nSupports Homebrew formulae and conservatively removable, mise-owned casks. Pruning keeps packages needed by the current config or by trusted, loadable tracked configs.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages prune --manager brew\x1b[22m\n    $ \x1b[1mmise bootstrap packages prune --manager brew --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap packages prune --manager brew --yes\x1b[22m\n    $ \x1b[1mmise bootstrap packages prune --manager brew-cask --dry-run\x1b[22m\n"},
	{Key: FlagBootstrapPackagesPruneManager, ValueName: "MANAGER", ValueDemanded: true, Short: "Only prune packages for this manager", Long: "Only prune packages for this manager", Choices: []string{"brew", "brew-cask"}, Default: []string{"brew"}},
	{Key: FlagBootstrapPackagesPruneDryRun, Short: "Print what would be removed without deleting anything", Long: "Print what would be removed without deleting anything"},
	{Key: FlagBootstrapPackagesPruneYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapPackagesStatus, Short: "Show the status of system packages from `[bootstrap.packages]`", VisibleAliases: []string{"ls"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages status\x1b[22m\n    $ \x1b[1mmise bootstrap packages status --json\x1b[22m\n    $ \x1b[1mmise bootstrap packages status --missing\x1b[22m # exit 1 if anything is out of sync\n"},
	{Key: FlagBootstrapPackagesStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapPackagesStatusMissing, Short: "Exit with code 1 if any configured packages are not in their desired state", Long: "Exit with code 1 if any configured packages are not in their desired state"},
	{Key: CmdBootstrapPackagesUpgrade, Short: "Upgrade installed bootstrap packages from `[bootstrap.packages]`", Long: "Upgrade installed bootstrap packages from `[bootstrap.packages]`\n\nRefreshes package manager metadata and upgrades the configured packages that are already installed: apk/apt/dnf/pacman upgrade to the newest available version (apk, apt, and dnf honor a version pinned in config), brew pours the formula's current bottle and replaces the old keg, brew-cask installs the current cask artifact, flatpak and flatpak-user update applications and runtimes, and mas upgrades App Store apps. Packages that are not installed yet are skipped — use `mise bootstrap packages apply` for those.\n\nPackages can also be given explicitly in `manager:package` form.", VisibleAliases: []string{"up"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages upgrade\x1b[22m\n    $ \x1b[1mmise bootstrap packages upgrade brew:postgresql@17\x1b[22m\n    $ \x1b[1mmise bootstrap packages upgrade --manager brew-cask\x1b[22m\n    $ \x1b[1mmise bootstrap packages upgrade --manager mas\x1b[22m\n    $ \x1b[1mmise bootstrap packages upgrade --manager apt --yes\x1b[22m\n    $ \x1b[1mmise bootstrap packages upgrade --dry-run\x1b[22m\n"},
	{Key: FlagBootstrapPackagesUpgradeManager, ValueName: "MANAGER", ValueDemanded: true, Short: "Only upgrade packages for this built-in or plugin manager", Long: "Only upgrade packages for this built-in or plugin manager"},
	{Key: FlagBootstrapPackagesUpgradeDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapPackagesUpgradeYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgBootstrapPackagesUpgradePackage, Short: "Packages in `manager:package` form; defaults to everything configured in [bootstrap.packages]", Long: "Packages in `manager:package` form; defaults to everything configured\nin [bootstrap.packages]"},
	{Key: CmdBootstrapPackagesUse, Short: "Add bootstrap packages to [bootstrap.packages] and install them", Long: "Add bootstrap packages to [bootstrap.packages] and install them\n\nLike `mise use` for tools: writes `\"manager:package\" = \"version\"` entries to mise.toml (the local config by default, the global one with `-g`) and then installs whatever is missing.\n\nVersions are pinned with `@`: `mise bootstrap packages use apt:curl@8.5.0-2`. Without `@` (or with `@latest`) no pin is written. brew formulae and casks version through their names instead (for example `brew:postgresql@17`, `brew-cask:temurin@17`), where `@` is part of the Homebrew name rather than a mise version selector. mas uses numeric ADAM IDs and does not support pins.", VisibleAliases: []string{"u"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap packages use apk:zlib-dev apt:curl brew:jq brew-cask:firefox flatpak:org.mozilla.firefox flatpak-user:org.gnome.Builder mas:497799835\x1b[22m\n    $ \x1b[1mmise bootstrap packages use -g brew:postgresql@17\x1b[22m\n    $ \x1b[1mmise bootstrap packages use apt:curl@8.5.0-2\x1b[22m\n"},
	{Key: FlagBootstrapPackagesUseEnv, ValueName: "ENV", ValueDemanded: true, Short: "Write to the config file for this environment (mise.<ENV>.toml)", Long: "Write to the config file for this environment (mise.<ENV>.toml)"},
	{Key: FlagBootstrapPackagesUseGlobal, Short: "Write to the global config (~/.config/mise/config.toml) instead of the local one", Long: "Write to the global config (~/.config/mise/config.toml) instead of the\nlocal one"},
	{Key: FlagBootstrapPackagesUseDryRun, Short: "Print the commands that would run without writing config or installing", Long: "Print the commands that would run without writing config or installing"},
	{Key: FlagBootstrapPackagesUsePath, ValueName: "PATH", ValueDemanded: true, Short: "Write to this config file or directory", Long: "Write to this config file or directory"},
	{Key: FlagBootstrapPackagesUseYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgBootstrapPackagesUsePackage, Demanded: true, Short: "Packages in `manager:package[@version]` form", Long: "Packages in `manager:package[@version]` form"},
	{Key: CmdBootstrapPlan, Short: "Show the changes declarative bootstrap resources would make"},
	{Key: FlagBootstrapPlanJson, Short: "Output a stable machine-readable plan in JSON format", Long: "Output a stable machine-readable plan in JSON format"},
	{Key: FlagBootstrapPlanDetailedExitcode, Short: "Exit 2 when the plan contains changes, 0 when unchanged, and 1 on errors", Long: "Exit 2 when the plan contains changes, 0 when unchanged, and 1 on errors"},
	{Key: FlagBootstrapPlanPromptSecrets, Short: "Prompt securely for missing bootstrap secret inputs", Long: "Prompt securely for missing bootstrap secret inputs"},
	{Key: CmdBootstrapPlugins, Short: "Manage package manager plugins declared in `[bootstrap.plugins]`", SubcommandRequired: true},
	{Key: CmdBootstrapPluginsApply},
	{Key: FlagBootstrapPluginsApplyDryRun, Short: "Print what would happen without installing plugins", Long: "Print what would happen without installing plugins"},
	{Key: CmdBootstrapPluginsStatus},
	{Key: FlagBootstrapPluginsStatusMissing, Short: "Exit with code 1 if a declared plugin is missing", Long: "Exit with code 1 if a declared plugin is missing"},
	{Key: CmdBootstrapRemote, Short: "Bootstrap one or more machines over OpenSSH"},
	{Key: FlagBootstrapRemoteAll, Short: "Select every configured inventory host", Long: "Select every configured inventory host"},
	{Key: FlagBootstrapRemoteBootstrapCommand, ValueName: "COMMAND", ValueDemanded: true, Short: "Explicit remote shell command that installs mise and places it on PATH", Long: "Explicit remote shell command that installs mise and places it on PATH"},
	{Key: FlagBootstrapRemoteConnectTimeout, ValueName: "CONNECT_TIMEOUT", ValueDemanded: true, Short: "SSH connection timeout in seconds", Long: "SSH connection timeout in seconds", Default: []string{"10"}},
	{Key: FlagBootstrapRemoteCopyLink, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Dereference one source-relative symbolic link; repeat for multiple links", Long: "Dereference one source-relative symbolic link; repeat for multiple links"},
	{Key: FlagBootstrapRemoteCopyLinks, Short: "Dereference every symbolic link in the source archive", Long: "Dereference every symbolic link in the source archive"},
	{Key: FlagBootstrapRemoteExclude, Repeatable: true, ValueName: "PATTERN", ValueDemanded: true, Short: "Additional archive pattern to exclude; repeat for multiple patterns", Long: "Additional archive pattern to exclude; repeat for multiple patterns"},
	{Key: FlagBootstrapRemoteFailFast, Short: "Stop after the first failed target", Long: "Stop after the first failed target"},
	{Key: FlagBootstrapRemoteForceDotfiles, Short: "Allow remote dotfile conflicts to be replaced", Long: "Allow remote dotfile conflicts to be replaced"},
	{Key: FlagBootstrapRemoteHost, Repeatable: true, ValueName: "[USER@]HOST", ValueDemanded: true, Short: "Ad-hoc SSH destination (`[user@]host`); repeat for multiple hosts", Long: "Ad-hoc SSH destination (`[user@]host`); repeat for multiple hosts"},
	{Key: FlagBootstrapRemoteIdentityFile, ValueName: "IDENTITY_FILE", ValueDemanded: true, Short: "SSH identity file override", Long: "SSH identity file override"},
	{Key: FlagBootstrapRemoteDryRun, Short: "Print the remote bootstrap changes without applying them", Long: "Print the remote bootstrap changes without applying them"},
	{Key: FlagBootstrapRemoteKeepStaging, Short: "Keep the remote staging directory for debugging", Long: "Keep the remote staging directory for debugging"},
	{Key: FlagBootstrapRemoteMiseBin, ValueName: "MISE_BIN", ValueDemanded: true, Short: "Local mise binary to upload (escape hatch for custom architectures)", Long: "Local mise binary to upload (escape hatch for custom architectures)"},
	{Key: FlagBootstrapRemoteOnly, Repeatable: true, ValueName: "ONLY", ValueDemanded: true, Short: "Run only one or more remote bootstrap parts", Long: "Run only one or more remote bootstrap parts", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}},
	{Key: FlagBootstrapRemotePort, ValueName: "PORT", ValueDemanded: true, Short: "SSH port override", Long: "SSH port override"},
	{Key: FlagBootstrapRemotePromptSecrets, Short: "Prompt securely for missing secret inputs on the remote host", Long: "Prompt securely for missing secret inputs on the remote host"},
	{Key: FlagBootstrapRemoteRemoteEnv, Repeatable: true, ValueName: "ENV", ValueDemanded: true, Short: "Config environments to load on the remote host; repeat or delimit with commas (for example, ci,dotfiles)", Long: "Config environments to load on the remote host; repeat or delimit with commas (for example, ci,dotfiles)"},
	{Key: FlagBootstrapRemoteRemoteMise, ValueName: "COMMAND", ValueDemanded: true, Short: "Existing mise executable name or path; relative paths use the staged project", Long: "Existing mise executable name or path; relative paths use the staged project"},
	{Key: FlagBootstrapRemoteSkip, Repeatable: true, ValueName: "SKIP", ValueDemanded: true, Short: "Skip one or more remote bootstrap parts", Long: "Skip one or more remote bootstrap parts", Choices: []string{"plugins", "packages", "accounts", "files", "services", "firewall", "compose", "repos", "dotfiles", "mise-shell-activate", "macos-defaults", "macos-launchd-agents", "linux-systemd-units", "user", "tools", "task", "final-hook"}},
	{Key: FlagBootstrapRemoteSource, ValueName: "SOURCE", ValueDemanded: true, Short: "Local directory archived and sent to each target", Long: "Local directory archived and sent to each target"},
	{Key: FlagBootstrapRemoteSshOption, Repeatable: true, ValueName: "OPTION", ValueDemanded: true, Short: "OpenSSH `-o` option; repeat for multiple options", Long: "OpenSSH `-o` option; repeat for multiple options"},
	{Key: FlagBootstrapRemoteTag, Repeatable: true, ValueName: "TAG", ValueDemanded: true, Short: "Select configured hosts with this tag; repeat to match any tag", Long: "Select configured hosts with this tag; repeat to match any tag"},
	{Key: FlagBootstrapRemoteUpdate, Short: "Refresh package manager metadata and update configured repos remotely", Long: "Refresh package manager metadata and update configured repos remotely"},
	{Key: FlagBootstrapRemoteYes, Short: "Skip remote confirmation prompts", Long: "Skip remote confirmation prompts"},
	{Key: ArgBootstrapRemoteTarget, Short: "Inventory host names from `[bootstrap.remote.hosts]`", Long: "Inventory host names from `[bootstrap.remote.hosts]`"},
	{Key: CmdBootstrapRepos, Short: "Manage git repo checkouts from `[bootstrap.repos]`", SubcommandRequired: true},
	{Key: CmdBootstrapReposApply},
	{Key: FlagBootstrapReposApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapReposApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapReposExec},
	{Key: FlagBootstrapReposExecContinueOnError, Short: "Continue running in other repos after a command fails", Long: "Continue running in other repos after a command fails"},
	{Key: FlagBootstrapReposExecDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: ArgBootstrapReposExecPath, Short: "Run only in matching configured or expanded paths", Long: "Run only in matching configured or expanded paths"},
	{Key: ArgBootstrapReposExecCommand, Demanded: true, Short: "Command and arguments to run in each repo", Long: "Command and arguments to run in each repo"},
	{Key: CmdBootstrapReposStatus},
	{Key: FlagBootstrapReposStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapReposStatusMissing, Short: "Exit with code 1 if any configured repo is not in its desired state", Long: "Exit with code 1 if any configured repo is not in its desired state"},
	{Key: CmdBootstrapReposUpdate},
	{Key: FlagBootstrapReposUpdateDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapReposUpdateYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgBootstrapReposUpdatePath, Short: "Update only matching configured or expanded paths", Long: "Update only matching configured or expanded paths"},
	{Key: CmdBootstrapSecrets, Short: "Inspect bootstrap secret inputs without revealing their values", SubcommandRequired: true},
	{Key: CmdBootstrapSecretsStatus, Short: "Show whether declared bootstrap secret inputs are available"},
	{Key: FlagBootstrapSecretsStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapSecretsStatusMissing, Short: "Exit with code 1 if a declared secret input is unavailable", Long: "Exit with code 1 if a declared secret input is unavailable"},
	{Key: CmdBootstrapServices, Short: "Manage Linux system services from `[bootstrap.services]`", SubcommandRequired: true},
	{Key: CmdBootstrapServicesApply, Short: "Apply configured Linux system service state"},
	{Key: FlagBootstrapServicesApplyDryRun, Short: "Print what would change without changing anything", Long: "Print what would change without changing anything"},
	{Key: FlagBootstrapServicesApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapServicesStatus, Short: "Show configured Linux system service state"},
	{Key: FlagBootstrapServicesStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapServicesStatusMissing, Short: "Exit with code 1 when any service is not converged", Long: "Exit with code 1 when any service is not converged"},
	{Key: CmdBootstrapStatus, Short: "Show the aggregate bootstrap status", VisibleAliases: []string{"ls"}},
	{Key: FlagBootstrapStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapStatusMissing, Short: "Exit with code 1 if any configured bootstrap state is not in its desired state", Long: "Exit with code 1 if any configured bootstrap state is not in its desired state"},
	{Key: FlagBootstrapStatusPromptSecrets, Short: "Prompt securely for missing bootstrap secret inputs", Long: "Prompt securely for missing bootstrap secret inputs"},
	{Key: CmdBootstrapSystemd, Hide: true, Short: "Manage systemd user services from `[bootstrap.linux.systemd.units]`", SubcommandRequired: true},
	{Key: CmdBootstrapSystemdApply},
	{Key: FlagBootstrapSystemdApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapSystemdApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapSystemdStatus},
	{Key: FlagBootstrapSystemdStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapSystemdStatusMissing, Short: "Exit with code 1 if any configured systemd user service is not in its desired state", Long: "Exit with code 1 if any configured systemd user service is not in its desired state"},
	{Key: CmdBootstrapUser, Short: "Manage current-user bootstrap settings from `[bootstrap.user]`", SubcommandRequired: true},
	{Key: CmdBootstrapUserApply},
	{Key: FlagBootstrapUserApplyDryRun, Short: "Print the commands that would run without running them", Long: "Print the commands that would run without running them"},
	{Key: FlagBootstrapUserApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: CmdBootstrapUserStatus},
	{Key: FlagBootstrapUserStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagBootstrapUserStatusMissing, Short: "Exit with code 1 if any configured user setting is not in its desired state", Long: "Exit with code 1 if any configured user setting is not in its desired state"},
	{Key: CmdCache, Short: "Manage the mise cache", Long: "Manage the mise cache\n\nRun `mise cache` with no args to view the current cache directory."},
	{Key: CmdCacheClear, Short: "Deletes all cache files in mise", VisibleAliases: []string{"c"}},
	{Key: FlagCacheClearOutdate, Hide: true, Short: "Mark all cache files as old", Long: "Mark all cache files as old"},
	{Key: FlagCacheClearTask, ValueName: "TASK", ValueDemanded: true, Short: "Clear output cache entries for a task name or pattern", Long: "Clear output cache entries for a task name or pattern"},
	{Key: ArgCacheClearTool, Short: "Tool(s) to clear cache for e.g.: node, python", Long: "Tool(s) to clear cache for\ne.g.: node, python"},
	{Key: CmdCachePath, Short: "Show the cache directory path", VisibleAliases: []string{"dir"}},
	{Key: CmdCachePrune, Short: "Removes stale mise cache files", Long: "Removes stale mise cache files\n\nBy default, this command will remove files that have not been accessed in 30 days. Change this with the MISE_CACHE_PRUNE_AGE environment variable.", VisibleAliases: []string{"p"}},
	{Key: FlagCachePruneVerbose, Repeatable: true, Short: "Show pruned files", Long: "Show pruned files"},
	{Key: FlagCachePruneDryRun, Short: "Just show what would be pruned", Long: "Just show what would be pruned"},
	{Key: ArgCachePruneTool, Short: "Tool(s) to prune cache for e.g.: node, python", Long: "Tool(s) to prune cache for\ne.g.: node, python"},
	{Key: CmdCacheTask, Short: "Inspect output cache entries for a task"},
	{Key: FlagCacheTaskJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: ArgCacheTaskTask, Demanded: true, Short: "Task name or pattern to inspect", Long: "Task name or pattern to inspect"},
	{Key: CmdCompletion, Short: "Generate shell completions", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise completion bash --include-bash-completion-lib > ~/.local/share/bash-completion/completions/mise\x1b[22m\n    $ \x1b[1mmise completion zsh  > /usr/local/share/zsh/site-functions/_mise\x1b[22m\n    $ \x1b[1mmise completion fish > ~/.config/fish/completions/mise.fish\x1b[22m\n    $ \x1b[1mmise completion powershell >> $PROFILE\x1b[22m\n"},
	{Key: FlagCompletionShell, Hide: true, ValueName: "SHELL", ValueDemanded: true, Short: "Shell type to generate completions for", Long: "Shell type to generate completions for"},
	{Key: FlagCompletionIncludeBashCompletionLib, Short: "Include the bash completion library in the bash completion script", Long: "Include the bash completion library in the bash completion script\n\nThis is required for completions to work in bash, but it is not included by default you may source it separately or enable this flag to enable it in the script."},
	{Key: FlagCompletionUsage, Hide: true, Short: "Always use usage for completions.\nCurrently, usage is the default for fish and bash but not zsh since it has a few quirks\nto work out first.", Long: "Always use usage for completions.\nCurrently, usage is the default for fish and bash but not zsh since it has a few quirks\nto work out first.\n\nThis requires the `usage` CLI to be installed.\nhttps://usage.jdx.dev"},
	{Key: ArgCompletionShell, Short: "Shell type to generate completions for", Long: "Shell type to generate completions for"},
	{Key: CmdConfig, Short: "Manage config files", VisibleAliases: []string{"cfg"}},
	{Key: FlagConfigJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagConfigNoHeader, Short: "Do not print table header", Long: "Do not print table header"},
	{Key: FlagConfigTrackedConfigs, Short: "List all tracked config files", Long: "List all tracked config files"},
	{Key: CmdConfigGet, Short: "Display the value of a setting in a mise.toml file", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise toml get tools.python\x1b[22m\n    3.12\n"},
	{Key: FlagConfigGetFile, ValueName: "FILE", ValueDemanded: true, Short: "The path to the mise.toml file to read", Long: "The path to the mise.toml file to read\n\nCan be a file path or directory. If a directory is provided, the config file in that directory is used.\n\nIf not provided, the nearest mise.toml file will be used"},
	{Key: ArgConfigGetKey, Short: "The path of the config to display", Long: "The path of the config to display"},
	{Key: CmdConfigLs, Short: "List config files currently in use", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise config ls\x1b[22m\n    Path                        Tools\n    ~/.config/mise/config.toml  pitchfork\n    ~/src/mise/mise.toml        actionlint, bun, cargo-binstall, cargo:cargo-insta\n"},
	{Key: FlagConfigLsJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagConfigLsNoHeader, Short: "Do not print table header", Long: "Do not print table header"},
	{Key: FlagConfigLsTrackedConfigs, Short: "List all tracked config files", Long: "List all tracked config files"},
	{Key: CmdConfigSet, Short: "Set the value of a setting in a mise.toml file", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise config set tools.python 3.12\x1b[22m\n    $ \x1b[1mmise config set settings.always_keep_download true\x1b[22m\n    $ \x1b[1mmise config set env.TEST_ENV_VAR ABC\x1b[22m\n    $ \x1b[1mmise config set settings.disable_tools node,rust\x1b[22m\n\n    # Type for `settings` is inferred\n    $ \x1b[1mmise config set settings.jobs 4\x1b[22m\n"},
	{Key: FlagConfigSetFile, ValueName: "FILE", ValueDemanded: true, Short: "The path to the mise.toml file to edit", Long: "The path to the mise.toml file to edit\n\nCan be a file path or directory. If a directory is provided, the config file in that directory is used.\n\nIf not provided, the nearest mise.toml file will be used"},
	{Key: FlagConfigSetType, ValueName: "TYPE", ValueDemanded: true, Choices: []string{"infer", "string", "integer", "float", "bool", "list", "set"}, Default: []string{"infer"}},
	{Key: ArgConfigSetKey, Demanded: true, Short: "The path of the config to display", Long: "The path of the config to display"},
	{Key: ArgConfigSetValue, Short: "The value to set the key to (optional if provided as KEY=VALUE)", Long: "The value to set the key to (optional if provided as KEY=VALUE)"},
	{Key: CmdCurrent, Hide: true, Short: "Shows current active and installed runtime versions", Long: "Shows current active and installed runtime versions\n\nThis is similar to `mise ls --current`, but this only shows the runtime and/or version. It's designed to fit into scripts more easily.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # outputs `.tool-versions` compatible format\n    $ \x1b[1mmise current\x1b[22m\n    python 3.11.0 3.10.0\n    shfmt 3.6.0\n    shellcheck 0.9.0\n    node 20.0.0\n\n    $ \x1b[1mmise current node\x1b[22m\n    20.0.0\n\n    # can output multiple versions\n    $ \x1b[1mmise current python\x1b[22m\n    3.11.0 3.10.0\n"},
	{Key: ArgCurrentPlugin, Short: "Plugin to show versions of e.g.: ruby, node, cargo:eza, npm:prettier, etc.", Long: "Plugin to show versions of\ne.g.: ruby, node, cargo:eza, npm:prettier, etc."},
	{Key: CmdDeactivate, Short: "Disable mise for current shell session", Long: "Disable mise for current shell session\n\nThis can be used to temporarily disable mise in a shell session.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise deactivate\x1b[22m\n"},
	{Key: CmdDirenv, Hide: true, Short: "Output direnv function to use mise inside direnv", Long: "Output direnv function to use mise inside direnv\n\nSee https://mise.jdx.dev/direnv.html for more information\n\nBecause this generates the idiomatic files based on currently installed plugins, you should run this command after installing new plugins. Otherwise direnv may not know to update environment variables when idiomatic file versions change."},
	{Key: CmdDirenvActivate, Hide: true, Short: "Output direnv function to use mise inside direnv", Long: "Output direnv function to use mise inside direnv\n\nSee https://mise.jdx.dev/direnv.html for more information\n\nBecause this generates the idiomatic files based on currently installed plugins, you should run this command after installing new plugins. Otherwise direnv may not know to update environment variables when idiomatic file versions change.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise direnv activate > ~/.config/direnv/lib/use_mise.sh\x1b[22m\n    $ \x1b[1mecho 'use mise' > .envrc\x1b[22m\n    $ \x1b[1mdirenv allow\x1b[22m\n"},
	{Key: CmdDirenvEnvrc, Hide: true, Short: "[internal] This is an internal command that writes an envrc file\nfor direnv to consume."},
	{Key: CmdDirenvExec, Hide: true, Short: "[internal] This is an internal command that writes an envrc file\nfor direnv to consume."},
	{Key: CmdDotfiles, Hide: true, Short: "Manage dotfiles from `[dotfiles]` (deprecated)", Long: "Manage dotfiles from `[dotfiles]` (deprecated)\n\nUse `mise bootstrap dotfiles` instead.", SubcommandRequired: true},
	{Key: CmdDotfilesAdd, Hide: true, Short: "Add or update dotfiles in `[dotfiles]`", Long: "Add or update dotfiles in `[dotfiles]`\n\nIf the target is already managed, this updates its source from the live target. Otherwise it creates a `[dotfiles]` entry and seeds the source under `dotfiles.root` unless `--source` is provided.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles add ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles add --mode copy ~/.config/starship.toml\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles add --source dotfiles/gitconfig ~/.gitconfig\x1b[22m\n"},
	{Key: FlagDotfilesAddForce, Short: "Overwrite existing sources without prompting", Long: "Overwrite existing sources without prompting"},
	{Key: FlagDotfilesAddGlobal, Short: "Write to the global config", Long: "Write to the global config"},
	{Key: FlagDotfilesAddLocal, Short: "Write to the local config instead of the global config", Long: "Write to the local config instead of the global config"},
	{Key: FlagDotfilesAddMode, ValueName: "MODE", ValueDemanded: true, Short: "Dotfile mode to write", Long: "Dotfile mode to write"},
	{Key: FlagDotfilesAddDryRun, Short: "Print the config/source updates without writing anything", Long: "Print the config/source updates without writing anything"},
	{Key: FlagDotfilesAddNoApply, Short: "Add the entry without applying it", Long: "Add the entry without applying it"},
	{Key: FlagDotfilesAddPath, ValueName: "PATH", ValueDemanded: true, Short: "Write to this config file or directory", Long: "Write to this config file or directory"},
	{Key: FlagDotfilesAddSource, ValueName: "PATH", ValueDemanded: true, Short: "Source path to use for a single target", Long: "Source path to use for a single target"},
	{Key: FlagDotfilesAddYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgDotfilesAddTarget, Demanded: true, Short: "Targets to add or update", Long: "Targets to add or update"},
	{Key: CmdDotfilesApply, Hide: true, Short: "Apply dotfiles from `[dotfiles]`", Long: "Apply dotfiles from `[dotfiles]`\n\nApplies configured whole-file entries and edits that aren't in their desired state. Whole-file entries may symlink, copy, or render templates. Edit entries manage a marker-delimited block or a single line in a file mise doesn't otherwise own.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles apply\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles apply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles apply --force --yes\x1b[22m\n"},
	{Key: FlagDotfilesApplyForce, Short: "Overwrite existing files that conflict with whole-file dotfile entries", Long: "Overwrite existing files that conflict with whole-file dotfile entries"},
	{Key: FlagDotfilesApplyDryRun, Short: "Print the actions that would run without writing anything", Long: "Print the actions that would run without writing anything"},
	{Key: FlagDotfilesApplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgDotfilesApplyTarget, Short: "Only apply these targets", Long: "Only apply these targets"},
	{Key: CmdDotfilesEdit, Hide: true, Short: "Edit a managed dotfile source", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles edit ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles edit --apply ~/.config/starship.toml\x1b[22m\n"},
	{Key: FlagDotfilesEditApply, Short: "Apply this target after the editor exits", Long: "Apply this target after the editor exits"},
	{Key: FlagDotfilesEditMode, ValueName: "MODE", ValueDemanded: true, Short: "Dotfile mode to use if the target is not yet managed", Long: "Dotfile mode to use if the target is not yet managed"},
	{Key: FlagDotfilesEditSource, ValueName: "PATH", ValueDemanded: true, Short: "Source path to use if the target is not yet managed", Long: "Source path to use if the target is not yet managed"},
	{Key: FlagDotfilesEditYes, Short: "Skip the confirmation prompt when adding an unmanaged target", Long: "Skip the confirmation prompt when adding an unmanaged target"},
	{Key: ArgDotfilesEditTarget, Demanded: true, Short: "Target to edit", Long: "Target to edit"},
	{Key: CmdDotfilesStatus, Hide: true, Short: "Show the status of dotfiles from `[dotfiles]`", VisibleAliases: []string{"ls"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles status\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status --json\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles status --missing\x1b[22m # exit 1 if anything is out of sync\n"},
	{Key: FlagDotfilesStatusJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagDotfilesStatusMissing, Short: "Exit with code 1 if any configured dotfiles are not in their desired\nstate (missing, source missing, differs)", Long: "Exit with code 1 if any configured dotfiles are not in their desired\nstate (missing, source missing, differs)"},
	{Key: ArgDotfilesStatusTarget, Short: "Only show these targets", Long: "Only show these targets"},
	{Key: CmdDotfilesUnapply, Hide: true, Short: "Remove dotfiles applied from `[dotfiles]`", Long: "Remove dotfiles applied from `[dotfiles]`\n\nRemoves configured whole-file entries and edits while preserving files mise cannot identify as managed. Modified copies, templates, and plain-line edits require `--force`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise bootstrap dotfiles unapply\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles unapply ~/.zshrc\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles unapply --dry-run\x1b[22m\n    $ \x1b[1mmise bootstrap dotfiles unapply --force --yes\x1b[22m\n"},
	{Key: FlagDotfilesUnapplyForce, Short: "Remove modified or otherwise ambiguous managed files and lines", Long: "Remove modified or otherwise ambiguous managed files and lines"},
	{Key: FlagDotfilesUnapplyDryRun, Short: "Print the actions that would run without writing anything", Long: "Print the actions that would run without writing anything"},
	{Key: FlagDotfilesUnapplyYes, Short: "Skip the confirmation prompt", Long: "Skip the confirmation prompt"},
	{Key: ArgDotfilesUnapplyTarget, Short: "Only unapply these targets", Long: "Only unapply these targets"},
	{Key: CmdDoctor, Short: "Check mise installation for possible problems", VisibleAliases: []string{"dr"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise doctor\x1b[22m\n    [WARN] plugin node is not installed\n"},
	{Key: FlagDoctorJson},
	{Key: CmdDoctorPath, Short: "Print the current PATH entries mise is providing", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    Get the current PATH entries mise is providing\n    $ mise doctor path\n    /home/user/.local/share/mise/installs/node/24.0.0/bin\n    /home/user/.local/share/mise/installs/rust/1.90.0/bin\n    /home/user/.local/share/mise/installs/python/3.10.0/bin\n"},
	{Key: FlagDoctorPathFull, Short: "Print all entries including those not provided by mise", Long: "Print all entries including those not provided by mise"},
	{Key: CmdEn, Short: "Starts a new shell with the mise environment built from the current configuration", Long: "Starts a new shell with the mise environment built from the current configuration\n\nThis is an alternative to `mise activate` that allows you to explicitly start a mise session. It will have the tools and environment variables in the configs loaded. Note that changing directories will not update the mise environment.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise en .\x1b[22m\n    $ \x1b[1mnode -v\x1b[22m\n    v20.0.0\n\n    Skip loading bashrc:\n    $ \x1b[1mmise en -s \"bash --norc\"\x1b[22m\n\n    Skip loading zshrc:\n    $ \x1b[1mmise en -s \"zsh -f\"\x1b[22m\n"},
	{Key: FlagEnShell, ValueName: "SHELL", ValueDemanded: true, Short: "Shell to start", Long: "Shell to start\n\nDefaults to $SHELL"},
	{Key: ArgEnDir, Short: "Directory to start the shell in", Long: "Directory to start the shell in", Default: []string{"."}},
	{Key: CmdEnv, Short: "Exports env vars to activate mise a single time", Long: "Exports env vars to activate mise a single time\n\nUse this if you don't want to permanently install mise. It's not necessary to use this if you have `mise activate` in your shell rc file.", VisibleAliases: []string{"e"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1meval \"$(mise env -s bash)\"\x1b[22m\n    $ \x1b[1meval \"$(mise env -s zsh)\"\x1b[22m\n    $ \x1b[1mmise env -s fish | source\x1b[22m\n    $ \x1b[1mexecx($(mise env -s xonsh))\x1b[22m\n"},
	{Key: FlagEnvDotenv, Short: "Output in dotenv format", Long: "Output in dotenv format"},
	{Key: FlagEnvJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagEnvShell, ValueName: "SHELL", ValueDemanded: true, Short: "Shell type to generate environment variables for", Long: "Shell type to generate environment variables for"},
	{Key: FlagEnvJsonExtended, Short: "Output in JSON format with additional information (source, tool)", Long: "Output in JSON format with additional information (source, tool)"},
	{Key: FlagEnvRedacted, Short: "Only show redacted environment variables", Long: "Only show redacted environment variables"},
	{Key: FlagEnvValues, Short: "Only show values of environment variables", Long: "Only show values of environment variables"},
	{Key: ArgEnvToolVersion, Short: "Tool(s) to use", Long: "Tool(s) to use"},
	{Key: CmdExec, Short: "Execute a command with tool(s) set", Long: "Execute a command with tool(s) set\n\nuse this to avoid modifying the shell session or running ad-hoc commands with mise tools set.\n\nTools will be loaded from mise.toml, though they can be overridden with <RUNTIME> args Note that only the plugin specified will be overridden, so if a `mise.toml` file includes \"node 20\" but you run `mise exec python@3.11`; it will still load node@20.\n\nThe \"--\" separates runtimes from the commands to pass along to the subprocess.", VisibleAliases: []string{"x"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise exec node@20 -- node ./app.js\x1b[22m  # launch app.js using node-20.x\n    $ \x1b[1mmise x node@20 -- node ./app.js\x1b[22m     # shorter alias\n\n    # Specify command as a string:\n    $ \x1b[1mmise exec node@20 python@3.11 --command \"node -v && python -V\"\x1b[22m\n\n    # Run a command in a different directory:\n    $ \x1b[1mmise x -C /path/to/project node@20 -- node ./app.js\x1b[22m\n"},
	{Key: FlagExecCommand, ValueName: "COMMAND", ValueDemanded: true, Short: "Command string to execute", Long: "Command string to execute"},
	{Key: FlagExecJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Env: "MISE_JOBS"},
	{Key: FlagExecAllowEnv, Repeatable: true, ValueName: "VAR", ValueDemanded: true, Short: "Allow specific env var through (implies --deny-env for everything else)\nSupports wildcards, e.g. --allow-env='MYAPP_*'", Long: "Allow specific env var through (implies --deny-env for everything else)\nSupports wildcards, e.g. --allow-env='MYAPP_*'"},
	{Key: FlagExecAllowNet, Repeatable: true, ValueName: "HOST", ValueDemanded: true, Short: "Allow network to specific host (implies --deny-net for everything else)\nmacOS only in v1; on Linux falls back to allowing all network", Long: "Allow network to specific host (implies --deny-net for everything else)\nmacOS only in v1; on Linux falls back to allowing all network"},
	{Key: FlagExecAllowRead, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Allow reads from specific path (implies --deny-read for everything else)", Long: "Allow reads from specific path (implies --deny-read for everything else)"},
	{Key: FlagExecAllowWrite, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Allow writes to specific path (implies --deny-write for everything else)", Long: "Allow writes to specific path (implies --deny-write for everything else)"},
	{Key: FlagExecDenyAll, Short: "Block reads, writes, network, and env vars", Long: "Block reads, writes, network, and env vars"},
	{Key: FlagExecDenyEnv, Short: "Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through)", Long: "Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through)"},
	{Key: FlagExecDenyNet, Short: "Block all network access", Long: "Block all network access"},
	{Key: FlagExecDenyRead, Short: "Block filesystem reads (system libs and tool dirs still accessible)", Long: "Block filesystem reads (system libs and tool dirs still accessible)"},
	{Key: FlagExecDenyWrite, Short: "Block all filesystem writes", Long: "Block all filesystem writes"},
	{Key: FlagExecFreshEnv, Short: "Bypass the environment cache and recompute the environment", Long: "Bypass the environment cache and recompute the environment"},
	{Key: FlagExecNoDeps, Short: "Skip automatic dependency preparation", Long: "Skip automatic dependency preparation"},
	{Key: FlagExecRaw, Short: "Connect backend install command stdin/stdout/stderr directly to the terminal Implies --jobs=1", Long: "Connect backend install command stdin/stdout/stderr directly to the terminal\nImplies --jobs=1"},
	{Key: ArgExecToolVersion, Short: "Tool(s) to start e.g.: node@20 python@3.10", Long: "Tool(s) to start\ne.g.: node@20 python@3.10"},
	{Key: ArgExecCommand, Short: "Command string to execute (same as --command)", Long: "Command string to execute (same as --command)"},
	{Key: CmdFmt, Short: "Formats mise.toml", Long: "Formats mise.toml\n\nSorts keys and cleans up whitespace in mise.toml", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise fmt\x1b[22m\n"},
	{Key: FlagFmtAll, Short: "Format all files from the current directory", Long: "Format all files from the current directory"},
	{Key: FlagFmtCheck, Short: "Check if the configs are formatted, no formatting is done", Long: "Check if the configs are formatted, no formatting is done"},
	{Key: FlagFmtStdin, Short: "Read config from stdin and write its formatted version into stdout", Long: "Read config from stdin and write its formatted version into\nstdout"},
	{Key: CmdGenerate, Short: "Generate files for various tools/services", SubcommandRequired: true, VisibleAliases: []string{"gen"}},
	{Key: CmdGenerateBootstrap, Short: "Generate a script to download+execute mise", Long: "Generate a script to download+execute mise\n\nThis is designed to be used in a project where contributors may not have mise installed.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise generate bootstrap --write ./bin/mise\x1b[22m\n    $ \x1b[1m./bin/mise install\x1b[22m                                    \x1b[2m# downloads mise to .mise if not already installed\x1b[22m\n\n    \x1b[2m# add a launcher for contributors who clone the project on Windows\x1b[22m\n    $ \x1b[1mmise generate bootstrap --write ./bin/mise --windows\x1b[22m  \x1b[2m# also writes bin/mise.cmd\x1b[22m\n    $ \x1b[1m.\\bin\\mise.cmd install\x1b[22m\n"},
	{Key: FlagGenerateBootstrapLocalize, Short: "Sandboxes mise internal directories like MISE_DATA_DIR and MISE_CACHE_DIR into a `.mise` directory in the project", Long: "Sandboxes mise internal directories like MISE_DATA_DIR and MISE_CACHE_DIR into a `.mise` directory in the project\n\nThis is necessary if users may use a different version of mise outside the project."},
	{Key: FlagGenerateBootstrapVersion, ValueName: "VERSION", ValueDemanded: true, Short: "Specify mise version to fetch", Long: "Specify mise version to fetch"},
	{Key: FlagGenerateBootstrapWrite, ValueName: "WRITE", Short: "instead of outputting the script to stdout, write to a file and make it executable", Long: "instead of outputting the script to stdout, write to a file and make it executable"},
	{Key: FlagGenerateBootstrapLocalizedDir, ValueName: "LOCALIZED_DIR", ValueDemanded: true, Short: "Directory to put localized data into", Long: "Directory to put localized data into", Default: []string{".mise"}},
	{Key: FlagGenerateBootstrapWindows, Short: "Also write a Windows launcher, `<WRITE>.cmd`", Long: "Also write a Windows launcher, `<WRITE>.cmd`\n\nWindows cannot execute the `#!/usr/bin/env bash` script, so a contributor who clones the project on Windows has nothing to run without this.\n\nGenerated on every host, not only on Windows: the file is committed, and whoever runs it on Windows is not the person who generated it. Requires `--write`, since stdout cannot carry two files."},
	{Key: CmdGenerateConfig, Short: "Generate a mise.toml file", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise generate config\x1b[22m             \x1b[2m# generate mise.toml interactively\x1b[22m\n    $ \x1b[1mmise generate config .mise.toml\x1b[22m  \x1b[2m# generate a specific file\x1b[22m\n    $ \x1b[1mmise generate config -g\x1b[22m          \x1b[2m# generate the global config file\x1b[22m\n    $ \x1b[1mmise generate config -y\x1b[22m          \x1b[2m# skip interactive editor\x1b[22m\n    $ \x1b[1mmise generate config -n\x1b[22m          \x1b[2m# preview without writing\x1b[22m\n"},
	{Key: FlagGenerateConfigGlobal, Short: "Generate the global config file (~/.config/mise/config.toml)", Long: "Generate the global config file (~/.config/mise/config.toml)"},
	{Key: FlagGenerateConfigDryRun, Short: "Show what would be generated without writing to file", Long: "Show what would be generated without writing to file"},
	{Key: FlagGenerateConfigToolVersions, ValueName: "TOOL_VERSIONS", ValueDemanded: true, Short: "Path to a .tool-versions file to import tools from", Long: "Path to a .tool-versions file to import tools from"},
	{Key: ArgGenerateConfigPath, Short: "Path to the config file to create", Long: "Path to the config file to create"},
	{Key: CmdGenerateDevcontainer, Short: "Generate a devcontainer to execute mise", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise generate devcontainer\x1b[22m\n"},
	{Key: FlagGenerateDevcontainerImage, ValueName: "IMAGE", ValueDemanded: true, Short: "The image to use for the devcontainer", Long: "The image to use for the devcontainer"},
	{Key: FlagGenerateDevcontainerMountMiseData, Short: "Bind the mise-data-volume to the devcontainer", Long: "Bind the mise-data-volume to the devcontainer"},
	{Key: FlagGenerateDevcontainerName, ValueName: "NAME", ValueDemanded: true, Short: "The name of the devcontainer", Long: "The name of the devcontainer"},
	{Key: FlagGenerateDevcontainerWrite, Short: "write to .devcontainer/devcontainer.json", Long: "write to .devcontainer/devcontainer.json"},
	{Key: CmdGenerateGitPreCommit, Short: "Generate a git pre-commit hook", Long: "Generate a git pre-commit hook\n\nThis command generates a git pre-commit hook that runs a mise task like `mise run pre-commit` when you commit changes to your repository.\n\nStaged files are passed to the task as `STAGED`.\n\nFor more advanced pre-commit functionality, see mise's sister project: https://hk.jdx.dev/", VisibleAliases: []string{"pre-commit"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise generate git-pre-commit --write --task=pre-commit\x1b[22m\n    $ \x1b[1mgit commit -m \"feat: add new feature\"\x1b[22m \x1b[2m# runs `mise run pre-commit`\x1b[22m\n\n    \x1b[2m# config lives in a subdirectory, so the hook has to change into it first\x1b[22m\n    $ \x1b[1mmise generate git-pre-commit --write -- -C subdir\x1b[22m\n"},
	{Key: FlagGenerateGitPreCommitTask, ValueName: "TASK", ValueDemanded: true, Short: "The task to run when the pre-commit hook is triggered", Long: "The task to run when the pre-commit hook is triggered", Default: []string{"pre-commit"}},
	{Key: FlagGenerateGitPreCommitWrite, Short: "write to .git/hooks/pre-commit and make it executable", Long: "write to .git/hooks/pre-commit and make it executable"},
	{Key: FlagGenerateGitPreCommitHook, ValueName: "HOOK", ValueDemanded: true, Short: "Which hook to generate (saves to .git/hooks/$hook)", Long: "Which hook to generate (saves to .git/hooks/$hook)", Default: []string{"pre-commit"}},
	{Key: ArgGenerateGitPreCommitMiseArg, Short: "mise flags to embed in the generated hook, given after `--`", Long: "mise flags to embed in the generated hook, given after `--`\n\nThese are inserted between `mise` and `run`, so the hook carries the same context you would pass on the command line. Useful when the config is not at the repository root, since git runs hooks from the top level: `-- -C subdir` makes the hook find it."},
	{Key: CmdGenerateGithubAction, Short: "Generate a GitHub Action workflow file", Long: "Generate a GitHub Action workflow file\n\nThis command generates a GitHub Action workflow file that runs a mise task like `mise run ci` when you push changes to your repository.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise generate github-action --write --task=ci\x1b[22m\n    $ \x1b[1mgit commit -m \"feat: add new feature\"\x1b[22m\n    $ \x1b[1mgit push\x1b[22m \x1b[2m# runs `mise run ci` on GitHub\x1b[22m\n"},
	{Key: FlagGenerateGithubActionTask, ValueName: "TASK", ValueDemanded: true, Short: "The task to run when the workflow is triggered", Long: "The task to run when the workflow is triggered", Default: []string{"ci"}},
	{Key: FlagGenerateGithubActionWrite, Short: "write to .github/workflows/$name.yml", Long: "write to .github/workflows/$name.yml"},
	{Key: FlagGenerateGithubActionName, ValueName: "NAME", ValueDemanded: true, Short: "the name of the workflow to generate", Long: "the name of the workflow to generate", Default: []string{"ci"}},
	{Key: CmdGenerateTaskDocs, Short: "Generate documentation for tasks in a project", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise generate task-docs\x1b[22m\n"},
	{Key: FlagGenerateTaskDocsInject, Short: "inserts the documentation into an existing file", Long: "inserts the documentation into an existing file\n\nThis will look for a special comment, `<!-- mise-tasks -->`, and replace it with the generated documentation. It will replace everything between the comment and the next comment, `<!-- /mise-tasks -->` so it can be run multiple times on the same file to update the documentation. The file must already contain both comments; mise errors instead of modifying the file if they are missing."},
	{Key: FlagGenerateTaskDocsIndex, Short: "write only an index of tasks, intended for use with `--multi`", Long: "write only an index of tasks, intended for use with `--multi`"},
	{Key: FlagGenerateTaskDocsMulti, Short: "render each task as a separate document, requires `--output` to be a directory", Long: "render each task as a separate document, requires `--output` to be a directory"},
	{Key: FlagGenerateTaskDocsOutput, ValueName: "OUTPUT", ValueDemanded: true, Short: "writes the generated docs to a file/directory", Long: "writes the generated docs to a file/directory"},
	{Key: FlagGenerateTaskDocsRoot, ValueName: "ROOT", ValueDemanded: true, Short: "root directory to search for tasks", Long: "root directory to search for tasks"},
	{Key: FlagGenerateTaskDocsStyle, ValueName: "STYLE", ValueDemanded: true, Choices: []string{"simple", "detailed"}, Default: []string{"simple"}},
	{Key: CmdGenerateTaskStubs, Short: "Generates shims to run mise tasks", Long: "Generates shims to run mise tasks\n\nBy default, this will build shims like ./bin/<task>. These can be paired with `mise generate bootstrap` so contributors to a project can execute mise tasks without installing mise into their system. When a parent and nested task both exist, the parent stub is written to `<parent>/_default`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tasks add test -- echo 'running tests'\x1b[22m\n    $ \x1b[1mmise generate task-stubs\x1b[22m\n    $ \x1b[1m./bin/test\x1b[22m\n    running tests\n"},
	{Key: FlagGenerateTaskStubsDir, ValueName: "DIR", ValueDemanded: true, Short: "Directory to create task stubs inside of", Long: "Directory to create task stubs inside of", Default: []string{"bin"}},
	{Key: FlagGenerateTaskStubsMiseBin, ValueName: "MISE_BIN", ValueDemanded: true, Short: "Path to a mise bin to use when running the task stub.", Long: "Path to a mise bin to use when running the task stub.\n\nUse `--mise-bin=./bin/mise` to use a mise bin generated from `mise generate bootstrap`", Default: []string{"mise"}},
	{Key: CmdGenerateToolStub, Short: "Generate a tool stub for HTTP-based tools", Long: "Generate a tool stub for HTTP-based tools\n\nThis command generates tool stubs that can automatically download and execute tools from HTTP URLs. It can detect checksums, file sizes, and binary paths automatically by downloading and analyzing the tool.\n\nWhen generating stubs with platform-specific URLs, the command will append new platforms to existing stub files rather than overwriting them. This allows you to incrementally build cross-platform tool stubs.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    Generate a tool stub for a single URL:\n    $ \x1b[1mmise generate tool-stub ./bin/gh --url \"https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_linux_amd64.tar.gz\"\x1b[22m\n\n    Generate a tool stub with platform-specific URLs:\n    $ \x1b[1mmise generate tool-stub ./bin/rg \\\n        --platform-url linux-x64:https://github.com/BurntSushi/ripgrep/releases/download/14.0.3/ripgrep-14.0.3-x86_64-unknown-linux-musl.tar.gz \\\n        --platform-url darwin-arm64:https://github.com/BurntSushi/ripgrep/releases/download/14.0.3/ripgrep-14.0.3-aarch64-apple-darwin.tar.gz\x1b[22m\n\n    Append additional platforms to an existing stub:\n    $ \x1b[1mmise generate tool-stub ./bin/rg \\\n        --platform-url linux-x64:https://example.com/rg-linux.tar.gz\x1b[22m\n    $ \x1b[1mmise generate tool-stub ./bin/rg \\\n        --platform-url darwin-arm64:https://example.com/rg-darwin.tar.gz\x1b[22m\n    # The stub now contains both platforms\n\n    Use auto-detection for platform from URL:\n    $ \x1b[1mmise generate tool-stub ./bin/node \\\n        --platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz\x1b[22m\n    # Platform 'macos-arm64' will be auto-detected from the URL\n\n    Generate with platform-specific binary paths:\n    $ \x1b[1mmise generate tool-stub ./bin/tool \\\n        --platform-url linux-x64:https://example.com/tool-linux.tar.gz \\\n        --platform-url windows-x64:https://example.com/tool-windows.zip \\\n        --platform-bin windows-x64:tool.exe\x1b[22m\n\n    Generate without downloading (faster):\n    $ \x1b[1mmise generate tool-stub ./bin/tool --url \"https://example.com/tool.tar.gz\" --skip-download\x1b[22m\n\n    Fetch checksums for an existing stub:\n    $ \x1b[1mmise generate tool-stub ./bin/jq --fetch\x1b[22m\n    # This will read the existing stub and download files to fill in any missing checksums/sizes\n\n    Generate a bootstrap stub that installs mise if needed:\n    $ \x1b[1mmise generate tool-stub ./bin/tool --url \"https://example.com/tool.tar.gz\" --bootstrap\x1b[22m\n    # The stub will check for mise and install it automatically before running the tool\n\n    Generate a bootstrap stub with a pinned mise version:\n    $ \x1b[1mmise generate tool-stub ./bin/tool --url \"https://example.com/tool.tar.gz\" --bootstrap --bootstrap-version 2025.1.0\x1b[22m\n\n    Lock an existing tool stub with pinned version and platform URLs/checksums:\n    $ \x1b[1mmise generate tool-stub ./bin/node --lock\x1b[22m\n\n    Bump the version in a locked stub:\n    $ \x1b[1mmise generate tool-stub ./bin/node --lock --version 22\x1b[22m\n    # Resolves the latest node 22.x, pins it, and updates platform URLs/checksums\n"},
	{Key: FlagGenerateToolStubBin, ValueName: "BIN", ValueDemanded: true, Short: "Binary path within the extracted archive", Long: "Binary path within the extracted archive\n\nIf not specified and the archive is downloaded, will auto-detect the most likely binary"},
	{Key: FlagGenerateToolStubBootstrap, Short: "Wrap stub in a bootstrap script that installs mise if not already present", Long: "Wrap stub in a bootstrap script that installs mise if not already present\n\nWhen enabled, generates a bash script that: 1. Checks if mise is installed at the expected path 2. If not, downloads and installs mise using the embedded installer 3. Executes the tool stub using mise"},
	{Key: FlagGenerateToolStubBootstrapVersion, ValueName: "BOOTSTRAP_VERSION", ValueDemanded: true, Short: "Specify mise version for the bootstrap script", Long: "Specify mise version for the bootstrap script\n\nBy default, uses the latest version from the install script. Use this to pin to a specific version (e.g., \"2025.1.0\")."},
	{Key: FlagGenerateToolStubChecksumAlgorithm, ValueName: "CHECKSUM_ALGORITHM", ValueDemanded: true, Short: "Checksum algorithm to use when downloading artifacts", Long: "Checksum algorithm to use when downloading artifacts\n\nAccepts `blake3` or `sha256` and defaults to `blake3`. Cannot be used with `--lock` or `--skip-download` because those modes do not calculate checksums.", Choices: []string{"blake3", "sha256"}, Default: []string{"blake3"}},
	{Key: FlagGenerateToolStubFetch, Short: "Fetch checksums and sizes for an existing tool stub file", Long: "Fetch checksums and sizes for an existing tool stub file\n\nThis reads an existing stub file and fills in any missing checksum/size fields by downloading the files. URLs must already be present in the stub."},
	{Key: FlagGenerateToolStubHttp, ValueName: "HTTP", ValueDemanded: true, Short: "HTTP backend type to use", Long: "HTTP backend type to use", Default: []string{"http"}},
	{Key: FlagGenerateToolStubLock, Short: "Resolve and embed lockfile data (exact version + platform URLs/checksums) into an existing stub file for reproducible installs without runtime API calls", Long: "Resolve and embed lockfile data (exact version + platform URLs/checksums)\ninto an existing stub file for reproducible installs without runtime API calls"},
	{Key: FlagGenerateToolStubPlatformBin, Repeatable: true, ValueName: "PLATFORM_BIN", ValueDemanded: true, Short: "Platform-specific binary paths in the format platform:path", Long: "Platform-specific binary paths in the format platform:path\n\nExamples: --platform-bin windows-x64:tool.exe --platform-bin linux-x64:bin/tool"},
	{Key: FlagGenerateToolStubPlatformUrl, Repeatable: true, ValueName: "PLATFORM_URL", ValueDemanded: true, Short: "Platform-specific URLs in the format platform:url or just url (auto-detect platform)", Long: "Platform-specific URLs in the format platform:url or just url (auto-detect platform)\n\nWhen the output file already exists, new platforms will be appended to the existing platforms table. Existing platform URLs will be updated if specified again.\n\nIf only a URL is provided (without platform:), the platform will be automatically detected from the URL filename.\n\nExamples: --platform-url linux-x64:https://... --platform-url https://nodejs.org/dist/v22.17.1/node-v22.17.1-darwin-arm64.tar.gz"},
	{Key: FlagGenerateToolStubSkipDownload, Short: "Skip downloading for checksum and binary path detection (faster but less informative)", Long: "Skip downloading for checksum and binary path detection (faster but less informative)"},
	{Key: FlagGenerateToolStubUrl, ValueName: "URL", ValueDemanded: true, Short: "URL for downloading the tool", Long: "URL for downloading the tool\n\nExample: https://github.com/owner/repo/releases/download/v2.0.0/tool-linux-x64.tar.gz"},
	{Key: FlagGenerateToolStubVersion, ValueName: "VERSION", ValueDemanded: true, Short: "Version of the tool", Long: "Version of the tool", Default: []string{"latest"}},
	{Key: ArgGenerateToolStubOutput, Demanded: true, Short: "Output file path for the tool stub", Long: "Output file path for the tool stub"},
	{Key: CmdGithub, Hide: true, Short: "GitHub related commands", SubcommandRequired: true},
	{Key: CmdGithubToken, Hide: true, Short: "Display the GitHub token mise will use for a given host", Long: "Display the GitHub token mise will use for a given host\n\nShows which token source mise would use, useful for debugging authentication issues. The token is masked by default.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise github token\x1b[22m\n    github.com: ghp_…xxxx (source: GITHUB_TOKEN)\n\n    $ \x1b[1mmise github token --unmask\x1b[22m\n    github.com: ghp_xxxxxxxxxxxx (source: GITHUB_TOKEN)\n\n    $ \x1b[1mmise github token github.mycompany.com\x1b[22m\n    github.mycompany.com: (none)\n"},
	{Key: FlagGithubTokenOauth, Short: "Force native GitHub OAuth device flow instead of normal token resolution", Long: "Force native GitHub OAuth device flow instead of normal token resolution"},
	{Key: FlagGithubTokenRaw, Short: "Print only the token value", Long: "Print only the token value"},
	{Key: FlagGithubTokenRefresh, Short: "Mint a fresh OAuth token even if the cached one has not expired, via the refresh-token grant or a new device-code flow", Long: "Mint a fresh OAuth token even if the cached one has not\nexpired, via the refresh-token grant or a new device-code flow"},
	{Key: FlagGithubTokenUnmask, Short: "Show the full unmasked token", Long: "Show the full unmasked token"},
	{Key: ArgGithubTokenHost, Short: "GitHub hostname", Long: "GitHub hostname", Default: []string{"github.com"}},
	{Key: CmdGlobal, Hide: true, Short: "Sets/gets the global tool version(s)", Long: "Sets/gets the global tool version(s)\n\nDisplays the contents of global config after writing. The file is `$HOME/.config/mise/config.toml` by default. It can be changed with `$MISE_GLOBAL_CONFIG_FILE`. If `$MISE_GLOBAL_CONFIG_FILE` is set to anything that ends in `.toml`, it will be parsed as `mise.toml`. Otherwise, it will be parsed as a `.tool-versions` file.\n\nUse MISE_ASDF_COMPAT=1 to default the global config to ~/.tool-versions\n\nUse `mise local` to set a tool version locally in the current directory.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n    # set the current version of node to 20.x\n    # will use a fuzzy version (e.g.: 20) in .tool-versions file\n    $ \x1b[1mmise global --fuzzy node@20\x1b[22m\n\n    # set the current version of node to 20.x\n    # will use a precise version (e.g.: 20.0.0) in .tool-versions file\n    $ \x1b[1mmise global --pin node@20\x1b[22m\n\n    # show the current version of node in ~/.tool-versions\n    $ \x1b[1mmise global node\x1b[22m\n    20.0.0\n"},
	{Key: FlagGlobalFuzzy, Short: "Save fuzzy version to `~/.tool-versions`\ne.g.: `mise global --fuzzy node@20` will save `node 20` to ~/.tool-versions\nthis is the default behavior unless MISE_ASDF_COMPAT=1", Long: "Save fuzzy version to `~/.tool-versions`\ne.g.: `mise global --fuzzy node@20` will save `node 20` to ~/.tool-versions\nthis is the default behavior unless MISE_ASDF_COMPAT=1"},
	{Key: FlagGlobalPath, Short: "Get the path of the global config file", Long: "Get the path of the global config file"},
	{Key: FlagGlobalPin, Short: "Save exact version to `~/.tool-versions`\ne.g.: `mise global --pin node@20` will save `node 20.0.0` to ~/.tool-versions", Long: "Save exact version to `~/.tool-versions`\ne.g.: `mise global --pin node@20` will save `node 20.0.0` to ~/.tool-versions"},
	{Key: FlagGlobalRemove, Repeatable: true, ValueName: "TOOL", ValueDemanded: true, Short: "Remove the tool(s) from ~/.tool-versions", Long: "Remove the tool(s) from ~/.tool-versions"},
	{Key: ArgGlobalToolVersion, Short: "Tool(s) to add to .tool-versions\ne.g.: node@20\nIf this is a single tool with no version, the current value of the global\n.tool-versions will be displayed", Long: "Tool(s) to add to .tool-versions\ne.g.: node@20\nIf this is a single tool with no version, the current value of the global\n.tool-versions will be displayed"},
	{Key: CmdHookEnv, Hide: true, Short: "[internal] called by activate hook to update env vars directory change"},
	{Key: FlagHookEnvForce, Short: "Skip early exit check", Long: "Skip early exit check"},
	{Key: FlagHookEnvQuiet, Short: "Hide warnings such as when a tool is not installed", Long: "Hide warnings such as when a tool is not installed"},
	{Key: FlagHookEnvShell, ValueName: "SHELL", ValueDemanded: true, Short: "Shell type to generate script for", Long: "Shell type to generate script for"},
	{Key: FlagHookEnvReason, Hide: true, ValueName: "REASON", ValueDemanded: true, Short: "Reason for calling hook-env (e.g., \"precmd\", \"chpwd\")", Long: "Reason for calling hook-env (e.g., \"precmd\", \"chpwd\")", Choices: []string{"precmd", "chpwd"}},
	{Key: FlagHookEnvStatus, Hide: true, Short: "Show \"mise: <TOOL>@<VERSION>\" message when changing directories", Long: "Show \"mise: <TOOL>@<VERSION>\" message when changing directories"},
	{Key: CmdHookNotFound, Hide: true, Short: "[internal] called by shell when a command is not found"},
	{Key: FlagHookNotFoundShell, ValueName: "SHELL", ValueDemanded: true, Short: "Shell type to generate script for", Long: "Shell type to generate script for"},
	{Key: ArgHookNotFoundBin, Demanded: true, Short: "Attempted bin to run", Long: "Attempted bin to run"},
	{Key: CmdImplode, Short: "Removes mise CLI and all related data", Long: "Removes mise CLI and all related data\n\nSkips config directory by default."},
	{Key: FlagImplodeDryRun, Short: "List directories that would be removed without actually removing them", Long: "List directories that would be removed without actually removing them"},
	{Key: FlagImplodeConfig, Short: "Also remove config directory", Long: "Also remove config directory"},
	{Key: CmdEdit, Short: "Edit mise.toml interactively", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise edit\x1b[22m             \x1b[2m# edit mise.toml interactively\x1b[22m\n    $ \x1b[1mmise edit .mise.toml\x1b[22m  \x1b[2m# edit a specific file\x1b[22m\n    $ \x1b[1mmise edit -g\x1b[22m          \x1b[2m# edit the global config file\x1b[22m\n    $ \x1b[1mmise edit -y\x1b[22m          \x1b[2m# skip interactive editor\x1b[22m\n    $ \x1b[1mmise edit -n\x1b[22m          \x1b[2m# preview without writing\x1b[22m\n"},
	{Key: FlagEditGlobal, Short: "Edit the global config file (~/.config/mise/config.toml)", Long: "Edit the global config file (~/.config/mise/config.toml)"},
	{Key: FlagEditDryRun, Short: "Show what would be generated without writing to file", Long: "Show what would be generated without writing to file"},
	{Key: FlagEditToolVersions, ValueName: "TOOL_VERSIONS", ValueDemanded: true, Short: "Path to a .tool-versions file to import tools from", Long: "Path to a .tool-versions file to import tools from"},
	{Key: ArgEditPath, Short: "Path to the config file to create", Long: "Path to the config file to create"},
	{Key: CmdInstall, Short: "Install a tool version", Long: "Install a tool version\n\nInstalls a tool version to `~/.local/share/mise/installs/<TOOL>/<VERSION>` Installing alone will not activate the tools so they won't be in PATH. To install and/or activate in one command, use `mise use` which will create a `mise.toml` file in the current directory to activate this tool when inside the directory. Alternatively, run `mise exec <TOOL>@<VERSION> -- <COMMAND>` to execute a tool without creating config files.\n\nTools will be installed in parallel. To disable, set `--jobs=1` or `MISE_JOBS=1`", VisibleAliases: []string{"i"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise install node@20.0.0\x1b[22m  # install specific node version\n    $ \x1b[1mmise install node@20\x1b[22m      # install fuzzy node version\n    $ \x1b[1mmise install node\x1b[22m         # install version specified in mise.toml\n    $ \x1b[1mmise install\x1b[22m              # installs everything specified in mise.toml\n    $ \x1b[1mmise install --include-task-tools\x1b[22m # also install tools required by tasks\n"},
	{Key: FlagInstallForce, Short: "Force reinstall even if already installed\nWith no tools specified, reinstall all configured tools", Long: "Force reinstall even if already installed\nWith no tools specified, reinstall all configured tools"},
	{Key: FlagInstallJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Env: "MISE_JOBS"},
	{Key: FlagInstallDryRun, Short: "Show what would be installed without actually installing", Long: "Show what would be installed without actually installing"},
	{Key: FlagInstallVerbose, Repeatable: true, Short: "Show installation output", Long: "Show installation output\n\nThis argument will print backend output such as download, configuration, and compilation output."},
	{Key: FlagInstallDryRunCode, Short: "Like --dry-run but exits with code 1 if there are tools to install", Long: "Like --dry-run but exits with code 1 if there are tools to install\n\nThis is useful for scripts to check if tools need to be installed."},
	{Key: FlagInstallIncludeTaskTools, Short: "Also install tools required by tasks in the current scope", Long: "Also install tools required by tasks in the current scope\n\nThis prepares task tools without running task commands or dependencies. Combine with --monorepo to include tasks from every configured root."},
	{Key: FlagInstallMinimumReleaseAge, ValueName: "MINIMUM_RELEASE_AGE", ValueDemanded: true, Short: "Only install versions released before this date or older than this duration", Long: "Only install versions released before this date or older than this duration\n\nSupports absolute dates like \"2024-06-01\" and relative durations like \"90d\" or \"1y\"."},
	{Key: FlagInstallMonorepo, Short: "Install tools from every [monorepo].config_roots config root", Long: "Install tools from every [monorepo].config_roots config root\n\nUses the active MISE_ENV and requires monorepo_root = true plus explicit [monorepo].config_roots in the monorepo root config.", Env: "MISE_MONOREPO"},
	{Key: FlagInstallRaw, Short: "Connect backend install command stdin/stdout/stderr directly to the terminal Implies --jobs=1", Long: "Connect backend install command stdin/stdout/stderr directly to the terminal\nImplies --jobs=1"},
	{Key: FlagInstallShared, ValueName: "SHARED", ValueDemanded: true, Short: "Install tool(s) to a shared directory", Long: "Install tool(s) to a shared directory\n\nInstalls to the specified directory instead of the default install location. May require elevated permissions depending on the path."},
	{Key: FlagInstallSystem, Short: "Install tool(s) to the system-wide shared directory", Long: "Install tool(s) to the system-wide shared directory\n\nInstalls to /usr/local/share/mise/installs (or MISE_SYSTEM_DATA_DIR/installs). May require elevated permissions (e.g. sudo)."},
	{Key: ArgInstallToolVersion, Short: "Tool(s) to install e.g.: node@20", Long: "Tool(s) to install\ne.g.: node@20"},
	{Key: CmdInstallInto, Short: "Install a tool version to a specific path", Long: "Install a tool version to a specific path\n\nUsed for building a tool to a directory for use outside of mise", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # install node@20.0.0 into ./mynode\n    $ \x1b[1mmise install-into node@20.0.0 ./mynode && ./mynode/bin/node -v\x1b[22m\n    20.0.0\n"},
	{Key: ArgInstallIntoToolVersion, Demanded: true, Short: "Tool to install e.g.: node@20", Long: "Tool to install\ne.g.: node@20"},
	{Key: ArgInstallIntoPath, Demanded: true, Short: "Path to install the tool into", Long: "Path to install the tool into"},
	{Key: CmdLatest, Short: "Gets the latest available version for a plugin", Long: "Gets the latest available version for a plugin\n\nSupports prefixes such as `node@20` to get the latest version of node 20.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise latest node@20\x1b[22m  # get the latest version of node 20\n    20.0.0\n\n    $ \x1b[1mmise latest node\x1b[22m     # get the latest stable version of node\n    20.0.0\n\n    $ \x1b[1mmise latest node --minimum-release-age 2024-01-01\x1b[22m  # latest stable node released before 2024-01-01\n"},
	{Key: FlagLatestInstalled, Short: "Show latest installed instead of available version", Long: "Show latest installed instead of available version"},
	{Key: FlagLatestMinimumReleaseAge, ValueName: "MINIMUM_RELEASE_AGE", ValueDemanded: true, Short: "Only consider versions released before this date or older than this duration", Long: "Only consider versions released before this date or older than this duration\n\nSupports absolute dates like \"2024-06-01\" and relative durations like \"90d\" or \"1y\". Overrides per-tool `minimum_release_age` options and the global `minimum_release_age` setting."},
	{Key: ArgLatestToolVersion, Demanded: true, Short: "Tool to get the latest version of", Long: "Tool to get the latest version of"},
	{Key: ArgLatestAsdfVersion, Hide: true, Short: "The version prefix to use when querying the latest version same as the first argument after the \"@\" used for asdf compatibility", Long: "The version prefix to use when querying the latest version\nsame as the first argument after the \"@\"\nused for asdf compatibility"},
	{Key: CmdLink, Short: "Symlinks a tool version into mise", Long: "Symlinks a tool version into mise\n\nUse this for adding installs either custom compiled outside mise or built with a different tool.", VisibleAliases: []string{"ln"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # build node-20.0.0 with node-build and link it into mise\n    $ \x1b[1mnode-build 20.0.0 ~/.nodes/20.0.0\x1b[22m\n    $ \x1b[1mmise link node@20.0.0 ~/.nodes/20.0.0\x1b[22m\n\n    # have mise use the node version provided by Homebrew\n    $ \x1b[1mbrew install node\x1b[22m\n    $ \x1b[1mmise link node@brew $(brew --prefix node)\x1b[22m\n    $ \x1b[1mmise use node@brew\x1b[22m\n"},
	{Key: FlagLinkForce, Short: "Overwrite an existing tool version if it exists", Long: "Overwrite an existing tool version if it exists"},
	{Key: ArgLinkToolVersion, Demanded: true, Short: "Tool name and version to create a symlink for", Long: "Tool name and version to create a symlink for"},
	{Key: ArgLinkPath, Demanded: true, Short: "The local path to the tool version\ne.g.: ~/.nvm/versions/node/v20.0.0", Long: "The local path to the tool version\ne.g.: ~/.nvm/versions/node/v20.0.0"},
	{Key: CmdLocal, Hide: true, Short: "Sets/gets tool version in local .tool-versions or mise.toml", Long: "Sets/gets tool version in local .tool-versions or mise.toml\n\nUse this to set a tool's version when within a directory Use `mise global` to set a tool version globally This uses `.tool-version` by default unless there is a `mise.toml` file or if `MISE_USE_TOML` is set. A future v2 release of mise will default to using `mise.toml`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n    # set the current version of node to 20.x for the current directory\n    # will use a precise version (e.g.: 20.0.0) in .tool-versions file\n    $ \x1b[1mmise local node@20\x1b[22m\n\n    # set node to 20.x for the current project (recurses up to find .tool-versions)\n    $ \x1b[1mmise local -p node@20\x1b[22m\n\n    # set the current version of node to 20.x for the current directory\n    # will use a fuzzy version (e.g.: 20) in .tool-versions file\n    $ \x1b[1mmise local --fuzzy node@20\x1b[22m\n\n    # removes node from .tool-versions\n    $ \x1b[1mmise local --remove=node\x1b[22m\n\n    # show the current version of node in .tool-versions\n    $ \x1b[1mmise local node\x1b[22m\n    20.0.0\n"},
	{Key: FlagLocalParent, Short: "Recurse up to find a .tool-versions file rather than using the current directory only\nby default this command will only set the tool in the current directory (\"$PWD/.tool-versions\")", Long: "Recurse up to find a .tool-versions file rather than using the current directory only\nby default this command will only set the tool in the current directory (\"$PWD/.tool-versions\")"},
	{Key: FlagLocalFuzzy, Short: "Save fuzzy version to `.tool-versions` e.g.: `mise local --fuzzy node@20` will save `node 20` to .tool-versions This is the default behavior unless MISE_ASDF_COMPAT=1", Long: "Save fuzzy version to `.tool-versions`\ne.g.: `mise local --fuzzy node@20` will save `node 20` to .tool-versions\nThis is the default behavior unless MISE_ASDF_COMPAT=1"},
	{Key: FlagLocalPath, Short: "Get the path of the config file", Long: "Get the path of the config file"},
	{Key: FlagLocalPin, Short: "Save exact version to `.tool-versions`\ne.g.: `mise local --pin node@20` will save `node 20.0.0` to .tool-versions", Long: "Save exact version to `.tool-versions`\ne.g.: `mise local --pin node@20` will save `node 20.0.0` to .tool-versions"},
	{Key: FlagLocalRemove, Repeatable: true, ValueName: "TOOL", ValueDemanded: true, Short: "Remove the tool(s) from .tool-versions", Long: "Remove the tool(s) from .tool-versions"},
	{Key: ArgLocalToolVersion, Short: "Tool(s) to add to .tool-versions/mise.toml\ne.g.: node@20\nif this is a single tool with no version,\nthe current value of .tool-versions/mise.toml will be displayed", Long: "Tool(s) to add to .tool-versions/mise.toml\ne.g.: node@20\nif this is a single tool with no version,\nthe current value of .tool-versions/mise.toml will be displayed"},
	{Key: CmdLock, Short: "Update lockfile checksums and URLs for all specified platforms", Long: "Update lockfile checksums and URLs for all specified platforms\n\nUpdates checksums and download URLs for all platforms already specified in the lockfile. If no lockfile exists, shows what would be created based on the current configuration, including tools declared by tasks. This allows you to refresh lockfile data for platforms other than the one you're currently on. Operates on the lockfile in the current config root. Use TOOL arguments to target specific tools.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise lock\x1b[22m                       # update lockfile for all common platforms\n    $ \x1b[1mmise lock node python\x1b[22m           # update only node and python\n    $ \x1b[1mmise lock --platform linux-x64\x1b[22m  # update only linux-x64 platform\n    $ \x1b[1mmise lock --dry-run\x1b[22m             # show what would be updated\n    $ \x1b[1mmise lock --bump\x1b[22m                # re-resolve selectors like \"latest\" or \"20\" to the latest matching versions\n    $ \x1b[1mmise lock --bump --dry-run --json\x1b[22m   # list available updates as JSON without writing\n    $ \x1b[1mmise lock --minimum-release-age 2024-01-01\x1b[22m   # lock latest/fuzzy versions released before 2024-01-01\n    $ \x1b[1mmise lock --local\x1b[22m               # update mise.local.lock for local configs\n    $ \x1b[1mmise lock --global\x1b[22m              # update only global config lockfiles\n"},
	{Key: FlagLockGlobal, Short: "Target only global config lockfiles (~/.config/mise/mise.lock and system config)\nBy default, only the active project config root is locked", Long: "Target only global config lockfiles (~/.config/mise/mise.lock and system config)\nBy default, only the active project config root is locked"},
	{Key: FlagLockJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1", Env: "MISE_JOBS"},
	{Key: FlagLockDryRun, Short: "Show what would be updated without making changes", Long: "Show what would be updated without making changes"},
	{Key: FlagLockPlatform, Repeatable: true, ValueName: "PLATFORM", ValueDemanded: true, Short: "Comma-separated list of platforms to target\ne.g.: linux-x64,macos-arm64,windows-x64\nIf not specified, all platforms already in lockfile will be updated", Long: "Comma-separated list of platforms to target\ne.g.: linux-x64,macos-arm64,windows-x64\nIf not specified, all platforms already in lockfile will be updated"},
	{Key: FlagLockBump, Short: "Re-resolve fuzzy version selectors against the latest available versions", Long: "Re-resolve fuzzy version selectors against the latest available versions\n\nBy default, `mise lock` refreshes metadata for the currently locked versions. With this flag, selectors like \"latest\", \"lts\", or prefixes like \"20\" are re-resolved against the latest matching remote versions, so the lockfile advances without installing anything. Config files are never modified: exactly pinned versions resolve to themselves and stay unchanged (use `mise upgrade --bump` to rewrite pins in mise.toml)."},
	{Key: FlagLockJson, Short: "Output version changes as JSON", Long: "Output version changes as JSON\n\nPrints an array of objects describing lockfile version changes: name, backend, lockfile, old_versions, new_versions. Version lists keep config/lockfile order; they are not sorted. Only version-level changes are reported: checksum/URL refreshes for unchanged versions produce no entries, so plain `mise lock --json` typically prints `[]` while still updating the lockfile. Suppresses the human-readable output. Combine with `--dry-run` to detect available updates without writing the lockfile."},
	{Key: FlagLockLocal, Short: "Update mise.local.lock instead of mise.lock\nUse for tools defined in .local.toml configs", Long: "Update mise.local.lock instead of mise.lock\nUse for tools defined in .local.toml configs"},
	{Key: FlagLockMinimumReleaseAge, ValueName: "MINIMUM_RELEASE_AGE", ValueDemanded: true, Short: "Only lock versions released before this age or date", Long: "Only lock versions released before this age or date\n\nSupports absolute dates like \"2024-06-01\" and relative durations like \"90d\" or \"1y\". This only affects fuzzy version matches like \"20\" or \"latest\". Explicitly pinned versions like \"22.5.0\" are not filtered. Existing matching lockfile entries are preserved and are not downgraded solely by this flag."},
	{Key: ArgLockTool, Short: "Tool(s) to update in lockfile\ne.g.: node python\nIf not specified, all configured and task-specific tools will be updated", Long: "Tool(s) to update in lockfile\ne.g.: node python\nIf not specified, all configured and task-specific tools will be updated"},
	{Key: CmdLs, Short: "List installed and active tool versions", Long: "List installed and active tool versions\n\nThis command lists tools that mise \"knows about\". These may be tools that are currently installed, or those that are in a config file (active) but may or may not be installed.\n\nIt's a useful command to get the current state of your tools.", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise ls\x1b[22m\n    node    20.0.0 ~/src/myapp/.tool-versions latest\n    python  3.11.0 ~/.tool-versions           3.10\n    python  3.10.0\n\n    $ \x1b[1mmise ls --current\x1b[22m\n    node    20.0.0 ~/src/myapp/.tool-versions 20\n    python  3.11.0 ~/.tool-versions           3.11.0\n\n    $ \x1b[1mmise ls --json\x1b[22m\n    {\n      \"node\": [\n        {\n          \"version\": \"20.0.0\",\n          \"install_path\": \"/Users/jdx/.mise/installs/node/20.0.0\",\n          \"source\": {\n            \"type\": \"mise.toml\",\n            \"path\": \"/Users/jdx/mise.toml\"\n          }\n        }\n      ],\n      \"python\": [...]\n    }\n\n    $ \x1b[1mmise ls --all-sources\x1b[22m\n    node    20.0.0  ~/src/myapp/mise.toml  20\n                    ~/.config/mise/config.toml  latest\n"},
	{Key: FlagLsCurrent, Short: "Only show tool versions currently specified in a mise.toml", Long: "Only show tool versions currently specified in a mise.toml"},
	{Key: FlagLsGlobal, Short: "Only show tool versions currently specified in the global mise.toml", Long: "Only show tool versions currently specified in the global mise.toml"},
	{Key: FlagLsInstalled, Short: "Only show tool versions that are installed (Hides tools defined in mise.toml but not installed)", Long: "Only show tool versions that are installed\n(Hides tools defined in mise.toml but not installed)"},
	{Key: FlagLsJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagLsLocal, Short: "Only show tool versions currently specified in the local mise.toml", Long: "Only show tool versions currently specified in the local mise.toml"},
	{Key: FlagLsMissing, Short: "Display missing tool versions", Long: "Display missing tool versions"},
	{Key: FlagLsOffline, Hide: true, Short: "Don't fetch information such as outdated versions", Long: "Don't fetch information such as outdated versions"},
	{Key: FlagLsPlugin, Hide: true, ValueName: "PLUGIN", ValueDemanded: true},
	{Key: FlagLsAllSources, Short: "Display all tracked config sources for tools", Long: "Display all tracked config sources for tools"},
	{Key: FlagLsMonorepo, Short: "List tools from every [monorepo].config_roots config root", Long: "List tools from every [monorepo].config_roots config root\n\nUses the active MISE_ENV and requires monorepo_root = true plus explicit [monorepo].config_roots in the monorepo root config.", Env: "MISE_MONOREPO"},
	{Key: FlagLsNoHeader, Short: "Don't display headers", Long: "Don't display headers"},
	{Key: FlagLsOutdated, Short: "Display whether a version is outdated", Long: "Display whether a version is outdated"},
	{Key: FlagLsPrefix, ValueName: "PREFIX", ValueDemanded: true, Short: "Display versions matching this prefix", Long: "Display versions matching this prefix"},
	{Key: FlagLsPrunable, Short: "List only tools that can be pruned with `mise prune`", Long: "List only tools that can be pruned with `mise prune`"},
	{Key: ArgLsInstalledTool, Short: "Only show tool versions from [TOOL]", Long: "Only show tool versions from [TOOL]"},
	{Key: CmdLsRemote, Short: "List runtime versions available for install.", Long: "List runtime versions available for install.\n\nNote that the results may be cached, run `mise cache clean` to clear the cache and get fresh results.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise ls-remote node\x1b[22m\n    18.0.0\n    20.0.0\n\n    $ \x1b[1mmise ls-remote node@20\x1b[22m\n    20.0.0\n    20.1.0\n\n    $ \x1b[1mmise ls-remote node 20\x1b[22m\n    20.0.0\n    20.1.0\n\n    $ \x1b[1mmise ls-remote node --minimum-release-age 2024-01-01\x1b[22m\n    20.0.0\n\n    $ \x1b[1mmise ls-remote github:cli/cli --json\x1b[22m\n    [{\"version\":\"2.62.0\",\"created_at\":\"2024-11-14T15:40:35Z\",\"prerelease\":false},{\"version\":\"2.61.0\",\"created_at\":\"2024-10-23T19:22:15Z\",\"prerelease\":false}]\n"},
	{Key: FlagLsRemoteAll, Short: "Show all installed plugins and versions", Long: "Show all installed plugins and versions"},
	{Key: FlagLsRemoteMinimumReleaseAge, ValueName: "MINIMUM_RELEASE_AGE", ValueDemanded: true, Short: "Only show versions released before this age or date", Long: "Only show versions released before this age or date\n\nSupports absolute dates like \"2024-06-01\" and relative durations like \"90d\" or \"1y\"."},
	{Key: FlagLsRemoteJson, Short: "Output in JSON format (includes version metadata like created_at timestamps when available)", Long: "Output in JSON format (includes version metadata like created_at timestamps when available)"},
	{Key: FlagLsRemoteNoVersionsHost, Short: "Disable checking the mise-versions host", Long: "Disable checking the mise-versions host"},
	{Key: FlagLsRemotePrerelease, Short: "Include pre-release versions in the output for backends that report\nupstream prerelease metadata or opt in to regex-based prerelease\ndetection. Equivalent to setting `MISE_PRERELEASES=1` or the\n`prereleases` setting for the duration of this command.", Long: "Include pre-release versions in the output for backends that report\nupstream prerelease metadata or opt in to regex-based prerelease\ndetection. Equivalent to setting `MISE_PRERELEASES=1` or the\n`prereleases` setting for the duration of this command."},
	{Key: FlagLsRemoteStrictMetadata, Short: "Fail if release metadata fetches fail", Long: "Fail if release metadata fetches fail\n\nRequires --json and --no-versions-host.\n\nThis prevents metadata consumers from accepting empty fallback results when a backend's metadata-producing upstream request fails."},
	{Key: ArgLsRemoteToolVersion, Short: "Tool to get versions for", Long: "Tool to get versions for"},
	{Key: ArgLsRemotePrefix, Short: "The version prefix to use when querying the latest version\nsame as the first argument after the \"@\"", Long: "The version prefix to use when querying the latest version\nsame as the first argument after the \"@\""},
	{Key: CmdMcp, Short: "Run Model Context Protocol (MCP) server", Long: "Run Model Context Protocol (MCP) server\n\nThis command starts an MCP server that exposes mise functionality to AI assistants over stdin/stdout using JSON-RPC protocol.\n\nThe MCP server provides access to: - Installed and available tools - Task definitions and execution - Environment variables - Configuration information - Task execution via the run_task tool\n\nResources available: - mise://tools - List all tools (use ?include_inactive=true to include inactive tools) - mise://tasks - List all tasks with their configurations - mise://env - List all environment variables - mise://config - Show configuration files and project root\n\nTools available: - list_commands - Every mise command, with its declared effect on the world - install_tool - Install a tool with an optional version (not yet implemented) - run_task - Execute a mise task with optional arguments\n\nNote: This is primarily intended for integration with AI assistants like Claude, Cursor, or other tools that support the Model Context Protocol.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Start the MCP server (typically used by AI assistant tools)\n    $ \x1b[1mmise mcp\x1b[22m\n\n    # Example integration with Claude Desktop (add to claude_desktop_config.json):\n    {\n      \"mcpServers\": {\n        \"mise\": {\n          \"command\": \"mise\",\n          \"args\": [\"mcp\"],\n          \"env\": {}\n        }\n      }\n    }\n\n    # Interactive testing with JSON-RPC commands:\n    $ \x1b[1mecho '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}' | mise mcp\x1b[22m\n\n    # Resources you can query:\n    - \x1b[1mmise://tools\x1b[22m - List active tools\n    - \x1b[1mmise://tools?include_inactive=true\x1b[22m - List all installed tools\n    - \x1b[1mmise://tasks\x1b[22m - List all tasks\n    - \x1b[1mmise://env\x1b[22m - List environment variables\n    - \x1b[1mmise://config\x1b[22m - Show configuration info\n\n    # Tools available:\n    - \x1b[1mlist_commands\x1b[22m - Every mise command and what running it does\n      Example: {\"include_hidden\": false}\n    - \x1b[1minstall_tool\x1b[22m - Install a tool (not yet implemented)\n    - \x1b[1mrun_task\x1b[22m - Execute a mise task with optional arguments\n      Example: {\"task\": \"build\", \"args\": [\"--verbose\"]}\n"},
	{Key: CmdOci, Short: "[experimental] Build OCI container images from a mise.toml", Long: "[experimental] Build OCI container images from a mise.toml\n\nEach tool becomes its own OCI layer, so bumping any single tool version only invalidates one content-addressable blob — unlike a Dockerfile where changing an early `RUN` invalidates every layer above it.\n\nThis command is experimental and requires `mise settings experimental=true` (or `MISE_EXPERIMENTAL=1`). Behavior, flags, and output layout may change in future releases.", SubcommandRequired: true},
	{Key: CmdOciBuild, Short: "[experimental] Build an OCI image from the current mise.toml", Long: "[experimental] Build an OCI image from the current mise.toml\n\nEach tool version becomes its own content-addressable OCI layer. Bumping a tool version only invalidates that tool's layer — other tools, the base image, and config are reused unchanged. The output directory conforms to the OCI image-layout spec and can be consumed by `skopeo`, `crane`, or `podman load`.\n\nRequires `mise settings experimental=true` (or `MISE_EXPERIMENTAL=1`).", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    Build with defaults (debian:bookworm-slim base):\n    $ \x1b[1mmise oci build\x1b[22m\n\n    Build with a specific base image and tag:\n    $ \x1b[1mmise oci build --from ubuntu:24.04 --tag myorg/dev:latest -o ./img\x1b[22m\n\n    Inspect the result with skopeo:\n    $ \x1b[1mskopeo inspect oci:./mise-oci\x1b[22m\n\n    Push to a registry:\n    $ \x1b[1mmise oci push --image-dir ./mise-oci ghcr.io/me/dev:latest\x1b[22m\n\n\x1b[1m\x1b[4mNotes:\x1b[22m\x1b[24m\n\n    - The image only contains tools from the project's mise config (and\n      any configs at-or-below the project root). Tools from\n      `~/.config/mise/config.toml` are not included; pass --include-global\n      to package them too.\n    - asdf and vfox plugins are not supported in v1; use a different backend\n      (core, aqua, ubi, github, cargo, npm, go, pipx, spm, http) for each tool.\n    - The host mise binary is embedded at /usr/local/bin/mise by default;\n      build on the same OS/arch as your target image (or pass --no-mise).\n"},
	{Key: FlagOciBuildCopy, Repeatable: true, ValueName: "HOST_PATH:IMAGE_PATH", ValueDemanded: true, Short: "Copy a host file, directory, or symlink into the image (repeatable, HOST:IMAGE)", Long: "Copy a host file, directory, or symlink into the image (repeatable, HOST:IMAGE)"},
	{Key: FlagOciBuildOutput, ValueName: "OUTPUT", ValueDemanded: true, Short: "Output directory for the OCI image layout", Long: "Output directory for the OCI image layout", Default: []string{"./mise-oci"}},
	{Key: FlagOciBuildFrom, ValueName: "FROM", ValueDemanded: true, Short: "Base image reference (overrides [oci].from and the oci.default_from setting)", Long: "Base image reference (overrides [oci].from and the oci.default_from setting)"},
	{Key: FlagOciBuildIncludeGlobal, Short: "Also include tools from the global / system config (default: project-only)", Long: "Also include tools from the global / system config (default: project-only)\n\nBy default `mise oci build` only packages tools declared in the project's mise config (and any parent configs at-or-below the project root, e.g. a monorepo root config). Personal dev tools in `~/.config/mise/config.toml` are excluded so they don't bake into a project image. Pass `--include-global` to revert to the old \"merge all loaded configs\" behavior."},
	{Key: FlagOciBuildTag, ValueName: "TAG", ValueDemanded: true, Short: "Tag to record in the image index (the org.opencontainers.image.ref.name annotation)", Long: "Tag to record in the image index (the org.opencontainers.image.ref.name annotation)"},
	{Key: FlagOciBuildMountPoint, ValueName: "MOUNT_POINT", ValueDemanded: true, Short: "Where to place tool installs inside the image (default: /mise)", Long: "Where to place tool installs inside the image (default: /mise)"},
	{Key: FlagOciBuildNoMise, Short: "Do not embed the currently-running mise binary at /usr/local/bin/mise", Long: "Do not embed the currently-running mise binary at /usr/local/bin/mise"},
	{Key: FlagOciBuildOwner, ValueName: "UID[:GID]", ValueDemanded: true, Short: "UID[:GID] to assign to every tar entry in generated layers", Long: "UID[:GID] to assign to every tar entry in generated layers\n\nOverrides [oci].user_id / [oci].group_id. Defaults to 0:0. If GID is omitted, it defaults to UID. This affects file ownership only; [oci].user controls the image USER directive."},
	{Key: CmdOciPush, Short: "[experimental] Build an OCI image and push it to a registry", Long: "[experimental] Build an OCI image and push it to a registry\n\nPushes with mise's built-in registry client — no skopeo/crane/docker required. If `--image-dir` is not passed, builds fresh from the current mise.toml first. Only blobs the registry doesn't already have are uploaded, so repeat pushes of mostly-unchanged toolsets are cheap.\n\nTool layers whose tool, version, mount point, and file owner match the previously pushed image (or `--cache-from`) are reused without being rebuilt — those tools don't even need to be installed locally. Pass `--no-cache` to force a full local rebuild.\n\nCredentials are read from the same places docker and podman use: `$REGISTRY_AUTH_FILE`, `$XDG_RUNTIME_DIR/containers/auth.json`, `~/.config/containers/auth.json`, and `~/.docker/config.json` (including credential helpers) — so `docker login` / `podman login` is all the setup needed.\n\nRequires `mise settings experimental=true` (or `MISE_EXPERIMENTAL=1`).", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    Build and push to GHCR:\n    $ \x1b[1mmise oci push ghcr.io/me/devenv:latest\x1b[22m\n\n    Push an image built earlier:\n    $ \x1b[1mmise oci build -o ./img\x1b[22m\n    $ \x1b[1mmise oci push --image-dir ./img ghcr.io/me/devenv:v1\x1b[22m\n\n\x1b[1m\x1b[4mAuth:\x1b[22m\x1b[24m\n\n    Credentials are resolved the same way docker/podman resolve them:\n    \x1b[1m$REGISTRY_AUTH_FILE\x1b[22m, \x1b[1m$XDG_RUNTIME_DIR/containers/auth.json\x1b[22m,\n    \x1b[1m~/.config/containers/auth.json\x1b[22m, then \x1b[1m~/.docker/config.json\x1b[22m\n    (inline auths and credential helpers). Log in with either:\n    $ \x1b[1mdocker login ghcr.io\x1b[22m\n    $ \x1b[1mpodman login ghcr.io\x1b[22m\n"},
	{Key: FlagOciPushCacheFrom, ValueName: "REF", ValueDemanded: true, Short: "Reuse unchanged tool layers from this image instead of the destination ref", Long: "Reuse unchanged tool layers from this image instead of the destination ref\n\nMust live in the same repository as the destination. Useful when each push gets a unique tag (e.g. per-commit tags in CI): `--cache-from ghcr.io/me/dev:latest ghcr.io/me/dev:$SHA`."},
	{Key: FlagOciPushFrom, ValueName: "FROM", ValueDemanded: true, Short: "Base image for the build (ignored with --image-dir)", Long: "Base image for the build (ignored with --image-dir)"},
	{Key: FlagOciPushImageDir, ValueName: "IMAGE_DIR", ValueDemanded: true, Short: "Push an already-built OCI image layout (skip the build step)", Long: "Push an already-built OCI image layout (skip the build step)"},
	{Key: FlagOciPushIncludeGlobal, Short: "Also include tools from the global / system config (default: project-only)", Long: "Also include tools from the global / system config (default: project-only)\n\nSee `mise oci build --help` for details."},
	{Key: FlagOciPushMountPoint, ValueName: "MOUNT_POINT", ValueDemanded: true, Short: "Override in-image mount point (ignored with --image-dir)", Long: "Override in-image mount point (ignored with --image-dir)"},
	{Key: FlagOciPushNoCache, Short: "Don't reuse tool layers from the previously pushed image", Long: "Don't reuse tool layers from the previously pushed image"},
	{Key: FlagOciPushNoMise, Short: "Don't embed the mise binary (ignored with --image-dir)", Long: "Don't embed the mise binary (ignored with --image-dir)"},
	{Key: FlagOciPushOwner, ValueName: "UID[:GID]", ValueDemanded: true, Short: "UID[:GID] to assign to every tar entry when building (conflicts with --image-dir)", Long: "UID[:GID] to assign to every tar entry when building (conflicts with --image-dir)\n\nOverrides [oci].user_id / [oci].group_id. Defaults to 0:0. If GID is omitted, it defaults to UID. This affects file ownership only; [oci].user controls the image USER directive."},
	{Key: FlagOciPushUpdateIndex, Short: "Maintain the tag as a multi-arch image index", Long: "Maintain the tag as a multi-arch image index\n\nPushes this build's manifest by digest and points the tag at an OCI image index containing one entry per platform, preserving entries other architectures pushed. Run `mise oci push --update-index` from one runner per platform to assemble a multi-arch tag."},
	{Key: ArgOciPushRef, Demanded: true, Short: "Destination registry reference (e.g. `ghcr.io/me/devenv:latest`)", Long: "Destination registry reference (e.g. `ghcr.io/me/devenv:latest`)"},
	{Key: CmdOciRun, Short: "[experimental] Build an OCI image from the current mise.toml and run a command in it", Long: "[experimental] Build an OCI image from the current mise.toml and run a command in it\n\nEquivalent to `mise oci build` followed by `docker run` / `podman run`. The built image is loaded into the local container engine (podman pulls the OCI layout natively; docker receives it via `docker load`) and the given command is executed inside it with stdin/stdout/stderr inherited.\n\nRequires `mise settings experimental=true` (or `MISE_EXPERIMENTAL=1`) and one of: `podman`, `docker`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    Build the current mise.toml and drop into bash:\n    $ \x1b[1mmise oci run -it -- bash\x1b[22m\n\n    Run a one-shot command with env + volume (note: `-v` is reserved\n    for --verbose, so use `--volume`):\n    $ \x1b[1mmise oci run -e DEBUG=1 --volume $PWD:/work -w /work -- npm test\x1b[22m\n\n    Re-use a previously built layout (skip the build step):\n    $ \x1b[1mmise oci build -o ./img && mise oci run --image-dir ./img -- node -e 'console.log(process.version)'\x1b[22m\n\n\x1b[1m\x1b[4mEngines:\x1b[22m\x1b[24m\n\n    Prefers \x1b[1mpodman\x1b[22m (loads OCI layouts natively). Falls back to \x1b[1mdocker\x1b[22m\n    (loaded via \x1b[1mdocker load\x1b[22m). Pass \x1b[1m--engine podman\x1b[22m or \x1b[1m--engine docker\x1b[22m to override.\n"},
	{Key: FlagOciRunEngine, ValueName: "ENGINE", ValueDemanded: true, Short: "Container engine to use (`auto`, `podman`, or `docker`)", Long: "Container engine to use (`auto`, `podman`, or `docker`)", Choices: []string{"auto", "podman", "docker"}, Default: []string{"auto"}},
	{Key: FlagOciRunFrom, ValueName: "FROM", ValueDemanded: true, Short: "Base image reference for the build (ignored with --image-dir)", Long: "Base image reference for the build (ignored with --image-dir)"},
	{Key: FlagOciRunImageDir, ValueName: "IMAGE_DIR", ValueDemanded: true, Short: "Use an already-built OCI image layout instead of building fresh", Long: "Use an already-built OCI image layout instead of building fresh"},
	{Key: FlagOciRunIncludeGlobal, Short: "Also include tools from the global / system config (default: project-only)", Long: "Also include tools from the global / system config (default: project-only)\n\nSee `mise oci build --help` for details."},
	{Key: FlagOciRunKeep, Short: "Keep the loaded image in the engine's storage after the run", Long: "Keep the loaded image in the engine's storage after the run\n\nBy default, both the container (`--rm`) and the loaded image are removed when the command exits, so repeated `mise oci run` calls don't accumulate images in podman / docker storage. Pass `--keep` to retain the image under the tag mise used (`mise-oci:run-*` for docker; the pulled image ID for podman)."},
	{Key: FlagOciRunMountPoint, ValueName: "MOUNT_POINT", ValueDemanded: true, Short: "Override in-image mount point (ignored with --image-dir)", Long: "Override in-image mount point (ignored with --image-dir)"},
	{Key: FlagOciRunNoMise, Short: "Don't embed the mise binary (ignored with --image-dir)", Long: "Don't embed the mise binary (ignored with --image-dir)"},
	{Key: FlagOciRunOwner, ValueName: "UID[:GID]", ValueDemanded: true, Short: "UID[:GID] to assign to every tar entry when building (conflicts with --image-dir)", Long: "UID[:GID] to assign to every tar entry when building (conflicts with --image-dir)\n\nOverrides [oci].user_id / [oci].group_id. Defaults to 0:0. If GID is omitted, it defaults to UID. This affects file ownership only; [oci].user controls the image USER directive."},
	{Key: FlagOciRunVolume, Repeatable: true, ValueName: "HOST:CONTAINER", ValueDemanded: true, Short: "Bind-mount a host path (repeatable, `HOST:CONTAINER[:MODE]`)", Long: "Bind-mount a host path (repeatable, `HOST:CONTAINER[:MODE]`)\n\nNote: unlike `docker run -v`, there's no `-v` short flag here because mise reserves `-v` for --verbose. Use `--volume` or `--mount`."},
	{Key: FlagOciRunEnv, Repeatable: true, ValueName: "KEY=VAL", ValueDemanded: true, Short: "Set environment variable in the container (repeatable, `KEY=VAL`)", Long: "Set environment variable in the container (repeatable, `KEY=VAL`)"},
	{Key: FlagOciRunInteractive, Short: "Run interactively (pass `-i` to the engine)", Long: "Run interactively (pass `-i` to the engine)"},
	{Key: FlagOciRunTty, Short: "Allocate a TTY (pass `-t` to the engine)", Long: "Allocate a TTY (pass `-t` to the engine)"},
	{Key: FlagOciRunWorkdir, ValueName: "WORKDIR", ValueDemanded: true, Short: "Working directory inside the container", Long: "Working directory inside the container"},
	{Key: ArgOciRunCmd, Short: "Command and arguments to run inside the container (after `--`)", Long: "Command and arguments to run inside the container (after `--`)"},
	{Key: CmdOutdated, Short: "Shows outdated tool versions", Long: "Shows outdated tool versions\n\nSee `mise upgrade` to upgrade these versions.", AfterLongHelp: "\x1b[1m\x1b[4mDeprecation:\x1b[22m\x1b[24m\n\nThe `-l` shorthand for `--bump` is deprecated and will be removed in mise 2027.8.5.\nAfter removal, `-l` will become shorthand for `--local`. Use `-b` or `--bump` instead.\n\n\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise outdated\x1b[22m\n    Plugin  Requested  Current  Latest\n    python  3.11       3.11.0   3.11.1\n    node    20         20.0.0   20.1.0\n\n    $ \x1b[1mmise outdated node\x1b[22m\n    Plugin  Requested  Current  Latest\n    node    20         20.0.0   20.1.0\n\n    $ \x1b[1mmise outdated --json\x1b[22m\n    {\"python\": {\"requested\": \"3.11\", \"current\": \"3.11.0\", \"latest\": \"3.11.1\"}, ...}\n\n    $ \x1b[1mmise outdated --local\x1b[22m\n    Plugin  Requested  Current  Latest\n    node    20         20.0.0   20.1.0\n"},
	{Key: FlagOutdatedBump, Short: "Compares against the latest versions available, not what matches the current config", Long: "Compares against the latest versions available, not what matches the current config\n\nFor example, if you have `node = \"20\"` in your config by default `mise outdated` will only show other 20.x versions, not 21.x or 22.x versions.\n\nUsing this flag, if there are 21.x or newer versions it will display those instead of 20.x."},
	{Key: FlagOutdatedJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagOutdatedL, Hide: true, Short: "Deprecated shorthand for --bump", Long: "Deprecated shorthand for --bump"},
	{Key: FlagOutdatedInactive, Short: "Show outdated tools including installed-but-inactive tools not present in the current config", Long: "Show outdated tools including installed-but-inactive tools not present in the current config\n\nBy default, `mise outdated` only shows tools that come from the current config."},
	{Key: FlagOutdatedLocal, Short: "Only show outdated tools defined in local config files", Long: "Only show outdated tools defined in local config files\n\nThis will only show tools that are defined in project-local mise.toml and will skip tools defined in the global config (~/.config/mise/config.toml)."},
	{Key: FlagOutdatedMonorepo, Short: "Placeholder for future monorepo outdated checks; `mise outdated --monorepo` is not implemented yet.", Long: "Placeholder for future monorepo outdated checks; `mise outdated --monorepo` is not implemented yet."},
	{Key: FlagOutdatedNoHeader, Short: "Don't show table header", Long: "Don't show table header"},
	{Key: ArgOutdatedToolVersion, Short: "Tool(s) to show outdated versions for\ne.g.: node@20 python@3.10\nIf not specified, all tools in global and local configs will be shown", Long: "Tool(s) to show outdated versions for\ne.g.: node@20 python@3.10\nIf not specified, all tools in global and local configs will be shown"},
	{Key: CmdPatrons, Short: "Show the individuals supporting mise as Patron-tier members", Long: "Show the individuals supporting mise as Patron-tier members\n\nLists the individuals on the Patron tier from <https://jdx.dev/patrons.json>. The list refreshes daily; supporting terminals will render each patron's name as a clickable link via OSC 8 hyperlinks.\n\nTo appear here, become a patron at <https://jdx.dev/sponsors.html>.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise patrons\x1b[22m\n    $ \x1b[1mmise patrons -J\x1b[22m\n    $ \x1b[1mmise patrons --refresh\x1b[22m"},
	{Key: FlagPatronsJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagPatronsRefresh, Short: "Bypass the local cache and re-fetch", Long: "Bypass the local cache and re-fetch"},
	{Key: CmdPlugins, Short: "Manage plugins", VisibleAliases: []string{"p"}},
	{Key: FlagPluginsAll, Hide: true, Short: "list all available remote plugins", Long: "list all available remote plugins\n\nsame as `mise plugins ls-remote`"},
	{Key: FlagPluginsCore, Short: "The built-in plugins only\nNormally these are not shown", Long: "The built-in plugins only\nNormally these are not shown"},
	{Key: FlagPluginsUrls, Short: "Show the git url for each plugin\ne.g.: https://github.com/mise-plugins/vfox-cmake.git", Long: "Show the git url for each plugin\ne.g.: https://github.com/mise-plugins/vfox-cmake.git"},
	{Key: FlagPluginsRefs, Hide: true, Short: "Show the git refs for each plugin\ne.g.: main 1234abc", Long: "Show the git refs for each plugin\ne.g.: main 1234abc"},
	{Key: FlagPluginsUser, Short: "List installed plugins", Long: "List installed plugins\n\nThis is the default behavior but can be used with --core to show core and user plugins"},
	{Key: CmdPluginsInstall, Short: "Install a plugin", Long: "Install a plugin\n\nnote that mise can automatically install plugins when you install a tool e.g.: `mise install cmake@3.30` will autoinstall the cmake plugin\n\nThis behavior can be modified in ~/.config/mise/config.toml", VisibleAliases: []string{"i", "a", "add"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # install the poetry via shorthand\n    $ \x1b[1mmise plugins install poetry\x1b[22m\n\n    # install the poetry plugin using a specific git url\n    $ \x1b[1mmise plugins install poetry https://github.com/mise-plugins/mise-poetry.git\x1b[22m\n\n    # install the poetry plugin using the git url only\n    # (poetry is inferred from the url)\n    $ \x1b[1mmise plugins install https://github.com/mise-plugins/mise-poetry.git\x1b[22m\n\n    # install the poetry plugin using a specific ref\n    $ \x1b[1mmise plugins install poetry https://github.com/mise-plugins/mise-poetry.git#11d0c1e\x1b[22m\n"},
	{Key: FlagPluginsInstallAll, Short: "Install all missing plugins\nThis will only install plugins that have matching shorthands.\ni.e.: they don't need the full git repo url", Long: "Install all missing plugins\nThis will only install plugins that have matching shorthands.\ni.e.: they don't need the full git repo url"},
	{Key: FlagPluginsInstallForce, Short: "Reinstall even if plugin exists", Long: "Reinstall even if plugin exists"},
	{Key: FlagPluginsInstallJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1"},
	{Key: FlagPluginsInstallVerbose, Repeatable: true, Short: "Show installation output", Long: "Show installation output"},
	{Key: ArgPluginsInstallNewPlugin, Short: "The name of the plugin to install\ne.g.: cmake, poetry\nCan specify multiple plugins: `mise plugins install cmake poetry`", Long: "The name of the plugin to install\ne.g.: cmake, poetry\nCan specify multiple plugins: `mise plugins install cmake poetry`"},
	{Key: ArgPluginsInstallGitUrl, Short: "The git url of the plugin", Long: "The git url of the plugin"},
	{Key: ArgPluginsInstallRest, Hide: true},
	{Key: CmdPluginsLink, Short: "Symlinks a plugin into mise", Long: "Symlinks a plugin into mise\n\nThis is used for developing a plugin.", VisibleAliases: []string{"ln"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # essentially just `ln -s ./vfox-cmake ~/.local/share/mise/plugins/cmake`\n    $ \x1b[1mmise plugins link cmake ./vfox-cmake\x1b[22m\n\n    # infer plugin name as \"cmake\"\n    $ \x1b[1mmise plugins link ./vfox-cmake\x1b[22m\n"},
	{Key: FlagPluginsLinkForce, Short: "Overwrite existing plugin", Long: "Overwrite existing plugin"},
	{Key: ArgPluginsLinkName, Demanded: true, Short: "The name of the plugin\ne.g.: cmake, poetry", Long: "The name of the plugin\ne.g.: cmake, poetry"},
	{Key: ArgPluginsLinkDir, Short: "The local path to the plugin\ne.g.: ./vfox-cmake", Long: "The local path to the plugin\ne.g.: ./vfox-cmake"},
	{Key: CmdPluginsLs, Short: "List installed plugins", Long: "List installed plugins\n\nCan also show remotely available plugins to install.", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise plugins ls\x1b[22m\n    cmake\n    poetry\n\n    $ \x1b[1mmise plugins ls --urls\x1b[22m\n    cmake     https://github.com/mise-plugins/vfox-cmake.git\n    poetry    https://github.com/mise-plugins/vfox-poetry.git\n"},
	{Key: FlagPluginsLsAll, Hide: true, Short: "List all available remote plugins\nSame as `mise plugins ls-remote`", Long: "List all available remote plugins\nSame as `mise plugins ls-remote`"},
	{Key: FlagPluginsLsCore, Hide: true, Short: "The built-in plugins only\nNormally these are not shown", Long: "The built-in plugins only\nNormally these are not shown"},
	{Key: FlagPluginsLsOutdated, Short: "Show plugins with available updates\nChecks the remote for newer versions and only displays plugins that are outdated", Long: "Show plugins with available updates\nChecks the remote for newer versions and only displays plugins that are outdated"},
	{Key: FlagPluginsLsUrls, Short: "Show the git url for each plugin\ne.g.: https://github.com/mise-plugins/vfox-cmake.git", Long: "Show the git url for each plugin\ne.g.: https://github.com/mise-plugins/vfox-cmake.git"},
	{Key: FlagPluginsLsRefs, Hide: true, Short: "Show the git refs for each plugin\ne.g.: main 1234abc", Long: "Show the git refs for each plugin\ne.g.: main 1234abc"},
	{Key: FlagPluginsLsUser, Hide: true, Short: "List installed plugins", Long: "List installed plugins"},
	{Key: CmdPluginsLsRemote, Short: "List all available remote plugins", Long: "\nList all available remote plugins\n\nThe full list is here: https://github.com/jdx/mise/blob/main/registry/\n\nExamples:\n\n    $ mise plugins ls-remote\n", VisibleAliases: []string{"list-remote", "list-all"}},
	{Key: FlagPluginsLsRemoteUrls, Short: "Show the git url for each plugin e.g.: https://github.com/mise-plugins/mise-poetry.git", Long: "Show the git url for each plugin\ne.g.: https://github.com/mise-plugins/mise-poetry.git"},
	{Key: FlagPluginsLsRemoteOnlyNames, Short: "Only show the name of each plugin by default it will show a \"*\" next to installed plugins", Long: "Only show the name of each plugin\nby default it will show a \"*\" next to installed plugins"},
	{Key: CmdPluginsUninstall, Short: "Removes a plugin", VisibleAliases: []string{"remove", "rm"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise plugins uninstall cmake\x1b[22m\n"},
	{Key: FlagPluginsUninstallAll, Short: "Remove all plugins", Long: "Remove all plugins"},
	{Key: FlagPluginsUninstallPurge, Short: "Also remove the plugin's installs, downloads, and cache", Long: "Also remove the plugin's installs, downloads, and cache"},
	{Key: ArgPluginsUninstallPlugin, Short: "Plugin(s) to remove", Long: "Plugin(s) to remove"},
	{Key: CmdPluginsUpdate, Short: "Updates a plugin to the latest version", Long: "Updates a plugin to the latest version\n\nnote: this updates the plugin itself, not the runtime versions", VisibleAliases: []string{"up", "upgrade"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise plugins update\x1b[22m              # update all plugins\n    $ \x1b[1mmise plugins update cmake\x1b[22m       # update only cmake\n    $ \x1b[1mmise plugins update cmake#beta\x1b[22m  # specify a ref\n"},
	{Key: FlagPluginsUpdateJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1\nDefault: 4", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1\nDefault: 4"},
	{Key: ArgPluginsUpdatePlugin, Short: "Plugin(s) to update", Long: "Plugin(s) to update"},
	{Key: CmdDeps, Short: "[experimental] Manage project dependencies", Long: "[experimental] Manage project dependencies\n\nRuns all applicable dependency install steps for the current project. This checks if dependency lockfiles are newer than installed outputs (e.g., package-lock.json vs node_modules/) and runs install commands if needed.\n\nProviders with `auto = true` are automatically invoked before `mise x` and `mise run` unless skipped with the --no-deps flag.", VisibleAliases: []string{"dep"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise deps\x1b[22m                    # Install all project dependencies\n    $ \x1b[1mmise deps install\x1b[22m            # Same as bare `mise deps`\n    $ \x1b[1mmise deps install --force\x1b[22m    # Force reinstall even if fresh\n    $ \x1b[1mmise deps install --dry-run\x1b[22m  # Show what would run\n    $ \x1b[1mmise deps --monorepo\x1b[22m         # Install deps from explicit monorepo config roots\n    $ \x1b[1mmise deps add npm:react\x1b[22m      # Add a dependency\n    $ \x1b[1mmise deps add -D npm:vitest\x1b[22m  # Add a dev dependency\n    $ \x1b[1mmise deps remove npm:lodash\x1b[22m  # Remove a dependency\n\n\x1b[1m\x1b[4mConfiguration:\x1b[22m\x1b[24m\n\n```toml\n# Built-in npm provider (auto-detects lockfile)\n[deps.npm]\nauto = true              # Auto-run before mise x/run\n\n# Custom provider\n[deps.codegen]\nauto = true\nsources = [\"schema/*.graphql\"]\noutputs = [\"src/generated/\"]\nrun = \"npm run codegen\"\n\n[deps]\ndisable = [\"npm\"]        # Disable specific providers at runtime\n```\n"},
	{Key: FlagDepsExplain, Short: "Show why a provider is fresh or stale (requires a provider argument)", Long: "Show why a provider is fresh or stale (requires a provider argument)"},
	{Key: FlagDepsForce, Short: "Force run all deps steps even if outputs are fresh", Long: "Force run all deps steps even if outputs are fresh"},
	{Key: FlagDepsDryRun, Short: "Only check if deps install is needed, don't run commands", Long: "Only check if deps install is needed, don't run commands"},
	{Key: FlagDepsList, Short: "Show what deps providers are available", Long: "Show what deps providers are available"},
	{Key: FlagDepsMonorepo, Short: "Install dependencies from every [monorepo].config_roots config root", Long: "Install dependencies from every [monorepo].config_roots config root\n\nRequires monorepo_root = true plus explicit [monorepo].config_roots in the monorepo root config. Providers are named like //apps/api:uv.", Env: "MISE_MONOREPO"},
	{Key: FlagDepsOnly, Repeatable: true, ValueName: "ONLY", ValueDemanded: true, Short: "Run specific deps rule(s) only", Long: "Run specific deps rule(s) only"},
	{Key: FlagDepsSkip, Repeatable: true, ValueName: "SKIP", ValueDemanded: true, Short: "Skip specific deps rule(s)", Long: "Skip specific deps rule(s)"},
	{Key: ArgDepsProvider, Short: "Provider to operate on (runs only this provider, or use with --explain)", Long: "Provider to operate on (runs only this provider, or use with --explain)"},
	{Key: CmdDepsAdd, Short: "Add a dependency", Long: "Add a dependency\n\nAdds one or more packages to the project using the appropriate package manager. Package specs use the format `ecosystem:package`, e.g., `npm:react` or `npm:@types/react@19`."},
	{Key: FlagDepsAddDev, Short: "Add as a development dependency", Long: "Add as a development dependency"},
	{Key: ArgDepsAddPackages, Demanded: true, Short: "Package(s) to add (e.g., npm:react, npm:@types/react@19)", Long: "Package(s) to add (e.g., npm:react, npm:@types/react@19)"},
	{Key: CmdDepsInstall, Short: "Install all project dependencies", Long: "Install all project dependencies\n\nChecks if dependency lockfiles are newer than installed outputs and runs install commands if needed."},
	{Key: FlagDepsInstallExplain, Short: "Show why a provider is fresh or stale (requires a provider argument)", Long: "Show why a provider is fresh or stale (requires a provider argument)"},
	{Key: FlagDepsInstallForce, Short: "Force run all deps steps even if outputs are fresh", Long: "Force run all deps steps even if outputs are fresh"},
	{Key: FlagDepsInstallDryRun, Short: "Only check if deps install is needed, don't run commands", Long: "Only check if deps install is needed, don't run commands"},
	{Key: FlagDepsInstallList, Short: "Show what deps providers are available", Long: "Show what deps providers are available"},
	{Key: FlagDepsInstallMonorepo, Short: "Install dependencies from every [monorepo].config_roots config root", Long: "Install dependencies from every [monorepo].config_roots config root\n\nRequires monorepo_root = true plus explicit [monorepo].config_roots in the monorepo root config. Providers are named like //apps/api:uv.", Env: "MISE_MONOREPO"},
	{Key: FlagDepsInstallOnly, Repeatable: true, ValueName: "ONLY", ValueDemanded: true, Short: "Run specific deps rule(s) only", Long: "Run specific deps rule(s) only"},
	{Key: FlagDepsInstallSkip, Repeatable: true, ValueName: "SKIP", ValueDemanded: true, Short: "Skip specific deps rule(s)", Long: "Skip specific deps rule(s)"},
	{Key: ArgDepsInstallProvider, Short: "Provider to operate on (runs only this provider, or use with --explain)", Long: "Provider to operate on (runs only this provider, or use with --explain)"},
	{Key: CmdDepsRemove, Short: "Remove a dependency", Long: "Remove a dependency\n\nRemoves one or more packages from the project using the appropriate package manager. Package specs use the format `ecosystem:package`, e.g., `npm:lodash`."},
	{Key: ArgDepsRemovePackages, Demanded: true, Short: "Package(s) to remove (e.g., npm:lodash)", Long: "Package(s) to remove (e.g., npm:lodash)"},
	{Key: CmdPrune, Short: "Delete unused versions of tools", Long: "Delete unused versions of tools\n\nmise tracks which config files have been used in ~/.local/state/mise/tracked-configs Versions which are no longer the latest specified in any of those configs are deleted. Versions installed only with environment variables `MISE_<TOOL>_VERSION` will be deleted, as will versions only referenced on the command line `mise exec <TOOL>@<VERSION>`.\n\nTool stubs that have been executed are tracked in ~/.local/state/mise/tracked-stubs. Versions still referenced by a tracked stub are not deleted.\n\nYou can list prunable tools with `mise ls --prunable`", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise prune --dry-run\x1b[22m\n    rm -rf ~/.local/share/mise/versions/node/20.0.0\n    rm -rf ~/.local/share/mise/versions/node/20.0.1\n"},
	{Key: FlagPruneDryRun, Short: "Do not actually delete anything", Long: "Do not actually delete anything"},
	{Key: FlagPruneConfigs, Short: "Prune only tracked and trusted configuration links that point to nonexistent configurations", Long: "Prune only tracked and trusted configuration links that point to nonexistent configurations"},
	{Key: FlagPruneDryRunCode, Short: "Like --dry-run but exits with code 1 if there are tools to prune", Long: "Like --dry-run but exits with code 1 if there are tools to prune\n\nThis is useful for scripts to check if tools need to be pruned."},
	{Key: FlagPruneMonorepo, Short: "Placeholder for future monorepo pruning; `mise prune --monorepo` is not implemented yet.", Long: "Placeholder for future monorepo pruning; `mise prune --monorepo` is not implemented yet."},
	{Key: FlagPruneTools, Short: "Prune only unused versions of tools", Long: "Prune only unused versions of tools"},
	{Key: ArgPruneInstalledTool, Short: "Prune only these tools", Long: "Prune only these tools"},
	{Key: CmdRegistry, Short: "List available tools to install", Long: "List available tools to install\n\nThis command lists the tools available in the registry as shorthand names.\n\nFor example, `poetry` is shorthand for `asdf:mise-plugins/mise-poetry`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise registry\x1b[22m\n    node    core:node\n    poetry  asdf:mise-plugins/mise-poetry\n    ubi     cargo:ubi-cli\n\n    $ \x1b[1mmise registry poetry\x1b[22m\n    asdf:mise-plugins/mise-poetry\n"},
	{Key: FlagRegistryBackend, ValueName: "BACKEND", ValueDemanded: true, Short: "Show only tools for this backend", Long: "Show only tools for this backend"},
	{Key: FlagRegistryComplete, Hide: true, Short: "Print all tools with descriptions for shell completions", Long: "Print all tools with descriptions for shell completions"},
	{Key: FlagRegistryHideAliased, Short: "Hide aliased tools", Long: "Hide aliased tools"},
	{Key: FlagRegistryJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagRegistrySecurity, Short: "Include security features for each tool's backends in JSON output.", Long: "Include security features for each tool's backends in JSON output.\n\nRequires --json. Security info is de-duplicated across all of a tool's backends. This can add noticeable time for large listings since each backend's security info is resolved individually."},
	{Key: ArgRegistryName, Short: "Show only the specified tool's full name", Long: "Show only the specified tool's full name"},
	{Key: CmdRenderHelp, Hide: true, Short: "internal command to generate markdown from help"},
	{Key: CmdReshim, Short: "Creates new shims based on bin paths from currently installed tools.", Long: "Creates new shims based on bin paths from currently installed tools.\n\nThis creates new shims in ~/.local/share/mise/shims for CLIs that have been added. mise will try to do this automatically for commands like `npm i -g` but there are other ways to install things (like using yarn or pnpm for node) that mise does not know about and so it will be necessary to call this explicitly.\n\nIf you think mise should automatically call this for a particular command, please open an issue on the mise repo. You can also set up a shell function to reshim automatically (it's really fast so you don't need to worry about overhead):\n\n    npm() {\n      command npm \"$@\"\n      mise reshim\n    }\n\nNote that this creates shims for _all_ installed tools, not just the ones that are currently active in mise.toml.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise reshim\x1b[22m\n    $ \x1b[1m~/.local/share/mise/shims/node -v\x1b[22m\n    v20.0.0\n"},
	{Key: FlagReshimForce, Short: "Removes all shims before reshimming", Long: "Removes all shims before reshimming"},
	{Key: ArgReshimTool, Hide: true},
	{Key: ArgReshimVersion, Hide: true},
	{Key: CmdRun, Short: "Run task(s)", Long: "Run task(s)\n\nThis command will run a task, or multiple tasks in parallel. Tasks may have dependencies on other tasks or on source files. If source is configured on a task, it will only run if the source files have changed.\n\nTasks can be defined in mise.toml or as standalone scripts. In mise.toml, tasks take this form:\n\n    [tasks.build]\n    run = \"npm run build\"\n    sources = [\"src/**/*.ts\"]\n    outputs = [\"dist/**/*.js\"]\n\nAlternatively, tasks can be defined as standalone scripts. These must be located in `mise-tasks`, `.mise-tasks`, `.mise/tasks`, `mise/tasks` or `.config/mise/tasks`. The name of the script will be the name of the tasks.\n\n    $ cat .mise/tasks/build<<EOF\n    #!/usr/bin/env bash\n    npm run build\n    EOF\n    $ mise run build", VisibleAliases: []string{"r"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Runs the \"lint\" tasks. This needs to either be defined in mise.toml\n    # or as a standalone script. See the project README for more information.\n    $ \x1b[1mmise run lint\x1b[22m\n\n    # Forces the \"build\" tasks to run even if its sources are up-to-date.\n    $ \x1b[1mmise run --force build\x1b[22m\n\n    # Run \"test\" with stdin/stdout/stderr all connected to the current terminal.\n    # This forces `--jobs=1` to prevent interleaving of output.\n    $ \x1b[1mmise run --raw test\x1b[22m\n\n    # Runs the \"lint\", \"test\", and \"check\" tasks in parallel.\n    $ \x1b[1mmise run lint ::: test ::: check\x1b[22m\n\n    # Execute multiple tasks each with their own arguments.\n    $ \x1b[1mmise run cmd1 arg1 arg2 ::: cmd2 arg1 arg2\x1b[22m\n"},
	{Key: FlagRunAffected, Short: "Run matching tasks only for projects affected by Git changes", Long: "Run matching tasks only for projects affected by Git changes"},
	{Key: FlagRunAffectedBase, ValueName: "REV", ValueDemanded: true, Short: "Git base revision for --affected\nDefaults to MISE_AFFECTED_BASE, CI metadata, or HEAD~1", Long: "Git base revision for --affected\nDefaults to MISE_AFFECTED_BASE, CI metadata, or HEAD~1"},
	{Key: FlagRunAffectedExplain, Short: "Explain why projects and tasks were selected by --affected", Long: "Explain why projects and tasks were selected by --affected"},
	{Key: FlagRunAffectedHead, ValueName: "REV", ValueDemanded: true, Short: "Git head revision for --affected\nDefaults to MISE_AFFECTED_HEAD, CI metadata, or HEAD", Long: "Git head revision for --affected\nDefaults to MISE_AFFECTED_HEAD, CI metadata, or HEAD"},
	{Key: FlagRunAffectedJson, Short: "Output affected projects and tasks as JSON without running tasks", Long: "Output affected projects and tasks as JSON without running tasks"},
	{Key: FlagRunAll, Short: "Open the interactive selector with all tasks from the entire monorepo", Long: "Open the interactive selector with all tasks from the entire monorepo"},
	{Key: FlagRunContinueOnError, Short: "Continue running tasks even if one fails", Long: "Continue running tasks even if one fails"},
	{Key: FlagRunCd, ValueName: "CD", ValueDemanded: true, Short: "Change to this directory before executing the command", Long: "Change to this directory before executing the command"},
	{Key: FlagRunForce, Short: "Force the tasks to run even if outputs are up to date", Long: "Force the tasks to run even if outputs are up to date"},
	{Key: FlagRunJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of tasks to run in parallel\nValues below 1 are treated as 1\n[default: 4]\nConfigure with `jobs` config or `MISE_JOBS` env var", Long: "Number of tasks to run in parallel\nValues below 1 are treated as 1\n[default: 4]\nConfigure with `jobs` config or `MISE_JOBS` env var", Env: "MISE_JOBS"},
	{Key: FlagRunDryRun, Short: "Don't actually run the task(s), just print them in order of execution", Long: "Don't actually run the task(s), just print them in order of execution"},
	{Key: FlagRunOutput, ValueName: "OUTPUT", ValueDemanded: true, Short: "Change how tasks information is output when running tasks", Long: "Change how tasks information is output when running tasks\n\n- `prefix` - Print stdout/stderr by line, prefixed with the task's label - `interleave` - Print directly to stdout/stderr instead of by line - `replacing` - Stdout is replaced each time, stderr is printed as is - `timed` - Only show stdout lines if they are displayed for more than 1 second - `keep-order` - Print stdout/stderr by line, prefixed with the task's label, but keep the order of the output - `quiet` - Don't show extra output - `silent` - Don't show any output including stdout and stderr from the task except for errors", Env: "MISE_TASK_OUTPUT"},
	{Key: FlagRunQuiet, Short: "Don't show extra output", Long: "Don't show extra output", Env: "MISE_QUIET"},
	{Key: FlagRunRaw, Short: "Read/write directly to stdin/stdout/stderr instead of by line\nRedactions are not applied with this option\nConfigure with `raw` config or `MISE_RAW` env var", Long: "Read/write directly to stdin/stdout/stderr instead of by line\nRedactions are not applied with this option\nConfigure with `raw` config or `MISE_RAW` env var"},
	{Key: FlagRunShell, ValueName: "SHELL", ValueDemanded: true, Short: "Shell to use to run toml tasks", Long: "Shell to use to run toml tasks\n\nDefaults to `sh -c -o errexit -o pipefail` on unix, and `cmd /c` on Windows Can also be set with the setting `MISE_UNIX_DEFAULT_INLINE_SHELL_ARGS` or `MISE_WINDOWS_DEFAULT_INLINE_SHELL_ARGS` Or it can be overridden with the `shell` property on a task."},
	{Key: FlagRunSilent, Short: "Don't show any output except for errors", Long: "Don't show any output except for errors", Env: "MISE_SILENT"},
	{Key: FlagRunTool, Repeatable: true, ValueName: "TOOL@VERSION", ValueDemanded: true, Short: "Tool(s) to run in addition to what is in mise.toml files e.g.: node@20 python@3.10", Long: "Tool(s) to run in addition to what is in mise.toml files\ne.g.: node@20 python@3.10"},
	{Key: FlagRunAllowEnv, Repeatable: true, ValueName: "VAR", ValueDemanded: true, Short: "Allow specific env var through (implies --deny-env for everything else)\nSupports wildcards, e.g. --allow-env='MYAPP_*'", Long: "Allow specific env var through (implies --deny-env for everything else)\nSupports wildcards, e.g. --allow-env='MYAPP_*'"},
	{Key: FlagRunAllowNet, Repeatable: true, ValueName: "HOST", ValueDemanded: true, Short: "Allow network to specific host (implies --deny-net for everything else)", Long: "Allow network to specific host (implies --deny-net for everything else)"},
	{Key: FlagRunAllowRead, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Allow reads from specific path (implies --deny-read for everything else)", Long: "Allow reads from specific path (implies --deny-read for everything else)"},
	{Key: FlagRunAllowWrite, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Allow writes to specific path (implies --deny-write for everything else)", Long: "Allow writes to specific path (implies --deny-write for everything else)"},
	{Key: FlagRunDenyAll, Short: "Block reads, writes, network, and env vars", Long: "Block reads, writes, network, and env vars"},
	{Key: FlagRunDenyEnv, Short: "Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through)", Long: "Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through)"},
	{Key: FlagRunDenyNet, Short: "Block all network access", Long: "Block all network access"},
	{Key: FlagRunDenyRead, Short: "Block filesystem reads (system libs and tool dirs still accessible)", Long: "Block filesystem reads (system libs and tool dirs still accessible)"},
	{Key: FlagRunDenyWrite, Short: "Block all filesystem writes", Long: "Block all filesystem writes"},
	{Key: FlagRunFreshEnv, Short: "Bypass the environment cache and recompute the environment", Long: "Bypass the environment cache and recompute the environment"},
	{Key: FlagRunNoCache, Short: "Do not use cache on remote tasks", Long: "Do not use cache on remote tasks", Env: "MISE_TASK_REMOTE_NO_CACHE"},
	{Key: FlagRunNoDeps, Short: "Skip automatic dependency preparation", Long: "Skip automatic dependency preparation"},
	{Key: FlagRunNoTimings, Short: "Hides elapsed time after each task completes", Long: "Hides elapsed time after each task completes\n\nDefault to always hide with `MISE_TASK_TIMINGS=0`"},
	{Key: FlagRunSkipDeps, Short: "Run only the specified tasks skipping all dependencies", Long: "Run only the specified tasks skipping all dependencies", Env: "MISE_TASK_SKIP_DEPENDS"},
	{Key: FlagRunSkipTools, Short: "Skip installing tools before running tasks", Long: "Skip installing tools before running tasks\n\nCan also be set persistently with the `task.run_auto_install` setting or `MISE_TASK_RUN_AUTO_INSTALL=false` env var"},
	{Key: FlagRunTaskCache, ValueName: "TASK_CACHE", ValueDemanded: true, Short: "Set task output cache access for this run", Long: "Set task output cache access for this run\n\n- `read-write` - Read cached results and write new results - `read-only` - Read cached results without writing new results - `write-only` - Write new results without reading cached results - `off` - Disable task output caching - `local-only` - Read and write only the local cache; currently equivalent to `read-write`", Choices: []string{"read-write", "read-only", "write-only", "off", "local-only"}, Env: "MISE_TASK_CACHE", Default: []string{"read-write"}},
	{Key: FlagRunTaskCacheExplain, Short: "Explain the inputs that produced each task's output cache key", Long: "Explain the inputs that produced each task's output cache key"},
	{Key: FlagRunTaskCacheExplainJson, Short: "Output cache-key input details as JSON Lines without running tasks", Long: "Output cache-key input details as JSON Lines without running tasks"},
	{Key: FlagRunTaskCacheStats, Short: "Report task output cache hits, restored bytes, and time saved", Long: "Report task output cache hits, restored bytes, and time saved"},
	{Key: FlagRunTimeout, ValueName: "TIMEOUT", ValueDemanded: true, Short: "Timeout for the task to complete\ne.g.: 30s, 5m", Long: "Timeout for the task to complete\ne.g.: 30s, 5m"},
	{Key: FlagRunTimings, Hide: true, Short: "Shows elapsed time after each task completes", Long: "Shows elapsed time after each task completes\n\nDefault to always show with `MISE_TASK_TIMINGS=1`"},
	{Key: CmdSearch, Short: "Search for tools in the registry", Long: "Search for tools in the registry\n\nThis command searches a tool in the registry.\n\nBy default, it will show all tools that fuzzy match the search term. For non-fuzzy matches, use the `--match-type` flag.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise search jq\x1b[22m\n    Tool  Description\n    jq    Command-line JSON processor. https://github.com/jqlang/jq\n    jqp   A TUI playground to experiment with jq. https://github.com/noahgorstein/jqp\n    jiq   jid on jq - interactive JSON query tool using jq expressions. https://github.com/fiatjaf/jiq\n    gojq  Pure Go implementation of jq. https://github.com/itchyny/gojq\n\n    $ \x1b[1mmise search --interactive\x1b[22m\n    Tool\n    Search a tool\n    ❯ jq    Command-line JSON processor. https://github.com/jqlang/jq\n      jqp   A TUI playground to experiment with jq. https://github.com/noahgorstein/jqp\n      jiq   jid on jq - interactive JSON query tool using jq expressions. https://github.com/fiatjaf/jiq\n      gojq  Pure Go implementation of jq. https://github.com/itchyny/gojq\n    /jq \n    esc clear filter • enter confirm\n"},
	{Key: FlagSearchInteractive, Short: "Show interactive search", Long: "Show interactive search"},
	{Key: FlagSearchMatchType, ValueName: "MATCH_TYPE", ValueDemanded: true, Short: "Match type: equal, contains, or fuzzy", Long: "Match type: equal, contains, or fuzzy", Choices: []string{"equal", "contains", "fuzzy"}, Default: []string{"fuzzy"}},
	{Key: FlagSearchNoHeader, Short: "Don't display headers", Long: "Don't display headers"},
	{Key: ArgSearchName, Short: "The tool to search for", Long: "The tool to search for"},
	{Key: CmdSelfUpdate, Short: "Updates mise itself.", Long: "Updates mise itself.\n\nUses the GitHub Releases API to find the latest release and binary. By default, this will also update any installed plugins. Uses mise's GitHub token resolution chain for authenticated requests.\n\nPackagers can disable this command so that mise is updated through the package manager instead. See https://mise.jdx.dev/contributing.html#packaging-and-self-update-instructions"},
	{Key: FlagSelfUpdateForce, Short: "Update even if already up to date", Long: "Update even if already up to date"},
	{Key: FlagSelfUpdateYes, Short: "Skip confirmation prompt", Long: "Skip confirmation prompt"},
	{Key: FlagSelfUpdateNoPlugins, Short: "Disable auto-updating plugins", Long: "Disable auto-updating plugins"},
	{Key: ArgSelfUpdateVersion, Short: "Update to a specific version", Long: "Update to a specific version"},
	{Key: CmdSet, Short: "Set environment variables in mise.toml", Long: "Set environment variables in mise.toml\n\nBy default, this command modifies `mise.toml` in the current directory. If multiple config files exist (e.g., both `mise.toml` and `mise.local.toml`), the lowest precedence file (`mise.toml`) will be used. See https://mise.jdx.dev/configuration.html#target-file-for-write-operations\n\nUse `-E <env>` to create/modify environment-specific config files like `mise.<env>.toml`.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise set NODE_ENV=production\x1b[22m\n\n    $ \x1b[1mmise set NODE_ENV\x1b[22m\n    production\n\n    $ \x1b[1mmise set -E staging NODE_ENV=staging\x1b[22m\n    # creates or modifies mise.staging.toml\n\n    $ \x1b[1mmise set\x1b[22m\n    key       value       source\n    NODE_ENV  production  ~/.config/mise/config.toml\n\n    $ \x1b[1mmise set --prompt PASSWORD\x1b[22m\n    Enter value for PASSWORD: [hidden input]\n\n    \x1b[1m\x1b[4mMultiline Values (--stdin):\x1b[22m\x1b[24m\n\n    $ \x1b[1mcat private.key | mise set --stdin MY_KEY\x1b[22m\n\n    $ \x1b[1mprintf \"line1\\nline2\" | mise set --stdin MY_KEY\x1b[22m\n\n    \x1b[1m\x1b[4m[experimental] Age Encryption:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise set --age-encrypt API_KEY=secret\x1b[22m\n\n    $ \x1b[1mmise set --age-encrypt --prompt API_KEY\x1b[22m\n    Enter value for API_KEY: [hidden input]\n"},
	{Key: FlagSetEnv, ValueName: "ENV", ValueDemanded: true, Short: "Create/modify an environment-specific config file like .mise.<env>.toml", Long: "Create/modify an environment-specific config file like .mise.<env>.toml"},
	{Key: FlagSetGlobal, Short: "Set the environment variable in the global config file", Long: "Set the environment variable in the global config file"},
	{Key: FlagSetAgeEncrypt, Short: "[experimental] Encrypt the value with age before storing", Long: "[experimental] Encrypt the value with age before storing"},
	{Key: FlagSetAgeKeyFile, ValueName: "PATH", ValueDemanded: true, Short: "[experimental] Age identity file for encryption", Long: "[experimental] Age identity file for encryption\n\nDefaults to ~/.config/mise/age.txt if it exists"},
	{Key: FlagSetAgeRecipient, Repeatable: true, ValueName: "RECIPIENT", ValueDemanded: true, Short: "[experimental] Age recipient (x25519 public key) for encryption", Long: "[experimental] Age recipient (x25519 public key) for encryption\n\nCan be used multiple times. Requires --age-encrypt."},
	{Key: FlagSetAgeSshRecipient, Repeatable: true, ValueName: "PATH_OR_PUBKEY", ValueDemanded: true, Short: "[experimental] SSH recipient (public key or path) for age encryption", Long: "[experimental] SSH recipient (public key or path) for age encryption\n\nCan be used multiple times. Requires --age-encrypt."},
	{Key: FlagSetComplete, Hide: true, Short: "Render completions", Long: "Render completions"},
	{Key: FlagSetFile, ValueName: "FILE", ValueDemanded: true, Short: "The TOML file to update", Long: "The TOML file to update\n\nCan be a file path or directory. If a directory is provided, will create/use mise.toml in that directory. Defaults to [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) environment variable, or `mise.toml`. Use [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) to choose a different global config path."},
	{Key: FlagSetNoRedact, Short: "Show raw values instead of redacting secrets", Long: "Show raw values instead of redacting secrets"},
	{Key: FlagSetPrompt, Short: "Prompt for environment variable values", Long: "Prompt for environment variable values"},
	{Key: FlagSetRemove, Hide: true, Repeatable: true, ValueName: "ENV_KEY", ValueDemanded: true, Short: "Remove the environment variable from config file", Long: "Remove the environment variable from config file\n\nCan be used multiple times."},
	{Key: FlagSetStdin, Short: "Read the value from stdin (for multiline input)", Long: "Read the value from stdin (for multiline input)\n\nWhen using --stdin, provide a single key without a value. The value will be read from stdin until EOF."},
	{Key: ArgSetEnvVar, Short: "Environment variable(s) to set\ne.g.: NODE_ENV=production", Long: "Environment variable(s) to set\ne.g.: NODE_ENV=production"},
	{Key: CmdSettings, Short: "Manage settings", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n    # list all settings\n    $ \x1b[1mmise settings\x1b[22m\n\n    # get the value of the setting \"always_keep_download\"\n    $ \x1b[1mmise settings always_keep_download\x1b[22m\n\n    # set the value of the setting \"always_keep_download\" to \"true\"\n    $ \x1b[1mmise settings always_keep_download=true\x1b[22m\n\n    # set the value of the setting \"node.mirror_url\" to \"https://npmmirror.com/mirrors/node/\"\n    $ \x1b[1mmise settings node.mirror_url https://npmmirror.com/mirrors/node/\x1b[22m\n"},
	{Key: FlagSettingsAll, Short: "List all settings", Long: "List all settings"},
	{Key: FlagSettingsJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagSettingsLocal, Short: "Use the local config file instead of the global one", Long: "Use the local config file instead of the global one"},
	{Key: FlagSettingsToml, Short: "Output in TOML format", Long: "Output in TOML format"},
	{Key: FlagSettingsComplete, Hide: true, Short: "Print all settings with descriptions for shell completions", Long: "Print all settings with descriptions for shell completions"},
	{Key: FlagSettingsJsonExtended, Short: "Output in JSON format with sources", Long: "Output in JSON format with sources"},
	{Key: ArgSettingsSetting, Short: "Name of setting", Long: "Name of setting"},
	{Key: ArgSettingsValue, Short: "Setting value to set", Long: "Setting value to set"},
	{Key: CmdSettingsAdd, Short: "Adds a setting to the configuration file", Long: "Adds a setting to the configuration file\n\nUsed with an array setting, this will append the value to the array. This modifies the contents of ~/.config/mise/config.toml", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise settings add disable_hints python_multi\x1b[22m\n"},
	{Key: FlagSettingsAddLocal, Short: "Use the local config file instead of the global one", Long: "Use the local config file instead of the global one"},
	{Key: ArgSettingsAddSetting, Demanded: true, Short: "The setting to set", Long: "The setting to set"},
	{Key: ArgSettingsAddValue, Short: "The value to set (optional if provided as KEY=VALUE)", Long: "The value to set (optional if provided as KEY=VALUE)"},
	{Key: CmdSettingsGet, Short: "Show a current setting", Long: "Show a current setting\n\nThis is the contents of a single entry in ~/.config/mise/config.toml\n\nNote that aliases are also stored in this file but managed separately with `mise tool-alias get`", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise settings get idiomatic_version_file\x1b[22m\n    true\n"},
	{Key: FlagSettingsGetLocal, Short: "Use the local config file instead of the global one", Long: "Use the local config file instead of the global one"},
	{Key: ArgSettingsGetSetting, Demanded: true, Short: "The setting to show", Long: "The setting to show"},
	{Key: CmdSettingsLs, Short: "Show current settings", Long: "Show current settings\n\nThis is the contents of ~/.config/mise/config.toml\n\nNote that aliases are also stored in this file but managed separately with `mise tool-alias`", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise settings ls\x1b[22m\n    idiomatic_version_file = false\n    ...\n\n    $ \x1b[1mmise settings ls python\x1b[22m\n    default_packages_file = \"~/.default-python-packages\"\n    ...\n"},
	{Key: FlagSettingsLsAll, Short: "List all settings", Long: "List all settings"},
	{Key: FlagSettingsLsJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagSettingsLsLocal, Short: "Use the local config file instead of the global one", Long: "Use the local config file instead of the global one"},
	{Key: FlagSettingsLsToml, Short: "Output in TOML format", Long: "Output in TOML format"},
	{Key: FlagSettingsLsComplete, Hide: true, Short: "Print all settings with descriptions for shell completions", Long: "Print all settings with descriptions for shell completions"},
	{Key: FlagSettingsLsJsonExtended, Short: "Output in JSON format with sources", Long: "Output in JSON format with sources"},
	{Key: ArgSettingsLsSetting, Short: "Name of setting", Long: "Name of setting"},
	{Key: CmdSettingsSet, Short: "Add/update a setting", Long: "Add/update a setting\n\nThis modifies the contents of ~/.config/mise/config.toml by default. With `--local`, modifies the local config file instead. See https://mise.jdx.dev/configuration.html#target-file-for-write-operations", VisibleAliases: []string{"create"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise settings idiomatic_version_file=true\x1b[22m\n"},
	{Key: FlagSettingsSetLocal, Short: "Use the local config file instead of the global one", Long: "Use the local config file instead of the global one"},
	{Key: ArgSettingsSetSetting, Demanded: true, Short: "The setting to set", Long: "The setting to set"},
	{Key: ArgSettingsSetValue, Short: "The value to set (optional if provided as KEY=VALUE)", Long: "The value to set (optional if provided as KEY=VALUE)"},
	{Key: CmdSettingsUnset, Short: "Clears a setting", Long: "Clears a setting\n\nThis modifies the contents of ~/.config/mise/config.toml", VisibleAliases: []string{"rm", "remove", "delete", "del"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise settings unset idiomatic_version_file\x1b[22m\n"},
	{Key: FlagSettingsUnsetLocal, Short: "Use the local config file instead of the global one", Long: "Use the local config file instead of the global one"},
	{Key: ArgSettingsUnsetKey, Demanded: true, Short: "The setting to remove", Long: "The setting to remove"},
	{Key: CmdShell, Short: "Sets a tool version for the current session.", Long: "Sets a tool version for the current session.\n\nOnly works in a session where mise is already activated.\n\nThis works by setting environment variables for the current shell session such as `MISE_NODE_VERSION=20` which is \"eval\"ed as a shell function created by `mise activate`.", VisibleAliases: []string{"sh"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise shell node@20\x1b[22m\n    $ \x1b[1mnode -v\x1b[22m\n    v20.0.0\n"},
	{Key: FlagShellJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Env: "MISE_JOBS"},
	{Key: FlagShellUnset, Short: "Removes a previously set version", Long: "Removes a previously set version"},
	{Key: FlagShellRaw, Short: "Connect backend install command stdin/stdout/stderr directly to the terminal Implies --jobs=1", Long: "Connect backend install command stdin/stdout/stderr directly to the terminal\nImplies --jobs=1"},
	{Key: ArgShellToolVersion, Demanded: true, Short: "Tool(s) to use", Long: "Tool(s) to use"},
	{Key: CmdShellAlias, Short: "Manage shell aliases."},
	{Key: FlagShellAliasNoHeader, Short: "Don't show table header", Long: "Don't show table header"},
	{Key: CmdShellAliasGet, Short: "Show the command for a shell alias", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise shell-alias get ll\x1b[22m\n    ls -la\n"},
	{Key: ArgShellAliasGetShellAlias, Demanded: true, Short: "The alias to show", Long: "The alias to show"},
	{Key: CmdShellAliasLs, Short: "List shell aliases", Long: "List shell aliases\n\nShows the shell aliases that are set in the current directory. These are defined in `mise.toml` under the `[shell_alias]` section.", VisibleAliases: []string{"list"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise shell-alias ls\x1b[22m\n    alias    command\n    ll       ls -la\n    gs       git status\n"},
	{Key: FlagShellAliasLsNoHeader, Short: "Don't show table header", Long: "Don't show table header"},
	{Key: CmdShellAliasSet, Short: "Add/update a shell alias", Long: "Add/update a shell alias\n\nThis modifies the contents of ~/.config/mise/config.toml", VisibleAliases: []string{"add", "create"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise shell-alias set ll \"ls -la\"\x1b[22m\n    $ \x1b[1mmise shell-alias set gs \"git status\"\x1b[22m\n"},
	{Key: ArgShellAliasSetShellAlias, Demanded: true, Short: "The alias name", Long: "The alias name"},
	{Key: ArgShellAliasSetCommand, Short: "The command to run (optional if provided as ALIAS=COMMAND)", Long: "The command to run (optional if provided as ALIAS=COMMAND)"},
	{Key: CmdShellAliasUnset, Short: "Removes a shell alias", Long: "Removes a shell alias\n\nThis modifies the contents of ~/.config/mise/config.toml", VisibleAliases: []string{"rm", "remove", "delete", "del"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise shell-alias unset ll\x1b[22m\n"},
	{Key: ArgShellAliasUnsetShellAlias, Demanded: true, Short: "The alias to remove", Long: "The alias to remove"},
	{Key: CmdSponsors, Short: "Show the companies sponsoring mise and the jdx.dev open source tools"},
	{Key: CmdSync, Short: "Synchronize tools from other version managers with mise", SubcommandRequired: true},
	{Key: CmdSyncNode, Short: "Symlinks all tool versions from an external tool into mise", Long: "Symlinks all tool versions from an external tool into mise\n\nFor example, use this to import all Homebrew node installs into mise\n\nThis won't overwrite managed installs, runtime aliases, or links from other providers.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mbrew install node@18 node@20\x1b[22m\n    $ \x1b[1mmise sync node --brew\x1b[22m\n    $ \x1b[1mmise use -g node@18\x1b[22m - uses Homebrew-provided node\n"},
	{Key: FlagSyncNodeBrew, Short: "Get tool versions from Homebrew", Long: "Get tool versions from Homebrew"},
	{Key: FlagSyncNodeNodenv, Short: "Get tool versions from nodenv", Long: "Get tool versions from nodenv"},
	{Key: FlagSyncNodeNvm, Short: "Get tool versions from nvm", Long: "Get tool versions from nvm"},
	{Key: CmdSyncPython, Short: "Symlinks all tool versions from an external tool into mise", Long: "Symlinks all tool versions from an external tool into mise\n\nFor example, use this to import all pyenv installs into mise\n\nThis won't overwrite managed installs, runtime aliases, or links from other providers.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mpyenv install 3.11.0\x1b[22m\n    $ \x1b[1mmise sync python --pyenv\x1b[22m\n    $ \x1b[1mmise use -g python@3.11.0\x1b[22m - uses pyenv-provided python\n    \n    $ \x1b[1muv python install 3.11.0\x1b[22m\n    $ \x1b[1mmise install python@3.10.0\x1b[22m\n    $ \x1b[1mmise sync python --uv\x1b[22m\n    $ \x1b[1mmise x python@3.11.0 -- python -V\x1b[22m - uses uv-provided python\n    $ \x1b[1muv run -p 3.10.0 -- python -V\x1b[22m - uses mise-provided python\n"},
	{Key: FlagSyncPythonPyenv, Short: "Get tool versions from pyenv", Long: "Get tool versions from pyenv"},
	{Key: FlagSyncPythonUv, Short: "Sync tool versions with uv (2-way sync)", Long: "Sync tool versions with uv (2-way sync)"},
	{Key: CmdSyncRuby, Short: "Symlinks all ruby tool versions from an external tool into mise", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mbrew install ruby\x1b[22m\n    $ \x1b[1mmise sync ruby --brew\x1b[22m\n    $ \x1b[1mmise use -g ruby\x1b[22m - Use the latest version of Ruby installed by Homebrew\n"},
	{Key: FlagSyncRubyBrew, Demanded: true, Short: "Get tool versions from Homebrew", Long: "Get tool versions from Homebrew"},
	{Key: CmdTasks, Short: "Manage tasks", VisibleAliases: []string{"t"}},
	{Key: FlagTasksGlobal, Short: "Only show global tasks", Long: "Only show global tasks"},
	{Key: FlagTasksJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagTasksLocal, Short: "Only show non-global tasks", Long: "Only show non-global tasks"},
	{Key: FlagTasksExtended, Short: "Show all columns", Long: "Show all columns"},
	{Key: FlagTasksAll, Short: "Load all tasks from the entire monorepo, including sibling directories.\nBy default, only tasks from the current directory hierarchy are loaded.", Long: "Load all tasks from the entire monorepo, including sibling directories.\nBy default, only tasks from the current directory hierarchy are loaded."},
	{Key: FlagTasksComplete, Hide: true, Short: "Display tasks for usage completion", Long: "Display tasks for usage completion"},
	{Key: FlagTasksHidden, Short: "Show hidden tasks", Long: "Show hidden tasks"},
	{Key: FlagTasksNameOnly, Short: "Only show task names, one per line. Useful for piping to fzf and similar tools.", Long: "Only show task names, one per line. Useful for piping to fzf and similar tools."},
	{Key: FlagTasksNoHeader, Short: "Do not print table header", Long: "Do not print table header"},
	{Key: FlagTasksSort, ValueName: "COLUMN", ValueDemanded: true, Short: "Sort by column. Default is name.", Long: "Sort by column. Default is name.", Choices: []string{"name", "alias", "description", "source"}},
	{Key: FlagTasksSortOrder, ValueName: "SORT_ORDER", ValueDemanded: true, Short: "Sort order. Default is asc.", Long: "Sort order. Default is asc.", Choices: []string{"asc", "desc"}},
	{Key: FlagTasksUsage, Hide: true},
	{Key: ArgTasksTask, Short: "Task name to get info of", Long: "Task name to get info of"},
	{Key: CmdTasksAdd, Short: "Create a new task", Long: "Create a new task\n\nAdds a task to the local mise.toml file. See https://mise.jdx.dev/configuration.html#target-file-for-write-operations", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tasks add pre-commit --depends \"test\" --depends \"render\" -- echo pre-commit\x1b[22m\n"},
	{Key: FlagTasksAddAlias, Repeatable: true, ValueName: "ALIAS", ValueDemanded: true, Short: "Other names for the task", Long: "Other names for the task"},
	{Key: FlagTasksAddDepends, Repeatable: true, ValueName: "DEPENDS", ValueDemanded: true, Short: "Add dependencies to the task", Long: "Add dependencies to the task"},
	{Key: FlagTasksAddDir, ValueName: "DIR", ValueDemanded: true, Short: "Run the task in a specific directory", Long: "Run the task in a specific directory"},
	{Key: FlagTasksAddFile, Short: "Create a file task instead of a toml task", Long: "Create a file task instead of a toml task"},
	{Key: FlagTasksAddHide, Short: "Hide the task from `mise tasks` and completions", Long: "Hide the task from `mise tasks` and completions"},
	{Key: FlagTasksAddQuiet, Short: "Do not print the command before running", Long: "Do not print the command before running"},
	{Key: FlagTasksAddRaw, Short: "Directly connect stdin/stdout/stderr", Long: "Directly connect stdin/stdout/stderr"},
	{Key: FlagTasksAddSources, Repeatable: true, ValueName: "SOURCES", ValueDemanded: true, Short: "Glob patterns of files this task uses as input", Long: "Glob patterns of files this task uses as input"},
	{Key: FlagTasksAddWaitFor, Repeatable: true, ValueName: "WAIT_FOR", ValueDemanded: true, Short: "Wait for these tasks to complete if they are to run", Long: "Wait for these tasks to complete if they are to run"},
	{Key: FlagTasksAddDependsPost, Repeatable: true, ValueName: "DEPENDS_POST", ValueDemanded: true, Short: "Dependencies to run after the task runs", Long: "Dependencies to run after the task runs"},
	{Key: FlagTasksAddDescription, ValueName: "DESCRIPTION", ValueDemanded: true, Short: "Description of the task", Long: "Description of the task"},
	{Key: FlagTasksAddOutputs, Repeatable: true, ValueName: "OUTPUTS", ValueDemanded: true, Short: "Glob patterns of files this task creates, to skip if they are not modified", Long: "Glob patterns of files this task creates, to skip if they are not modified"},
	{Key: FlagTasksAddRunWindows, ValueName: "RUN_WINDOWS", ValueDemanded: true, Short: "Command to run on windows", Long: "Command to run on windows"},
	{Key: FlagTasksAddShell, ValueName: "SHELL", ValueDemanded: true, Short: "Run the task in a specific shell", Long: "Run the task in a specific shell"},
	{Key: FlagTasksAddSilent, Short: "Do not print the command or its output", Long: "Do not print the command or its output"},
	{Key: ArgTasksAddTask, Demanded: true, Short: "Tasks name to add", Long: "Tasks name to add"},
	{Key: ArgTasksAddRun},
	{Key: CmdTasksDeps, Short: "Display a tree visualization of a dependency graph", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Show dependencies for all tasks\n    $ \x1b[1mmise tasks deps\x1b[22m\n\n    # Show dependencies for the \"lint\", \"test\" and \"check\" tasks\n    $ \x1b[1mmise tasks deps lint test check\x1b[22m\n\n    # Show dependencies in DOT format\n    $ \x1b[1mmise tasks deps --dot\x1b[22m\n\n    # Collapse repeated dependencies\n    $ \x1b[1mmise tasks deps --compact\x1b[22m\n"},
	{Key: FlagTasksDepsCompact, Short: "Collapse repeated dependencies after their first occurrence", Long: "Collapse repeated dependencies after their first occurrence"},
	{Key: FlagTasksDepsDot, Short: "Display dependencies in DOT format", Long: "Display dependencies in DOT format"},
	{Key: FlagTasksDepsHidden, Short: "Show hidden tasks", Long: "Show hidden tasks"},
	{Key: ArgTasksDepsTasks, Short: "Tasks to show dependencies for\nCan specify multiple tasks by separating with spaces\ne.g.: mise tasks deps lint test check", Long: "Tasks to show dependencies for\nCan specify multiple tasks by separating with spaces\ne.g.: mise tasks deps lint test check"},
	{Key: CmdTasksEdit, Short: "Edit a task with $EDITOR", Long: "Edit a task with $EDITOR\n\nThe task will be created as a standalone script if it does not already exist.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tasks edit build\x1b[22m\n    $ \x1b[1mmise tasks edit test\x1b[22m\n"},
	{Key: FlagTasksEditPath, Short: "Display the path to the task instead of editing it", Long: "Display the path to the task instead of editing it"},
	{Key: ArgTasksEditTask, Demanded: true, Short: "Task to edit", Long: "Task to edit"},
	{Key: CmdTasksGraph, Short: "[experimental] Inspect the workspace project graph", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Inspect projects and their dependency edges\n    $ \x1b[1mmise tasks graph\x1b[22m\n\n    # Emit the project graph as JSON\n    $ \x1b[1mmise tasks graph --json\x1b[22m\n\n    # Explain where inferred projects and task fields came from\n    $ \x1b[1mmise tasks graph --explain\x1b[22m\n"},
	{Key: FlagTasksGraphJson, Short: "Output the project graph as JSON", Long: "Output the project graph as JSON"},
	{Key: FlagTasksGraphExplain, Short: "Explain provider attribution for inferred projects and tasks", Long: "Explain provider attribution for inferred projects and tasks"},
	{Key: FlagTasksGraphNoHeader, Short: "Do not print table headers", Long: "Do not print table headers"},
	{Key: CmdTasksInfo, Short: "Get information about a task", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tasks info\x1b[22m\n    Name: test\n    Aliases: t\n    Description: Test the application\n    Source: ~/src/myproj/mise.toml\n\n    $ \x1b[1mmise tasks info test --json\x1b[22m\n    {\n      \"name\": \"test\",\n      \"aliases\": \"t\",\n      \"description\": \"Test the application\",\n      \"source\": \"~/src/myproj/mise.toml\",\n      \"config_sources\": [\"~/src/myproj/mise.toml\"],\n      \"depends\": [],\n      \"env\": {},\n      \"dir\": null,\n      \"hide\": false,\n      \"raw\": false,\n      \"sources\": [],\n      \"outputs\": [],\n      \"run\": [\n        \"echo \\\"testing!\\\"\"\n      ],\n      \"file\": null,\n      \"usage_spec\": {}\n    }\n"},
	{Key: FlagTasksInfoJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: ArgTasksInfoTask, Demanded: true, Short: "Name of the task to get information about", Long: "Name of the task to get information about"},
	{Key: CmdTasksLs, Short: "List available tasks to execute\nThese may be included from the config file or from the project's .mise/tasks directory\nmise will merge all tasks from all parent directories into this list.", Long: "List available tasks to execute\nThese may be included from the config file or from the project's .mise/tasks directory\nmise will merge all tasks from all parent directories into this list.\n\nSo if you have global tasks in `~/.config/mise/tasks/*` and project-specific tasks in\n~/myproject/.mise/tasks/*, then they'll both be available but the project-specific\ntasks will override the global ones if they have the same name.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tasks ls\x1b[22m\n"},
	{Key: FlagTasksLsGlobal, Short: "Only show global tasks", Long: "Only show global tasks"},
	{Key: FlagTasksLsJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagTasksLsLocal, Short: "Only show non-global tasks", Long: "Only show non-global tasks"},
	{Key: FlagTasksLsExtended, Short: "Show all columns", Long: "Show all columns"},
	{Key: FlagTasksLsAll, Short: "Load all tasks from the entire monorepo, including sibling directories.\nBy default, only tasks from the current directory hierarchy are loaded.", Long: "Load all tasks from the entire monorepo, including sibling directories.\nBy default, only tasks from the current directory hierarchy are loaded."},
	{Key: FlagTasksLsComplete, Hide: true, Short: "Display tasks for usage completion", Long: "Display tasks for usage completion"},
	{Key: FlagTasksLsHidden, Short: "Show hidden tasks", Long: "Show hidden tasks"},
	{Key: FlagTasksLsNameOnly, Short: "Only show task names, one per line. Useful for piping to fzf and similar tools.", Long: "Only show task names, one per line. Useful for piping to fzf and similar tools."},
	{Key: FlagTasksLsNoHeader, Short: "Do not print table header", Long: "Do not print table header"},
	{Key: FlagTasksLsSort, ValueName: "COLUMN", ValueDemanded: true, Short: "Sort by column. Default is name.", Long: "Sort by column. Default is name.", Choices: []string{"name", "alias", "description", "source"}},
	{Key: FlagTasksLsSortOrder, ValueName: "SORT_ORDER", ValueDemanded: true, Short: "Sort order. Default is asc.", Long: "Sort order. Default is asc.", Choices: []string{"asc", "desc"}},
	{Key: FlagTasksLsUsage, Hide: true},
	{Key: CmdTasksRun, Short: "Run task(s)", Long: "Run task(s)\n\nThis command will run a task, or multiple tasks in parallel. Tasks may have dependencies on other tasks or on source files. If source is configured on a task, it will only run if the source files have changed.\n\nTasks can be defined in mise.toml or as standalone scripts. In mise.toml, tasks take this form:\n\n    [tasks.build]\n    run = \"npm run build\"\n    sources = [\"src/**/*.ts\"]\n    outputs = [\"dist/**/*.js\"]\n\nAlternatively, tasks can be defined as standalone scripts. These must be located in `mise-tasks`, `.mise-tasks`, `.mise/tasks`, `mise/tasks` or `.config/mise/tasks`. The name of the script will be the name of the tasks.\n\n    $ cat .mise/tasks/build<<EOF\n    #!/usr/bin/env bash\n    npm run build\n    EOF\n    $ mise run build", VisibleAliases: []string{"r"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Runs the \"lint\" tasks. This needs to either be defined in mise.toml\n    # or as a standalone script. See the project README for more information.\n    $ \x1b[1mmise run lint\x1b[22m\n\n    # Forces the \"build\" tasks to run even if its sources are up-to-date.\n    $ \x1b[1mmise run --force build\x1b[22m\n\n    # Run \"test\" with stdin/stdout/stderr all connected to the current terminal.\n    # This forces `--jobs=1` to prevent interleaving of output.\n    $ \x1b[1mmise run --raw test\x1b[22m\n\n    # Runs the \"lint\", \"test\", and \"check\" tasks in parallel.\n    $ \x1b[1mmise run lint ::: test ::: check\x1b[22m\n\n    # Execute multiple tasks each with their own arguments.\n    $ \x1b[1mmise run cmd1 arg1 arg2 ::: cmd2 arg1 arg2\x1b[22m\n"},
	{Key: FlagTasksRunAffected, Short: "Run matching tasks only for projects affected by Git changes", Long: "Run matching tasks only for projects affected by Git changes"},
	{Key: FlagTasksRunAffectedBase, ValueName: "REV", ValueDemanded: true, Short: "Git base revision for --affected\nDefaults to MISE_AFFECTED_BASE, CI metadata, or HEAD~1", Long: "Git base revision for --affected\nDefaults to MISE_AFFECTED_BASE, CI metadata, or HEAD~1"},
	{Key: FlagTasksRunAffectedExplain, Short: "Explain why projects and tasks were selected by --affected", Long: "Explain why projects and tasks were selected by --affected"},
	{Key: FlagTasksRunAffectedHead, ValueName: "REV", ValueDemanded: true, Short: "Git head revision for --affected\nDefaults to MISE_AFFECTED_HEAD, CI metadata, or HEAD", Long: "Git head revision for --affected\nDefaults to MISE_AFFECTED_HEAD, CI metadata, or HEAD"},
	{Key: FlagTasksRunAffectedJson, Short: "Output affected projects and tasks as JSON without running tasks", Long: "Output affected projects and tasks as JSON without running tasks"},
	{Key: FlagTasksRunAll, Short: "Open the interactive selector with all tasks from the entire monorepo", Long: "Open the interactive selector with all tasks from the entire monorepo"},
	{Key: FlagTasksRunContinueOnError, Short: "Continue running tasks even if one fails", Long: "Continue running tasks even if one fails"},
	{Key: FlagTasksRunCd, ValueName: "CD", ValueDemanded: true, Short: "Change to this directory before executing the command", Long: "Change to this directory before executing the command"},
	{Key: FlagTasksRunForce, Short: "Force the tasks to run even if outputs are up to date", Long: "Force the tasks to run even if outputs are up to date"},
	{Key: FlagTasksRunJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of tasks to run in parallel\nValues below 1 are treated as 1\n[default: 4]\nConfigure with `jobs` config or `MISE_JOBS` env var", Long: "Number of tasks to run in parallel\nValues below 1 are treated as 1\n[default: 4]\nConfigure with `jobs` config or `MISE_JOBS` env var", Env: "MISE_JOBS"},
	{Key: FlagTasksRunDryRun, Short: "Don't actually run the task(s), just print them in order of execution", Long: "Don't actually run the task(s), just print them in order of execution"},
	{Key: FlagTasksRunOutput, ValueName: "OUTPUT", ValueDemanded: true, Short: "Change how tasks information is output when running tasks", Long: "Change how tasks information is output when running tasks\n\n- `prefix` - Print stdout/stderr by line, prefixed with the task's label - `interleave` - Print directly to stdout/stderr instead of by line - `replacing` - Stdout is replaced each time, stderr is printed as is - `timed` - Only show stdout lines if they are displayed for more than 1 second - `keep-order` - Print stdout/stderr by line, prefixed with the task's label, but keep the order of the output - `quiet` - Don't show extra output - `silent` - Don't show any output including stdout and stderr from the task except for errors", Env: "MISE_TASK_OUTPUT"},
	{Key: FlagTasksRunQuiet, Short: "Don't show extra output", Long: "Don't show extra output", Env: "MISE_QUIET"},
	{Key: FlagTasksRunRaw, Short: "Read/write directly to stdin/stdout/stderr instead of by line\nRedactions are not applied with this option\nConfigure with `raw` config or `MISE_RAW` env var", Long: "Read/write directly to stdin/stdout/stderr instead of by line\nRedactions are not applied with this option\nConfigure with `raw` config or `MISE_RAW` env var"},
	{Key: FlagTasksRunShell, ValueName: "SHELL", ValueDemanded: true, Short: "Shell to use to run toml tasks", Long: "Shell to use to run toml tasks\n\nDefaults to `sh -c -o errexit -o pipefail` on unix, and `cmd /c` on Windows Can also be set with the setting `MISE_UNIX_DEFAULT_INLINE_SHELL_ARGS` or `MISE_WINDOWS_DEFAULT_INLINE_SHELL_ARGS` Or it can be overridden with the `shell` property on a task."},
	{Key: FlagTasksRunSilent, Short: "Don't show any output except for errors", Long: "Don't show any output except for errors", Env: "MISE_SILENT"},
	{Key: FlagTasksRunTool, Repeatable: true, ValueName: "TOOL@VERSION", ValueDemanded: true, Short: "Tool(s) to run in addition to what is in mise.toml files e.g.: node@20 python@3.10", Long: "Tool(s) to run in addition to what is in mise.toml files\ne.g.: node@20 python@3.10"},
	{Key: FlagTasksRunAllowEnv, Repeatable: true, ValueName: "VAR", ValueDemanded: true, Short: "Allow specific env var through (implies --deny-env for everything else)\nSupports wildcards, e.g. --allow-env='MYAPP_*'", Long: "Allow specific env var through (implies --deny-env for everything else)\nSupports wildcards, e.g. --allow-env='MYAPP_*'"},
	{Key: FlagTasksRunAllowNet, Repeatable: true, ValueName: "HOST", ValueDemanded: true, Short: "Allow network to specific host (implies --deny-net for everything else)", Long: "Allow network to specific host (implies --deny-net for everything else)"},
	{Key: FlagTasksRunAllowRead, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Allow reads from specific path (implies --deny-read for everything else)", Long: "Allow reads from specific path (implies --deny-read for everything else)"},
	{Key: FlagTasksRunAllowWrite, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Allow writes to specific path (implies --deny-write for everything else)", Long: "Allow writes to specific path (implies --deny-write for everything else)"},
	{Key: FlagTasksRunDenyAll, Short: "Block reads, writes, network, and env vars", Long: "Block reads, writes, network, and env vars"},
	{Key: FlagTasksRunDenyEnv, Short: "Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through)", Long: "Block env var inheritance (only PATH, HOME, USER, SHELL, TERM, LANG pass through)"},
	{Key: FlagTasksRunDenyNet, Short: "Block all network access", Long: "Block all network access"},
	{Key: FlagTasksRunDenyRead, Short: "Block filesystem reads (system libs and tool dirs still accessible)", Long: "Block filesystem reads (system libs and tool dirs still accessible)"},
	{Key: FlagTasksRunDenyWrite, Short: "Block all filesystem writes", Long: "Block all filesystem writes"},
	{Key: FlagTasksRunFreshEnv, Short: "Bypass the environment cache and recompute the environment", Long: "Bypass the environment cache and recompute the environment"},
	{Key: FlagTasksRunNoCache, Short: "Do not use cache on remote tasks", Long: "Do not use cache on remote tasks", Env: "MISE_TASK_REMOTE_NO_CACHE"},
	{Key: FlagTasksRunNoDeps, Short: "Skip automatic dependency preparation", Long: "Skip automatic dependency preparation"},
	{Key: FlagTasksRunNoTimings, Short: "Hides elapsed time after each task completes", Long: "Hides elapsed time after each task completes\n\nDefault to always hide with `MISE_TASK_TIMINGS=0`"},
	{Key: FlagTasksRunSkipDeps, Short: "Run only the specified tasks skipping all dependencies", Long: "Run only the specified tasks skipping all dependencies", Env: "MISE_TASK_SKIP_DEPENDS"},
	{Key: FlagTasksRunSkipTools, Short: "Skip installing tools before running tasks", Long: "Skip installing tools before running tasks\n\nCan also be set persistently with the `task.run_auto_install` setting or `MISE_TASK_RUN_AUTO_INSTALL=false` env var"},
	{Key: FlagTasksRunTaskCache, ValueName: "TASK_CACHE", ValueDemanded: true, Short: "Set task output cache access for this run", Long: "Set task output cache access for this run\n\n- `read-write` - Read cached results and write new results - `read-only` - Read cached results without writing new results - `write-only` - Write new results without reading cached results - `off` - Disable task output caching - `local-only` - Read and write only the local cache; currently equivalent to `read-write`", Choices: []string{"read-write", "read-only", "write-only", "off", "local-only"}, Env: "MISE_TASK_CACHE", Default: []string{"read-write"}},
	{Key: FlagTasksRunTaskCacheExplain, Short: "Explain the inputs that produced each task's output cache key", Long: "Explain the inputs that produced each task's output cache key"},
	{Key: FlagTasksRunTaskCacheExplainJson, Short: "Output cache-key input details as JSON Lines without running tasks", Long: "Output cache-key input details as JSON Lines without running tasks"},
	{Key: FlagTasksRunTaskCacheStats, Short: "Report task output cache hits, restored bytes, and time saved", Long: "Report task output cache hits, restored bytes, and time saved"},
	{Key: FlagTasksRunTimeout, ValueName: "TIMEOUT", ValueDemanded: true, Short: "Timeout for the task to complete\ne.g.: 30s, 5m", Long: "Timeout for the task to complete\ne.g.: 30s, 5m"},
	{Key: FlagTasksRunTimings, Hide: true, Short: "Shows elapsed time after each task completes", Long: "Shows elapsed time after each task completes\n\nDefault to always show with `MISE_TASK_TIMINGS=1`"},
	{Key: ArgTasksRunTask, Short: "Tasks to run\nCan specify multiple tasks by separating with `:::`\ne.g.: mise run task1 arg1 arg2 ::: task2 arg1 arg2\nDefaults to `default` when omitted", Long: "Tasks to run\nCan specify multiple tasks by separating with `:::`\ne.g.: mise run task1 arg1 arg2 ::: task2 arg1 arg2\nDefaults to `default` when omitted"},
	{Key: ArgTasksRunArgs, Short: "Arguments to pass to the tasks. Use \":::\" to separate tasks.", Long: "Arguments to pass to the tasks. Use \":::\" to separate tasks."},
	{Key: ArgTasksRunArgsLast, Hide: true, Short: "Arguments to pass to the tasks. Use \":::\" to separate tasks.", Long: "Arguments to pass to the tasks. Use \":::\" to separate tasks."},
	{Key: CmdTasksValidate, Short: "Validate tasks for common errors and issues", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Validate all tasks\n    $ \x1b[1mmise tasks validate\x1b[22m\n\n    # Validate specific tasks\n    $ \x1b[1mmise tasks validate build test\x1b[22m\n\n    # Output results as JSON\n    $ \x1b[1mmise tasks validate --json\x1b[22m\n\n    # Only show errors (skip warnings)\n    $ \x1b[1mmise tasks validate --errors-only\x1b[22m\n\n\x1b[1m\x1b[4mValidation Checks:\x1b[22m\x1b[24m\n\nThe validate command performs the following checks:\n\n  • \x1b[1mCircular Dependencies\x1b[22m: Detects dependency cycles\n  • \x1b[1mMissing References\x1b[22m: Finds references to nonexistent tasks\n  • \x1b[1mUsage Spec Parsing\x1b[22m: Validates #USAGE directives and specs\n  • \x1b[1mTimeout Format\x1b[22m: Checks timeout values are valid durations\n  • \x1b[1mAlias Conflicts\x1b[22m: Detects duplicate aliases across tasks\n  • \x1b[1mFile Existence\x1b[22m: Verifies file-based tasks exist\n  • \x1b[1mDirectory Templates\x1b[22m: Validates directory paths and templates\n  • \x1b[1mShell Commands\x1b[22m: Checks shell executables exist\n  • \x1b[1mGlob Patterns\x1b[22m: Validates source and output patterns\n  • \x1b[1mRun Entries\x1b[22m: Ensures tasks reference valid dependencies\n"},
	{Key: FlagTasksValidateErrorsOnly, Short: "Only show errors (skip warnings)", Long: "Only show errors (skip warnings)"},
	{Key: FlagTasksValidateJson, Short: "Output validation results in JSON format", Long: "Output validation results in JSON format"},
	{Key: ArgTasksValidateTasks, Short: "Tasks to validate\nIf not specified, validates all tasks", Long: "Tasks to validate\nIf not specified, validates all tasks"},
	{Key: CmdTestTool, Short: "Test a tool installs and executes", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise test-tool ripgrep\x1b[22m\n"},
	{Key: FlagTestToolAll, Short: "Test every tool specified in registry/", Long: "Test every tool specified in registry/"},
	{Key: FlagTestToolJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of tool tests to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Long: "Number of tool tests to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Env: "MISE_TEST_TOOL_JOBS"},
	{Key: FlagTestToolAllConfig, Short: "Test all tools specified in config files", Long: "Test all tools specified in config files"},
	{Key: FlagTestToolIncludeNonDefined, Short: "Also test tools not defined in registry/, guessing how to test it", Long: "Also test tools not defined in registry/, guessing how to test it"},
	{Key: FlagTestToolRaw, Short: "Connect backend install command stdin/stdout/stderr directly to the terminal Implies --jobs=1", Long: "Connect backend install command stdin/stdout/stderr directly to the terminal\nImplies --jobs=1"},
	{Key: ArgTestToolTools, Short: "Tool(s) to test", Long: "Tool(s) to test"},
	{Key: CmdToken, Short: "Display git provider tokens mise will use", SubcommandRequired: true},
	{Key: CmdTokenForgejo, Short: "Forgejo token", Long: "Display the Forgejo token mise will use for a given host\n\nShows which token source mise would use, useful for debugging\nauthentication issues. The token is masked by default.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise token forgejo\x1b[22m\n    codeberg.org: a180…61f6 (source: FORGEJO_TOKEN)\n\n    $ \x1b[1mmise token forgejo --unmask\x1b[22m\n    codeberg.org: a18099ca69064be387fbe37b8ad1d333758361f6 (source: FORGEJO_TOKEN)\n\n    $ \x1b[1mmise token forgejo forgejo.mycompany.com\x1b[22m\n    forgejo.mycompany.com: (none)\n"},
	{Key: FlagTokenForgejoUnmask, Short: "Show the full unmasked token", Long: "Show the full unmasked token"},
	{Key: ArgTokenForgejoHost, Short: "Forgejo hostname", Long: "Forgejo hostname", Default: []string{"codeberg.org"}},
	{Key: CmdTokenGithub, Short: "GitHub token", Long: "Display the GitHub token mise will use for a given host\n\nShows which token source mise would use, useful for debugging\nauthentication issues. The token is masked by default.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise token github\x1b[22m\n    github.com: ghp_…xxxx (source: GITHUB_TOKEN)\n\n    $ \x1b[1mmise token github --unmask\x1b[22m\n    github.com: ghp_xxxxxxxxxxxx (source: GITHUB_TOKEN)\n\n    $ \x1b[1mmise token github github.mycompany.com\x1b[22m\n    github.mycompany.com: (none)\n\n    $ \x1b[1mmise token github --oauth --refresh\x1b[22m\n    github.com: gho_…xxxx (source: GitHub OAuth)\n"},
	{Key: FlagTokenGithubOauth, Short: "Resolve only via the native GitHub OAuth source (cache, refresh, or device-code flow), bypassing other token sources", Long: "Resolve only via the native GitHub OAuth source (cache,\nrefresh, or device-code flow), bypassing other token sources"},
	{Key: FlagTokenGithubRaw, Short: "Print only the token value", Long: "Print only the token value"},
	{Key: FlagTokenGithubRefresh, Short: "Mint a fresh OAuth token even if the cached one has not expired, via the refresh-token grant or a new device-code flow. Use after changing the GitHub App's installations or permissions: cached tokens keep their original access until they expire", Long: "Mint a fresh OAuth token even if the cached one has not\nexpired, via the refresh-token grant or a new device-code flow.\nUse after changing the GitHub App's installations or permissions:\ncached tokens keep their original access until they expire"},
	{Key: FlagTokenGithubUnmask, Short: "Show the full unmasked token", Long: "Show the full unmasked token"},
	{Key: ArgTokenGithubHost, Short: "GitHub hostname", Long: "GitHub hostname", Default: []string{"github.com"}},
	{Key: CmdTokenGitlab, Short: "GitLab token", Long: "Display the GitLab token mise will use for a given host\n\nShows which token source mise would use, useful for debugging\nauthentication issues. The token is masked by default.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise token gitlab\x1b[22m\n    gitlab.com: glpa…xxxx (source: GITLAB_TOKEN)\n\n    $ \x1b[1mmise token gitlab --unmask\x1b[22m\n    gitlab.com: glpat-xxxxxxxxxxxx (source: GITLAB_TOKEN)\n\n    $ \x1b[1mmise token gitlab gitlab.mycompany.com\x1b[22m\n    gitlab.mycompany.com: (none)\n"},
	{Key: FlagTokenGitlabUnmask, Short: "Show the full unmasked token", Long: "Show the full unmasked token"},
	{Key: ArgTokenGitlabHost, Short: "GitLab hostname", Long: "GitLab hostname", Default: []string{"gitlab.com"}},
	{Key: CmdTool, Short: "Gets information about a tool", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise tool node\x1b[22m\n    Backend:            core\n    Installed Versions: 20.0.0 22.0.0\n    Active Version:     20.0.0\n    Requested Version:  20\n    Config Source:      ~/.config/mise/mise.toml\n    Tool Options:       [none]\n"},
	{Key: FlagToolJson, Short: "Output in JSON format", Long: "Output in JSON format"},
	{Key: FlagToolActive, Short: "Only show active versions", Long: "Only show active versions"},
	{Key: FlagToolBackend, Short: "Only show backend field", Long: "Only show backend field"},
	{Key: FlagToolConfigSource, Short: "Only show config source", Long: "Only show config source"},
	{Key: FlagToolDescription, Short: "Only show description field", Long: "Only show description field"},
	{Key: FlagToolInstalled, Short: "Only show installed versions", Long: "Only show installed versions"},
	{Key: FlagToolRequested, Short: "Only show requested versions", Long: "Only show requested versions"},
	{Key: FlagToolToolOptions, Short: "Only show tool options", Long: "Only show tool options"},
	{Key: ArgToolTool, Demanded: true, Short: "Tool name to get information about", Long: "Tool name to get information about"},
	{Key: CmdToolStub, Short: "Execute a tool stub", Long: "Execute a tool stub\n\nTool stubs are executable files containing TOML configuration that specify which tool to run and how to run it. They provide a convenient way to create portable, self-contained executables that automatically manage tool installation and execution.\n\nA tool stub consists of: - A shebang line: #!/usr/bin/env -S mise tool-stub - TOML configuration specifying the tool, version, and options - Optional comments describing the tool's purpose\n\nExample stub file:\n  #!/usr/bin/env -S mise tool-stub\n  # Node.js v20 development environment\n\n  tool = \"node\"\n  version = \"20.0.0\"\n  bin = \"node\"\n\nThe stub will automatically install the specified tool version if missing and execute it with any arguments passed to the stub.\n\nFor more information, see: https://mise.jdx.dev/dev-tools/tool-stubs.html"},
	{Key: ArgToolStubFile, Demanded: true, Short: "Path to the TOML tool stub file to execute", Long: "Path to the TOML tool stub file to execute\n\nThe stub file must contain TOML configuration specifying the tool and version to run. At minimum, it should specify a 'version' field. Other common fields include 'tool', 'bin', and backend-specific options."},
	{Key: ArgToolStubArgs, Short: "Arguments to pass to the tool", Long: "Arguments to pass to the tool\n\nAll arguments after the stub file path will be forwarded to the underlying tool. Use '--' to separate mise arguments from tool arguments if needed."},
	{Key: CmdTrust, Short: "Marks a config file as trusted", Long: "Marks a config file as trusted\n\nThis means mise is allowed to parse the file when it needs to read config that may execute code or affect the environment. Without trust, mise may prompt, skip the config in some discovery paths, or fail with an untrusted-config error when it cannot prompt.\n\nIn normal mode, commands that execute project-defined behavior (`mise run`, naked task invocations such as `mise <TASK>`, `mise install`, `mise exec`, and `mise watch`) automatically trust their active config. Paranoid mode requires explicit, content-bound trust for every non-global config.\n\nIn normal mode, safe config files do not require trust: files that only contain `min_version`, `[tools]` entries with plain version strings (or arrays of them), and `[tasks]` without templates or tool options.\n\nTrust is shared across git worktrees: a config file inside a linked worktree is trusted when the equivalent path in the repository's main checkout has been trusted. Paranoid mode disables this sharing since worktrees can check out branches with different config contents.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # trusts ~/some_dir/mise.toml\n    $ \x1b[1mmise trust ~/some_dir/mise.toml\x1b[22m\n\n    # trusts mise.toml in the current or parent directory\n    $ \x1b[1mmise trust\x1b[22m\n"},
	{Key: FlagTrustAll, Short: "Trust all config files in the current directory, its parents, and its subdirectories", Long: "Trust all config files in the current directory, its parents, and its subdirectories\n\nSubdirectories are walked respecting .gitignore, skipping hidden directories and common build/dependency directories (node_modules, vendor, target, dist, build)."},
	{Key: FlagTrustIgnore, Short: "Do not trust this config and ignore it in the future", Long: "Do not trust this config and ignore it in the future"},
	{Key: FlagTrustShow, Short: "Show the trusted status of config files from the current directory and its parents.\nDoes not trust or untrust any files.", Long: "Show the trusted status of config files from the current directory and its parents.\nDoes not trust or untrust any files."},
	{Key: FlagTrustUntrust, Short: "Remove explicit trust for this config", Long: "Remove explicit trust for this config"},
	{Key: ArgTrustConfigFile, Short: "The config file whose trust status to change", Long: "The config file whose trust status to change"},
	{Key: CmdUninstall, Short: "Removes installed tool versions", Long: "Removes installed tool versions\n\nThis only removes the installed version, it does not modify mise.toml.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # will uninstall specific version\n    $ \x1b[1mmise uninstall node@18.0.0\x1b[22m\n\n    # will uninstall the current node version (if only one version is installed)\n    $ \x1b[1mmise uninstall node\x1b[22m\n\n    # will uninstall all installed versions of node\n    $ \x1b[1mmise uninstall --all node@18.0.0\x1b[22m # will uninstall all node versions\n"},
	{Key: FlagUninstallAll, Short: "Delete all installed versions", Long: "Delete all installed versions"},
	{Key: FlagUninstallDryRun, Short: "Do not actually delete anything", Long: "Do not actually delete anything"},
	{Key: FlagUninstallDryRunCode, Short: "Like --dry-run but exits with code 1 if there are tools to uninstall", Long: "Like --dry-run but exits with code 1 if there are tools to uninstall\n\nThis is useful for scripts to check if tools need to be uninstalled."},
	{Key: ArgUninstallInstalledToolVersion, Short: "Tool(s) to remove", Long: "Tool(s) to remove"},
	{Key: CmdUnset, Short: "Remove environment variable(s) from the config file.", Long: "Remove environment variable(s) from the config file.\n\nBy default, this command modifies `mise.toml` in the current directory.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Remove NODE_ENV from the current directory's config\n    $ \x1b[1mmise unset NODE_ENV\x1b[22m\n\n    # Remove NODE_ENV from the global config\n    $ \x1b[1mmise unset NODE_ENV -g\x1b[22m\n"},
	{Key: FlagUnsetFile, ValueName: "FILE", ValueDemanded: true, Short: "Specify a file to use instead of `mise.toml`", Long: "Specify a file to use instead of `mise.toml`\n\nCan be a file path or directory. If a directory is provided, will create/use mise.toml in that directory.\n\nDefaults to [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) environment variable, or `mise.toml`. Use [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) to choose a different global config path."},
	{Key: FlagUnsetGlobal, Short: "Use the global config file", Long: "Use the global config file"},
	{Key: ArgUnsetEnvKey, Short: "Environment variable(s) to remove\ne.g.: NODE_ENV", Long: "Environment variable(s) to remove\ne.g.: NODE_ENV"},
	{Key: CmdUntrust, Short: "Remove explicit trust for a config"},
	{Key: ArgUntrustConfigFile, Short: "The config file to untrust", Long: "The config file to untrust"},
	{Key: CmdUnuse, Short: "Removes installed tool versions from mise.toml", Long: "Removes installed tool versions from mise.toml\n\nBy default, this will use the `mise.toml` file that has the tool defined. If multiple config files exist (e.g., both `mise.toml` and `mise.local.toml`), the lowest precedence file (`mise.toml`) will be used. See https://mise.jdx.dev/configuration.html#target-file-for-write-operations\n\nIn the following order:\n  - If `--global` is set, it will use the global config file.\n  - If `--path` is set, it will use the config file at the given path.\n  - If `--env` is set, it will use `mise.<env>.toml`.\n  - If [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) is set, it will use that instead.\n  - If `MISE_OVERRIDE_CONFIG_FILENAMES` is set, it will the first from that list.\n  - Otherwise just \"mise.toml\" or global config if cwd is home directory.\n\nUse [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) to choose a different global config path.\n\nWill also prune the installed version if no other configurations are using it.", VisibleAliases: []string{"rm", "remove"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # will uninstall specific version\n    $ \x1b[1mmise unuse node@18.0.0\x1b[22m\n\n    # will uninstall specific version from global config\n    $ \x1b[1mmise unuse -g node@18.0.0\x1b[22m\n\n    # will uninstall specific version from .mise.local.toml\n    $ \x1b[1mmise unuse --env local node@20\x1b[22m\n\n    # will uninstall specific version from .mise.staging.toml\n    $ \x1b[1mmise unuse --env staging node@20\x1b[22m\n"},
	{Key: FlagUnuseEnv, ValueName: "ENV", ValueDemanded: true, Short: "Create/modify an environment-specific config file like .mise.<env>.toml", Long: "Create/modify an environment-specific config file like .mise.<env>.toml"},
	{Key: FlagUnuseGlobal, Short: "Use the global config file (`~/.config/mise/config.toml`) instead of the local one", Long: "Use the global config file (`~/.config/mise/config.toml`) instead of the local one"},
	{Key: FlagUnusePath, ValueName: "PATH", ValueDemanded: true, Short: "Specify a path to a config file or directory", Long: "Specify a path to a config file or directory\n\nIf a directory is specified, it will look for a config file in that directory following the rules above."},
	{Key: FlagUnuseNoPrune, Short: "Do not also prune the installed version", Long: "Do not also prune the installed version"},
	{Key: ArgUnuseInstalledToolVersion, Demanded: true, Short: "Tool(s) to remove", Long: "Tool(s) to remove"},
	{Key: CmdUpgrade, Short: "Upgrades outdated tools", Long: "Upgrades outdated tools\n\nBy default, this keeps the range specified in mise.toml. So if you have node@20 set, it will upgrade to the latest 20.x.x version available. See the `--bump` flag to use the latest version and bump the version in mise.toml.\n\nThis will update mise.lock if it is enabled, see https://mise.jdx.dev/configuration/settings.html#lockfile", VisibleAliases: []string{"up"}, AfterLongHelp: "\x1b[1m\x1b[4mDeprecation:\x1b[22m\x1b[24m\n\nThe `-l` shorthand for `--bump` is deprecated and will be removed in mise 2027.8.5.\nAfter removal, `-l` will become shorthand for `--local`. Use `-b` or `--bump` instead.\n\n\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Upgrades node to the latest version matching the range in mise.toml\n    $ \x1b[1mmise upgrade node\x1b[22m\n\n    # Upgrades node to the latest version and bumps the version in mise.toml\n    $ \x1b[1mmise upgrade node --bump\x1b[22m\n\n    # Upgrades all tools to the latest versions\n    $ \x1b[1mmise upgrade\x1b[22m\n\n    # Upgrades all tools to the latest versions and bumps the version in mise.toml\n    $ \x1b[1mmise upgrade --bump\x1b[22m\n\n    # Just print what would be done, don't actually do it\n    $ \x1b[1mmise upgrade --dry-run\x1b[22m\n\n    # Upgrades node and python to the latest versions\n    $ \x1b[1mmise upgrade node python\x1b[22m\n\n    # Upgrade all tools except go\n    $ \x1b[1mmise upgrade --exclude go\x1b[22m\n\n    # Show a multiselect menu to choose which tools to upgrade\n    $ \x1b[1mmise upgrade --interactive\x1b[22m\n\n    # Only upgrade tools defined in local mise.toml, not global ones\n    $ \x1b[1mmise upgrade --local\x1b[22m\n"},
	{Key: FlagUpgradeBump, Short: "Upgrades to the latest version available, bumping the version in mise.toml", Long: "Upgrades to the latest version available, bumping the version in mise.toml\n\nFor example, if you have `node = \"20.0.0\"` in your mise.toml but 22.1.0 is the latest available, this will install 22.1.0 and set `node = \"22.1.0\"` in your config.\n\nIt keeps the same precision as what was there before, so if you instead had `node = \"20\"`, it would change your config to `node = \"22\"`."},
	{Key: FlagUpgradeInteractive, Short: "Display multiselect menu to choose which tools to upgrade", Long: "Display multiselect menu to choose which tools to upgrade"},
	{Key: FlagUpgradeJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Env: "MISE_JOBS"},
	{Key: FlagUpgradeL, Hide: true, Short: "Deprecated shorthand for --bump", Long: "Deprecated shorthand for --bump"},
	{Key: FlagUpgradeDryRun, Short: "Just print what would be done, don't actually do it", Long: "Just print what would be done, don't actually do it"},
	{Key: FlagUpgradeExclude, Repeatable: true, ValueName: "INSTALLED_TOOL", ValueDemanded: true, Short: "Tool(s) to exclude from upgrading\ne.g.: go python", Long: "Tool(s) to exclude from upgrading\ne.g.: go python"},
	{Key: FlagUpgradeDryRunCode, Short: "Like --dry-run but exits with code 1 if there are outdated tools", Long: "Like --dry-run but exits with code 1 if there are outdated tools\n\nThis is useful for scripts to check if tools need to be upgraded."},
	{Key: FlagUpgradeInactive, Short: "Upgrade all tools, including installed-but-inactive tools not present in the current config", Long: "Upgrade all tools, including installed-but-inactive tools not present in the current config"},
	{Key: FlagUpgradeLocal, Short: "Only upgrade tools defined in local config files", Long: "Only upgrade tools defined in local config files\n\nThis will only upgrade tools that are defined in project-local mise.toml and will skip tools defined in the global config (~/.config/mise/config.toml)."},
	{Key: FlagUpgradeMinimumReleaseAge, ValueName: "MINIMUM_RELEASE_AGE", ValueDemanded: true, Short: "Only upgrade to versions released before this date or older than this duration", Long: "Only upgrade to versions released before this date or older than this duration\n\nSupports absolute dates like \"2024-06-01\" and relative durations like \"90d\" or \"1y\". This can be useful for reproducibility or security purposes.\n\nThis only affects fuzzy version matches like \"20\" or \"latest\". Explicitly pinned versions like \"22.5.0\" are not filtered."},
	{Key: FlagUpgradeMonorepo, Short: "Placeholder for future monorepo upgrades; `mise upgrade --monorepo` is not implemented yet.", Long: "Placeholder for future monorepo upgrades; `mise upgrade --monorepo` is not implemented yet."},
	{Key: FlagUpgradeNoPrune, Short: "Do not uninstall the versions that were upgraded away from", Long: "Do not uninstall the versions that were upgraded away from\n\nBy default the old version is removed once the new one installs, unless another tracked config or tool stub still needs it. Use this to keep it anyway, e.g. when something outside of mise points at the old install directory.\n\nSet `upgrade.auto_prune = false` to make this the default."},
	{Key: FlagUpgradePrune, Short: "Uninstall the versions that were upgraded away from", Long: "Uninstall the versions that were upgraded away from\n\nThis is already the default. Use it to override `upgrade.auto_prune = false` for a single run."},
	{Key: FlagUpgradeRaw, Short: "Connect backend install command stdin/stdout/stderr directly to the terminal Implies --jobs=1", Long: "Connect backend install command stdin/stdout/stderr directly to the terminal\nImplies --jobs=1"},
	{Key: ArgUpgradeInstalledToolVersion, Short: "Tool(s) to upgrade\ne.g.: node@20 python@3.10\nIf not specified, all current tools will be upgraded", Long: "Tool(s) to upgrade\ne.g.: node@20 python@3.10\nIf not specified, all current tools will be upgraded"},
	{Key: CmdUsage, Hide: true, Short: "Generate a usage CLI spec", Long: "Generate a usage CLI spec\n\nSee https://usage.jdx.dev for more information on this specification."},
	{Key: CmdUse, Short: "Installs a tool and adds the version to mise.toml.", Long: "Installs a tool and adds the version to mise.toml.\n\nThis will install the tool version if it is not already installed. By default, this will use a `mise.toml` file in the current directory. If multiple config files exist (e.g., both `mise.toml` and `mise.local.toml`), the lowest precedence file (`mise.toml`) will be used. See https://mise.jdx.dev/configuration.html#target-file-for-write-operations\n\nIn the following order:\n  - If `--global` is set, it will use the global config file.\n  - If `--path` is set, it will use the config file at the given path.\n  - If `--env` is set, it will use `mise.<env>.toml`.\n  - If [`MISE_DEFAULT_CONFIG_FILENAME`](https://mise.jdx.dev/configuration.html#mise_default_config_filename) is set, it will use that instead.\n  - If `MISE_OVERRIDE_CONFIG_FILENAMES` is set, it will the first from that list.\n  - Otherwise just \"mise.toml\" or global config if cwd is home directory.\n\nUse [`MISE_GLOBAL_CONFIG_FILE`](https://mise.jdx.dev/configuration.html#mise_global_config_file) to choose a different global config path.\n\nUse the `--global` flag to use the global config file instead.", VisibleAliases: []string{"u"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # run with no arguments to use the interactive selector\n    $ \x1b[1mmise use\x1b[22m\n\n    # set the current version of node to 20.x in mise.toml of current directory\n    # will write the fuzzy version (e.g.: 20)\n    $ \x1b[1mmise use node@20\x1b[22m\n\n    # set the current version of node to 20.x in ~/.config/mise/config.toml\n    # will write the precise version (e.g.: 20.0.0)\n    $ \x1b[1mmise use -g --pin node@20\x1b[22m\n\n    # sets .mise.local.toml (which is intended not to be committed to a project)\n    $ \x1b[1mmise use --env local node@20\x1b[22m\n\n    # sets .mise.staging.toml (which is used if MISE_ENV=staging)\n    $ \x1b[1mmise use --env staging node@20\x1b[22m\n"},
	{Key: FlagUseEnv, ValueName: "ENV", ValueDemanded: true, Short: "Create/modify an environment-specific config file like .mise.<env>.toml", Long: "Create/modify an environment-specific config file like .mise.<env>.toml"},
	{Key: FlagUseForce, Short: "Force reinstall even if already installed", Long: "Force reinstall even if already installed"},
	{Key: FlagUseGlobal, Short: "Use the global config file (`~/.config/mise/config.toml`) instead of the local one", Long: "Use the global config file (`~/.config/mise/config.toml`) instead of the local one"},
	{Key: FlagUseJobs, ValueName: "JOBS", ValueDemanded: true, Short: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Long: "Number of jobs to run in parallel\nValues below 1 are treated as 1\n[default: 4]", Env: "MISE_JOBS"},
	{Key: FlagUseDryRun, Short: "Perform a dry run, showing what would be installed and modified without making changes", Long: "Perform a dry run, showing what would be installed and modified without making changes"},
	{Key: FlagUsePath, ValueName: "PATH", ValueDemanded: true, Short: "Specify a path to a config file or directory", Long: "Specify a path to a config file or directory\n\nIf a directory is specified, it will look for a config file in that directory following the rules above."},
	{Key: FlagUseDryRunCode, Short: "Like --dry-run but exits with code 1 if there are changes to make", Long: "Like --dry-run but exits with code 1 if there are changes to make\n\nThis is useful for scripts to check if tools need to be added or removed."},
	{Key: FlagUseFuzzy, Short: "Save fuzzy version to config file", Long: "Save fuzzy version to config file\n\ne.g.: `mise use --fuzzy node@20` will save 20 as the version this is the default behavior unless `MISE_PIN=1`"},
	{Key: FlagUseMinimumReleaseAge, ValueName: "MINIMUM_RELEASE_AGE", ValueDemanded: true, Short: "Only install versions released before this date or older than this duration", Long: "Only install versions released before this date or older than this duration\n\nSupports absolute dates like \"2024-06-01\" and relative durations like \"90d\" or \"1y\"."},
	{Key: FlagUsePin, Short: "Save the resolved concrete version to the config file", Long: "Save the resolved concrete version to the config file\n\nIf the request exactly matches an available release, that release is preferred over installed fuzzy matches. Use `prefix:` to explicitly request recursive prefix matching. e.g.: `mise use --pin node@20` will save the resolved `20.x.y` version Set `MISE_PIN=1` to make this the default behavior\n\nConsider using mise.lock as a better alternative to pinning in mise.toml: https://mise.jdx.dev/configuration/settings.html#lockfile"},
	{Key: FlagUseRaw, Short: "Connect backend install command stdin/stdout/stderr directly to the terminal Implies `--jobs=1`", Long: "Connect backend install command stdin/stdout/stderr directly to the terminal\nImplies `--jobs=1`"},
	{Key: FlagUseRemove, Repeatable: true, ValueName: "TOOL", ValueDemanded: true, Short: "Remove the tool(s) from config file", Long: "Remove the tool(s) from config file"},
	{Key: ArgUseToolVersion, Short: "Tool(s) to add to config file", Long: "Tool(s) to add to config file\n\ne.g.: node@20, cargo:ripgrep@latest npm:prettier@3 If no version is specified, it will default to @latest\n\nTool options can be set with this syntax:\n\n    mise use ubi:BurntSushi/ripgrep[exe=rg]"},
	{Key: CmdVersion, Short: "Display the version of mise", Long: "Display the version of mise\n\nDisplays the version, os, architecture, and the date of the build.\n\nIf the version is out of date, it will display a warning.", VisibleAliases: []string{"v"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise version\x1b[22m\n    $ \x1b[1mmise --version\x1b[22m\n    $ \x1b[1mmise -v\x1b[22m\n    $ \x1b[1mmise -V\x1b[22m\n"},
	{Key: FlagVersionJson, Short: "Print the version information in JSON format", Long: "Print the version information in JSON format"},
	{Key: CmdWatch, Short: "Run task(s) and watch for changes to rerun it", Long: "Run task(s) and watch for changes to rerun it\n\nThis command uses the `watchexec` tool to watch for changes to files and rerun the specified task(s). It must be installed for this command to work, but you can install it with `mise use -g watchexec@latest`.\n\nFor more advanced process management (daemon management, auto-restart, readiness checks, cron scheduling), see mise's sister project: https://pitchfork.jdx.dev", VisibleAliases: []string{"w"}, AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise watch build\x1b[22m\n    Runs the \"build\" tasks. Will re-run the tasks when any of its sources change.\n    Uses \"sources\" from the tasks definition to determine which files to watch.\n\n    $ \x1b[1mmise watch build --glob src/**/*.rs\x1b[22m\n    Runs the \"build\" tasks but specify the files to watch with a glob pattern.\n    This overrides the \"sources\" from the tasks definition.\n\n    $ \x1b[1mmise watch build --clear\x1b[22m\n    Extra arguments are passed to watchexec. See `watchexec --help` for details.\n\n    $ \x1b[1mmise watch serve --watch src --exts rs --restart\x1b[22m\n    Starts an api server, watching for changes to \"*.rs\" files in \"./src\" and kills/restarts the server when they change.\n"},
	{Key: FlagWatchTaskFlag, Hide: true, Repeatable: true, ValueName: "TASK_FLAG", ValueDemanded: true, Short: "Tasks to run", Long: "Tasks to run"},
	{Key: FlagWatchGlob, Hide: true, Repeatable: true, ValueName: "GLOB", ValueDemanded: true, Short: "Files to watch\nDefaults to sources from the task(s)", Long: "Files to watch\nDefaults to sources from the task(s)"},
	{Key: FlagWatchSkipDeps, Short: "Run only the specified tasks skipping all dependencies", Long: "Run only the specified tasks skipping all dependencies"},
	{Key: FlagWatchWatch, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Watch a specific file or directory", Long: "Watch a specific file or directory\n\nBy default, Watchexec watches the current directory.\n\nWhen watching a single file, it's often better to watch the containing directory instead, and filter on the filename. Some editors may replace the file with a new one when saving, and some platforms may not detect that or further changes.\n\nUpon starting, Watchexec resolves a \"project origin\" from the watched paths. See the help for '--project-origin' for more information.\n\nThis option can be specified multiple times to watch multiple files or directories.\n\nThe special value '/dev/null', provided as the only path watched, will cause Watchexec to not watch any paths. Other event sources (like signals or key events) may still be used.", Heading: "Filtering"},
	{Key: FlagWatchWatchNonRecursive, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Watch a specific directory, non-recursively", Long: "Watch a specific directory, non-recursively\n\nUnlike '-w', folders watched with this option are not recursed into.\n\nThis option can be specified multiple times to watch multiple directories non-recursively.", Heading: "Filtering"},
	{Key: FlagWatchWatchFile, ValueName: "PATH", ValueDemanded: true, Short: "Watch files and directories from a file", Long: "Watch files and directories from a file\n\nEach line in the file will be interpreted as if given to '-w'.\n\nFor more complex uses (like watching non-recursively), use the argfile capability: build a file containing command-line options and pass it to watchexec with `@path/to/argfile`.\n\nThe special value '-' will read from STDIN; this in incompatible with '--stdin-quit'.", Heading: "Filtering"},
	{Key: FlagWatchClear, ValueName: "MODE", Short: "Clear screen before running command", Long: "Clear screen before running command\n\nIf this doesn't completely clear the screen, try '--clear=reset'.", Heading: "Output", Choices: []string{"clear", "reset"}},
	{Key: FlagWatchOnBusyUpdate, HideDefaultValue: true, ValueName: "MODE", ValueDemanded: true, Short: "What to do when receiving events while the command is running", Long: "What to do when receiving events while the command is running\n\nDefault is to 'do-nothing', which ignores events while the command is running, so that changes that occur due to the command are ignored, like compilation outputs. You can also use 'queue' which will run the command once again when the current run has finished if any events occur while it's running, or 'restart', which terminates the running command and starts a new one. Finally, there's 'signal', which only sends a signal; this can be useful with programs that can reload their configuration without a full restart.\n\nThe signal can be specified with the '--signal' option.", Choices: []string{"queue", "do-nothing", "restart", "signal"}, Default: []string{"do-nothing"}},
	{Key: FlagWatchRestart, Short: "Restart the process if it's still running", Long: "Restart the process if it's still running\n\nThis is a shorthand for '--on-busy-update=restart'."},
	{Key: FlagWatchSignal, ValueName: "SIGNAL", ValueDemanded: true, Short: "Send a signal to the process when it's still running", Long: "Send a signal to the process when it's still running\n\nSpecify a signal to send to the process when it's still running. This implies '--on-busy-update=signal'; otherwise the signal used when that mode is 'restart' is controlled by '--stop-signal'.\n\nSee the long documentation for '--stop-signal' for syntax.\n\nSignals are not supported on Windows at the moment, and will always be overridden to 'kill'. See '--stop-signal' for more on Windows \"signals\"."},
	{Key: FlagWatchStopSignal, ValueName: "SIGNAL", ValueDemanded: true, Short: "Signal to send to stop the command", Long: "Signal to send to stop the command\n\nThis is used by 'restart' and 'signal' modes of '--on-busy-update' (unless '--signal' is provided). The restart behaviour is to send the signal, wait for the command to exit, and if it hasn't exited after some time (see '--timeout-stop'), forcefully terminate it.\n\nThe default on unix is \"SIGTERM\".\n\nInput is parsed as a full signal name (like \"SIGTERM\"), a short signal name (like \"TERM\"), or a signal number (like \"15\"). All input is case-insensitive.\n\nOn Windows this option is technically supported but only supports the \"KILL\" event, as Watchexec cannot yet deliver other events. Windows doesn't have signals as such; instead it has termination (here called \"KILL\" or \"STOP\") and \"CTRL+C\", \"CTRL+BREAK\", and \"CTRL+CLOSE\" events. For portability the unix signals \"SIGKILL\", \"SIGINT\", \"SIGTERM\", and \"SIGHUP\" are respectively mapped to these."},
	{Key: FlagWatchStopTimeout, HideDefaultValue: true, ValueName: "TIMEOUT", ValueDemanded: true, Short: "Time to wait for the command to exit gracefully", Long: "Time to wait for the command to exit gracefully\n\nThis is used by the 'restart' mode of '--on-busy-update'. After the graceful stop signal is sent, Watchexec will wait for the command to exit. If it hasn't exited after this time, it is forcefully terminated.\n\nTakes a unit-less value in seconds, or a time span value such as \"5min 20s\". Providing a unit-less value is deprecated and will warn; it will be an error in the future.\n\nThe default is 10 seconds. Set to 0 to immediately force-kill the command.\n\nThis has no practical effect on Windows as the command is always forcefully terminated; see '--stop-signal' for why.", Default: []string{"10s"}},
	{Key: FlagWatchMapSignal, Repeatable: true, ValueName: "SIGNAL:SIGNAL", ValueDemanded: true, Short: "Translate signals from the OS to signals to send to the command", Long: "Translate signals from the OS to signals to send to the command\n\nTakes a pair of signal names, separated by a colon, such as \"TERM:INT\" to map SIGTERM to SIGINT. The first signal is the one received by watchexec, and the second is the one sent to the command. The second can be omitted to discard the first signal, such as \"TERM:\" to not do anything on SIGTERM.\n\nIf SIGINT or SIGTERM are mapped, then they no longer quit Watchexec. Besides making it hard to quit Watchexec itself, this is useful to send pass a Ctrl-C to the command without also terminating Watchexec and the underlying program with it, e.g. with \"INT:INT\".\n\nThis option can be specified multiple times to map multiple signals.\n\nSignal syntax is case-insensitive for short names (like \"TERM\", \"USR2\") and long names (like \"SIGKILL\", \"SIGHUP\"). Signal numbers are also supported (like \"15\", \"31\"). On Windows, the forms \"STOP\", \"CTRL+C\", and \"CTRL+BREAK\" are also supported to receive, but Watchexec cannot yet deliver other \"signals\" than a STOP."},
	{Key: FlagWatchDebounce, HideDefaultValue: true, ValueName: "TIMEOUT", ValueDemanded: true, Short: "Time to wait for new events before taking action", Long: "Time to wait for new events before taking action\n\nWhen an event is received, Watchexec will wait for up to this amount of time before handling it (such as running the command). This is essential as what you might perceive as a single change may actually emit many events, and without this behaviour, Watchexec would run much too often. Additionally, it's not infrequent that file writes are not atomic, and each write may emit an event, so this is a good way to avoid running a command while a file is partially written.\n\nAn alternative use is to set a high value (like \"30min\" or longer), to save power or bandwidth on intensive tasks, like an ad-hoc backup script. In those use cases, note that every accumulated event will build up in memory.\n\nTakes a unit-less value in milliseconds, or a time span value such as \"5sec 20ms\". Providing a unit-less value is deprecated and will warn; it will be an error in the future.\n\nThe default is 50 milliseconds. Setting to 0 is highly discouraged.", Default: []string{"50ms"}},
	{Key: FlagWatchStdinQuit, Short: "Exit when stdin closes", Long: "Exit when stdin closes\n\nThis watches the stdin file descriptor for EOF, and exits Watchexec gracefully when it is closed. This is used by some process managers to avoid leaving zombie processes around."},
	{Key: FlagWatchNoVcsIgnore, Short: "Don't load gitignores", Long: "Don't load gitignores\n\nAmong other VCS exclude files, like for Mercurial, Subversion, Bazaar, DARCS, Fossil. Note that Watchexec will detect which of these is in use, if any, and only load the relevant files. Both global (like '~/.gitignore') and local (like '.gitignore') files are considered.\n\nThis option is useful if you want to watch files that are ignored by Git.", Heading: "Filtering"},
	{Key: FlagWatchNoProjectIgnore, Short: "Don't load project-local ignores", Long: "Don't load project-local ignores\n\nThis disables loading of project-local ignore files, like '.gitignore' or '.ignore' in the watched project. This is contrasted with '--no-vcs-ignore', which disables loading of Git and other VCS ignore files, and with '--no-global-ignore', which disables loading of global or user ignore files, like '~/.gitignore' or '~/.config/watchexec/ignore'.\n\nSupported project ignore files:\n\n  - Git: .gitignore at project root and child directories, .git/info/exclude, and the file pointed to by `core.excludesFile` in .git/config.\n  - Mercurial: .hgignore at project root and child directories.\n  - Bazaar: .bzrignore at project root.\n  - Darcs: _darcs/prefs/boring\n  - Fossil: .fossil-settings/ignore-glob\n  - Ripgrep/Watchexec/generic: .ignore at project root and child directories.\n\nVCS ignore files (Git, Mercurial, Bazaar, Darcs, Fossil) are only used if the corresponding VCS is discovered to be in use for the project/origin. For example, a .bzrignore in a Git repository will be discarded.", Heading: "Filtering"},
	{Key: FlagWatchNoGlobalIgnore, Short: "Don't load global ignores", Long: "Don't load global ignores\n\nThis disables loading of global or user ignore files, like '~/.gitignore', '~/.config/watchexec/ignore', or '%APPDATA%\\Bazaar\\2.0\\ignore'. Contrast with '--no-vcs-ignore' and '--no-project-ignore'.\n\nSupported global ignore files\n\n  - Git (if core.excludesFile is set): the file at that path\n  - Git (otherwise): the first found of $XDG_CONFIG_HOME/git/ignore, %APPDATA%/.gitignore, %USERPROFILE%/.gitignore, $HOME/.config/git/ignore, $HOME/.gitignore.\n  - Bazaar: the first found of %APPDATA%/Bazaar/2.0/ignore, $HOME/.bazaar/ignore.\n  - Watchexec: the first found of $XDG_CONFIG_HOME/watchexec/ignore, %APPDATA%/watchexec/ignore, %USERPROFILE%/.watchexec/ignore, $HOME/.watchexec/ignore.\n\nLike for project files, Git and Bazaar global files will only be used for the corresponding VCS as used in the project.", Heading: "Filtering"},
	{Key: FlagWatchNoDefaultIgnore, Short: "Don't use internal default ignores", Long: "Don't use internal default ignores\n\nWatchexec has a set of default ignore patterns, such as editor swap files, `*.pyc`, `*.pyo`, `.DS_Store`, `.bzr`, `_darcs`, `.fossil-settings`, `.git`, `.hg`, `.pijul`, `.svn`, and Watchexec log files.", Heading: "Filtering"},
	{Key: FlagWatchNoDiscoverIgnore, Short: "Don't discover ignore files at all", Long: "Don't discover ignore files at all\n\nThis is a shorthand for '--no-global-ignore', '--no-vcs-ignore', '--no-project-ignore', but even more efficient as it will skip all the ignore discovery mechanisms from the get go.\n\nNote that default ignores are still loaded, see '--no-default-ignore'.", Heading: "Filtering"},
	{Key: FlagWatchIgnoreNothing, Short: "Don't ignore anything at all", Long: "Don't ignore anything at all\n\nThis is a shorthand for '--no-discover-ignore', '--no-default-ignore'.\n\nNote that ignores explicitly loaded via other command line options, such as '--ignore' or '--ignore-file', will still be used.", Heading: "Filtering"},
	{Key: FlagWatchPostpone, Short: "Wait until first change before running command", Long: "Wait until first change before running command\n\nBy default, Watchexec will run the command once immediately. With this option, it will instead wait until an event is detected before running the command as normal."},
	{Key: FlagWatchDelayRun, ValueName: "DURATION", ValueDemanded: true, Short: "Sleep before running the command", Long: "Sleep before running the command\n\nThis option will cause Watchexec to sleep for the specified amount of time before running the command, after an event is detected. This is like using \"sleep 5 && command\" in a shell, but portable and slightly more efficient.\n\nTakes a unit-less value in seconds, or a time span value such as \"2min 5s\". Providing a unit-less value is deprecated and will warn; it will be an error in the future."},
	{Key: FlagWatchPoll, ValueName: "INTERVAL", Short: "Poll for filesystem changes", Long: "Poll for filesystem changes\n\nBy default, and where available, Watchexec uses the operating system's native file system watching capabilities. This option disables that and instead uses a polling mechanism, which is less efficient but can work around issues with some file systems (like network shares) or edge cases.\n\nOptionally takes a unit-less value in milliseconds, or a time span value such as \"2s 500ms\", to use as the polling interval. If not specified, the default is 30 seconds. Providing a unit-less value is deprecated and will warn; it will be an error in the future.\n\nAliased as '--force-poll'."},
	{Key: FlagWatchShell, ValueName: "SHELL", ValueDemanded: true, Short: "Use a different shell", Long: "Use a different shell\n\nBy default, Watchexec will use '$SHELL' if it's defined or a default of 'sh' on Unix-likes, and either 'pwsh', 'powershell', or 'cmd' (CMD.EXE) on Windows, depending on what Watchexec detects is the running shell.\n\nWith this option, you can override that and use a different shell, for example one with more features or one which has your custom aliases and functions.\n\nIf the value has spaces, it is parsed as a command line, and the first word used as the shell program, with the rest as arguments to the shell.\n\nThe command is run with the '-c' flag (except for 'cmd' on Windows, where it's '/C').\n\nThe special value 'none' can be used to disable shell use entirely. In that case, the command provided to Watchexec will be parsed, with the first word being the executable and the rest being the arguments, and executed directly. Note that this parsing is rudimentary, and may not work as expected in all cases.\n\nUsing 'none' is a little more efficient and can enable a stricter interpretation of the input, but it also means that you can't use shell features like globbing, redirection, control flow, logic, or pipes.\n\nExamples:\n\nUse without shell:\n\n  $ watchexec -n -- zsh -x -o shwordsplit scr\n\nUse with powershell core:\n\n  $ watchexec --shell=pwsh -- Test-Connection localhost\n\nUse with CMD.exe:\n\n  $ watchexec --shell=cmd -- dir\n\nUse with a different unix shell:\n\n  $ watchexec --shell=bash -- 'echo $BASH_VERSION'\n\nUse with a unix shell and options:\n\n  $ watchexec --shell='zsh -x -o shwordsplit' -- scr", Heading: "Command"},
	{Key: FlagWatchN, Short: "Shorthand for '--shell=none'", Long: "Shorthand for '--shell=none'", Heading: "Command"},
	{Key: FlagWatchEmitEventsTo, HideDefaultValue: true, ValueName: "MODE", ValueDemanded: true, Short: "Configure event emission", Long: "Configure event emission\n\nWatchexec can emit event information when running a command, which can be used by the child process to target specific changed files.\n\nOne thing to take care with is assuming inherent behaviour where there is only chance. Notably, it could appear as if the `RENAMED` variable contains both the original and the new path being renamed. In previous versions, it would even appear on some platforms as if the original always came before the new. However, none of this was true. It's impossible to reliably and portably know which changed path is the old or new, \"half\" renames may appear (only the original, only the new), \"unknown\" renames may appear (change was a rename, but whether it was the old or new isn't known), rename events might split across two debouncing boundaries, and so on.\n\nThis option controls where that information is emitted. It defaults to 'none', which doesn't emit event information at all. The other options are 'environment' (deprecated), 'stdio', 'file', 'json-stdio', and 'json-file'.\n\nThe 'stdio' and 'file' modes are text-based: 'stdio' writes absolute paths to the stdin of the command, one per line, each prefixed with `create:`, `remove:`, `rename:`, `modify:`, or `other:`, then closes the handle; 'file' writes the same thing to a temporary file, and its path is given with the $WATCHEXEC_EVENTS_FILE environment variable.\n\nThere are also two JSON modes, which are based on JSON objects and can represent the full set of events Watchexec handles. Here's an example of a folder being created on Linux:\n\n```json\n  {\n    \"tags\": [\n      {\n        \"kind\": \"path\",\n        \"absolute\": \"/home/user/your/new-folder\",\n        \"filetype\": \"dir\"\n      },\n      {\n        \"kind\": \"fs\",\n        \"simple\": \"create\",\n        \"full\": \"Create(Folder)\"\n      },\n      {\n        \"kind\": \"source\",\n        \"source\": \"filesystem\",\n      }\n    ],\n    \"metadata\": {\n      \"notify-backend\": \"inotify\"\n    }\n  }\n```\n\nThe fields are as follows:\n\n  - `tags`, structured event data.\n  - `tags[].kind`, which can be:\n    * 'path', along with:\n      + `absolute`, an absolute path.\n      + `filetype`, a file type if known ('dir', 'file', 'symlink', 'other').\n    * 'fs':\n      + `simple`, the \"simple\" event type ('access', 'create', 'modify', 'remove', or 'other').\n      + `full`, the \"full\" event type, which is too complex to fully describe here, but looks like 'General(Precise(Specific))'.\n    * 'source', along with:\n      + `source`, the source of the event ('filesystem', 'keyboard', 'mouse', 'os', 'time', 'internal').\n    * 'keyboard', along with:\n      + `keycode`. Currently only the value 'eof' is supported.\n    * 'process', for events caused by processes:\n      + `pid`, the process ID.\n    * 'signal', for signals sent to Watchexec:\n      + `signal`, the normalised signal name ('hangup', 'interrupt', 'quit', 'terminate', 'user1', 'user2').\n    * 'completion', for when a command ends:\n      + `disposition`, the exit disposition ('success', 'error', 'signal', 'stop', 'exception', 'continued').\n      + `code`, the exit, signal, stop, or exception code.\n  - `metadata`, additional information about the event.\n\nThe 'json-stdio' mode will emit JSON events to the standard input of the command, one per line, then close stdin. The 'json-file' mode will create a temporary file, write the events to it, and provide the path to the file with the $WATCHEXEC_EVENTS_FILE environment variable.\n\nFinally, the 'environment' mode was the default until 2.0. It sets environment variables with the paths of the affected files, for filesystem events:\n\n$WATCHEXEC_COMMON_PATH is set to the longest common path of all of the below variables, and so should be prepended to each path to obtain the full/real path. Then:\n\n  - $WATCHEXEC_CREATED_PATH is set when files/folders were created\n  - $WATCHEXEC_REMOVED_PATH is set when files/folders were removed\n  - $WATCHEXEC_RENAMED_PATH is set when files/folders were renamed\n  - $WATCHEXEC_WRITTEN_PATH is set when files/folders were modified\n  - $WATCHEXEC_META_CHANGED_PATH is set when files/folders' metadata were modified\n  - $WATCHEXEC_OTHERWISE_CHANGED_PATH is set for every other kind of pathed event\n\nMultiple paths are separated by the system path separator, ';' on Windows and ':' on unix. Within each variable, paths are deduplicated and sorted in binary order (i.e. neither Unicode nor locale aware).\n\nThis is the legacy mode, is deprecated, and will be removed in the future. The environment is a very restricted space, while also limited in what it can usefully represent. Large numbers of files will either cause the environment to be truncated, or may error or crash the process entirely. The $WATCHEXEC_COMMON_PATH is also unintuitive, as demonstrated by the multiple confused queries that have landed in my inbox over the years.", Heading: "Command", Choices: []string{"environment", "stdio", "file", "json-stdio", "json-file", "none"}, Default: []string{"none"}},
	{Key: FlagWatchOnlyEmitEvents, Short: "Only emit events to stdout, run no commands.", Long: "Only emit events to stdout, run no commands.\n\nThis is a convenience option for using Watchexec as a file watcher, without running any commands. It is almost equivalent to using `cat` as the command, except that it will not spawn a new process for each event.\n\nThis option requires `--emit-events-to` to be set, and restricts the available modes to `stdio` and `json-stdio`, modifying their behaviour to write to stdout instead of the stdin of the command.", Heading: "Output"},
	{Key: FlagWatchEnv, Repeatable: true, ValueName: "KEY=VALUE", ValueDemanded: true, Short: "Add env vars to the command", Long: "Add env vars to the command\n\nThis is a convenience option for setting environment variables for the command, without setting them for the Watchexec process itself.\n\nUse key=value syntax. Multiple variables can be set by repeating the option.", Heading: "Command"},
	{Key: FlagWatchWrapProcess, ValueName: "MODE", ValueDemanded: true, Short: "Configure how the process is wrapped", Long: "Configure how the process is wrapped\n\nBy default, Watchexec will run the command in a session on macOS, in a process group on other Unix platforms, and in a Job Object in Windows.\n\nSome Unix programs prefer running in a session, while others do not work in a process group.\n\nUse 'group' to use a process group, 'session' to use a process session, and 'none' to run the command directly. On Windows, either of 'group' or 'session' will use a Job Object.", Heading: "Command", Choices: []string{"group", "session", "none"}},
	{Key: FlagWatchNotify, Short: "Alert when commands start and end", Long: "Alert when commands start and end\n\nWith this, Watchexec will emit a desktop notification when a command starts and ends, on supported platforms. On unsupported platforms, it may silently do nothing, or log a warning.", Heading: "Output"},
	{Key: FlagWatchColor, ValueName: "MODE", ValueDemanded: true, Short: "When to use terminal colours", Long: "When to use terminal colours\n\nSetting the environment variable `NO_COLOR` to any value is equivalent to `--color=never`.", Heading: "Output", Choices: []string{"auto", "always", "never"}, Default: []string{"auto"}},
	{Key: FlagWatchTimings, Short: "Print how long the command took to run", Long: "Print how long the command took to run\n\nThis may not be exactly accurate, as it includes some overhead from Watchexec itself. Use the `time` utility, high-precision timers, or benchmarking tools for more accurate results.", Heading: "Output"},
	{Key: FlagWatchQuiet, Short: "Don't print starting and stopping messages", Long: "Don't print starting and stopping messages\n\nBy default Watchexec will print a message when the command starts and stops. This option disables this behaviour, so only the command's output, warnings, and errors will be printed.", Heading: "Output"},
	{Key: FlagWatchBell, Short: "Ring the terminal bell on command completion", Long: "Ring the terminal bell on command completion", Heading: "Output"},
	{Key: FlagWatchProjectOrigin, ValueName: "DIRECTORY", ValueDemanded: true, Short: "Set the project origin", Long: "Set the project origin\n\nWatchexec will attempt to discover the project's \"origin\" (or \"root\") by searching for a variety of markers, like files or directory patterns. It does its best but sometimes gets it it wrong, and you can override that with this option.\n\nThe project origin is used to determine the path of certain ignore files, which VCS is being used, the meaning of a leading '/' in filtering patterns, and maybe more in the future.\n\nWhen set, Watchexec will also not bother searching, which can be significantly faster."},
	{Key: FlagWatchWorkdir, ValueName: "DIRECTORY", ValueDemanded: true, Short: "Set the working directory", Long: "Set the working directory\n\nBy default, the working directory of the command is the working directory of Watchexec. You can change that with this option. Note that paths may be less intuitive to use with this."},
	{Key: FlagWatchExts, Repeatable: true, ValueName: "EXTENSIONS", ValueDemanded: true, Short: "Filename extensions to filter to", Long: "Filename extensions to filter to\n\nThis is a quick filter to only emit events for files with the given extensions. Extensions can be given with or without the leading dot (e.g. 'js' or '.js'). Multiple extensions can be given by repeating the option or by separating them with commas.", Heading: "Filtering"},
	{Key: FlagWatchFilter, Repeatable: true, ValueName: "PATTERN", ValueDemanded: true, Short: "Filename patterns to filter to", Long: "Filename patterns to filter to\n\nProvide a glob-like filter pattern, and only events for files matching the pattern will be emitted. Multiple patterns can be given by repeating the option. Events that are not from files (e.g. signals, keyboard events) will pass through untouched.", Heading: "Filtering"},
	{Key: FlagWatchFilterFile, HideEnv: true, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Files to load filters from", Long: "Files to load filters from\n\nProvide a path to a file containing filters, one per line. Empty lines and lines starting with '#' are ignored. Uses the same pattern format as the '--filter' option.\n\nThis can also be used via the $WATCHEXEC_FILTER_FILES environment variable.", Heading: "Filtering", Env: "WATCHEXEC_FILTER_FILES"},
	{Key: FlagWatchFilterProg, Repeatable: true, ValueName: "EXPRESSION", ValueDemanded: true, Short: "[experimental] Filter programs.", Long: "[experimental] Filter programs.\n\n/!\\ This option is EXPERIMENTAL and may change and/or vanish without notice.\n\nProvide your own custom filter programs in jaq (similar to jq) syntax. Programs are given an event in the same format as described in '--emit-events-to' and must return a boolean. Invalid programs will make watchexec fail to start; use '-v' to see program runtime errors.\n\nIn addition to the jaq stdlib, watchexec adds some custom filter definitions:\n\n  - 'path | file_meta' returns file metadata or null if the file does not exist.\n\n  - 'path | file_size' returns the size of the file at path, or null if it does not exist.\n\n  - 'path | file_read(bytes)' returns a string with the first n bytes of the file at path.\n    If the file is smaller than n bytes, the whole file is returned. There is no filter to\n    read the whole file at once to encourage limiting the amount of data read and processed.\n\n  - 'string | hash', and 'path | file_hash' return the hash of the string or file at path.\n    No guarantee is made about the algorithm used: treat it as an opaque value.\n\n  - 'any | kv_store(key)', 'kv_fetch(key)', and 'kv_clear' provide a simple key-value store.\n    Data is kept in memory only, there is no persistence. Consistency is not guaranteed.\n\n  - 'any | printout', 'any | printerr', and 'any | log(level)' will print or log any given\n    value to stdout, stderr, or the log (levels = error, warn, info, debug, trace), and\n    pass the value through (so '[1] | log(\"debug\") | .[]' will produce a '1' and log '[1]').\n\nAll filtering done with such programs, and especially those using kv or filesystem access, is much slower than the other filtering methods. If filtering is too slow, events will back up and stall watchexec. Take care when designing your filters.\n\nIf the argument to this option starts with an '@', the rest of the argument is taken to be the path to a file containing a jaq program.\n\nJaq programs are run in order, after all other filters, and short-circuit: if a filter (jaq or not) rejects an event, execution stops there, and no other filters are run. Additionally, they stop after outputting the first value, so you'll want to use 'any' or 'all' when iterating, otherwise only the first item will be processed, which can be quite confusing!\n\nFind user-contributed programs or submit your own useful ones at <https://github.com/watchexec/watchexec/discussions/592>.\n\n## Examples:\n\nRegexp ignore filter on paths:\n\n  'all(.tags[] | select(.kind == \"path\"); .absolute | test(\"[.]test[.]js$\")) | not'\n\nPass any event that creates a file:\n\n  'any(.tags[] | select(.kind == \"fs\"); .simple == \"create\")'\n\nPass events that touch executable files:\n\n  'any(.tags[] | select(.kind == \"path\" && .filetype == \"file\"); .absolute | metadata | .executable)'\n\nIgnore files that start with shebangs:\n\n  'any(.tags[] | select(.kind == \"path\" && .filetype == \"file\"); .absolute | read(2) == \"#!\") | not'", Heading: "Filtering"},
	{Key: FlagWatchIgnore, Repeatable: true, ValueName: "PATTERN", ValueDemanded: true, Short: "Filename patterns to filter out", Long: "Filename patterns to filter out\n\nProvide a glob-like filter pattern, and events for files matching the pattern will be excluded. Multiple patterns can be given by repeating the option. Events that are not from files (e.g. signals, keyboard events) will pass through untouched.", Heading: "Filtering"},
	{Key: FlagWatchIgnoreFile, HideEnv: true, Repeatable: true, ValueName: "PATH", ValueDemanded: true, Short: "Files to load ignores from", Long: "Files to load ignores from\n\nProvide a path to a file containing ignores, one per line. Empty lines and lines starting with '#' are ignored. Uses the same pattern format as the '--ignore' option.\n\nThis can also be used via the $WATCHEXEC_IGNORE_FILES environment variable.", Heading: "Filtering", Env: "WATCHEXEC_IGNORE_FILES"},
	{Key: FlagWatchFsEvents, HideDefaultValue: true, Repeatable: true, ValueName: "EVENTS", ValueDemanded: true, Short: "Filesystem events to filter to", Long: "Filesystem events to filter to\n\nThis is a quick filter to only emit events for the given types of filesystem changes. Choose from 'access', 'create', 'remove', 'rename', 'modify', 'metadata'. Multiple types can be given by repeating the option or by separating them with commas. By default, this is all types except for 'access'.\n\nThis may apply filtering at the kernel level when possible, which can be more efficient, but may be more confusing when reading the logs.", Heading: "Filtering", Choices: []string{"access", "create", "remove", "rename", "modify", "metadata"}, Default: []string{"create,remove,rename,modify,metadata"}},
	{Key: FlagWatchNoMeta, Short: "Don't emit fs events for metadata changes", Long: "Don't emit fs events for metadata changes\n\nThis is a shorthand for '--fs-events create,remove,rename,modify'. Using it alongside the '--fs-events' option is non-sensical and not allowed.", Heading: "Filtering"},
	{Key: FlagWatchPrintEvents, Short: "Print events that trigger actions", Long: "Print events that trigger actions\n\nThis prints the events that triggered the action when handling it (after debouncing), in a human readable form. This is useful for debugging filters.\n\nUse '-vvv' instead when you need more diagnostic information.", Heading: "Debugging"},
	{Key: FlagWatchManual, Short: "Show the manual page", Long: "Show the manual page\n\nThis shows the manual page for Watchexec, if the output is a terminal and the 'man' program is available. If not, the manual page is printed to stdout in ROFF format (suitable for writing to a watchexec.1 file).", Heading: "Debugging"},
	{Key: ArgWatchTask, Short: "Tasks to run\nCan specify multiple tasks by separating with `:::`\ne.g.: `mise run task1 arg1 arg2 ::: task2 arg1 arg2`\nDefaults to `default`", Long: "Tasks to run\nCan specify multiple tasks by separating with `:::`\ne.g.: `mise run task1 arg1 arg2 ::: task2 arg1 arg2`\nDefaults to `default`"},
	{Key: ArgWatchArgs, Short: "Task and arguments to run", Long: "Task and arguments to run"},
	{Key: CmdWhere, Short: "Display the installation path for a tool", Long: "Display the installation path for a tool\n\nThe tool must be installed for this to work.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    # Show the latest installed version of node\n    # If it is is not installed, errors\n    $ \x1b[1mmise where node@20\x1b[22m\n    /home/jdx/.local/share/mise/installs/node/20.0.0\n\n    # Show the current, active install directory of node\n    # Errors if node is not referenced in any .tool-version file\n    $ \x1b[1mmise where node\x1b[22m\n    /home/jdx/.local/share/mise/installs/node/20.0.0\n"},
	{Key: ArgWhereToolVersion, Demanded: true, Short: "Tool(s) to look up\ne.g.: ruby@3\nif \"@<PREFIX>\" is specified, it will show the latest installed version\nthat matches the prefix\notherwise, it will show the current, active installed version", Long: "Tool(s) to look up\ne.g.: ruby@3\nif \"@<PREFIX>\" is specified, it will show the latest installed version\nthat matches the prefix\notherwise, it will show the current, active installed version"},
	{Key: ArgWhereAsdfVersion, Hide: true, Short: "the version prefix to use when querying the latest version\nsame as the first argument after the \"@\"\nused for asdf compatibility", Long: "the version prefix to use when querying the latest version\nsame as the first argument after the \"@\"\nused for asdf compatibility"},
	{Key: CmdWhich, Short: "Shows the path that a tool's bin points to.", Long: "Shows the path that a tool's bin points to.\n\nUse this to figure out what version of a tool is currently active.", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise which node\x1b[22m\n    /home/username/.local/share/mise/installs/node/20.0.0/bin/node\n\n    $ \x1b[1mmise which node --plugin\x1b[22m\n    node\n\n    $ \x1b[1mmise which node --version\x1b[22m\n    20.0.0\n"},
	{Key: FlagWhichTool, ValueName: "TOOL@VERSION", ValueDemanded: true, Short: "Use a specific tool@version\ne.g.: `mise which npm --tool=node@20`", Long: "Use a specific tool@version\ne.g.: `mise which npm --tool=node@20`"},
	{Key: FlagWhichComplete, Hide: true},
	{Key: FlagWhichPlugin, Short: "Show the plugin name instead of the path", Long: "Show the plugin name instead of the path"},
	{Key: FlagWhichVersion, Short: "Show the version instead of the path", Long: "Show the version instead of the path"},
	{Key: ArgWhichBinName, Short: "The bin to look up", Long: "The bin to look up"},
}

// HelpMeta is what a page needs from the spec's root rather than from any one
// command: the header, and the text that brackets every page.
var HelpMeta = argv.HelpSpec{Name: "mise", Bin: "mise", About: "Dev tools, env vars, and tasks in one CLI", LongAbout: "mise prepares your development environment before each command runs. https://github.com/jdx/mise", Author: "Jeff Dickey <@jdx>", AfterLongHelp: "\x1b[1m\x1b[4mExamples:\x1b[22m\x1b[24m\n\n    $ \x1b[1mmise install node@20.0.0\x1b[22m       Install a specific node version\n    $ \x1b[1mmise install node@20\x1b[22m           Install a version matching a prefix\n    $ \x1b[1mmise install node\x1b[22m              Install the node version defined in config\n    $ \x1b[1mmise install\x1b[22m                   Install all plugins/tools defined in config\n\n    $ \x1b[1mmise install cargo:ripgrep\x1b[22m     Install something via cargo\n    $ \x1b[1mmise install npm:prettier\x1b[22m      Install something via npm\n\n    $ \x1b[1mmise use node@20\x1b[22m               Use node-20.x in current project\n    $ \x1b[1mmise use -g node@20\x1b[22m            Use node-20.x as default\n    $ \x1b[1mmise use node@latest\x1b[22m           Use latest node in current directory\n\n    $ \x1b[1mmise up --interactive\x1b[22m          Show a menu to upgrade tools\n\n    $ \x1b[1mmise x -- npm install\x1b[22m          `npm install` w/ config loaded into PATH\n    $ \x1b[1mmise x node@20 -- node app.js\x1b[22m  `node app.js` w/ config + node-20.x on PATH\n\n    $ \x1b[1mmise set NODE_ENV=production\x1b[22m   Set NODE_ENV=production in config\n\n    $ \x1b[1mmise run build\x1b[22m                 Run `build` tasks\n    $ \x1b[1mmise watch build\x1b[22m               Run `build` tasks repeatedly when files change\n\n    $ \x1b[1mmise settings\x1b[22m                  Show settings in use\n    $ \x1b[1mmise settings color=0\x1b[22m          Disable color by modifying global config file\n"}

// Cli is the whole command line.
type Cli struct {
	ContinueOnError bool             // FlagContinueOnError
	Cd              string           // FlagCd
	Env             []string         // FlagEnv
	Force           bool             // FlagForce
	Jobs            string           // FlagJobs
	DryRun          bool             // FlagDryRun
	Profile         []string         // FlagProfile
	Quiet           bool             // FlagQuiet
	Shell           string           // FlagShell
	Tool            []string         // FlagTool
	Verbose         int              // FlagVerbose
	Version         bool             // FlagVersion
	Yes             bool             // FlagYes
	Debug           bool             // FlagDebug
	LogLevel        string           // FlagLogLevel
	NoConfig        bool             // FlagNoConfig
	NoEnv           bool             // FlagNoEnv
	NoHooks         bool             // FlagNoHooks
	NoTimings       bool             // FlagNoTimings
	Output          string           // FlagOutput
	Raw             bool             // FlagRaw
	Locked          bool             // FlagLocked
	Silent          bool             // FlagSilent
	Timings         bool             // FlagTimings
	Trace           bool             // FlagTrace
	Task            string           // ArgTask
	TaskArgs        []string         // ArgTaskArgs
	TaskArgsLast    []string         // ArgTaskArgsLast
	Activate        *ActivateCmd     // CmdActivate
	ToolAlias       *ToolAliasCmd    // CmdToolAlias
	Asdf            *AsdfCmd         // CmdAsdf
	Backends        *BackendsCmd     // CmdBackends
	BinPaths        *BinPathsCmd     // CmdBinPaths
	Bootstrap       *BootstrapCmd    // CmdBootstrap
	Cache           *CacheCmd        // CmdCache
	Completion      *CompletionCmd   // CmdCompletion
	Config          *ConfigCmd       // CmdConfig
	Current         *CurrentCmd      // CmdCurrent
	Deactivate      *DeactivateCmd   // CmdDeactivate
	Direnv          *DirenvCmd       // CmdDirenv
	Dotfiles        *DotfilesCmd     // CmdDotfiles
	Doctor          *DoctorCmd       // CmdDoctor
	En              *EnCmd           // CmdEn
	EnvCmd          *EnvCmd          // CmdEnv
	Exec            *ExecCmd         // CmdExec
	Fmt             *FmtCmd          // CmdFmt
	Generate        *GenerateCmd     // CmdGenerate
	Github          *GithubCmd       // CmdGithub
	Global          *GlobalCmd       // CmdGlobal
	HookEnv         *HookEnvCmd      // CmdHookEnv
	HookNotFound    *HookNotFoundCmd // CmdHookNotFound
	Implode         *ImplodeCmd      // CmdImplode
	Edit            *EditCmd         // CmdEdit
	Install         *InstallCmd      // CmdInstall
	InstallInto     *InstallIntoCmd  // CmdInstallInto
	Latest          *LatestCmd       // CmdLatest
	Link            *LinkCmd         // CmdLink
	Local           *LocalCmd        // CmdLocal
	Lock            *LockCmd         // CmdLock
	Ls              *LsCmd           // CmdLs
	LsRemote        *LsRemoteCmd     // CmdLsRemote
	Mcp             *McpCmd          // CmdMcp
	Oci             *OciCmd          // CmdOci
	Outdated        *OutdatedCmd     // CmdOutdated
	Patrons         *PatronsCmd      // CmdPatrons
	Plugins         *PluginsCmd      // CmdPlugins
	Deps            *DepsCmd         // CmdDeps
	Prune           *PruneCmd        // CmdPrune
	Registry        *RegistryCmd     // CmdRegistry
	RenderHelp      *RenderHelpCmd   // CmdRenderHelp
	Reshim          *ReshimCmd       // CmdReshim
	Run             *RunCmd          // CmdRun
	Search          *SearchCmd       // CmdSearch
	SelfUpdate      *SelfUpdateCmd   // CmdSelfUpdate
	Set             *SetCmd          // CmdSet
	Settings        *SettingsCmd     // CmdSettings
	ShellCmd        *ShellCmd        // CmdShell
	ShellAlias      *ShellAliasCmd   // CmdShellAlias
	Sponsors        *SponsorsCmd     // CmdSponsors
	Sync            *SyncCmd         // CmdSync
	Tasks           *TasksCmd        // CmdTasks
	TestTool        *TestToolCmd     // CmdTestTool
	Token           *TokenCmd        // CmdToken
	ToolCmd         *ToolCmd         // CmdTool
	ToolStub        *ToolStubCmd     // CmdToolStub
	Trust           *TrustCmd        // CmdTrust
	Uninstall       *UninstallCmd    // CmdUninstall
	Unset           *UnsetCmd        // CmdUnset
	Untrust         *UntrustCmd      // CmdUntrust
	Unuse           *UnuseCmd        // CmdUnuse
	Upgrade         *UpgradeCmd      // CmdUpgrade
	Usage           *UsageCmd        // CmdUsage
	Use             *UseCmd          // CmdUse
	VersionCmd      *VersionCmd      // CmdVersion
	Watch           *WatchCmd        // CmdWatch
	Where           *WhereCmd        // CmdWhere
	Which           *WhichCmd        // CmdWhich
}

// ActivateCmd is `activate`.
type ActivateCmd struct {
	Quiet     bool   // FlagActivateQuiet
	Shell     string // FlagActivateShell
	NoHookEnv bool   // FlagActivateNoHookEnv
	Shims     bool   // FlagActivateShims
	Status    bool   // FlagActivateStatus
	ShellType string // ArgActivateShellType
}

// ToolAliasCmd is `tool-alias`.
type ToolAliasCmd struct {
	Tool     string             // FlagToolAliasTool
	NoHeader bool               // FlagToolAliasNoHeader
	Get      *ToolAliasGetCmd   // CmdToolAliasGet
	Ls       *ToolAliasLsCmd    // CmdToolAliasLs
	Set      *ToolAliasSetCmd   // CmdToolAliasSet
	Unset    *ToolAliasUnsetCmd // CmdToolAliasUnset
}

// ToolAliasGetCmd is `tool-alias get`.
type ToolAliasGetCmd struct {
	Tool  string // ArgToolAliasGetTool
	Alias string // ArgToolAliasGetAlias
}

// ToolAliasLsCmd is `tool-alias ls`.
type ToolAliasLsCmd struct {
	NoHeader bool   // FlagToolAliasLsNoHeader
	Tool     string // ArgToolAliasLsTool
}

// ToolAliasSetCmd is `tool-alias set`.
type ToolAliasSetCmd struct {
	Tool  string // ArgToolAliasSetTool
	Alias string // ArgToolAliasSetAlias
	Value string // ArgToolAliasSetValue
}

// ToolAliasUnsetCmd is `tool-alias unset`.
type ToolAliasUnsetCmd struct {
	Tool  string // ArgToolAliasUnsetTool
	Alias string // ArgToolAliasUnsetAlias
}

// AsdfCmd is `asdf`.
type AsdfCmd struct {
	Args []string // ArgAsdfArgs
}

// BackendsCmd is `backends`.
type BackendsCmd struct {
	Ls *BackendsLsCmd // CmdBackendsLs
}

// BackendsLsCmd is `backends ls`.
type BackendsLsCmd struct {
}

// BinPathsCmd is `bin-paths`.
type BinPathsCmd struct {
	BinNames    bool     // FlagBinPathsBinNames
	Json        bool     // FlagBinPathsJson
	ToolVersion []string // ArgBinPathsToolVersion
}

// BootstrapCmd is `bootstrap`.
type BootstrapCmd struct {
	DryRun              bool                             // FlagBootstrapDryRun
	Yes                 bool                             // FlagBootstrapYes
	ForceDotfiles       bool                             // FlagBootstrapForceDotfiles
	Only                []string                         // FlagBootstrapOnly
	PromptSecrets       bool                             // FlagBootstrapPromptSecrets
	Skip                []string                         // FlagBootstrapSkip
	Update              bool                             // FlagBootstrapUpdate
	ApplyAccountPlan    *BootstrapApplyAccountPlanCmd    // CmdBootstrapApplyAccountPlan
	ApplyServicePlan    *BootstrapApplyServicePlanCmd    // CmdBootstrapApplyServicePlan
	ApplyFirewallPlan   *BootstrapApplyFirewallPlanCmd   // CmdBootstrapApplyFirewallPlan
	ApplySystemPlan     *BootstrapApplySystemPlanCmd     // CmdBootstrapApplySystemPlan
	InspectSystemFiles  *BootstrapInspectSystemFilesCmd  // CmdBootstrapInspectSystemFiles
	InspectFirewallPlan *BootstrapInspectFirewallPlanCmd // CmdBootstrapInspectFirewallPlan
	Accounts            *BootstrapAccountsCmd            // CmdBootstrapAccounts
	Compose             *BootstrapComposeCmd             // CmdBootstrapCompose
	Dotfiles            *BootstrapDotfilesCmd            // CmdBootstrapDotfiles
	Files               *BootstrapFilesCmd               // CmdBootstrapFiles
	Firewall            *BootstrapFirewallCmd            // CmdBootstrapFirewall
	Launchd             *BootstrapLaunchdCmd             // CmdBootstrapLaunchd
	Linux               *BootstrapLinuxCmd               // CmdBootstrapLinux
	Macos               *BootstrapMacosCmd               // CmdBootstrapMacos
	MacosDefaults       *BootstrapMacosDefaults2Cmd      // CmdBootstrapMacosDefaults2
	MiseShellActivate   *BootstrapMiseShellActivateCmd   // CmdBootstrapMiseShellActivate
	Packages            *BootstrapPackagesCmd            // CmdBootstrapPackages
	Plan                *BootstrapPlanCmd                // CmdBootstrapPlan
	Plugins             *BootstrapPluginsCmd             // CmdBootstrapPlugins
	Remote              *BootstrapRemoteCmd              // CmdBootstrapRemote
	Repos               *BootstrapReposCmd               // CmdBootstrapRepos
	Secrets             *BootstrapSecretsCmd             // CmdBootstrapSecrets
	Services            *BootstrapServicesCmd            // CmdBootstrapServices
	Status              *BootstrapStatusCmd              // CmdBootstrapStatus
	Systemd             *BootstrapSystemdCmd             // CmdBootstrapSystemd
	User                *BootstrapUserCmd                // CmdBootstrapUser
}

// BootstrapApplyAccountPlanCmd is `bootstrap __apply-account-plan`.
type BootstrapApplyAccountPlanCmd struct {
}

// BootstrapApplyServicePlanCmd is `bootstrap __apply-service-plan`.
type BootstrapApplyServicePlanCmd struct {
}

// BootstrapApplyFirewallPlanCmd is `bootstrap __apply-firewall-plan`.
type BootstrapApplyFirewallPlanCmd struct {
}

// BootstrapApplySystemPlanCmd is `bootstrap __apply-system-plan`.
type BootstrapApplySystemPlanCmd struct {
}

// BootstrapInspectSystemFilesCmd is `bootstrap __inspect-system-files`.
type BootstrapInspectSystemFilesCmd struct {
}

// BootstrapInspectFirewallPlanCmd is `bootstrap __inspect-firewall-plan`.
type BootstrapInspectFirewallPlanCmd struct {
}

// BootstrapAccountsCmd is `bootstrap accounts`.
type BootstrapAccountsCmd struct {
	Apply  *BootstrapAccountsApplyCmd  // CmdBootstrapAccountsApply
	Status *BootstrapAccountsStatusCmd // CmdBootstrapAccountsStatus
}

// BootstrapAccountsApplyCmd is `bootstrap accounts apply`.
type BootstrapAccountsApplyCmd struct {
	DryRun bool // FlagBootstrapAccountsApplyDryRun
	Yes    bool // FlagBootstrapAccountsApplyYes
}

// BootstrapAccountsStatusCmd is `bootstrap accounts status`.
type BootstrapAccountsStatusCmd struct {
	Json    bool // FlagBootstrapAccountsStatusJson
	Missing bool // FlagBootstrapAccountsStatusMissing
}

// BootstrapComposeCmd is `bootstrap compose`.
type BootstrapComposeCmd struct {
	Apply  *BootstrapComposeApplyCmd  // CmdBootstrapComposeApply
	Status *BootstrapComposeStatusCmd // CmdBootstrapComposeStatus
}

// BootstrapComposeApplyCmd is `bootstrap compose apply`.
type BootstrapComposeApplyCmd struct {
	DryRun bool // FlagBootstrapComposeApplyDryRun
	Yes    bool // FlagBootstrapComposeApplyYes
}

// BootstrapComposeStatusCmd is `bootstrap compose status`.
type BootstrapComposeStatusCmd struct {
	Json    bool // FlagBootstrapComposeStatusJson
	Missing bool // FlagBootstrapComposeStatusMissing
}

// BootstrapDotfilesCmd is `bootstrap dotfiles`.
type BootstrapDotfilesCmd struct {
	Add     *BootstrapDotfilesAddCmd     // CmdBootstrapDotfilesAdd
	Apply   *BootstrapDotfilesApplyCmd   // CmdBootstrapDotfilesApply
	Edit    *BootstrapDotfilesEditCmd    // CmdBootstrapDotfilesEdit
	Status  *BootstrapDotfilesStatusCmd  // CmdBootstrapDotfilesStatus
	Unapply *BootstrapDotfilesUnapplyCmd // CmdBootstrapDotfilesUnapply
}

// BootstrapDotfilesAddCmd is `bootstrap dotfiles add`.
type BootstrapDotfilesAddCmd struct {
	Force   bool     // FlagBootstrapDotfilesAddForce
	Global  bool     // FlagBootstrapDotfilesAddGlobal
	Local   bool     // FlagBootstrapDotfilesAddLocal
	Mode    string   // FlagBootstrapDotfilesAddMode
	DryRun  bool     // FlagBootstrapDotfilesAddDryRun
	NoApply bool     // FlagBootstrapDotfilesAddNoApply
	Path    string   // FlagBootstrapDotfilesAddPath
	Source  string   // FlagBootstrapDotfilesAddSource
	Yes     bool     // FlagBootstrapDotfilesAddYes
	Target  []string // ArgBootstrapDotfilesAddTarget
}

// BootstrapDotfilesApplyCmd is `bootstrap dotfiles apply`.
type BootstrapDotfilesApplyCmd struct {
	Force  bool     // FlagBootstrapDotfilesApplyForce
	DryRun bool     // FlagBootstrapDotfilesApplyDryRun
	Yes    bool     // FlagBootstrapDotfilesApplyYes
	Target []string // ArgBootstrapDotfilesApplyTarget
}

// BootstrapDotfilesEditCmd is `bootstrap dotfiles edit`.
type BootstrapDotfilesEditCmd struct {
	Apply  bool   // FlagBootstrapDotfilesEditApply
	Mode   string // FlagBootstrapDotfilesEditMode
	Source string // FlagBootstrapDotfilesEditSource
	Yes    bool   // FlagBootstrapDotfilesEditYes
	Target string // ArgBootstrapDotfilesEditTarget
}

// BootstrapDotfilesStatusCmd is `bootstrap dotfiles status`.
type BootstrapDotfilesStatusCmd struct {
	Json    bool     // FlagBootstrapDotfilesStatusJson
	Missing bool     // FlagBootstrapDotfilesStatusMissing
	Target  []string // ArgBootstrapDotfilesStatusTarget
}

// BootstrapDotfilesUnapplyCmd is `bootstrap dotfiles unapply`.
type BootstrapDotfilesUnapplyCmd struct {
	Force  bool     // FlagBootstrapDotfilesUnapplyForce
	DryRun bool     // FlagBootstrapDotfilesUnapplyDryRun
	Yes    bool     // FlagBootstrapDotfilesUnapplyYes
	Target []string // ArgBootstrapDotfilesUnapplyTarget
}

// BootstrapFilesCmd is `bootstrap files`.
type BootstrapFilesCmd struct {
	Apply  *BootstrapFilesApplyCmd  // CmdBootstrapFilesApply
	Status *BootstrapFilesStatusCmd // CmdBootstrapFilesStatus
}

// BootstrapFilesApplyCmd is `bootstrap files apply`.
type BootstrapFilesApplyCmd struct {
	DryRun        bool // FlagBootstrapFilesApplyDryRun
	Yes           bool // FlagBootstrapFilesApplyYes
	PromptSecrets bool // FlagBootstrapFilesApplyPromptSecrets
}

// BootstrapFilesStatusCmd is `bootstrap files status`.
type BootstrapFilesStatusCmd struct {
	Json          bool // FlagBootstrapFilesStatusJson
	Missing       bool // FlagBootstrapFilesStatusMissing
	PromptSecrets bool // FlagBootstrapFilesStatusPromptSecrets
}

// BootstrapFirewallCmd is `bootstrap firewall`.
type BootstrapFirewallCmd struct {
	Apply  *BootstrapFirewallApplyCmd  // CmdBootstrapFirewallApply
	Status *BootstrapFirewallStatusCmd // CmdBootstrapFirewallStatus
}

// BootstrapFirewallApplyCmd is `bootstrap firewall apply`.
type BootstrapFirewallApplyCmd struct {
	DryRun bool // FlagBootstrapFirewallApplyDryRun
	Yes    bool // FlagBootstrapFirewallApplyYes
}

// BootstrapFirewallStatusCmd is `bootstrap firewall status`.
type BootstrapFirewallStatusCmd struct {
	Json    bool // FlagBootstrapFirewallStatusJson
	Missing bool // FlagBootstrapFirewallStatusMissing
}

// BootstrapLaunchdCmd is `bootstrap launchd`.
type BootstrapLaunchdCmd struct {
	Apply  *BootstrapLaunchdApplyCmd  // CmdBootstrapLaunchdApply
	Status *BootstrapLaunchdStatusCmd // CmdBootstrapLaunchdStatus
}

// BootstrapLaunchdApplyCmd is `bootstrap launchd apply`.
type BootstrapLaunchdApplyCmd struct {
	DryRun bool // FlagBootstrapLaunchdApplyDryRun
	Yes    bool // FlagBootstrapLaunchdApplyYes
}

// BootstrapLaunchdStatusCmd is `bootstrap launchd status`.
type BootstrapLaunchdStatusCmd struct {
	Json    bool // FlagBootstrapLaunchdStatusJson
	Missing bool // FlagBootstrapLaunchdStatusMissing
}

// BootstrapLinuxCmd is `bootstrap linux`.
type BootstrapLinuxCmd struct {
	SystemdUnits *BootstrapLinuxSystemdUnitsCmd // CmdBootstrapLinuxSystemdUnits
}

// BootstrapLinuxSystemdUnitsCmd is `bootstrap linux systemd-units`.
type BootstrapLinuxSystemdUnitsCmd struct {
	Apply  *BootstrapLinuxSystemdUnitsApplyCmd  // CmdBootstrapLinuxSystemdUnitsApply
	Status *BootstrapLinuxSystemdUnitsStatusCmd // CmdBootstrapLinuxSystemdUnitsStatus
}

// BootstrapLinuxSystemdUnitsApplyCmd is `bootstrap linux systemd-units apply`.
type BootstrapLinuxSystemdUnitsApplyCmd struct {
	DryRun bool // FlagBootstrapLinuxSystemdUnitsApplyDryRun
	Yes    bool // FlagBootstrapLinuxSystemdUnitsApplyYes
}

// BootstrapLinuxSystemdUnitsStatusCmd is `bootstrap linux systemd-units status`.
type BootstrapLinuxSystemdUnitsStatusCmd struct {
	Json    bool // FlagBootstrapLinuxSystemdUnitsStatusJson
	Missing bool // FlagBootstrapLinuxSystemdUnitsStatusMissing
}

// BootstrapMacosCmd is `bootstrap macos`.
type BootstrapMacosCmd struct {
	Defaults      *BootstrapMacosDefaultsCmd      // CmdBootstrapMacosDefaults
	LaunchdAgents *BootstrapMacosLaunchdAgentsCmd // CmdBootstrapMacosLaunchdAgents
}

// BootstrapMacosDefaultsCmd is `bootstrap macos defaults`.
type BootstrapMacosDefaultsCmd struct {
	Apply  *BootstrapMacosDefaultsApplyCmd  // CmdBootstrapMacosDefaultsApply
	Status *BootstrapMacosDefaultsStatusCmd // CmdBootstrapMacosDefaultsStatus
}

// BootstrapMacosDefaultsApplyCmd is `bootstrap macos defaults apply`.
type BootstrapMacosDefaultsApplyCmd struct {
	DryRun bool // FlagBootstrapMacosDefaultsApplyDryRun
	Yes    bool // FlagBootstrapMacosDefaultsApplyYes
}

// BootstrapMacosDefaultsStatusCmd is `bootstrap macos defaults status`.
type BootstrapMacosDefaultsStatusCmd struct {
	Json    bool // FlagBootstrapMacosDefaultsStatusJson
	Missing bool // FlagBootstrapMacosDefaultsStatusMissing
}

// BootstrapMacosLaunchdAgentsCmd is `bootstrap macos launchd-agents`.
type BootstrapMacosLaunchdAgentsCmd struct {
	Apply  *BootstrapMacosLaunchdAgentsApplyCmd  // CmdBootstrapMacosLaunchdAgentsApply
	Status *BootstrapMacosLaunchdAgentsStatusCmd // CmdBootstrapMacosLaunchdAgentsStatus
}

// BootstrapMacosLaunchdAgentsApplyCmd is `bootstrap macos launchd-agents apply`.
type BootstrapMacosLaunchdAgentsApplyCmd struct {
	DryRun bool // FlagBootstrapMacosLaunchdAgentsApplyDryRun
	Yes    bool // FlagBootstrapMacosLaunchdAgentsApplyYes
}

// BootstrapMacosLaunchdAgentsStatusCmd is `bootstrap macos launchd-agents status`.
type BootstrapMacosLaunchdAgentsStatusCmd struct {
	Json    bool // FlagBootstrapMacosLaunchdAgentsStatusJson
	Missing bool // FlagBootstrapMacosLaunchdAgentsStatusMissing
}

// BootstrapMacosDefaults2Cmd is `bootstrap macos-defaults`.
type BootstrapMacosDefaults2Cmd struct {
	Apply  *BootstrapMacosDefaultsApply2Cmd  // CmdBootstrapMacosDefaultsApply2
	Status *BootstrapMacosDefaultsStatus2Cmd // CmdBootstrapMacosDefaultsStatus2
}

// BootstrapMacosDefaultsApply2Cmd is `bootstrap macos-defaults apply`.
type BootstrapMacosDefaultsApply2Cmd struct {
	DryRun bool // FlagBootstrapMacosDefaultsApplyDryRun2
	Yes    bool // FlagBootstrapMacosDefaultsApplyYes2
}

// BootstrapMacosDefaultsStatus2Cmd is `bootstrap macos-defaults status`.
type BootstrapMacosDefaultsStatus2Cmd struct {
	Json    bool // FlagBootstrapMacosDefaultsStatusJson2
	Missing bool // FlagBootstrapMacosDefaultsStatusMissing2
}

// BootstrapMiseShellActivateCmd is `bootstrap mise-shell-activate`.
type BootstrapMiseShellActivateCmd struct {
	Apply  *BootstrapMiseShellActivateApplyCmd  // CmdBootstrapMiseShellActivateApply
	Status *BootstrapMiseShellActivateStatusCmd // CmdBootstrapMiseShellActivateStatus
}

// BootstrapMiseShellActivateApplyCmd is `bootstrap mise-shell-activate apply`.
type BootstrapMiseShellActivateApplyCmd struct {
	DryRun bool // FlagBootstrapMiseShellActivateApplyDryRun
	Yes    bool // FlagBootstrapMiseShellActivateApplyYes
}

// BootstrapMiseShellActivateStatusCmd is `bootstrap mise-shell-activate status`.
type BootstrapMiseShellActivateStatusCmd struct {
	Json    bool // FlagBootstrapMiseShellActivateStatusJson
	Missing bool // FlagBootstrapMiseShellActivateStatusMissing
}

// BootstrapPackagesCmd is `bootstrap packages`.
type BootstrapPackagesCmd struct {
	Apply   *BootstrapPackagesApplyCmd   // CmdBootstrapPackagesApply
	Brew    *BootstrapPackagesBrewCmd    // CmdBootstrapPackagesBrew
	Import  *BootstrapPackagesImportCmd  // CmdBootstrapPackagesImport
	Prune   *BootstrapPackagesPruneCmd   // CmdBootstrapPackagesPrune
	Status  *BootstrapPackagesStatusCmd  // CmdBootstrapPackagesStatus
	Upgrade *BootstrapPackagesUpgradeCmd // CmdBootstrapPackagesUpgrade
	Use     *BootstrapPackagesUseCmd     // CmdBootstrapPackagesUse
}

// BootstrapPackagesApplyCmd is `bootstrap packages apply`.
type BootstrapPackagesApplyCmd struct {
	Manager string   // FlagBootstrapPackagesApplyManager
	DryRun  bool     // FlagBootstrapPackagesApplyDryRun
	Yes     bool     // FlagBootstrapPackagesApplyYes
	Update  bool     // FlagBootstrapPackagesApplyUpdate
	Package []string // ArgBootstrapPackagesApplyPackage
}

// BootstrapPackagesBrewCmd is `bootstrap packages brew`.
type BootstrapPackagesBrewCmd struct {
	Tap   *BootstrapPackagesBrewTapCmd   // CmdBootstrapPackagesBrewTap
	Untap *BootstrapPackagesBrewUntapCmd // CmdBootstrapPackagesBrewUntap
}

// BootstrapPackagesBrewTapCmd is `bootstrap packages brew tap`.
type BootstrapPackagesBrewTapCmd struct {
	Local  bool   // FlagBootstrapPackagesBrewTapLocal
	DryRun bool   // FlagBootstrapPackagesBrewTapDryRun
	Path   string // FlagBootstrapPackagesBrewTapPath
	Tap    string // ArgBootstrapPackagesBrewTapTap
	Url    string // ArgBootstrapPackagesBrewTapUrl
}

// BootstrapPackagesBrewUntapCmd is `bootstrap packages brew untap`.
type BootstrapPackagesBrewUntapCmd struct {
	Local  bool     // FlagBootstrapPackagesBrewUntapLocal
	DryRun bool     // FlagBootstrapPackagesBrewUntapDryRun
	Path   string   // FlagBootstrapPackagesBrewUntapPath
	Taps   []string // ArgBootstrapPackagesBrewUntapTaps
}

// BootstrapPackagesImportCmd is `bootstrap packages import`.
type BootstrapPackagesImportCmd struct {
	Env     string // FlagBootstrapPackagesImportEnv
	Global  bool   // FlagBootstrapPackagesImportGlobal
	Manager string // FlagBootstrapPackagesImportManager
	All     bool   // FlagBootstrapPackagesImportAll
	DryRun  bool   // FlagBootstrapPackagesImportDryRun
	Path    string // FlagBootstrapPackagesImportPath
}

// BootstrapPackagesPruneCmd is `bootstrap packages prune`.
type BootstrapPackagesPruneCmd struct {
	Manager string // FlagBootstrapPackagesPruneManager
	DryRun  bool   // FlagBootstrapPackagesPruneDryRun
	Yes     bool   // FlagBootstrapPackagesPruneYes
}

// BootstrapPackagesStatusCmd is `bootstrap packages status`.
type BootstrapPackagesStatusCmd struct {
	Json    bool // FlagBootstrapPackagesStatusJson
	Missing bool // FlagBootstrapPackagesStatusMissing
}

// BootstrapPackagesUpgradeCmd is `bootstrap packages upgrade`.
type BootstrapPackagesUpgradeCmd struct {
	Manager string   // FlagBootstrapPackagesUpgradeManager
	DryRun  bool     // FlagBootstrapPackagesUpgradeDryRun
	Yes     bool     // FlagBootstrapPackagesUpgradeYes
	Package []string // ArgBootstrapPackagesUpgradePackage
}

// BootstrapPackagesUseCmd is `bootstrap packages use`.
type BootstrapPackagesUseCmd struct {
	Env     string   // FlagBootstrapPackagesUseEnv
	Global  bool     // FlagBootstrapPackagesUseGlobal
	DryRun  bool     // FlagBootstrapPackagesUseDryRun
	Path    string   // FlagBootstrapPackagesUsePath
	Yes     bool     // FlagBootstrapPackagesUseYes
	Package []string // ArgBootstrapPackagesUsePackage
}

// BootstrapPlanCmd is `bootstrap plan`.
type BootstrapPlanCmd struct {
	Json             bool // FlagBootstrapPlanJson
	DetailedExitcode bool // FlagBootstrapPlanDetailedExitcode
	PromptSecrets    bool // FlagBootstrapPlanPromptSecrets
}

// BootstrapPluginsCmd is `bootstrap plugins`.
type BootstrapPluginsCmd struct {
	Apply  *BootstrapPluginsApplyCmd  // CmdBootstrapPluginsApply
	Status *BootstrapPluginsStatusCmd // CmdBootstrapPluginsStatus
}

// BootstrapPluginsApplyCmd is `bootstrap plugins apply`.
type BootstrapPluginsApplyCmd struct {
	DryRun bool // FlagBootstrapPluginsApplyDryRun
}

// BootstrapPluginsStatusCmd is `bootstrap plugins status`.
type BootstrapPluginsStatusCmd struct {
	Missing bool // FlagBootstrapPluginsStatusMissing
}

// BootstrapRemoteCmd is `bootstrap remote`.
type BootstrapRemoteCmd struct {
	All              bool     // FlagBootstrapRemoteAll
	BootstrapCommand string   // FlagBootstrapRemoteBootstrapCommand
	ConnectTimeout   string   // FlagBootstrapRemoteConnectTimeout
	CopyLink         []string // FlagBootstrapRemoteCopyLink
	CopyLinks        bool     // FlagBootstrapRemoteCopyLinks
	Exclude          []string // FlagBootstrapRemoteExclude
	FailFast         bool     // FlagBootstrapRemoteFailFast
	ForceDotfiles    bool     // FlagBootstrapRemoteForceDotfiles
	Host             []string // FlagBootstrapRemoteHost
	IdentityFile     string   // FlagBootstrapRemoteIdentityFile
	DryRun           bool     // FlagBootstrapRemoteDryRun
	KeepStaging      bool     // FlagBootstrapRemoteKeepStaging
	MiseBin          string   // FlagBootstrapRemoteMiseBin
	Only             []string // FlagBootstrapRemoteOnly
	Port             string   // FlagBootstrapRemotePort
	PromptSecrets    bool     // FlagBootstrapRemotePromptSecrets
	RemoteEnv        []string // FlagBootstrapRemoteRemoteEnv
	RemoteMise       string   // FlagBootstrapRemoteRemoteMise
	Skip             []string // FlagBootstrapRemoteSkip
	Source           string   // FlagBootstrapRemoteSource
	SshOption        []string // FlagBootstrapRemoteSshOption
	Tag              []string // FlagBootstrapRemoteTag
	Update           bool     // FlagBootstrapRemoteUpdate
	Yes              bool     // FlagBootstrapRemoteYes
	Target           []string // ArgBootstrapRemoteTarget
}

// BootstrapReposCmd is `bootstrap repos`.
type BootstrapReposCmd struct {
	Apply  *BootstrapReposApplyCmd  // CmdBootstrapReposApply
	Exec   *BootstrapReposExecCmd   // CmdBootstrapReposExec
	Status *BootstrapReposStatusCmd // CmdBootstrapReposStatus
	Update *BootstrapReposUpdateCmd // CmdBootstrapReposUpdate
}

// BootstrapReposApplyCmd is `bootstrap repos apply`.
type BootstrapReposApplyCmd struct {
	DryRun bool // FlagBootstrapReposApplyDryRun
	Yes    bool // FlagBootstrapReposApplyYes
}

// BootstrapReposExecCmd is `bootstrap repos exec`.
type BootstrapReposExecCmd struct {
	ContinueOnError bool     // FlagBootstrapReposExecContinueOnError
	DryRun          bool     // FlagBootstrapReposExecDryRun
	Path            []string // ArgBootstrapReposExecPath
	Command         []string // ArgBootstrapReposExecCommand
}

// BootstrapReposStatusCmd is `bootstrap repos status`.
type BootstrapReposStatusCmd struct {
	Json    bool // FlagBootstrapReposStatusJson
	Missing bool // FlagBootstrapReposStatusMissing
}

// BootstrapReposUpdateCmd is `bootstrap repos update`.
type BootstrapReposUpdateCmd struct {
	DryRun bool     // FlagBootstrapReposUpdateDryRun
	Yes    bool     // FlagBootstrapReposUpdateYes
	Path   []string // ArgBootstrapReposUpdatePath
}

// BootstrapSecretsCmd is `bootstrap secrets`.
type BootstrapSecretsCmd struct {
	Status *BootstrapSecretsStatusCmd // CmdBootstrapSecretsStatus
}

// BootstrapSecretsStatusCmd is `bootstrap secrets status`.
type BootstrapSecretsStatusCmd struct {
	Json    bool // FlagBootstrapSecretsStatusJson
	Missing bool // FlagBootstrapSecretsStatusMissing
}

// BootstrapServicesCmd is `bootstrap services`.
type BootstrapServicesCmd struct {
	Apply  *BootstrapServicesApplyCmd  // CmdBootstrapServicesApply
	Status *BootstrapServicesStatusCmd // CmdBootstrapServicesStatus
}

// BootstrapServicesApplyCmd is `bootstrap services apply`.
type BootstrapServicesApplyCmd struct {
	DryRun bool // FlagBootstrapServicesApplyDryRun
	Yes    bool // FlagBootstrapServicesApplyYes
}

// BootstrapServicesStatusCmd is `bootstrap services status`.
type BootstrapServicesStatusCmd struct {
	Json    bool // FlagBootstrapServicesStatusJson
	Missing bool // FlagBootstrapServicesStatusMissing
}

// BootstrapStatusCmd is `bootstrap status`.
type BootstrapStatusCmd struct {
	Json          bool // FlagBootstrapStatusJson
	Missing       bool // FlagBootstrapStatusMissing
	PromptSecrets bool // FlagBootstrapStatusPromptSecrets
}

// BootstrapSystemdCmd is `bootstrap systemd`.
type BootstrapSystemdCmd struct {
	Apply  *BootstrapSystemdApplyCmd  // CmdBootstrapSystemdApply
	Status *BootstrapSystemdStatusCmd // CmdBootstrapSystemdStatus
}

// BootstrapSystemdApplyCmd is `bootstrap systemd apply`.
type BootstrapSystemdApplyCmd struct {
	DryRun bool // FlagBootstrapSystemdApplyDryRun
	Yes    bool // FlagBootstrapSystemdApplyYes
}

// BootstrapSystemdStatusCmd is `bootstrap systemd status`.
type BootstrapSystemdStatusCmd struct {
	Json    bool // FlagBootstrapSystemdStatusJson
	Missing bool // FlagBootstrapSystemdStatusMissing
}

// BootstrapUserCmd is `bootstrap user`.
type BootstrapUserCmd struct {
	Apply  *BootstrapUserApplyCmd  // CmdBootstrapUserApply
	Status *BootstrapUserStatusCmd // CmdBootstrapUserStatus
}

// BootstrapUserApplyCmd is `bootstrap user apply`.
type BootstrapUserApplyCmd struct {
	DryRun bool // FlagBootstrapUserApplyDryRun
	Yes    bool // FlagBootstrapUserApplyYes
}

// BootstrapUserStatusCmd is `bootstrap user status`.
type BootstrapUserStatusCmd struct {
	Json    bool // FlagBootstrapUserStatusJson
	Missing bool // FlagBootstrapUserStatusMissing
}

// CacheCmd is `cache`.
type CacheCmd struct {
	Clear *CacheClearCmd // CmdCacheClear
	Path  *CachePathCmd  // CmdCachePath
	Prune *CachePruneCmd // CmdCachePrune
	Task  *CacheTaskCmd  // CmdCacheTask
}

// CacheClearCmd is `cache clear`.
type CacheClearCmd struct {
	Outdate bool     // FlagCacheClearOutdate
	Task    string   // FlagCacheClearTask
	Tool    []string // ArgCacheClearTool
}

// CachePathCmd is `cache path`.
type CachePathCmd struct {
}

// CachePruneCmd is `cache prune`.
type CachePruneCmd struct {
	Verbose int      // FlagCachePruneVerbose
	DryRun  bool     // FlagCachePruneDryRun
	Tool    []string // ArgCachePruneTool
}

// CacheTaskCmd is `cache task`.
type CacheTaskCmd struct {
	Json bool   // FlagCacheTaskJson
	Task string // ArgCacheTaskTask
}

// CompletionCmd is `completion`.
type CompletionCmd struct {
	Shell                    string // FlagCompletionShell
	IncludeBashCompletionLib bool   // FlagCompletionIncludeBashCompletionLib
	Usage                    bool   // FlagCompletionUsage
	ShellArg                 string // ArgCompletionShell
}

// ConfigCmd is `config`.
type ConfigCmd struct {
	Json           bool          // FlagConfigJson
	NoHeader       bool          // FlagConfigNoHeader
	TrackedConfigs bool          // FlagConfigTrackedConfigs
	Get            *ConfigGetCmd // CmdConfigGet
	Ls             *ConfigLsCmd  // CmdConfigLs
	Set            *ConfigSetCmd // CmdConfigSet
}

// ConfigGetCmd is `config get`.
type ConfigGetCmd struct {
	File string // FlagConfigGetFile
	Key  string // ArgConfigGetKey
}

// ConfigLsCmd is `config ls`.
type ConfigLsCmd struct {
	Json           bool // FlagConfigLsJson
	NoHeader       bool // FlagConfigLsNoHeader
	TrackedConfigs bool // FlagConfigLsTrackedConfigs
}

// ConfigSetCmd is `config set`.
type ConfigSetCmd struct {
	File  string // FlagConfigSetFile
	Type  string // FlagConfigSetType
	Key   string // ArgConfigSetKey
	Value string // ArgConfigSetValue
}

// CurrentCmd is `current`.
type CurrentCmd struct {
	Plugin string // ArgCurrentPlugin
}

// DeactivateCmd is `deactivate`.
type DeactivateCmd struct {
}

// DirenvCmd is `direnv`.
type DirenvCmd struct {
	Activate *DirenvActivateCmd // CmdDirenvActivate
	Envrc    *DirenvEnvrcCmd    // CmdDirenvEnvrc
	Exec     *DirenvExecCmd     // CmdDirenvExec
}

// DirenvActivateCmd is `direnv activate`.
type DirenvActivateCmd struct {
}

// DirenvEnvrcCmd is `direnv envrc`.
type DirenvEnvrcCmd struct {
}

// DirenvExecCmd is `direnv exec`.
type DirenvExecCmd struct {
}

// DotfilesCmd is `dotfiles`.
type DotfilesCmd struct {
	Add     *DotfilesAddCmd     // CmdDotfilesAdd
	Apply   *DotfilesApplyCmd   // CmdDotfilesApply
	Edit    *DotfilesEditCmd    // CmdDotfilesEdit
	Status  *DotfilesStatusCmd  // CmdDotfilesStatus
	Unapply *DotfilesUnapplyCmd // CmdDotfilesUnapply
}

// DotfilesAddCmd is `dotfiles add`.
type DotfilesAddCmd struct {
	Force   bool     // FlagDotfilesAddForce
	Global  bool     // FlagDotfilesAddGlobal
	Local   bool     // FlagDotfilesAddLocal
	Mode    string   // FlagDotfilesAddMode
	DryRun  bool     // FlagDotfilesAddDryRun
	NoApply bool     // FlagDotfilesAddNoApply
	Path    string   // FlagDotfilesAddPath
	Source  string   // FlagDotfilesAddSource
	Yes     bool     // FlagDotfilesAddYes
	Target  []string // ArgDotfilesAddTarget
}

// DotfilesApplyCmd is `dotfiles apply`.
type DotfilesApplyCmd struct {
	Force  bool     // FlagDotfilesApplyForce
	DryRun bool     // FlagDotfilesApplyDryRun
	Yes    bool     // FlagDotfilesApplyYes
	Target []string // ArgDotfilesApplyTarget
}

// DotfilesEditCmd is `dotfiles edit`.
type DotfilesEditCmd struct {
	Apply  bool   // FlagDotfilesEditApply
	Mode   string // FlagDotfilesEditMode
	Source string // FlagDotfilesEditSource
	Yes    bool   // FlagDotfilesEditYes
	Target string // ArgDotfilesEditTarget
}

// DotfilesStatusCmd is `dotfiles status`.
type DotfilesStatusCmd struct {
	Json    bool     // FlagDotfilesStatusJson
	Missing bool     // FlagDotfilesStatusMissing
	Target  []string // ArgDotfilesStatusTarget
}

// DotfilesUnapplyCmd is `dotfiles unapply`.
type DotfilesUnapplyCmd struct {
	Force  bool     // FlagDotfilesUnapplyForce
	DryRun bool     // FlagDotfilesUnapplyDryRun
	Yes    bool     // FlagDotfilesUnapplyYes
	Target []string // ArgDotfilesUnapplyTarget
}

// DoctorCmd is `doctor`.
type DoctorCmd struct {
	Json bool           // FlagDoctorJson
	Path *DoctorPathCmd // CmdDoctorPath
}

// DoctorPathCmd is `doctor path`.
type DoctorPathCmd struct {
	Full bool // FlagDoctorPathFull
}

// EnCmd is `en`.
type EnCmd struct {
	Shell string // FlagEnShell
	Dir   string // ArgEnDir
}

// EnvCmd is `env`.
type EnvCmd struct {
	Dotenv       bool     // FlagEnvDotenv
	Json         bool     // FlagEnvJson
	Shell        string   // FlagEnvShell
	JsonExtended bool     // FlagEnvJsonExtended
	Redacted     bool     // FlagEnvRedacted
	Values       bool     // FlagEnvValues
	ToolVersion  []string // ArgEnvToolVersion
}

// ExecCmd is `exec`.
type ExecCmd struct {
	Command     string   // FlagExecCommand
	Jobs        string   // FlagExecJobs
	AllowEnv    []string // FlagExecAllowEnv
	AllowNet    []string // FlagExecAllowNet
	AllowRead   []string // FlagExecAllowRead
	AllowWrite  []string // FlagExecAllowWrite
	DenyAll     bool     // FlagExecDenyAll
	DenyEnv     bool     // FlagExecDenyEnv
	DenyNet     bool     // FlagExecDenyNet
	DenyRead    bool     // FlagExecDenyRead
	DenyWrite   bool     // FlagExecDenyWrite
	FreshEnv    bool     // FlagExecFreshEnv
	NoDeps      bool     // FlagExecNoDeps
	Raw         bool     // FlagExecRaw
	ToolVersion []string // ArgExecToolVersion
	CommandArg  []string // ArgExecCommand
}

// FmtCmd is `fmt`.
type FmtCmd struct {
	All   bool // FlagFmtAll
	Check bool // FlagFmtCheck
	Stdin bool // FlagFmtStdin
}

// GenerateCmd is `generate`.
type GenerateCmd struct {
	Bootstrap    *GenerateBootstrapCmd    // CmdGenerateBootstrap
	Config       *GenerateConfigCmd       // CmdGenerateConfig
	Devcontainer *GenerateDevcontainerCmd // CmdGenerateDevcontainer
	GitPreCommit *GenerateGitPreCommitCmd // CmdGenerateGitPreCommit
	GithubAction *GenerateGithubActionCmd // CmdGenerateGithubAction
	TaskDocs     *GenerateTaskDocsCmd     // CmdGenerateTaskDocs
	TaskStubs    *GenerateTaskStubsCmd    // CmdGenerateTaskStubs
	ToolStub     *GenerateToolStubCmd     // CmdGenerateToolStub
}

// GenerateBootstrapCmd is `generate bootstrap`.
type GenerateBootstrapCmd struct {
	Localize     bool   // FlagGenerateBootstrapLocalize
	Version      string // FlagGenerateBootstrapVersion
	Write        string // FlagGenerateBootstrapWrite
	LocalizedDir string // FlagGenerateBootstrapLocalizedDir
	Windows      bool   // FlagGenerateBootstrapWindows
}

// GenerateConfigCmd is `generate config`.
type GenerateConfigCmd struct {
	Global       bool   // FlagGenerateConfigGlobal
	DryRun       bool   // FlagGenerateConfigDryRun
	ToolVersions string // FlagGenerateConfigToolVersions
	Path         string // ArgGenerateConfigPath
}

// GenerateDevcontainerCmd is `generate devcontainer`.
type GenerateDevcontainerCmd struct {
	Image         string // FlagGenerateDevcontainerImage
	MountMiseData bool   // FlagGenerateDevcontainerMountMiseData
	Name          string // FlagGenerateDevcontainerName
	Write         bool   // FlagGenerateDevcontainerWrite
}

// GenerateGitPreCommitCmd is `generate git-pre-commit`.
type GenerateGitPreCommitCmd struct {
	Task    string   // FlagGenerateGitPreCommitTask
	Write   bool     // FlagGenerateGitPreCommitWrite
	Hook    string   // FlagGenerateGitPreCommitHook
	MiseArg []string // ArgGenerateGitPreCommitMiseArg
}

// GenerateGithubActionCmd is `generate github-action`.
type GenerateGithubActionCmd struct {
	Task  string // FlagGenerateGithubActionTask
	Write bool   // FlagGenerateGithubActionWrite
	Name  string // FlagGenerateGithubActionName
}

// GenerateTaskDocsCmd is `generate task-docs`.
type GenerateTaskDocsCmd struct {
	Inject bool   // FlagGenerateTaskDocsInject
	Index  bool   // FlagGenerateTaskDocsIndex
	Multi  bool   // FlagGenerateTaskDocsMulti
	Output string // FlagGenerateTaskDocsOutput
	Root   string // FlagGenerateTaskDocsRoot
	Style  string // FlagGenerateTaskDocsStyle
}

// GenerateTaskStubsCmd is `generate task-stubs`.
type GenerateTaskStubsCmd struct {
	Dir     string // FlagGenerateTaskStubsDir
	MiseBin string // FlagGenerateTaskStubsMiseBin
}

// GenerateToolStubCmd is `generate tool-stub`.
type GenerateToolStubCmd struct {
	Bin               string   // FlagGenerateToolStubBin
	Bootstrap         bool     // FlagGenerateToolStubBootstrap
	BootstrapVersion  string   // FlagGenerateToolStubBootstrapVersion
	ChecksumAlgorithm string   // FlagGenerateToolStubChecksumAlgorithm
	Fetch             bool     // FlagGenerateToolStubFetch
	Http              string   // FlagGenerateToolStubHttp
	Lock              bool     // FlagGenerateToolStubLock
	PlatformBin       []string // FlagGenerateToolStubPlatformBin
	PlatformUrl       []string // FlagGenerateToolStubPlatformUrl
	SkipDownload      bool     // FlagGenerateToolStubSkipDownload
	Url               string   // FlagGenerateToolStubUrl
	Version           string   // FlagGenerateToolStubVersion
	Output            string   // ArgGenerateToolStubOutput
}

// GithubCmd is `github`.
type GithubCmd struct {
	Token *GithubTokenCmd // CmdGithubToken
}

// GithubTokenCmd is `github token`.
type GithubTokenCmd struct {
	Oauth   bool   // FlagGithubTokenOauth
	Raw     bool   // FlagGithubTokenRaw
	Refresh bool   // FlagGithubTokenRefresh
	Unmask  bool   // FlagGithubTokenUnmask
	Host    string // ArgGithubTokenHost
}

// GlobalCmd is `global`.
type GlobalCmd struct {
	Fuzzy       bool     // FlagGlobalFuzzy
	Path        bool     // FlagGlobalPath
	Pin         bool     // FlagGlobalPin
	Remove      []string // FlagGlobalRemove
	ToolVersion []string // ArgGlobalToolVersion
}

// HookEnvCmd is `hook-env`.
type HookEnvCmd struct {
	Force  bool   // FlagHookEnvForce
	Quiet  bool   // FlagHookEnvQuiet
	Shell  string // FlagHookEnvShell
	Reason string // FlagHookEnvReason
	Status bool   // FlagHookEnvStatus
}

// HookNotFoundCmd is `hook-not-found`.
type HookNotFoundCmd struct {
	Shell string // FlagHookNotFoundShell
	Bin   string // ArgHookNotFoundBin
}

// ImplodeCmd is `implode`.
type ImplodeCmd struct {
	DryRun bool // FlagImplodeDryRun
	Config bool // FlagImplodeConfig
}

// EditCmd is `edit`.
type EditCmd struct {
	Global       bool   // FlagEditGlobal
	DryRun       bool   // FlagEditDryRun
	ToolVersions string // FlagEditToolVersions
	Path         string // ArgEditPath
}

// InstallCmd is `install`.
type InstallCmd struct {
	Force             bool     // FlagInstallForce
	Jobs              string   // FlagInstallJobs
	DryRun            bool     // FlagInstallDryRun
	Verbose           int      // FlagInstallVerbose
	DryRunCode        bool     // FlagInstallDryRunCode
	IncludeTaskTools  bool     // FlagInstallIncludeTaskTools
	MinimumReleaseAge string   // FlagInstallMinimumReleaseAge
	Monorepo          bool     // FlagInstallMonorepo
	Raw               bool     // FlagInstallRaw
	Shared            string   // FlagInstallShared
	System            bool     // FlagInstallSystem
	ToolVersion       []string // ArgInstallToolVersion
}

// InstallIntoCmd is `install-into`.
type InstallIntoCmd struct {
	ToolVersion string // ArgInstallIntoToolVersion
	Path        string // ArgInstallIntoPath
}

// LatestCmd is `latest`.
type LatestCmd struct {
	Installed         bool   // FlagLatestInstalled
	MinimumReleaseAge string // FlagLatestMinimumReleaseAge
	ToolVersion       string // ArgLatestToolVersion
	AsdfVersion       string // ArgLatestAsdfVersion
}

// LinkCmd is `link`.
type LinkCmd struct {
	Force       bool   // FlagLinkForce
	ToolVersion string // ArgLinkToolVersion
	Path        string // ArgLinkPath
}

// LocalCmd is `local`.
type LocalCmd struct {
	Parent      bool     // FlagLocalParent
	Fuzzy       bool     // FlagLocalFuzzy
	Path        bool     // FlagLocalPath
	Pin         bool     // FlagLocalPin
	Remove      []string // FlagLocalRemove
	ToolVersion []string // ArgLocalToolVersion
}

// LockCmd is `lock`.
type LockCmd struct {
	Global            bool     // FlagLockGlobal
	Jobs              string   // FlagLockJobs
	DryRun            bool     // FlagLockDryRun
	Platform          []string // FlagLockPlatform
	Bump              bool     // FlagLockBump
	Json              bool     // FlagLockJson
	Local             bool     // FlagLockLocal
	MinimumReleaseAge string   // FlagLockMinimumReleaseAge
	Tool              []string // ArgLockTool
}

// LsCmd is `ls`.
type LsCmd struct {
	Current       bool     // FlagLsCurrent
	Global        bool     // FlagLsGlobal
	Installed     bool     // FlagLsInstalled
	Json          bool     // FlagLsJson
	Local         bool     // FlagLsLocal
	Missing       bool     // FlagLsMissing
	Offline       bool     // FlagLsOffline
	Plugin        string   // FlagLsPlugin
	AllSources    bool     // FlagLsAllSources
	Monorepo      bool     // FlagLsMonorepo
	NoHeader      bool     // FlagLsNoHeader
	Outdated      bool     // FlagLsOutdated
	Prefix        string   // FlagLsPrefix
	Prunable      bool     // FlagLsPrunable
	InstalledTool []string // ArgLsInstalledTool
}

// LsRemoteCmd is `ls-remote`.
type LsRemoteCmd struct {
	All               bool   // FlagLsRemoteAll
	MinimumReleaseAge string // FlagLsRemoteMinimumReleaseAge
	Json              bool   // FlagLsRemoteJson
	NoVersionsHost    bool   // FlagLsRemoteNoVersionsHost
	Prerelease        bool   // FlagLsRemotePrerelease
	StrictMetadata    bool   // FlagLsRemoteStrictMetadata
	ToolVersion       string // ArgLsRemoteToolVersion
	Prefix            string // ArgLsRemotePrefix
}

// McpCmd is `mcp`.
type McpCmd struct {
}

// OciCmd is `oci`.
type OciCmd struct {
	Build *OciBuildCmd // CmdOciBuild
	Push  *OciPushCmd  // CmdOciPush
	Run   *OciRunCmd   // CmdOciRun
}

// OciBuildCmd is `oci build`.
type OciBuildCmd struct {
	Copy          []string // FlagOciBuildCopy
	Output        string   // FlagOciBuildOutput
	From          string   // FlagOciBuildFrom
	IncludeGlobal bool     // FlagOciBuildIncludeGlobal
	Tag           string   // FlagOciBuildTag
	MountPoint    string   // FlagOciBuildMountPoint
	NoMise        bool     // FlagOciBuildNoMise
	Owner         string   // FlagOciBuildOwner
}

// OciPushCmd is `oci push`.
type OciPushCmd struct {
	CacheFrom     string // FlagOciPushCacheFrom
	From          string // FlagOciPushFrom
	ImageDir      string // FlagOciPushImageDir
	IncludeGlobal bool   // FlagOciPushIncludeGlobal
	MountPoint    string // FlagOciPushMountPoint
	NoCache       bool   // FlagOciPushNoCache
	NoMise        bool   // FlagOciPushNoMise
	Owner         string // FlagOciPushOwner
	UpdateIndex   bool   // FlagOciPushUpdateIndex
	Ref           string // ArgOciPushRef
}

// OciRunCmd is `oci run`.
type OciRunCmd struct {
	Engine        string   // FlagOciRunEngine
	From          string   // FlagOciRunFrom
	ImageDir      string   // FlagOciRunImageDir
	IncludeGlobal bool     // FlagOciRunIncludeGlobal
	Keep          bool     // FlagOciRunKeep
	MountPoint    string   // FlagOciRunMountPoint
	NoMise        bool     // FlagOciRunNoMise
	Owner         string   // FlagOciRunOwner
	Volume        []string // FlagOciRunVolume
	Env           []string // FlagOciRunEnv
	Interactive   bool     // FlagOciRunInteractive
	Tty           bool     // FlagOciRunTty
	Workdir       string   // FlagOciRunWorkdir
	Cmd           []string // ArgOciRunCmd
}

// OutdatedCmd is `outdated`.
type OutdatedCmd struct {
	Bump        bool     // FlagOutdatedBump
	Json        bool     // FlagOutdatedJson
	L           bool     // FlagOutdatedL
	Inactive    bool     // FlagOutdatedInactive
	Local       bool     // FlagOutdatedLocal
	Monorepo    bool     // FlagOutdatedMonorepo
	NoHeader    bool     // FlagOutdatedNoHeader
	ToolVersion []string // ArgOutdatedToolVersion
}

// PatronsCmd is `patrons`.
type PatronsCmd struct {
	Json    bool // FlagPatronsJson
	Refresh bool // FlagPatronsRefresh
}

// PluginsCmd is `plugins`.
type PluginsCmd struct {
	All       bool                 // FlagPluginsAll
	Core      bool                 // FlagPluginsCore
	Urls      bool                 // FlagPluginsUrls
	Refs      bool                 // FlagPluginsRefs
	User      bool                 // FlagPluginsUser
	Install   *PluginsInstallCmd   // CmdPluginsInstall
	Link      *PluginsLinkCmd      // CmdPluginsLink
	Ls        *PluginsLsCmd        // CmdPluginsLs
	LsRemote  *PluginsLsRemoteCmd  // CmdPluginsLsRemote
	Uninstall *PluginsUninstallCmd // CmdPluginsUninstall
	Update    *PluginsUpdateCmd    // CmdPluginsUpdate
}

// PluginsInstallCmd is `plugins install`.
type PluginsInstallCmd struct {
	All       bool     // FlagPluginsInstallAll
	Force     bool     // FlagPluginsInstallForce
	Jobs      string   // FlagPluginsInstallJobs
	Verbose   int      // FlagPluginsInstallVerbose
	NewPlugin string   // ArgPluginsInstallNewPlugin
	GitUrl    string   // ArgPluginsInstallGitUrl
	Rest      []string // ArgPluginsInstallRest
}

// PluginsLinkCmd is `plugins link`.
type PluginsLinkCmd struct {
	Force bool   // FlagPluginsLinkForce
	Name  string // ArgPluginsLinkName
	Dir   string // ArgPluginsLinkDir
}

// PluginsLsCmd is `plugins ls`.
type PluginsLsCmd struct {
	All      bool // FlagPluginsLsAll
	Core     bool // FlagPluginsLsCore
	Outdated bool // FlagPluginsLsOutdated
	Urls     bool // FlagPluginsLsUrls
	Refs     bool // FlagPluginsLsRefs
	User     bool // FlagPluginsLsUser
}

// PluginsLsRemoteCmd is `plugins ls-remote`.
type PluginsLsRemoteCmd struct {
	Urls      bool // FlagPluginsLsRemoteUrls
	OnlyNames bool // FlagPluginsLsRemoteOnlyNames
}

// PluginsUninstallCmd is `plugins uninstall`.
type PluginsUninstallCmd struct {
	All    bool     // FlagPluginsUninstallAll
	Purge  bool     // FlagPluginsUninstallPurge
	Plugin []string // ArgPluginsUninstallPlugin
}

// PluginsUpdateCmd is `plugins update`.
type PluginsUpdateCmd struct {
	Jobs   string   // FlagPluginsUpdateJobs
	Plugin []string // ArgPluginsUpdatePlugin
}

// DepsCmd is `deps`.
type DepsCmd struct {
	Explain  bool            // FlagDepsExplain
	Force    bool            // FlagDepsForce
	DryRun   bool            // FlagDepsDryRun
	List     bool            // FlagDepsList
	Monorepo bool            // FlagDepsMonorepo
	Only     []string        // FlagDepsOnly
	Skip     []string        // FlagDepsSkip
	Provider string          // ArgDepsProvider
	Add      *DepsAddCmd     // CmdDepsAdd
	Install  *DepsInstallCmd // CmdDepsInstall
	Remove   *DepsRemoveCmd  // CmdDepsRemove
}

// DepsAddCmd is `deps add`.
type DepsAddCmd struct {
	Dev      bool     // FlagDepsAddDev
	Packages []string // ArgDepsAddPackages
}

// DepsInstallCmd is `deps install`.
type DepsInstallCmd struct {
	Explain  bool     // FlagDepsInstallExplain
	Force    bool     // FlagDepsInstallForce
	DryRun   bool     // FlagDepsInstallDryRun
	List     bool     // FlagDepsInstallList
	Monorepo bool     // FlagDepsInstallMonorepo
	Only     []string // FlagDepsInstallOnly
	Skip     []string // FlagDepsInstallSkip
	Provider string   // ArgDepsInstallProvider
}

// DepsRemoveCmd is `deps remove`.
type DepsRemoveCmd struct {
	Packages []string // ArgDepsRemovePackages
}

// PruneCmd is `prune`.
type PruneCmd struct {
	DryRun        bool     // FlagPruneDryRun
	Configs       bool     // FlagPruneConfigs
	DryRunCode    bool     // FlagPruneDryRunCode
	Monorepo      bool     // FlagPruneMonorepo
	Tools         bool     // FlagPruneTools
	InstalledTool []string // ArgPruneInstalledTool
}

// RegistryCmd is `registry`.
type RegistryCmd struct {
	Backend     string // FlagRegistryBackend
	Complete    bool   // FlagRegistryComplete
	HideAliased bool   // FlagRegistryHideAliased
	Json        bool   // FlagRegistryJson
	Security    bool   // FlagRegistrySecurity
	Name        string // ArgRegistryName
}

// RenderHelpCmd is `render-help`.
type RenderHelpCmd struct {
}

// ReshimCmd is `reshim`.
type ReshimCmd struct {
	Force   bool   // FlagReshimForce
	Tool    string // ArgReshimTool
	Version string // ArgReshimVersion
}

// RunCmd is `run`.
type RunCmd struct {
	Affected             bool     // FlagRunAffected
	AffectedBase         string   // FlagRunAffectedBase
	AffectedExplain      bool     // FlagRunAffectedExplain
	AffectedHead         string   // FlagRunAffectedHead
	AffectedJson         bool     // FlagRunAffectedJson
	All                  bool     // FlagRunAll
	ContinueOnError      bool     // FlagRunContinueOnError
	Cd                   string   // FlagRunCd
	Force                bool     // FlagRunForce
	Jobs                 string   // FlagRunJobs
	DryRun               bool     // FlagRunDryRun
	Output               string   // FlagRunOutput
	Quiet                bool     // FlagRunQuiet
	Raw                  bool     // FlagRunRaw
	Shell                string   // FlagRunShell
	Silent               bool     // FlagRunSilent
	Tool                 []string // FlagRunTool
	AllowEnv             []string // FlagRunAllowEnv
	AllowNet             []string // FlagRunAllowNet
	AllowRead            []string // FlagRunAllowRead
	AllowWrite           []string // FlagRunAllowWrite
	DenyAll              bool     // FlagRunDenyAll
	DenyEnv              bool     // FlagRunDenyEnv
	DenyNet              bool     // FlagRunDenyNet
	DenyRead             bool     // FlagRunDenyRead
	DenyWrite            bool     // FlagRunDenyWrite
	FreshEnv             bool     // FlagRunFreshEnv
	NoCache              bool     // FlagRunNoCache
	NoDeps               bool     // FlagRunNoDeps
	NoTimings            bool     // FlagRunNoTimings
	SkipDeps             bool     // FlagRunSkipDeps
	SkipTools            bool     // FlagRunSkipTools
	TaskCache            string   // FlagRunTaskCache
	TaskCacheExplain     bool     // FlagRunTaskCacheExplain
	TaskCacheExplainJson bool     // FlagRunTaskCacheExplainJson
	TaskCacheStats       bool     // FlagRunTaskCacheStats
	Timeout              string   // FlagRunTimeout
	Timings              bool     // FlagRunTimings
}

// SearchCmd is `search`.
type SearchCmd struct {
	Interactive bool   // FlagSearchInteractive
	MatchType   string // FlagSearchMatchType
	NoHeader    bool   // FlagSearchNoHeader
	Name        string // ArgSearchName
}

// SelfUpdateCmd is `self-update`.
type SelfUpdateCmd struct {
	Force     bool   // FlagSelfUpdateForce
	Yes       bool   // FlagSelfUpdateYes
	NoPlugins bool   // FlagSelfUpdateNoPlugins
	Version   string // ArgSelfUpdateVersion
}

// SetCmd is `set`.
type SetCmd struct {
	Env             string   // FlagSetEnv
	Global          bool     // FlagSetGlobal
	AgeEncrypt      bool     // FlagSetAgeEncrypt
	AgeKeyFile      string   // FlagSetAgeKeyFile
	AgeRecipient    []string // FlagSetAgeRecipient
	AgeSshRecipient []string // FlagSetAgeSshRecipient
	Complete        bool     // FlagSetComplete
	File            string   // FlagSetFile
	NoRedact        bool     // FlagSetNoRedact
	Prompt          bool     // FlagSetPrompt
	Remove          []string // FlagSetRemove
	Stdin           bool     // FlagSetStdin
	EnvVar          []string // ArgSetEnvVar
}

// SettingsCmd is `settings`.
type SettingsCmd struct {
	All          bool              // FlagSettingsAll
	Json         bool              // FlagSettingsJson
	Local        bool              // FlagSettingsLocal
	Toml         bool              // FlagSettingsToml
	Complete     bool              // FlagSettingsComplete
	JsonExtended bool              // FlagSettingsJsonExtended
	Setting      string            // ArgSettingsSetting
	Value        string            // ArgSettingsValue
	Add          *SettingsAddCmd   // CmdSettingsAdd
	Get          *SettingsGetCmd   // CmdSettingsGet
	Ls           *SettingsLsCmd    // CmdSettingsLs
	Set          *SettingsSetCmd   // CmdSettingsSet
	Unset        *SettingsUnsetCmd // CmdSettingsUnset
}

// SettingsAddCmd is `settings add`.
type SettingsAddCmd struct {
	Local   bool   // FlagSettingsAddLocal
	Setting string // ArgSettingsAddSetting
	Value   string // ArgSettingsAddValue
}

// SettingsGetCmd is `settings get`.
type SettingsGetCmd struct {
	Local   bool   // FlagSettingsGetLocal
	Setting string // ArgSettingsGetSetting
}

// SettingsLsCmd is `settings ls`.
type SettingsLsCmd struct {
	All          bool   // FlagSettingsLsAll
	Json         bool   // FlagSettingsLsJson
	Local        bool   // FlagSettingsLsLocal
	Toml         bool   // FlagSettingsLsToml
	Complete     bool   // FlagSettingsLsComplete
	JsonExtended bool   // FlagSettingsLsJsonExtended
	Setting      string // ArgSettingsLsSetting
}

// SettingsSetCmd is `settings set`.
type SettingsSetCmd struct {
	Local   bool   // FlagSettingsSetLocal
	Setting string // ArgSettingsSetSetting
	Value   string // ArgSettingsSetValue
}

// SettingsUnsetCmd is `settings unset`.
type SettingsUnsetCmd struct {
	Local bool   // FlagSettingsUnsetLocal
	Key   string // ArgSettingsUnsetKey
}

// ShellCmd is `shell`.
type ShellCmd struct {
	Jobs        string   // FlagShellJobs
	Unset       bool     // FlagShellUnset
	Raw         bool     // FlagShellRaw
	ToolVersion []string // ArgShellToolVersion
}

// ShellAliasCmd is `shell-alias`.
type ShellAliasCmd struct {
	NoHeader bool                // FlagShellAliasNoHeader
	Get      *ShellAliasGetCmd   // CmdShellAliasGet
	Ls       *ShellAliasLsCmd    // CmdShellAliasLs
	Set      *ShellAliasSetCmd   // CmdShellAliasSet
	Unset    *ShellAliasUnsetCmd // CmdShellAliasUnset
}

// ShellAliasGetCmd is `shell-alias get`.
type ShellAliasGetCmd struct {
	ShellAlias string // ArgShellAliasGetShellAlias
}

// ShellAliasLsCmd is `shell-alias ls`.
type ShellAliasLsCmd struct {
	NoHeader bool // FlagShellAliasLsNoHeader
}

// ShellAliasSetCmd is `shell-alias set`.
type ShellAliasSetCmd struct {
	ShellAlias string // ArgShellAliasSetShellAlias
	Command    string // ArgShellAliasSetCommand
}

// ShellAliasUnsetCmd is `shell-alias unset`.
type ShellAliasUnsetCmd struct {
	ShellAlias string // ArgShellAliasUnsetShellAlias
}

// SponsorsCmd is `sponsors`.
type SponsorsCmd struct {
}

// SyncCmd is `sync`.
type SyncCmd struct {
	Node   *SyncNodeCmd   // CmdSyncNode
	Python *SyncPythonCmd // CmdSyncPython
	Ruby   *SyncRubyCmd   // CmdSyncRuby
}

// SyncNodeCmd is `sync node`.
type SyncNodeCmd struct {
	Brew   bool // FlagSyncNodeBrew
	Nodenv bool // FlagSyncNodeNodenv
	Nvm    bool // FlagSyncNodeNvm
}

// SyncPythonCmd is `sync python`.
type SyncPythonCmd struct {
	Pyenv bool // FlagSyncPythonPyenv
	Uv    bool // FlagSyncPythonUv
}

// SyncRubyCmd is `sync ruby`.
type SyncRubyCmd struct {
	Brew bool // FlagSyncRubyBrew
}

// TasksCmd is `tasks`.
type TasksCmd struct {
	Global    bool              // FlagTasksGlobal
	Json      bool              // FlagTasksJson
	Local     bool              // FlagTasksLocal
	Extended  bool              // FlagTasksExtended
	All       bool              // FlagTasksAll
	Complete  bool              // FlagTasksComplete
	Hidden    bool              // FlagTasksHidden
	NameOnly  bool              // FlagTasksNameOnly
	NoHeader  bool              // FlagTasksNoHeader
	Sort      string            // FlagTasksSort
	SortOrder string            // FlagTasksSortOrder
	Usage     bool              // FlagTasksUsage
	Task      string            // ArgTasksTask
	Add       *TasksAddCmd      // CmdTasksAdd
	Deps      *TasksDepsCmd     // CmdTasksDeps
	Edit      *TasksEditCmd     // CmdTasksEdit
	Graph     *TasksGraphCmd    // CmdTasksGraph
	Info      *TasksInfoCmd     // CmdTasksInfo
	Ls        *TasksLsCmd       // CmdTasksLs
	Run       *TasksRunCmd      // CmdTasksRun
	Validate  *TasksValidateCmd // CmdTasksValidate
}

// TasksAddCmd is `tasks add`.
type TasksAddCmd struct {
	Alias       []string // FlagTasksAddAlias
	Depends     []string // FlagTasksAddDepends
	Dir         string   // FlagTasksAddDir
	File        bool     // FlagTasksAddFile
	Hide        bool     // FlagTasksAddHide
	Quiet       bool     // FlagTasksAddQuiet
	Raw         bool     // FlagTasksAddRaw
	Sources     []string // FlagTasksAddSources
	WaitFor     []string // FlagTasksAddWaitFor
	DependsPost []string // FlagTasksAddDependsPost
	Description string   // FlagTasksAddDescription
	Outputs     []string // FlagTasksAddOutputs
	RunWindows  string   // FlagTasksAddRunWindows
	Shell       string   // FlagTasksAddShell
	Silent      bool     // FlagTasksAddSilent
	Task        string   // ArgTasksAddTask
	Run         []string // ArgTasksAddRun
}

// TasksDepsCmd is `tasks deps`.
type TasksDepsCmd struct {
	Compact bool     // FlagTasksDepsCompact
	Dot     bool     // FlagTasksDepsDot
	Hidden  bool     // FlagTasksDepsHidden
	Tasks   []string // ArgTasksDepsTasks
}

// TasksEditCmd is `tasks edit`.
type TasksEditCmd struct {
	Path bool   // FlagTasksEditPath
	Task string // ArgTasksEditTask
}

// TasksGraphCmd is `tasks graph`.
type TasksGraphCmd struct {
	Json     bool // FlagTasksGraphJson
	Explain  bool // FlagTasksGraphExplain
	NoHeader bool // FlagTasksGraphNoHeader
}

// TasksInfoCmd is `tasks info`.
type TasksInfoCmd struct {
	Json bool   // FlagTasksInfoJson
	Task string // ArgTasksInfoTask
}

// TasksLsCmd is `tasks ls`.
type TasksLsCmd struct {
	Global    bool   // FlagTasksLsGlobal
	Json      bool   // FlagTasksLsJson
	Local     bool   // FlagTasksLsLocal
	Extended  bool   // FlagTasksLsExtended
	All       bool   // FlagTasksLsAll
	Complete  bool   // FlagTasksLsComplete
	Hidden    bool   // FlagTasksLsHidden
	NameOnly  bool   // FlagTasksLsNameOnly
	NoHeader  bool   // FlagTasksLsNoHeader
	Sort      string // FlagTasksLsSort
	SortOrder string // FlagTasksLsSortOrder
	Usage     bool   // FlagTasksLsUsage
}

// TasksRunCmd is `tasks run`.
type TasksRunCmd struct {
	Affected             bool     // FlagTasksRunAffected
	AffectedBase         string   // FlagTasksRunAffectedBase
	AffectedExplain      bool     // FlagTasksRunAffectedExplain
	AffectedHead         string   // FlagTasksRunAffectedHead
	AffectedJson         bool     // FlagTasksRunAffectedJson
	All                  bool     // FlagTasksRunAll
	ContinueOnError      bool     // FlagTasksRunContinueOnError
	Cd                   string   // FlagTasksRunCd
	Force                bool     // FlagTasksRunForce
	Jobs                 string   // FlagTasksRunJobs
	DryRun               bool     // FlagTasksRunDryRun
	Output               string   // FlagTasksRunOutput
	Quiet                bool     // FlagTasksRunQuiet
	Raw                  bool     // FlagTasksRunRaw
	Shell                string   // FlagTasksRunShell
	Silent               bool     // FlagTasksRunSilent
	Tool                 []string // FlagTasksRunTool
	AllowEnv             []string // FlagTasksRunAllowEnv
	AllowNet             []string // FlagTasksRunAllowNet
	AllowRead            []string // FlagTasksRunAllowRead
	AllowWrite           []string // FlagTasksRunAllowWrite
	DenyAll              bool     // FlagTasksRunDenyAll
	DenyEnv              bool     // FlagTasksRunDenyEnv
	DenyNet              bool     // FlagTasksRunDenyNet
	DenyRead             bool     // FlagTasksRunDenyRead
	DenyWrite            bool     // FlagTasksRunDenyWrite
	FreshEnv             bool     // FlagTasksRunFreshEnv
	NoCache              bool     // FlagTasksRunNoCache
	NoDeps               bool     // FlagTasksRunNoDeps
	NoTimings            bool     // FlagTasksRunNoTimings
	SkipDeps             bool     // FlagTasksRunSkipDeps
	SkipTools            bool     // FlagTasksRunSkipTools
	TaskCache            string   // FlagTasksRunTaskCache
	TaskCacheExplain     bool     // FlagTasksRunTaskCacheExplain
	TaskCacheExplainJson bool     // FlagTasksRunTaskCacheExplainJson
	TaskCacheStats       bool     // FlagTasksRunTaskCacheStats
	Timeout              string   // FlagTasksRunTimeout
	Timings              bool     // FlagTasksRunTimings
	Task                 string   // ArgTasksRunTask
	Args                 []string // ArgTasksRunArgs
	ArgsLast             []string // ArgTasksRunArgsLast
}

// TasksValidateCmd is `tasks validate`.
type TasksValidateCmd struct {
	ErrorsOnly bool     // FlagTasksValidateErrorsOnly
	Json       bool     // FlagTasksValidateJson
	Tasks      []string // ArgTasksValidateTasks
}

// TestToolCmd is `test-tool`.
type TestToolCmd struct {
	All               bool     // FlagTestToolAll
	Jobs              string   // FlagTestToolJobs
	AllConfig         bool     // FlagTestToolAllConfig
	IncludeNonDefined bool     // FlagTestToolIncludeNonDefined
	Raw               bool     // FlagTestToolRaw
	Tools             []string // ArgTestToolTools
}

// TokenCmd is `token`.
type TokenCmd struct {
	Forgejo *TokenForgejoCmd // CmdTokenForgejo
	Github  *TokenGithubCmd  // CmdTokenGithub
	Gitlab  *TokenGitlabCmd  // CmdTokenGitlab
}

// TokenForgejoCmd is `token forgejo`.
type TokenForgejoCmd struct {
	Unmask bool   // FlagTokenForgejoUnmask
	Host   string // ArgTokenForgejoHost
}

// TokenGithubCmd is `token github`.
type TokenGithubCmd struct {
	Oauth   bool   // FlagTokenGithubOauth
	Raw     bool   // FlagTokenGithubRaw
	Refresh bool   // FlagTokenGithubRefresh
	Unmask  bool   // FlagTokenGithubUnmask
	Host    string // ArgTokenGithubHost
}

// TokenGitlabCmd is `token gitlab`.
type TokenGitlabCmd struct {
	Unmask bool   // FlagTokenGitlabUnmask
	Host   string // ArgTokenGitlabHost
}

// ToolCmd is `tool`.
type ToolCmd struct {
	Json         bool   // FlagToolJson
	Active       bool   // FlagToolActive
	Backend      bool   // FlagToolBackend
	ConfigSource bool   // FlagToolConfigSource
	Description  bool   // FlagToolDescription
	Installed    bool   // FlagToolInstalled
	Requested    bool   // FlagToolRequested
	ToolOptions  bool   // FlagToolToolOptions
	Tool         string // ArgToolTool
}

// ToolStubCmd is `tool-stub`.
type ToolStubCmd struct {
	File string   // ArgToolStubFile
	Args []string // ArgToolStubArgs
}

// TrustCmd is `trust`.
type TrustCmd struct {
	All        bool   // FlagTrustAll
	Ignore     bool   // FlagTrustIgnore
	Show       bool   // FlagTrustShow
	Untrust    bool   // FlagTrustUntrust
	ConfigFile string // ArgTrustConfigFile
}

// UninstallCmd is `uninstall`.
type UninstallCmd struct {
	All                  bool     // FlagUninstallAll
	DryRun               bool     // FlagUninstallDryRun
	DryRunCode           bool     // FlagUninstallDryRunCode
	InstalledToolVersion []string // ArgUninstallInstalledToolVersion
}

// UnsetCmd is `unset`.
type UnsetCmd struct {
	File   string   // FlagUnsetFile
	Global bool     // FlagUnsetGlobal
	EnvKey []string // ArgUnsetEnvKey
}

// UntrustCmd is `untrust`.
type UntrustCmd struct {
	ConfigFile string // ArgUntrustConfigFile
}

// UnuseCmd is `unuse`.
type UnuseCmd struct {
	Env                  string   // FlagUnuseEnv
	Global               bool     // FlagUnuseGlobal
	Path                 string   // FlagUnusePath
	NoPrune              bool     // FlagUnuseNoPrune
	InstalledToolVersion []string // ArgUnuseInstalledToolVersion
}

// UpgradeCmd is `upgrade`.
type UpgradeCmd struct {
	Bump                 bool     // FlagUpgradeBump
	Interactive          bool     // FlagUpgradeInteractive
	Jobs                 string   // FlagUpgradeJobs
	L                    bool     // FlagUpgradeL
	DryRun               bool     // FlagUpgradeDryRun
	Exclude              []string // FlagUpgradeExclude
	DryRunCode           bool     // FlagUpgradeDryRunCode
	Inactive             bool     // FlagUpgradeInactive
	Local                bool     // FlagUpgradeLocal
	MinimumReleaseAge    string   // FlagUpgradeMinimumReleaseAge
	Monorepo             bool     // FlagUpgradeMonorepo
	NoPrune              bool     // FlagUpgradeNoPrune
	Prune                bool     // FlagUpgradePrune
	Raw                  bool     // FlagUpgradeRaw
	InstalledToolVersion []string // ArgUpgradeInstalledToolVersion
}

// UsageCmd is `usage`.
type UsageCmd struct {
}

// UseCmd is `use`.
type UseCmd struct {
	Env               string   // FlagUseEnv
	Force             bool     // FlagUseForce
	Global            bool     // FlagUseGlobal
	Jobs              string   // FlagUseJobs
	DryRun            bool     // FlagUseDryRun
	Path              string   // FlagUsePath
	DryRunCode        bool     // FlagUseDryRunCode
	Fuzzy             bool     // FlagUseFuzzy
	MinimumReleaseAge string   // FlagUseMinimumReleaseAge
	Pin               bool     // FlagUsePin
	Raw               bool     // FlagUseRaw
	Remove            []string // FlagUseRemove
	ToolVersion       []string // ArgUseToolVersion
}

// VersionCmd is `version`.
type VersionCmd struct {
	Json bool // FlagVersionJson
}

// WatchCmd is `watch`.
type WatchCmd struct {
	TaskFlag          []string // FlagWatchTaskFlag
	Glob              []string // FlagWatchGlob
	SkipDeps          bool     // FlagWatchSkipDeps
	Watch             []string // FlagWatchWatch
	WatchNonRecursive []string // FlagWatchWatchNonRecursive
	WatchFile         string   // FlagWatchWatchFile
	Clear             string   // FlagWatchClear
	OnBusyUpdate      string   // FlagWatchOnBusyUpdate
	Restart           bool     // FlagWatchRestart
	Signal            string   // FlagWatchSignal
	StopSignal        string   // FlagWatchStopSignal
	StopTimeout       string   // FlagWatchStopTimeout
	MapSignal         []string // FlagWatchMapSignal
	Debounce          string   // FlagWatchDebounce
	StdinQuit         bool     // FlagWatchStdinQuit
	NoVcsIgnore       bool     // FlagWatchNoVcsIgnore
	NoProjectIgnore   bool     // FlagWatchNoProjectIgnore
	NoGlobalIgnore    bool     // FlagWatchNoGlobalIgnore
	NoDefaultIgnore   bool     // FlagWatchNoDefaultIgnore
	NoDiscoverIgnore  bool     // FlagWatchNoDiscoverIgnore
	IgnoreNothing     bool     // FlagWatchIgnoreNothing
	Postpone          bool     // FlagWatchPostpone
	DelayRun          string   // FlagWatchDelayRun
	Poll              string   // FlagWatchPoll
	Shell             string   // FlagWatchShell
	N                 bool     // FlagWatchN
	EmitEventsTo      string   // FlagWatchEmitEventsTo
	OnlyEmitEvents    bool     // FlagWatchOnlyEmitEvents
	Env               []string // FlagWatchEnv
	WrapProcess       string   // FlagWatchWrapProcess
	Notify            bool     // FlagWatchNotify
	Color             string   // FlagWatchColor
	Timings           bool     // FlagWatchTimings
	Quiet             bool     // FlagWatchQuiet
	Bell              bool     // FlagWatchBell
	ProjectOrigin     string   // FlagWatchProjectOrigin
	Workdir           string   // FlagWatchWorkdir
	Exts              []string // FlagWatchExts
	Filter            []string // FlagWatchFilter
	FilterFile        []string // FlagWatchFilterFile
	FilterProg        []string // FlagWatchFilterProg
	Ignore            []string // FlagWatchIgnore
	IgnoreFile        []string // FlagWatchIgnoreFile
	FsEvents          []string // FlagWatchFsEvents
	NoMeta            bool     // FlagWatchNoMeta
	PrintEvents       bool     // FlagWatchPrintEvents
	Manual            bool     // FlagWatchManual
	Task              string   // ArgWatchTask
	Args              []string // ArgWatchArgs
}

// WhereCmd is `where`.
type WhereCmd struct {
	ToolVersion string // ArgWhereToolVersion
	AsdfVersion string // ArgWhereAsdfVersion
}

// WhichCmd is `which`.
type WhichCmd struct {
	Tool     string // FlagWhichTool
	Complete bool   // FlagWhichComplete
	Plugin   bool   // FlagWhichPlugin
	Version  bool   // FlagWhichVersion
	BinName  string // ArgWhichBinName
}

// Parse binds a command line and fills the structs above.
//
// The rules decided once the last token has been read run here too, so a
// missing required flag or a value outside its choices comes back rather than
// reaching your code. A returned error is an *argv.Error; render it with
// argv.Render.
//
// Help and version arrive as errors, because a parse that stops to print a page
// has produced no value. Check the code before treating one as a failure.
func Parse(args []string) (*Cli, error) {
	out := &Cli{}
	var cmdActivateV *ActivateCmd
	var cmdToolAliasV *ToolAliasCmd
	var cmdToolAliasGetV *ToolAliasGetCmd
	var cmdToolAliasLsV *ToolAliasLsCmd
	var cmdToolAliasSetV *ToolAliasSetCmd
	var cmdToolAliasUnsetV *ToolAliasUnsetCmd
	var cmdAsdfV *AsdfCmd
	var cmdBackendsV *BackendsCmd
	var cmdBackendsLsV *BackendsLsCmd
	var cmdBinPathsV *BinPathsCmd
	var cmdBootstrapV *BootstrapCmd
	var cmdBootstrapApplyAccountPlanV *BootstrapApplyAccountPlanCmd
	var cmdBootstrapApplyServicePlanV *BootstrapApplyServicePlanCmd
	var cmdBootstrapApplyFirewallPlanV *BootstrapApplyFirewallPlanCmd
	var cmdBootstrapApplySystemPlanV *BootstrapApplySystemPlanCmd
	var cmdBootstrapInspectSystemFilesV *BootstrapInspectSystemFilesCmd
	var cmdBootstrapInspectFirewallPlanV *BootstrapInspectFirewallPlanCmd
	var cmdBootstrapAccountsV *BootstrapAccountsCmd
	var cmdBootstrapAccountsApplyV *BootstrapAccountsApplyCmd
	var cmdBootstrapAccountsStatusV *BootstrapAccountsStatusCmd
	var cmdBootstrapComposeV *BootstrapComposeCmd
	var cmdBootstrapComposeApplyV *BootstrapComposeApplyCmd
	var cmdBootstrapComposeStatusV *BootstrapComposeStatusCmd
	var cmdBootstrapDotfilesV *BootstrapDotfilesCmd
	var cmdBootstrapDotfilesAddV *BootstrapDotfilesAddCmd
	var cmdBootstrapDotfilesApplyV *BootstrapDotfilesApplyCmd
	var cmdBootstrapDotfilesEditV *BootstrapDotfilesEditCmd
	var cmdBootstrapDotfilesStatusV *BootstrapDotfilesStatusCmd
	var cmdBootstrapDotfilesUnapplyV *BootstrapDotfilesUnapplyCmd
	var cmdBootstrapFilesV *BootstrapFilesCmd
	var cmdBootstrapFilesApplyV *BootstrapFilesApplyCmd
	var cmdBootstrapFilesStatusV *BootstrapFilesStatusCmd
	var cmdBootstrapFirewallV *BootstrapFirewallCmd
	var cmdBootstrapFirewallApplyV *BootstrapFirewallApplyCmd
	var cmdBootstrapFirewallStatusV *BootstrapFirewallStatusCmd
	var cmdBootstrapLaunchdV *BootstrapLaunchdCmd
	var cmdBootstrapLaunchdApplyV *BootstrapLaunchdApplyCmd
	var cmdBootstrapLaunchdStatusV *BootstrapLaunchdStatusCmd
	var cmdBootstrapLinuxV *BootstrapLinuxCmd
	var cmdBootstrapLinuxSystemdUnitsV *BootstrapLinuxSystemdUnitsCmd
	var cmdBootstrapLinuxSystemdUnitsApplyV *BootstrapLinuxSystemdUnitsApplyCmd
	var cmdBootstrapLinuxSystemdUnitsStatusV *BootstrapLinuxSystemdUnitsStatusCmd
	var cmdBootstrapMacosV *BootstrapMacosCmd
	var cmdBootstrapMacosDefaultsV *BootstrapMacosDefaultsCmd
	var cmdBootstrapMacosDefaultsApplyV *BootstrapMacosDefaultsApplyCmd
	var cmdBootstrapMacosDefaultsStatusV *BootstrapMacosDefaultsStatusCmd
	var cmdBootstrapMacosLaunchdAgentsV *BootstrapMacosLaunchdAgentsCmd
	var cmdBootstrapMacosLaunchdAgentsApplyV *BootstrapMacosLaunchdAgentsApplyCmd
	var cmdBootstrapMacosLaunchdAgentsStatusV *BootstrapMacosLaunchdAgentsStatusCmd
	var cmdBootstrapMacosDefaults2V *BootstrapMacosDefaults2Cmd
	var cmdBootstrapMacosDefaultsApply2V *BootstrapMacosDefaultsApply2Cmd
	var cmdBootstrapMacosDefaultsStatus2V *BootstrapMacosDefaultsStatus2Cmd
	var cmdBootstrapMiseShellActivateV *BootstrapMiseShellActivateCmd
	var cmdBootstrapMiseShellActivateApplyV *BootstrapMiseShellActivateApplyCmd
	var cmdBootstrapMiseShellActivateStatusV *BootstrapMiseShellActivateStatusCmd
	var cmdBootstrapPackagesV *BootstrapPackagesCmd
	var cmdBootstrapPackagesApplyV *BootstrapPackagesApplyCmd
	var cmdBootstrapPackagesBrewV *BootstrapPackagesBrewCmd
	var cmdBootstrapPackagesBrewTapV *BootstrapPackagesBrewTapCmd
	var cmdBootstrapPackagesBrewUntapV *BootstrapPackagesBrewUntapCmd
	var cmdBootstrapPackagesImportV *BootstrapPackagesImportCmd
	var cmdBootstrapPackagesPruneV *BootstrapPackagesPruneCmd
	var cmdBootstrapPackagesStatusV *BootstrapPackagesStatusCmd
	var cmdBootstrapPackagesUpgradeV *BootstrapPackagesUpgradeCmd
	var cmdBootstrapPackagesUseV *BootstrapPackagesUseCmd
	var cmdBootstrapPlanV *BootstrapPlanCmd
	var cmdBootstrapPluginsV *BootstrapPluginsCmd
	var cmdBootstrapPluginsApplyV *BootstrapPluginsApplyCmd
	var cmdBootstrapPluginsStatusV *BootstrapPluginsStatusCmd
	var cmdBootstrapRemoteV *BootstrapRemoteCmd
	var cmdBootstrapReposV *BootstrapReposCmd
	var cmdBootstrapReposApplyV *BootstrapReposApplyCmd
	var cmdBootstrapReposExecV *BootstrapReposExecCmd
	var cmdBootstrapReposStatusV *BootstrapReposStatusCmd
	var cmdBootstrapReposUpdateV *BootstrapReposUpdateCmd
	var cmdBootstrapSecretsV *BootstrapSecretsCmd
	var cmdBootstrapSecretsStatusV *BootstrapSecretsStatusCmd
	var cmdBootstrapServicesV *BootstrapServicesCmd
	var cmdBootstrapServicesApplyV *BootstrapServicesApplyCmd
	var cmdBootstrapServicesStatusV *BootstrapServicesStatusCmd
	var cmdBootstrapStatusV *BootstrapStatusCmd
	var cmdBootstrapSystemdV *BootstrapSystemdCmd
	var cmdBootstrapSystemdApplyV *BootstrapSystemdApplyCmd
	var cmdBootstrapSystemdStatusV *BootstrapSystemdStatusCmd
	var cmdBootstrapUserV *BootstrapUserCmd
	var cmdBootstrapUserApplyV *BootstrapUserApplyCmd
	var cmdBootstrapUserStatusV *BootstrapUserStatusCmd
	var cmdCacheV *CacheCmd
	var cmdCacheClearV *CacheClearCmd
	var cmdCachePathV *CachePathCmd
	var cmdCachePruneV *CachePruneCmd
	var cmdCacheTaskV *CacheTaskCmd
	var cmdCompletionV *CompletionCmd
	var cmdConfigV *ConfigCmd
	var cmdConfigGetV *ConfigGetCmd
	var cmdConfigLsV *ConfigLsCmd
	var cmdConfigSetV *ConfigSetCmd
	var cmdCurrentV *CurrentCmd
	var cmdDeactivateV *DeactivateCmd
	var cmdDirenvV *DirenvCmd
	var cmdDirenvActivateV *DirenvActivateCmd
	var cmdDirenvEnvrcV *DirenvEnvrcCmd
	var cmdDirenvExecV *DirenvExecCmd
	var cmdDotfilesV *DotfilesCmd
	var cmdDotfilesAddV *DotfilesAddCmd
	var cmdDotfilesApplyV *DotfilesApplyCmd
	var cmdDotfilesEditV *DotfilesEditCmd
	var cmdDotfilesStatusV *DotfilesStatusCmd
	var cmdDotfilesUnapplyV *DotfilesUnapplyCmd
	var cmdDoctorV *DoctorCmd
	var cmdDoctorPathV *DoctorPathCmd
	var cmdEnV *EnCmd
	var cmdEnvV *EnvCmd
	var cmdExecV *ExecCmd
	var cmdFmtV *FmtCmd
	var cmdGenerateV *GenerateCmd
	var cmdGenerateBootstrapV *GenerateBootstrapCmd
	var cmdGenerateConfigV *GenerateConfigCmd
	var cmdGenerateDevcontainerV *GenerateDevcontainerCmd
	var cmdGenerateGitPreCommitV *GenerateGitPreCommitCmd
	var cmdGenerateGithubActionV *GenerateGithubActionCmd
	var cmdGenerateTaskDocsV *GenerateTaskDocsCmd
	var cmdGenerateTaskStubsV *GenerateTaskStubsCmd
	var cmdGenerateToolStubV *GenerateToolStubCmd
	var cmdGithubV *GithubCmd
	var cmdGithubTokenV *GithubTokenCmd
	var cmdGlobalV *GlobalCmd
	var cmdHookEnvV *HookEnvCmd
	var cmdHookNotFoundV *HookNotFoundCmd
	var cmdImplodeV *ImplodeCmd
	var cmdEditV *EditCmd
	var cmdInstallV *InstallCmd
	var cmdInstallIntoV *InstallIntoCmd
	var cmdLatestV *LatestCmd
	var cmdLinkV *LinkCmd
	var cmdLocalV *LocalCmd
	var cmdLockV *LockCmd
	var cmdLsV *LsCmd
	var cmdLsRemoteV *LsRemoteCmd
	var cmdMcpV *McpCmd
	var cmdOciV *OciCmd
	var cmdOciBuildV *OciBuildCmd
	var cmdOciPushV *OciPushCmd
	var cmdOciRunV *OciRunCmd
	var cmdOutdatedV *OutdatedCmd
	var cmdPatronsV *PatronsCmd
	var cmdPluginsV *PluginsCmd
	var cmdPluginsInstallV *PluginsInstallCmd
	var cmdPluginsLinkV *PluginsLinkCmd
	var cmdPluginsLsV *PluginsLsCmd
	var cmdPluginsLsRemoteV *PluginsLsRemoteCmd
	var cmdPluginsUninstallV *PluginsUninstallCmd
	var cmdPluginsUpdateV *PluginsUpdateCmd
	var cmdDepsV *DepsCmd
	var cmdDepsAddV *DepsAddCmd
	var cmdDepsInstallV *DepsInstallCmd
	var cmdDepsRemoveV *DepsRemoveCmd
	var cmdPruneV *PruneCmd
	var cmdRegistryV *RegistryCmd
	var cmdRenderHelpV *RenderHelpCmd
	var cmdReshimV *ReshimCmd
	var cmdRunV *RunCmd
	var cmdSearchV *SearchCmd
	var cmdSelfUpdateV *SelfUpdateCmd
	var cmdSetV *SetCmd
	var cmdSettingsV *SettingsCmd
	var cmdSettingsAddV *SettingsAddCmd
	var cmdSettingsGetV *SettingsGetCmd
	var cmdSettingsLsV *SettingsLsCmd
	var cmdSettingsSetV *SettingsSetCmd
	var cmdSettingsUnsetV *SettingsUnsetCmd
	var cmdShellV *ShellCmd
	var cmdShellAliasV *ShellAliasCmd
	var cmdShellAliasGetV *ShellAliasGetCmd
	var cmdShellAliasLsV *ShellAliasLsCmd
	var cmdShellAliasSetV *ShellAliasSetCmd
	var cmdShellAliasUnsetV *ShellAliasUnsetCmd
	var cmdSponsorsV *SponsorsCmd
	var cmdSyncV *SyncCmd
	var cmdSyncNodeV *SyncNodeCmd
	var cmdSyncPythonV *SyncPythonCmd
	var cmdSyncRubyV *SyncRubyCmd
	var cmdTasksV *TasksCmd
	var cmdTasksAddV *TasksAddCmd
	var cmdTasksDepsV *TasksDepsCmd
	var cmdTasksEditV *TasksEditCmd
	var cmdTasksGraphV *TasksGraphCmd
	var cmdTasksInfoV *TasksInfoCmd
	var cmdTasksLsV *TasksLsCmd
	var cmdTasksRunV *TasksRunCmd
	var cmdTasksValidateV *TasksValidateCmd
	var cmdTestToolV *TestToolCmd
	var cmdTokenV *TokenCmd
	var cmdTokenForgejoV *TokenForgejoCmd
	var cmdTokenGithubV *TokenGithubCmd
	var cmdTokenGitlabV *TokenGitlabCmd
	var cmdToolV *ToolCmd
	var cmdToolStubV *ToolStubCmd
	var cmdTrustV *TrustCmd
	var cmdUninstallV *UninstallCmd
	var cmdUnsetV *UnsetCmd
	var cmdUntrustV *UntrustCmd
	var cmdUnuseV *UnuseCmd
	var cmdUpgradeV *UpgradeCmd
	var cmdUsageV *UsageCmd
	var cmdUseV *UseCmd
	var cmdVersionV *VersionCmd
	var cmdWatchV *WatchCmd
	var cmdWhereV *WhereCmd
	var cmdWhichV *WhichCmd

	// Collected by key, so the post-binding rules can judge what arrived
	// before any of it is handed back.
	given := map[uint64][]string{}
	seen := map[uint64]int{}
	chain := []*argv.Command{Root}

	p := argv.New(Root, args)
	for p.Next() {
		ev := p.Event()
		switch ev.Kind {
		case argv.KindCommand:
			chain = append(chain, ev.Command)
			switch ev.Command.Key {
			case CmdActivate:
				cmdActivateV = &ActivateCmd{}
				out.Activate = cmdActivateV
			case CmdToolAlias:
				cmdToolAliasV = &ToolAliasCmd{}
				out.ToolAlias = cmdToolAliasV
			case CmdToolAliasGet:
				cmdToolAliasGetV = &ToolAliasGetCmd{}
				cmdToolAliasV.Get = cmdToolAliasGetV
			case CmdToolAliasLs:
				cmdToolAliasLsV = &ToolAliasLsCmd{}
				cmdToolAliasV.Ls = cmdToolAliasLsV
			case CmdToolAliasSet:
				cmdToolAliasSetV = &ToolAliasSetCmd{}
				cmdToolAliasV.Set = cmdToolAliasSetV
			case CmdToolAliasUnset:
				cmdToolAliasUnsetV = &ToolAliasUnsetCmd{}
				cmdToolAliasV.Unset = cmdToolAliasUnsetV
			case CmdAsdf:
				cmdAsdfV = &AsdfCmd{}
				out.Asdf = cmdAsdfV
			case CmdBackends:
				cmdBackendsV = &BackendsCmd{}
				out.Backends = cmdBackendsV
			case CmdBackendsLs:
				cmdBackendsLsV = &BackendsLsCmd{}
				cmdBackendsV.Ls = cmdBackendsLsV
			case CmdBinPaths:
				cmdBinPathsV = &BinPathsCmd{}
				out.BinPaths = cmdBinPathsV
			case CmdBootstrap:
				cmdBootstrapV = &BootstrapCmd{}
				out.Bootstrap = cmdBootstrapV
			case CmdBootstrapApplyAccountPlan:
				cmdBootstrapApplyAccountPlanV = &BootstrapApplyAccountPlanCmd{}
				cmdBootstrapV.ApplyAccountPlan = cmdBootstrapApplyAccountPlanV
			case CmdBootstrapApplyServicePlan:
				cmdBootstrapApplyServicePlanV = &BootstrapApplyServicePlanCmd{}
				cmdBootstrapV.ApplyServicePlan = cmdBootstrapApplyServicePlanV
			case CmdBootstrapApplyFirewallPlan:
				cmdBootstrapApplyFirewallPlanV = &BootstrapApplyFirewallPlanCmd{}
				cmdBootstrapV.ApplyFirewallPlan = cmdBootstrapApplyFirewallPlanV
			case CmdBootstrapApplySystemPlan:
				cmdBootstrapApplySystemPlanV = &BootstrapApplySystemPlanCmd{}
				cmdBootstrapV.ApplySystemPlan = cmdBootstrapApplySystemPlanV
			case CmdBootstrapInspectSystemFiles:
				cmdBootstrapInspectSystemFilesV = &BootstrapInspectSystemFilesCmd{}
				cmdBootstrapV.InspectSystemFiles = cmdBootstrapInspectSystemFilesV
			case CmdBootstrapInspectFirewallPlan:
				cmdBootstrapInspectFirewallPlanV = &BootstrapInspectFirewallPlanCmd{}
				cmdBootstrapV.InspectFirewallPlan = cmdBootstrapInspectFirewallPlanV
			case CmdBootstrapAccounts:
				cmdBootstrapAccountsV = &BootstrapAccountsCmd{}
				cmdBootstrapV.Accounts = cmdBootstrapAccountsV
			case CmdBootstrapAccountsApply:
				cmdBootstrapAccountsApplyV = &BootstrapAccountsApplyCmd{}
				cmdBootstrapAccountsV.Apply = cmdBootstrapAccountsApplyV
			case CmdBootstrapAccountsStatus:
				cmdBootstrapAccountsStatusV = &BootstrapAccountsStatusCmd{}
				cmdBootstrapAccountsV.Status = cmdBootstrapAccountsStatusV
			case CmdBootstrapCompose:
				cmdBootstrapComposeV = &BootstrapComposeCmd{}
				cmdBootstrapV.Compose = cmdBootstrapComposeV
			case CmdBootstrapComposeApply:
				cmdBootstrapComposeApplyV = &BootstrapComposeApplyCmd{}
				cmdBootstrapComposeV.Apply = cmdBootstrapComposeApplyV
			case CmdBootstrapComposeStatus:
				cmdBootstrapComposeStatusV = &BootstrapComposeStatusCmd{}
				cmdBootstrapComposeV.Status = cmdBootstrapComposeStatusV
			case CmdBootstrapDotfiles:
				cmdBootstrapDotfilesV = &BootstrapDotfilesCmd{}
				cmdBootstrapV.Dotfiles = cmdBootstrapDotfilesV
			case CmdBootstrapDotfilesAdd:
				cmdBootstrapDotfilesAddV = &BootstrapDotfilesAddCmd{}
				cmdBootstrapDotfilesV.Add = cmdBootstrapDotfilesAddV
			case CmdBootstrapDotfilesApply:
				cmdBootstrapDotfilesApplyV = &BootstrapDotfilesApplyCmd{}
				cmdBootstrapDotfilesV.Apply = cmdBootstrapDotfilesApplyV
			case CmdBootstrapDotfilesEdit:
				cmdBootstrapDotfilesEditV = &BootstrapDotfilesEditCmd{}
				cmdBootstrapDotfilesV.Edit = cmdBootstrapDotfilesEditV
			case CmdBootstrapDotfilesStatus:
				cmdBootstrapDotfilesStatusV = &BootstrapDotfilesStatusCmd{}
				cmdBootstrapDotfilesV.Status = cmdBootstrapDotfilesStatusV
			case CmdBootstrapDotfilesUnapply:
				cmdBootstrapDotfilesUnapplyV = &BootstrapDotfilesUnapplyCmd{}
				cmdBootstrapDotfilesV.Unapply = cmdBootstrapDotfilesUnapplyV
			case CmdBootstrapFiles:
				cmdBootstrapFilesV = &BootstrapFilesCmd{}
				cmdBootstrapV.Files = cmdBootstrapFilesV
			case CmdBootstrapFilesApply:
				cmdBootstrapFilesApplyV = &BootstrapFilesApplyCmd{}
				cmdBootstrapFilesV.Apply = cmdBootstrapFilesApplyV
			case CmdBootstrapFilesStatus:
				cmdBootstrapFilesStatusV = &BootstrapFilesStatusCmd{}
				cmdBootstrapFilesV.Status = cmdBootstrapFilesStatusV
			case CmdBootstrapFirewall:
				cmdBootstrapFirewallV = &BootstrapFirewallCmd{}
				cmdBootstrapV.Firewall = cmdBootstrapFirewallV
			case CmdBootstrapFirewallApply:
				cmdBootstrapFirewallApplyV = &BootstrapFirewallApplyCmd{}
				cmdBootstrapFirewallV.Apply = cmdBootstrapFirewallApplyV
			case CmdBootstrapFirewallStatus:
				cmdBootstrapFirewallStatusV = &BootstrapFirewallStatusCmd{}
				cmdBootstrapFirewallV.Status = cmdBootstrapFirewallStatusV
			case CmdBootstrapLaunchd:
				cmdBootstrapLaunchdV = &BootstrapLaunchdCmd{}
				cmdBootstrapV.Launchd = cmdBootstrapLaunchdV
			case CmdBootstrapLaunchdApply:
				cmdBootstrapLaunchdApplyV = &BootstrapLaunchdApplyCmd{}
				cmdBootstrapLaunchdV.Apply = cmdBootstrapLaunchdApplyV
			case CmdBootstrapLaunchdStatus:
				cmdBootstrapLaunchdStatusV = &BootstrapLaunchdStatusCmd{}
				cmdBootstrapLaunchdV.Status = cmdBootstrapLaunchdStatusV
			case CmdBootstrapLinux:
				cmdBootstrapLinuxV = &BootstrapLinuxCmd{}
				cmdBootstrapV.Linux = cmdBootstrapLinuxV
			case CmdBootstrapLinuxSystemdUnits:
				cmdBootstrapLinuxSystemdUnitsV = &BootstrapLinuxSystemdUnitsCmd{}
				cmdBootstrapLinuxV.SystemdUnits = cmdBootstrapLinuxSystemdUnitsV
			case CmdBootstrapLinuxSystemdUnitsApply:
				cmdBootstrapLinuxSystemdUnitsApplyV = &BootstrapLinuxSystemdUnitsApplyCmd{}
				cmdBootstrapLinuxSystemdUnitsV.Apply = cmdBootstrapLinuxSystemdUnitsApplyV
			case CmdBootstrapLinuxSystemdUnitsStatus:
				cmdBootstrapLinuxSystemdUnitsStatusV = &BootstrapLinuxSystemdUnitsStatusCmd{}
				cmdBootstrapLinuxSystemdUnitsV.Status = cmdBootstrapLinuxSystemdUnitsStatusV
			case CmdBootstrapMacos:
				cmdBootstrapMacosV = &BootstrapMacosCmd{}
				cmdBootstrapV.Macos = cmdBootstrapMacosV
			case CmdBootstrapMacosDefaults:
				cmdBootstrapMacosDefaultsV = &BootstrapMacosDefaultsCmd{}
				cmdBootstrapMacosV.Defaults = cmdBootstrapMacosDefaultsV
			case CmdBootstrapMacosDefaultsApply:
				cmdBootstrapMacosDefaultsApplyV = &BootstrapMacosDefaultsApplyCmd{}
				cmdBootstrapMacosDefaultsV.Apply = cmdBootstrapMacosDefaultsApplyV
			case CmdBootstrapMacosDefaultsStatus:
				cmdBootstrapMacosDefaultsStatusV = &BootstrapMacosDefaultsStatusCmd{}
				cmdBootstrapMacosDefaultsV.Status = cmdBootstrapMacosDefaultsStatusV
			case CmdBootstrapMacosLaunchdAgents:
				cmdBootstrapMacosLaunchdAgentsV = &BootstrapMacosLaunchdAgentsCmd{}
				cmdBootstrapMacosV.LaunchdAgents = cmdBootstrapMacosLaunchdAgentsV
			case CmdBootstrapMacosLaunchdAgentsApply:
				cmdBootstrapMacosLaunchdAgentsApplyV = &BootstrapMacosLaunchdAgentsApplyCmd{}
				cmdBootstrapMacosLaunchdAgentsV.Apply = cmdBootstrapMacosLaunchdAgentsApplyV
			case CmdBootstrapMacosLaunchdAgentsStatus:
				cmdBootstrapMacosLaunchdAgentsStatusV = &BootstrapMacosLaunchdAgentsStatusCmd{}
				cmdBootstrapMacosLaunchdAgentsV.Status = cmdBootstrapMacosLaunchdAgentsStatusV
			case CmdBootstrapMacosDefaults2:
				cmdBootstrapMacosDefaults2V = &BootstrapMacosDefaults2Cmd{}
				cmdBootstrapV.MacosDefaults = cmdBootstrapMacosDefaults2V
			case CmdBootstrapMacosDefaultsApply2:
				cmdBootstrapMacosDefaultsApply2V = &BootstrapMacosDefaultsApply2Cmd{}
				cmdBootstrapMacosDefaults2V.Apply = cmdBootstrapMacosDefaultsApply2V
			case CmdBootstrapMacosDefaultsStatus2:
				cmdBootstrapMacosDefaultsStatus2V = &BootstrapMacosDefaultsStatus2Cmd{}
				cmdBootstrapMacosDefaults2V.Status = cmdBootstrapMacosDefaultsStatus2V
			case CmdBootstrapMiseShellActivate:
				cmdBootstrapMiseShellActivateV = &BootstrapMiseShellActivateCmd{}
				cmdBootstrapV.MiseShellActivate = cmdBootstrapMiseShellActivateV
			case CmdBootstrapMiseShellActivateApply:
				cmdBootstrapMiseShellActivateApplyV = &BootstrapMiseShellActivateApplyCmd{}
				cmdBootstrapMiseShellActivateV.Apply = cmdBootstrapMiseShellActivateApplyV
			case CmdBootstrapMiseShellActivateStatus:
				cmdBootstrapMiseShellActivateStatusV = &BootstrapMiseShellActivateStatusCmd{}
				cmdBootstrapMiseShellActivateV.Status = cmdBootstrapMiseShellActivateStatusV
			case CmdBootstrapPackages:
				cmdBootstrapPackagesV = &BootstrapPackagesCmd{}
				cmdBootstrapV.Packages = cmdBootstrapPackagesV
			case CmdBootstrapPackagesApply:
				cmdBootstrapPackagesApplyV = &BootstrapPackagesApplyCmd{}
				cmdBootstrapPackagesV.Apply = cmdBootstrapPackagesApplyV
			case CmdBootstrapPackagesBrew:
				cmdBootstrapPackagesBrewV = &BootstrapPackagesBrewCmd{}
				cmdBootstrapPackagesV.Brew = cmdBootstrapPackagesBrewV
			case CmdBootstrapPackagesBrewTap:
				cmdBootstrapPackagesBrewTapV = &BootstrapPackagesBrewTapCmd{}
				cmdBootstrapPackagesBrewV.Tap = cmdBootstrapPackagesBrewTapV
			case CmdBootstrapPackagesBrewUntap:
				cmdBootstrapPackagesBrewUntapV = &BootstrapPackagesBrewUntapCmd{}
				cmdBootstrapPackagesBrewV.Untap = cmdBootstrapPackagesBrewUntapV
			case CmdBootstrapPackagesImport:
				cmdBootstrapPackagesImportV = &BootstrapPackagesImportCmd{}
				cmdBootstrapPackagesV.Import = cmdBootstrapPackagesImportV
			case CmdBootstrapPackagesPrune:
				cmdBootstrapPackagesPruneV = &BootstrapPackagesPruneCmd{}
				cmdBootstrapPackagesV.Prune = cmdBootstrapPackagesPruneV
			case CmdBootstrapPackagesStatus:
				cmdBootstrapPackagesStatusV = &BootstrapPackagesStatusCmd{}
				cmdBootstrapPackagesV.Status = cmdBootstrapPackagesStatusV
			case CmdBootstrapPackagesUpgrade:
				cmdBootstrapPackagesUpgradeV = &BootstrapPackagesUpgradeCmd{}
				cmdBootstrapPackagesV.Upgrade = cmdBootstrapPackagesUpgradeV
			case CmdBootstrapPackagesUse:
				cmdBootstrapPackagesUseV = &BootstrapPackagesUseCmd{}
				cmdBootstrapPackagesV.Use = cmdBootstrapPackagesUseV
			case CmdBootstrapPlan:
				cmdBootstrapPlanV = &BootstrapPlanCmd{}
				cmdBootstrapV.Plan = cmdBootstrapPlanV
			case CmdBootstrapPlugins:
				cmdBootstrapPluginsV = &BootstrapPluginsCmd{}
				cmdBootstrapV.Plugins = cmdBootstrapPluginsV
			case CmdBootstrapPluginsApply:
				cmdBootstrapPluginsApplyV = &BootstrapPluginsApplyCmd{}
				cmdBootstrapPluginsV.Apply = cmdBootstrapPluginsApplyV
			case CmdBootstrapPluginsStatus:
				cmdBootstrapPluginsStatusV = &BootstrapPluginsStatusCmd{}
				cmdBootstrapPluginsV.Status = cmdBootstrapPluginsStatusV
			case CmdBootstrapRemote:
				cmdBootstrapRemoteV = &BootstrapRemoteCmd{}
				cmdBootstrapV.Remote = cmdBootstrapRemoteV
			case CmdBootstrapRepos:
				cmdBootstrapReposV = &BootstrapReposCmd{}
				cmdBootstrapV.Repos = cmdBootstrapReposV
			case CmdBootstrapReposApply:
				cmdBootstrapReposApplyV = &BootstrapReposApplyCmd{}
				cmdBootstrapReposV.Apply = cmdBootstrapReposApplyV
			case CmdBootstrapReposExec:
				cmdBootstrapReposExecV = &BootstrapReposExecCmd{}
				cmdBootstrapReposV.Exec = cmdBootstrapReposExecV
			case CmdBootstrapReposStatus:
				cmdBootstrapReposStatusV = &BootstrapReposStatusCmd{}
				cmdBootstrapReposV.Status = cmdBootstrapReposStatusV
			case CmdBootstrapReposUpdate:
				cmdBootstrapReposUpdateV = &BootstrapReposUpdateCmd{}
				cmdBootstrapReposV.Update = cmdBootstrapReposUpdateV
			case CmdBootstrapSecrets:
				cmdBootstrapSecretsV = &BootstrapSecretsCmd{}
				cmdBootstrapV.Secrets = cmdBootstrapSecretsV
			case CmdBootstrapSecretsStatus:
				cmdBootstrapSecretsStatusV = &BootstrapSecretsStatusCmd{}
				cmdBootstrapSecretsV.Status = cmdBootstrapSecretsStatusV
			case CmdBootstrapServices:
				cmdBootstrapServicesV = &BootstrapServicesCmd{}
				cmdBootstrapV.Services = cmdBootstrapServicesV
			case CmdBootstrapServicesApply:
				cmdBootstrapServicesApplyV = &BootstrapServicesApplyCmd{}
				cmdBootstrapServicesV.Apply = cmdBootstrapServicesApplyV
			case CmdBootstrapServicesStatus:
				cmdBootstrapServicesStatusV = &BootstrapServicesStatusCmd{}
				cmdBootstrapServicesV.Status = cmdBootstrapServicesStatusV
			case CmdBootstrapStatus:
				cmdBootstrapStatusV = &BootstrapStatusCmd{}
				cmdBootstrapV.Status = cmdBootstrapStatusV
			case CmdBootstrapSystemd:
				cmdBootstrapSystemdV = &BootstrapSystemdCmd{}
				cmdBootstrapV.Systemd = cmdBootstrapSystemdV
			case CmdBootstrapSystemdApply:
				cmdBootstrapSystemdApplyV = &BootstrapSystemdApplyCmd{}
				cmdBootstrapSystemdV.Apply = cmdBootstrapSystemdApplyV
			case CmdBootstrapSystemdStatus:
				cmdBootstrapSystemdStatusV = &BootstrapSystemdStatusCmd{}
				cmdBootstrapSystemdV.Status = cmdBootstrapSystemdStatusV
			case CmdBootstrapUser:
				cmdBootstrapUserV = &BootstrapUserCmd{}
				cmdBootstrapV.User = cmdBootstrapUserV
			case CmdBootstrapUserApply:
				cmdBootstrapUserApplyV = &BootstrapUserApplyCmd{}
				cmdBootstrapUserV.Apply = cmdBootstrapUserApplyV
			case CmdBootstrapUserStatus:
				cmdBootstrapUserStatusV = &BootstrapUserStatusCmd{}
				cmdBootstrapUserV.Status = cmdBootstrapUserStatusV
			case CmdCache:
				cmdCacheV = &CacheCmd{}
				out.Cache = cmdCacheV
			case CmdCacheClear:
				cmdCacheClearV = &CacheClearCmd{}
				cmdCacheV.Clear = cmdCacheClearV
			case CmdCachePath:
				cmdCachePathV = &CachePathCmd{}
				cmdCacheV.Path = cmdCachePathV
			case CmdCachePrune:
				cmdCachePruneV = &CachePruneCmd{}
				cmdCacheV.Prune = cmdCachePruneV
			case CmdCacheTask:
				cmdCacheTaskV = &CacheTaskCmd{}
				cmdCacheV.Task = cmdCacheTaskV
			case CmdCompletion:
				cmdCompletionV = &CompletionCmd{}
				out.Completion = cmdCompletionV
			case CmdConfig:
				cmdConfigV = &ConfigCmd{}
				out.Config = cmdConfigV
			case CmdConfigGet:
				cmdConfigGetV = &ConfigGetCmd{}
				cmdConfigV.Get = cmdConfigGetV
			case CmdConfigLs:
				cmdConfigLsV = &ConfigLsCmd{}
				cmdConfigV.Ls = cmdConfigLsV
			case CmdConfigSet:
				cmdConfigSetV = &ConfigSetCmd{}
				cmdConfigV.Set = cmdConfigSetV
			case CmdCurrent:
				cmdCurrentV = &CurrentCmd{}
				out.Current = cmdCurrentV
			case CmdDeactivate:
				cmdDeactivateV = &DeactivateCmd{}
				out.Deactivate = cmdDeactivateV
			case CmdDirenv:
				cmdDirenvV = &DirenvCmd{}
				out.Direnv = cmdDirenvV
			case CmdDirenvActivate:
				cmdDirenvActivateV = &DirenvActivateCmd{}
				cmdDirenvV.Activate = cmdDirenvActivateV
			case CmdDirenvEnvrc:
				cmdDirenvEnvrcV = &DirenvEnvrcCmd{}
				cmdDirenvV.Envrc = cmdDirenvEnvrcV
			case CmdDirenvExec:
				cmdDirenvExecV = &DirenvExecCmd{}
				cmdDirenvV.Exec = cmdDirenvExecV
			case CmdDotfiles:
				cmdDotfilesV = &DotfilesCmd{}
				out.Dotfiles = cmdDotfilesV
			case CmdDotfilesAdd:
				cmdDotfilesAddV = &DotfilesAddCmd{}
				cmdDotfilesV.Add = cmdDotfilesAddV
			case CmdDotfilesApply:
				cmdDotfilesApplyV = &DotfilesApplyCmd{}
				cmdDotfilesV.Apply = cmdDotfilesApplyV
			case CmdDotfilesEdit:
				cmdDotfilesEditV = &DotfilesEditCmd{}
				cmdDotfilesV.Edit = cmdDotfilesEditV
			case CmdDotfilesStatus:
				cmdDotfilesStatusV = &DotfilesStatusCmd{}
				cmdDotfilesV.Status = cmdDotfilesStatusV
			case CmdDotfilesUnapply:
				cmdDotfilesUnapplyV = &DotfilesUnapplyCmd{}
				cmdDotfilesV.Unapply = cmdDotfilesUnapplyV
			case CmdDoctor:
				cmdDoctorV = &DoctorCmd{}
				out.Doctor = cmdDoctorV
			case CmdDoctorPath:
				cmdDoctorPathV = &DoctorPathCmd{}
				cmdDoctorV.Path = cmdDoctorPathV
			case CmdEn:
				cmdEnV = &EnCmd{}
				out.En = cmdEnV
			case CmdEnv:
				cmdEnvV = &EnvCmd{}
				out.EnvCmd = cmdEnvV
			case CmdExec:
				cmdExecV = &ExecCmd{}
				out.Exec = cmdExecV
			case CmdFmt:
				cmdFmtV = &FmtCmd{}
				out.Fmt = cmdFmtV
			case CmdGenerate:
				cmdGenerateV = &GenerateCmd{}
				out.Generate = cmdGenerateV
			case CmdGenerateBootstrap:
				cmdGenerateBootstrapV = &GenerateBootstrapCmd{}
				cmdGenerateV.Bootstrap = cmdGenerateBootstrapV
			case CmdGenerateConfig:
				cmdGenerateConfigV = &GenerateConfigCmd{}
				cmdGenerateV.Config = cmdGenerateConfigV
			case CmdGenerateDevcontainer:
				cmdGenerateDevcontainerV = &GenerateDevcontainerCmd{}
				cmdGenerateV.Devcontainer = cmdGenerateDevcontainerV
			case CmdGenerateGitPreCommit:
				cmdGenerateGitPreCommitV = &GenerateGitPreCommitCmd{}
				cmdGenerateV.GitPreCommit = cmdGenerateGitPreCommitV
			case CmdGenerateGithubAction:
				cmdGenerateGithubActionV = &GenerateGithubActionCmd{}
				cmdGenerateV.GithubAction = cmdGenerateGithubActionV
			case CmdGenerateTaskDocs:
				cmdGenerateTaskDocsV = &GenerateTaskDocsCmd{}
				cmdGenerateV.TaskDocs = cmdGenerateTaskDocsV
			case CmdGenerateTaskStubs:
				cmdGenerateTaskStubsV = &GenerateTaskStubsCmd{}
				cmdGenerateV.TaskStubs = cmdGenerateTaskStubsV
			case CmdGenerateToolStub:
				cmdGenerateToolStubV = &GenerateToolStubCmd{}
				cmdGenerateV.ToolStub = cmdGenerateToolStubV
			case CmdGithub:
				cmdGithubV = &GithubCmd{}
				out.Github = cmdGithubV
			case CmdGithubToken:
				cmdGithubTokenV = &GithubTokenCmd{}
				cmdGithubV.Token = cmdGithubTokenV
			case CmdGlobal:
				cmdGlobalV = &GlobalCmd{}
				out.Global = cmdGlobalV
			case CmdHookEnv:
				cmdHookEnvV = &HookEnvCmd{}
				out.HookEnv = cmdHookEnvV
			case CmdHookNotFound:
				cmdHookNotFoundV = &HookNotFoundCmd{}
				out.HookNotFound = cmdHookNotFoundV
			case CmdImplode:
				cmdImplodeV = &ImplodeCmd{}
				out.Implode = cmdImplodeV
			case CmdEdit:
				cmdEditV = &EditCmd{}
				out.Edit = cmdEditV
			case CmdInstall:
				cmdInstallV = &InstallCmd{}
				out.Install = cmdInstallV
			case CmdInstallInto:
				cmdInstallIntoV = &InstallIntoCmd{}
				out.InstallInto = cmdInstallIntoV
			case CmdLatest:
				cmdLatestV = &LatestCmd{}
				out.Latest = cmdLatestV
			case CmdLink:
				cmdLinkV = &LinkCmd{}
				out.Link = cmdLinkV
			case CmdLocal:
				cmdLocalV = &LocalCmd{}
				out.Local = cmdLocalV
			case CmdLock:
				cmdLockV = &LockCmd{}
				out.Lock = cmdLockV
			case CmdLs:
				cmdLsV = &LsCmd{}
				out.Ls = cmdLsV
			case CmdLsRemote:
				cmdLsRemoteV = &LsRemoteCmd{}
				out.LsRemote = cmdLsRemoteV
			case CmdMcp:
				cmdMcpV = &McpCmd{}
				out.Mcp = cmdMcpV
			case CmdOci:
				cmdOciV = &OciCmd{}
				out.Oci = cmdOciV
			case CmdOciBuild:
				cmdOciBuildV = &OciBuildCmd{}
				cmdOciV.Build = cmdOciBuildV
			case CmdOciPush:
				cmdOciPushV = &OciPushCmd{}
				cmdOciV.Push = cmdOciPushV
			case CmdOciRun:
				cmdOciRunV = &OciRunCmd{}
				cmdOciV.Run = cmdOciRunV
			case CmdOutdated:
				cmdOutdatedV = &OutdatedCmd{}
				out.Outdated = cmdOutdatedV
			case CmdPatrons:
				cmdPatronsV = &PatronsCmd{}
				out.Patrons = cmdPatronsV
			case CmdPlugins:
				cmdPluginsV = &PluginsCmd{}
				out.Plugins = cmdPluginsV
			case CmdPluginsInstall:
				cmdPluginsInstallV = &PluginsInstallCmd{}
				cmdPluginsV.Install = cmdPluginsInstallV
			case CmdPluginsLink:
				cmdPluginsLinkV = &PluginsLinkCmd{}
				cmdPluginsV.Link = cmdPluginsLinkV
			case CmdPluginsLs:
				cmdPluginsLsV = &PluginsLsCmd{}
				cmdPluginsV.Ls = cmdPluginsLsV
			case CmdPluginsLsRemote:
				cmdPluginsLsRemoteV = &PluginsLsRemoteCmd{}
				cmdPluginsV.LsRemote = cmdPluginsLsRemoteV
			case CmdPluginsUninstall:
				cmdPluginsUninstallV = &PluginsUninstallCmd{}
				cmdPluginsV.Uninstall = cmdPluginsUninstallV
			case CmdPluginsUpdate:
				cmdPluginsUpdateV = &PluginsUpdateCmd{}
				cmdPluginsV.Update = cmdPluginsUpdateV
			case CmdDeps:
				cmdDepsV = &DepsCmd{}
				out.Deps = cmdDepsV
			case CmdDepsAdd:
				cmdDepsAddV = &DepsAddCmd{}
				cmdDepsV.Add = cmdDepsAddV
			case CmdDepsInstall:
				cmdDepsInstallV = &DepsInstallCmd{}
				cmdDepsV.Install = cmdDepsInstallV
			case CmdDepsRemove:
				cmdDepsRemoveV = &DepsRemoveCmd{}
				cmdDepsV.Remove = cmdDepsRemoveV
			case CmdPrune:
				cmdPruneV = &PruneCmd{}
				out.Prune = cmdPruneV
			case CmdRegistry:
				cmdRegistryV = &RegistryCmd{}
				out.Registry = cmdRegistryV
			case CmdRenderHelp:
				cmdRenderHelpV = &RenderHelpCmd{}
				out.RenderHelp = cmdRenderHelpV
			case CmdReshim:
				cmdReshimV = &ReshimCmd{}
				out.Reshim = cmdReshimV
			case CmdRun:
				cmdRunV = &RunCmd{}
				out.Run = cmdRunV
			case CmdSearch:
				cmdSearchV = &SearchCmd{}
				out.Search = cmdSearchV
			case CmdSelfUpdate:
				cmdSelfUpdateV = &SelfUpdateCmd{}
				out.SelfUpdate = cmdSelfUpdateV
			case CmdSet:
				cmdSetV = &SetCmd{}
				out.Set = cmdSetV
			case CmdSettings:
				cmdSettingsV = &SettingsCmd{}
				out.Settings = cmdSettingsV
			case CmdSettingsAdd:
				cmdSettingsAddV = &SettingsAddCmd{}
				cmdSettingsV.Add = cmdSettingsAddV
			case CmdSettingsGet:
				cmdSettingsGetV = &SettingsGetCmd{}
				cmdSettingsV.Get = cmdSettingsGetV
			case CmdSettingsLs:
				cmdSettingsLsV = &SettingsLsCmd{}
				cmdSettingsV.Ls = cmdSettingsLsV
			case CmdSettingsSet:
				cmdSettingsSetV = &SettingsSetCmd{}
				cmdSettingsV.Set = cmdSettingsSetV
			case CmdSettingsUnset:
				cmdSettingsUnsetV = &SettingsUnsetCmd{}
				cmdSettingsV.Unset = cmdSettingsUnsetV
			case CmdShell:
				cmdShellV = &ShellCmd{}
				out.ShellCmd = cmdShellV
			case CmdShellAlias:
				cmdShellAliasV = &ShellAliasCmd{}
				out.ShellAlias = cmdShellAliasV
			case CmdShellAliasGet:
				cmdShellAliasGetV = &ShellAliasGetCmd{}
				cmdShellAliasV.Get = cmdShellAliasGetV
			case CmdShellAliasLs:
				cmdShellAliasLsV = &ShellAliasLsCmd{}
				cmdShellAliasV.Ls = cmdShellAliasLsV
			case CmdShellAliasSet:
				cmdShellAliasSetV = &ShellAliasSetCmd{}
				cmdShellAliasV.Set = cmdShellAliasSetV
			case CmdShellAliasUnset:
				cmdShellAliasUnsetV = &ShellAliasUnsetCmd{}
				cmdShellAliasV.Unset = cmdShellAliasUnsetV
			case CmdSponsors:
				cmdSponsorsV = &SponsorsCmd{}
				out.Sponsors = cmdSponsorsV
			case CmdSync:
				cmdSyncV = &SyncCmd{}
				out.Sync = cmdSyncV
			case CmdSyncNode:
				cmdSyncNodeV = &SyncNodeCmd{}
				cmdSyncV.Node = cmdSyncNodeV
			case CmdSyncPython:
				cmdSyncPythonV = &SyncPythonCmd{}
				cmdSyncV.Python = cmdSyncPythonV
			case CmdSyncRuby:
				cmdSyncRubyV = &SyncRubyCmd{}
				cmdSyncV.Ruby = cmdSyncRubyV
			case CmdTasks:
				cmdTasksV = &TasksCmd{}
				out.Tasks = cmdTasksV
			case CmdTasksAdd:
				cmdTasksAddV = &TasksAddCmd{}
				cmdTasksV.Add = cmdTasksAddV
			case CmdTasksDeps:
				cmdTasksDepsV = &TasksDepsCmd{}
				cmdTasksV.Deps = cmdTasksDepsV
			case CmdTasksEdit:
				cmdTasksEditV = &TasksEditCmd{}
				cmdTasksV.Edit = cmdTasksEditV
			case CmdTasksGraph:
				cmdTasksGraphV = &TasksGraphCmd{}
				cmdTasksV.Graph = cmdTasksGraphV
			case CmdTasksInfo:
				cmdTasksInfoV = &TasksInfoCmd{}
				cmdTasksV.Info = cmdTasksInfoV
			case CmdTasksLs:
				cmdTasksLsV = &TasksLsCmd{}
				cmdTasksV.Ls = cmdTasksLsV
			case CmdTasksRun:
				cmdTasksRunV = &TasksRunCmd{}
				cmdTasksV.Run = cmdTasksRunV
			case CmdTasksValidate:
				cmdTasksValidateV = &TasksValidateCmd{}
				cmdTasksV.Validate = cmdTasksValidateV
			case CmdTestTool:
				cmdTestToolV = &TestToolCmd{}
				out.TestTool = cmdTestToolV
			case CmdToken:
				cmdTokenV = &TokenCmd{}
				out.Token = cmdTokenV
			case CmdTokenForgejo:
				cmdTokenForgejoV = &TokenForgejoCmd{}
				cmdTokenV.Forgejo = cmdTokenForgejoV
			case CmdTokenGithub:
				cmdTokenGithubV = &TokenGithubCmd{}
				cmdTokenV.Github = cmdTokenGithubV
			case CmdTokenGitlab:
				cmdTokenGitlabV = &TokenGitlabCmd{}
				cmdTokenV.Gitlab = cmdTokenGitlabV
			case CmdTool:
				cmdToolV = &ToolCmd{}
				out.ToolCmd = cmdToolV
			case CmdToolStub:
				cmdToolStubV = &ToolStubCmd{}
				out.ToolStub = cmdToolStubV
			case CmdTrust:
				cmdTrustV = &TrustCmd{}
				out.Trust = cmdTrustV
			case CmdUninstall:
				cmdUninstallV = &UninstallCmd{}
				out.Uninstall = cmdUninstallV
			case CmdUnset:
				cmdUnsetV = &UnsetCmd{}
				out.Unset = cmdUnsetV
			case CmdUntrust:
				cmdUntrustV = &UntrustCmd{}
				out.Untrust = cmdUntrustV
			case CmdUnuse:
				cmdUnuseV = &UnuseCmd{}
				out.Unuse = cmdUnuseV
			case CmdUpgrade:
				cmdUpgradeV = &UpgradeCmd{}
				out.Upgrade = cmdUpgradeV
			case CmdUsage:
				cmdUsageV = &UsageCmd{}
				out.Usage = cmdUsageV
			case CmdUse:
				cmdUseV = &UseCmd{}
				out.Use = cmdUseV
			case CmdVersion:
				cmdVersionV = &VersionCmd{}
				out.VersionCmd = cmdVersionV
			case CmdWatch:
				cmdWatchV = &WatchCmd{}
				out.Watch = cmdWatchV
			case CmdWhere:
				cmdWhereV = &WhereCmd{}
				out.Where = cmdWhereV
			case CmdWhich:
				cmdWhichV = &WhichCmd{}
				out.Which = cmdWhichV
			}
		case argv.KindFlag:
			seen[ev.Flag.Key]++
			if ev.Flag.BoolValue {
				// Boolean binding is last-one-wins. Replace an earlier attached value even
				// when the last occurrence is bare, so relationship polarity follows the field.
				if ev.HasValue {
					given[ev.Flag.Key] = []string{ev.Value}
				} else {
					given[ev.Flag.Key] = []string{}
				}
			} else if ev.HasValue {
				given[ev.Flag.Key] = append(given[ev.Flag.Key], argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
			} else if given[ev.Flag.Key] == nil {
				// Given without a value is still given, and nil would read as
				// absent when the fallbacks are applied.
				given[ev.Flag.Key] = []string{}
			}
			switch ev.Flag.Key {
			case FlagContinueOnError:
				out.ContinueOnError = !ev.Negated
			case FlagCd:
				out.Cd = ev.Value
			case FlagEnv:
				if ev.HasValue {
					out.Env = append(out.Env, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagForce:
				out.Force = !ev.Negated
			case FlagJobs:
				out.Jobs = ev.Value
			case FlagDryRun:
				out.DryRun = !ev.Negated
			case FlagProfile:
				if ev.HasValue {
					out.Profile = append(out.Profile, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagQuiet:
				out.Quiet = !ev.Negated
			case FlagShell:
				out.Shell = ev.Value
			case FlagTool:
				if ev.HasValue {
					out.Tool = append(out.Tool, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagVerbose:
				out.Verbose++
			case FlagVersion:
				out.Version = !ev.Negated
			case FlagYes:
				out.Yes = !ev.Negated
			case FlagDebug:
				out.Debug = !ev.Negated
			case FlagLogLevel:
				out.LogLevel = ev.Value
			case FlagNoConfig:
				out.NoConfig = !ev.Negated
			case FlagNoEnv:
				out.NoEnv = !ev.Negated
			case FlagNoHooks:
				out.NoHooks = !ev.Negated
			case FlagNoTimings:
				out.NoTimings = !ev.Negated
			case FlagOutput:
				out.Output = ev.Value
			case FlagRaw:
				out.Raw = !ev.Negated
			case FlagLocked:
				out.Locked = !ev.Negated
			case FlagSilent:
				out.Silent = !ev.Negated
			case FlagTimings:
				out.Timings = !ev.Negated
			case FlagTrace:
				out.Trace = !ev.Negated
			case FlagActivateQuiet:
				cmdActivateV.Quiet = !ev.Negated
			case FlagActivateShell:
				cmdActivateV.Shell = ev.Value
			case FlagActivateNoHookEnv:
				cmdActivateV.NoHookEnv = !ev.Negated
			case FlagActivateShims:
				cmdActivateV.Shims = !ev.Negated
			case FlagActivateStatus:
				cmdActivateV.Status = !ev.Negated
			case FlagToolAliasTool:
				cmdToolAliasV.Tool = ev.Value
			case FlagToolAliasNoHeader:
				cmdToolAliasV.NoHeader = !ev.Negated
			case FlagToolAliasLsNoHeader:
				cmdToolAliasLsV.NoHeader = !ev.Negated
			case FlagBinPathsBinNames:
				cmdBinPathsV.BinNames = !ev.Negated
			case FlagBinPathsJson:
				cmdBinPathsV.Json = !ev.Negated
			case FlagBootstrapDryRun:
				cmdBootstrapV.DryRun = !ev.Negated
			case FlagBootstrapYes:
				cmdBootstrapV.Yes = !ev.Negated
			case FlagBootstrapForceDotfiles:
				cmdBootstrapV.ForceDotfiles = !ev.Negated
			case FlagBootstrapOnly:
				if ev.HasValue {
					cmdBootstrapV.Only = append(cmdBootstrapV.Only, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapPromptSecrets:
				cmdBootstrapV.PromptSecrets = !ev.Negated
			case FlagBootstrapSkip:
				if ev.HasValue {
					cmdBootstrapV.Skip = append(cmdBootstrapV.Skip, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapUpdate:
				cmdBootstrapV.Update = !ev.Negated
			case FlagBootstrapAccountsApplyDryRun:
				cmdBootstrapAccountsApplyV.DryRun = !ev.Negated
			case FlagBootstrapAccountsApplyYes:
				cmdBootstrapAccountsApplyV.Yes = !ev.Negated
			case FlagBootstrapAccountsStatusJson:
				cmdBootstrapAccountsStatusV.Json = !ev.Negated
			case FlagBootstrapAccountsStatusMissing:
				cmdBootstrapAccountsStatusV.Missing = !ev.Negated
			case FlagBootstrapComposeApplyDryRun:
				cmdBootstrapComposeApplyV.DryRun = !ev.Negated
			case FlagBootstrapComposeApplyYes:
				cmdBootstrapComposeApplyV.Yes = !ev.Negated
			case FlagBootstrapComposeStatusJson:
				cmdBootstrapComposeStatusV.Json = !ev.Negated
			case FlagBootstrapComposeStatusMissing:
				cmdBootstrapComposeStatusV.Missing = !ev.Negated
			case FlagBootstrapDotfilesAddForce:
				cmdBootstrapDotfilesAddV.Force = !ev.Negated
			case FlagBootstrapDotfilesAddGlobal:
				cmdBootstrapDotfilesAddV.Global = !ev.Negated
			case FlagBootstrapDotfilesAddLocal:
				cmdBootstrapDotfilesAddV.Local = !ev.Negated
			case FlagBootstrapDotfilesAddMode:
				cmdBootstrapDotfilesAddV.Mode = ev.Value
			case FlagBootstrapDotfilesAddDryRun:
				cmdBootstrapDotfilesAddV.DryRun = !ev.Negated
			case FlagBootstrapDotfilesAddNoApply:
				cmdBootstrapDotfilesAddV.NoApply = !ev.Negated
			case FlagBootstrapDotfilesAddPath:
				cmdBootstrapDotfilesAddV.Path = ev.Value
			case FlagBootstrapDotfilesAddSource:
				cmdBootstrapDotfilesAddV.Source = ev.Value
			case FlagBootstrapDotfilesAddYes:
				cmdBootstrapDotfilesAddV.Yes = !ev.Negated
			case FlagBootstrapDotfilesApplyForce:
				cmdBootstrapDotfilesApplyV.Force = !ev.Negated
			case FlagBootstrapDotfilesApplyDryRun:
				cmdBootstrapDotfilesApplyV.DryRun = !ev.Negated
			case FlagBootstrapDotfilesApplyYes:
				cmdBootstrapDotfilesApplyV.Yes = !ev.Negated
			case FlagBootstrapDotfilesEditApply:
				cmdBootstrapDotfilesEditV.Apply = !ev.Negated
			case FlagBootstrapDotfilesEditMode:
				cmdBootstrapDotfilesEditV.Mode = ev.Value
			case FlagBootstrapDotfilesEditSource:
				cmdBootstrapDotfilesEditV.Source = ev.Value
			case FlagBootstrapDotfilesEditYes:
				cmdBootstrapDotfilesEditV.Yes = !ev.Negated
			case FlagBootstrapDotfilesStatusJson:
				cmdBootstrapDotfilesStatusV.Json = !ev.Negated
			case FlagBootstrapDotfilesStatusMissing:
				cmdBootstrapDotfilesStatusV.Missing = !ev.Negated
			case FlagBootstrapDotfilesUnapplyForce:
				cmdBootstrapDotfilesUnapplyV.Force = !ev.Negated
			case FlagBootstrapDotfilesUnapplyDryRun:
				cmdBootstrapDotfilesUnapplyV.DryRun = !ev.Negated
			case FlagBootstrapDotfilesUnapplyYes:
				cmdBootstrapDotfilesUnapplyV.Yes = !ev.Negated
			case FlagBootstrapFilesApplyDryRun:
				cmdBootstrapFilesApplyV.DryRun = !ev.Negated
			case FlagBootstrapFilesApplyYes:
				cmdBootstrapFilesApplyV.Yes = !ev.Negated
			case FlagBootstrapFilesApplyPromptSecrets:
				cmdBootstrapFilesApplyV.PromptSecrets = !ev.Negated
			case FlagBootstrapFilesStatusJson:
				cmdBootstrapFilesStatusV.Json = !ev.Negated
			case FlagBootstrapFilesStatusMissing:
				cmdBootstrapFilesStatusV.Missing = !ev.Negated
			case FlagBootstrapFilesStatusPromptSecrets:
				cmdBootstrapFilesStatusV.PromptSecrets = !ev.Negated
			case FlagBootstrapFirewallApplyDryRun:
				cmdBootstrapFirewallApplyV.DryRun = !ev.Negated
			case FlagBootstrapFirewallApplyYes:
				cmdBootstrapFirewallApplyV.Yes = !ev.Negated
			case FlagBootstrapFirewallStatusJson:
				cmdBootstrapFirewallStatusV.Json = !ev.Negated
			case FlagBootstrapFirewallStatusMissing:
				cmdBootstrapFirewallStatusV.Missing = !ev.Negated
			case FlagBootstrapLaunchdApplyDryRun:
				cmdBootstrapLaunchdApplyV.DryRun = !ev.Negated
			case FlagBootstrapLaunchdApplyYes:
				cmdBootstrapLaunchdApplyV.Yes = !ev.Negated
			case FlagBootstrapLaunchdStatusJson:
				cmdBootstrapLaunchdStatusV.Json = !ev.Negated
			case FlagBootstrapLaunchdStatusMissing:
				cmdBootstrapLaunchdStatusV.Missing = !ev.Negated
			case FlagBootstrapLinuxSystemdUnitsApplyDryRun:
				cmdBootstrapLinuxSystemdUnitsApplyV.DryRun = !ev.Negated
			case FlagBootstrapLinuxSystemdUnitsApplyYes:
				cmdBootstrapLinuxSystemdUnitsApplyV.Yes = !ev.Negated
			case FlagBootstrapLinuxSystemdUnitsStatusJson:
				cmdBootstrapLinuxSystemdUnitsStatusV.Json = !ev.Negated
			case FlagBootstrapLinuxSystemdUnitsStatusMissing:
				cmdBootstrapLinuxSystemdUnitsStatusV.Missing = !ev.Negated
			case FlagBootstrapMacosDefaultsApplyDryRun:
				cmdBootstrapMacosDefaultsApplyV.DryRun = !ev.Negated
			case FlagBootstrapMacosDefaultsApplyYes:
				cmdBootstrapMacosDefaultsApplyV.Yes = !ev.Negated
			case FlagBootstrapMacosDefaultsStatusJson:
				cmdBootstrapMacosDefaultsStatusV.Json = !ev.Negated
			case FlagBootstrapMacosDefaultsStatusMissing:
				cmdBootstrapMacosDefaultsStatusV.Missing = !ev.Negated
			case FlagBootstrapMacosLaunchdAgentsApplyDryRun:
				cmdBootstrapMacosLaunchdAgentsApplyV.DryRun = !ev.Negated
			case FlagBootstrapMacosLaunchdAgentsApplyYes:
				cmdBootstrapMacosLaunchdAgentsApplyV.Yes = !ev.Negated
			case FlagBootstrapMacosLaunchdAgentsStatusJson:
				cmdBootstrapMacosLaunchdAgentsStatusV.Json = !ev.Negated
			case FlagBootstrapMacosLaunchdAgentsStatusMissing:
				cmdBootstrapMacosLaunchdAgentsStatusV.Missing = !ev.Negated
			case FlagBootstrapMacosDefaultsApplyDryRun2:
				cmdBootstrapMacosDefaultsApply2V.DryRun = !ev.Negated
			case FlagBootstrapMacosDefaultsApplyYes2:
				cmdBootstrapMacosDefaultsApply2V.Yes = !ev.Negated
			case FlagBootstrapMacosDefaultsStatusJson2:
				cmdBootstrapMacosDefaultsStatus2V.Json = !ev.Negated
			case FlagBootstrapMacosDefaultsStatusMissing2:
				cmdBootstrapMacosDefaultsStatus2V.Missing = !ev.Negated
			case FlagBootstrapMiseShellActivateApplyDryRun:
				cmdBootstrapMiseShellActivateApplyV.DryRun = !ev.Negated
			case FlagBootstrapMiseShellActivateApplyYes:
				cmdBootstrapMiseShellActivateApplyV.Yes = !ev.Negated
			case FlagBootstrapMiseShellActivateStatusJson:
				cmdBootstrapMiseShellActivateStatusV.Json = !ev.Negated
			case FlagBootstrapMiseShellActivateStatusMissing:
				cmdBootstrapMiseShellActivateStatusV.Missing = !ev.Negated
			case FlagBootstrapPackagesApplyManager:
				cmdBootstrapPackagesApplyV.Manager = ev.Value
			case FlagBootstrapPackagesApplyDryRun:
				cmdBootstrapPackagesApplyV.DryRun = !ev.Negated
			case FlagBootstrapPackagesApplyYes:
				cmdBootstrapPackagesApplyV.Yes = !ev.Negated
			case FlagBootstrapPackagesApplyUpdate:
				cmdBootstrapPackagesApplyV.Update = !ev.Negated
			case FlagBootstrapPackagesBrewTapLocal:
				cmdBootstrapPackagesBrewTapV.Local = !ev.Negated
			case FlagBootstrapPackagesBrewTapDryRun:
				cmdBootstrapPackagesBrewTapV.DryRun = !ev.Negated
			case FlagBootstrapPackagesBrewTapPath:
				cmdBootstrapPackagesBrewTapV.Path = ev.Value
			case FlagBootstrapPackagesBrewUntapLocal:
				cmdBootstrapPackagesBrewUntapV.Local = !ev.Negated
			case FlagBootstrapPackagesBrewUntapDryRun:
				cmdBootstrapPackagesBrewUntapV.DryRun = !ev.Negated
			case FlagBootstrapPackagesBrewUntapPath:
				cmdBootstrapPackagesBrewUntapV.Path = ev.Value
			case FlagBootstrapPackagesImportEnv:
				cmdBootstrapPackagesImportV.Env = ev.Value
			case FlagBootstrapPackagesImportGlobal:
				cmdBootstrapPackagesImportV.Global = !ev.Negated
			case FlagBootstrapPackagesImportManager:
				cmdBootstrapPackagesImportV.Manager = ev.Value
			case FlagBootstrapPackagesImportAll:
				cmdBootstrapPackagesImportV.All = !ev.Negated
			case FlagBootstrapPackagesImportDryRun:
				cmdBootstrapPackagesImportV.DryRun = !ev.Negated
			case FlagBootstrapPackagesImportPath:
				cmdBootstrapPackagesImportV.Path = ev.Value
			case FlagBootstrapPackagesPruneManager:
				cmdBootstrapPackagesPruneV.Manager = ev.Value
			case FlagBootstrapPackagesPruneDryRun:
				cmdBootstrapPackagesPruneV.DryRun = !ev.Negated
			case FlagBootstrapPackagesPruneYes:
				cmdBootstrapPackagesPruneV.Yes = !ev.Negated
			case FlagBootstrapPackagesStatusJson:
				cmdBootstrapPackagesStatusV.Json = !ev.Negated
			case FlagBootstrapPackagesStatusMissing:
				cmdBootstrapPackagesStatusV.Missing = !ev.Negated
			case FlagBootstrapPackagesUpgradeManager:
				cmdBootstrapPackagesUpgradeV.Manager = ev.Value
			case FlagBootstrapPackagesUpgradeDryRun:
				cmdBootstrapPackagesUpgradeV.DryRun = !ev.Negated
			case FlagBootstrapPackagesUpgradeYes:
				cmdBootstrapPackagesUpgradeV.Yes = !ev.Negated
			case FlagBootstrapPackagesUseEnv:
				cmdBootstrapPackagesUseV.Env = ev.Value
			case FlagBootstrapPackagesUseGlobal:
				cmdBootstrapPackagesUseV.Global = !ev.Negated
			case FlagBootstrapPackagesUseDryRun:
				cmdBootstrapPackagesUseV.DryRun = !ev.Negated
			case FlagBootstrapPackagesUsePath:
				cmdBootstrapPackagesUseV.Path = ev.Value
			case FlagBootstrapPackagesUseYes:
				cmdBootstrapPackagesUseV.Yes = !ev.Negated
			case FlagBootstrapPlanJson:
				cmdBootstrapPlanV.Json = !ev.Negated
			case FlagBootstrapPlanDetailedExitcode:
				cmdBootstrapPlanV.DetailedExitcode = !ev.Negated
			case FlagBootstrapPlanPromptSecrets:
				cmdBootstrapPlanV.PromptSecrets = !ev.Negated
			case FlagBootstrapPluginsApplyDryRun:
				cmdBootstrapPluginsApplyV.DryRun = !ev.Negated
			case FlagBootstrapPluginsStatusMissing:
				cmdBootstrapPluginsStatusV.Missing = !ev.Negated
			case FlagBootstrapRemoteAll:
				cmdBootstrapRemoteV.All = !ev.Negated
			case FlagBootstrapRemoteBootstrapCommand:
				cmdBootstrapRemoteV.BootstrapCommand = ev.Value
			case FlagBootstrapRemoteConnectTimeout:
				cmdBootstrapRemoteV.ConnectTimeout = ev.Value
			case FlagBootstrapRemoteCopyLink:
				if ev.HasValue {
					cmdBootstrapRemoteV.CopyLink = append(cmdBootstrapRemoteV.CopyLink, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteCopyLinks:
				cmdBootstrapRemoteV.CopyLinks = !ev.Negated
			case FlagBootstrapRemoteExclude:
				if ev.HasValue {
					cmdBootstrapRemoteV.Exclude = append(cmdBootstrapRemoteV.Exclude, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteFailFast:
				cmdBootstrapRemoteV.FailFast = !ev.Negated
			case FlagBootstrapRemoteForceDotfiles:
				cmdBootstrapRemoteV.ForceDotfiles = !ev.Negated
			case FlagBootstrapRemoteHost:
				if ev.HasValue {
					cmdBootstrapRemoteV.Host = append(cmdBootstrapRemoteV.Host, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteIdentityFile:
				cmdBootstrapRemoteV.IdentityFile = ev.Value
			case FlagBootstrapRemoteDryRun:
				cmdBootstrapRemoteV.DryRun = !ev.Negated
			case FlagBootstrapRemoteKeepStaging:
				cmdBootstrapRemoteV.KeepStaging = !ev.Negated
			case FlagBootstrapRemoteMiseBin:
				cmdBootstrapRemoteV.MiseBin = ev.Value
			case FlagBootstrapRemoteOnly:
				if ev.HasValue {
					cmdBootstrapRemoteV.Only = append(cmdBootstrapRemoteV.Only, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemotePort:
				cmdBootstrapRemoteV.Port = ev.Value
			case FlagBootstrapRemotePromptSecrets:
				cmdBootstrapRemoteV.PromptSecrets = !ev.Negated
			case FlagBootstrapRemoteRemoteEnv:
				if ev.HasValue {
					cmdBootstrapRemoteV.RemoteEnv = append(cmdBootstrapRemoteV.RemoteEnv, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteRemoteMise:
				cmdBootstrapRemoteV.RemoteMise = ev.Value
			case FlagBootstrapRemoteSkip:
				if ev.HasValue {
					cmdBootstrapRemoteV.Skip = append(cmdBootstrapRemoteV.Skip, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteSource:
				cmdBootstrapRemoteV.Source = ev.Value
			case FlagBootstrapRemoteSshOption:
				if ev.HasValue {
					cmdBootstrapRemoteV.SshOption = append(cmdBootstrapRemoteV.SshOption, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteTag:
				if ev.HasValue {
					cmdBootstrapRemoteV.Tag = append(cmdBootstrapRemoteV.Tag, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagBootstrapRemoteUpdate:
				cmdBootstrapRemoteV.Update = !ev.Negated
			case FlagBootstrapRemoteYes:
				cmdBootstrapRemoteV.Yes = !ev.Negated
			case FlagBootstrapReposApplyDryRun:
				cmdBootstrapReposApplyV.DryRun = !ev.Negated
			case FlagBootstrapReposApplyYes:
				cmdBootstrapReposApplyV.Yes = !ev.Negated
			case FlagBootstrapReposExecContinueOnError:
				cmdBootstrapReposExecV.ContinueOnError = !ev.Negated
			case FlagBootstrapReposExecDryRun:
				cmdBootstrapReposExecV.DryRun = !ev.Negated
			case FlagBootstrapReposStatusJson:
				cmdBootstrapReposStatusV.Json = !ev.Negated
			case FlagBootstrapReposStatusMissing:
				cmdBootstrapReposStatusV.Missing = !ev.Negated
			case FlagBootstrapReposUpdateDryRun:
				cmdBootstrapReposUpdateV.DryRun = !ev.Negated
			case FlagBootstrapReposUpdateYes:
				cmdBootstrapReposUpdateV.Yes = !ev.Negated
			case FlagBootstrapSecretsStatusJson:
				cmdBootstrapSecretsStatusV.Json = !ev.Negated
			case FlagBootstrapSecretsStatusMissing:
				cmdBootstrapSecretsStatusV.Missing = !ev.Negated
			case FlagBootstrapServicesApplyDryRun:
				cmdBootstrapServicesApplyV.DryRun = !ev.Negated
			case FlagBootstrapServicesApplyYes:
				cmdBootstrapServicesApplyV.Yes = !ev.Negated
			case FlagBootstrapServicesStatusJson:
				cmdBootstrapServicesStatusV.Json = !ev.Negated
			case FlagBootstrapServicesStatusMissing:
				cmdBootstrapServicesStatusV.Missing = !ev.Negated
			case FlagBootstrapStatusJson:
				cmdBootstrapStatusV.Json = !ev.Negated
			case FlagBootstrapStatusMissing:
				cmdBootstrapStatusV.Missing = !ev.Negated
			case FlagBootstrapStatusPromptSecrets:
				cmdBootstrapStatusV.PromptSecrets = !ev.Negated
			case FlagBootstrapSystemdApplyDryRun:
				cmdBootstrapSystemdApplyV.DryRun = !ev.Negated
			case FlagBootstrapSystemdApplyYes:
				cmdBootstrapSystemdApplyV.Yes = !ev.Negated
			case FlagBootstrapSystemdStatusJson:
				cmdBootstrapSystemdStatusV.Json = !ev.Negated
			case FlagBootstrapSystemdStatusMissing:
				cmdBootstrapSystemdStatusV.Missing = !ev.Negated
			case FlagBootstrapUserApplyDryRun:
				cmdBootstrapUserApplyV.DryRun = !ev.Negated
			case FlagBootstrapUserApplyYes:
				cmdBootstrapUserApplyV.Yes = !ev.Negated
			case FlagBootstrapUserStatusJson:
				cmdBootstrapUserStatusV.Json = !ev.Negated
			case FlagBootstrapUserStatusMissing:
				cmdBootstrapUserStatusV.Missing = !ev.Negated
			case FlagCacheClearOutdate:
				cmdCacheClearV.Outdate = !ev.Negated
			case FlagCacheClearTask:
				cmdCacheClearV.Task = ev.Value
			case FlagCachePruneVerbose:
				cmdCachePruneV.Verbose++
			case FlagCachePruneDryRun:
				cmdCachePruneV.DryRun = !ev.Negated
			case FlagCacheTaskJson:
				cmdCacheTaskV.Json = !ev.Negated
			case FlagCompletionShell:
				cmdCompletionV.Shell = ev.Value
			case FlagCompletionIncludeBashCompletionLib:
				cmdCompletionV.IncludeBashCompletionLib = !ev.Negated
			case FlagCompletionUsage:
				cmdCompletionV.Usage = !ev.Negated
			case FlagConfigJson:
				cmdConfigV.Json = !ev.Negated
			case FlagConfigNoHeader:
				cmdConfigV.NoHeader = !ev.Negated
			case FlagConfigTrackedConfigs:
				cmdConfigV.TrackedConfigs = !ev.Negated
			case FlagConfigGetFile:
				cmdConfigGetV.File = ev.Value
			case FlagConfigLsJson:
				cmdConfigLsV.Json = !ev.Negated
			case FlagConfigLsNoHeader:
				cmdConfigLsV.NoHeader = !ev.Negated
			case FlagConfigLsTrackedConfigs:
				cmdConfigLsV.TrackedConfigs = !ev.Negated
			case FlagConfigSetFile:
				cmdConfigSetV.File = ev.Value
			case FlagConfigSetType:
				cmdConfigSetV.Type = ev.Value
			case FlagDotfilesAddForce:
				cmdDotfilesAddV.Force = !ev.Negated
			case FlagDotfilesAddGlobal:
				cmdDotfilesAddV.Global = !ev.Negated
			case FlagDotfilesAddLocal:
				cmdDotfilesAddV.Local = !ev.Negated
			case FlagDotfilesAddMode:
				cmdDotfilesAddV.Mode = ev.Value
			case FlagDotfilesAddDryRun:
				cmdDotfilesAddV.DryRun = !ev.Negated
			case FlagDotfilesAddNoApply:
				cmdDotfilesAddV.NoApply = !ev.Negated
			case FlagDotfilesAddPath:
				cmdDotfilesAddV.Path = ev.Value
			case FlagDotfilesAddSource:
				cmdDotfilesAddV.Source = ev.Value
			case FlagDotfilesAddYes:
				cmdDotfilesAddV.Yes = !ev.Negated
			case FlagDotfilesApplyForce:
				cmdDotfilesApplyV.Force = !ev.Negated
			case FlagDotfilesApplyDryRun:
				cmdDotfilesApplyV.DryRun = !ev.Negated
			case FlagDotfilesApplyYes:
				cmdDotfilesApplyV.Yes = !ev.Negated
			case FlagDotfilesEditApply:
				cmdDotfilesEditV.Apply = !ev.Negated
			case FlagDotfilesEditMode:
				cmdDotfilesEditV.Mode = ev.Value
			case FlagDotfilesEditSource:
				cmdDotfilesEditV.Source = ev.Value
			case FlagDotfilesEditYes:
				cmdDotfilesEditV.Yes = !ev.Negated
			case FlagDotfilesStatusJson:
				cmdDotfilesStatusV.Json = !ev.Negated
			case FlagDotfilesStatusMissing:
				cmdDotfilesStatusV.Missing = !ev.Negated
			case FlagDotfilesUnapplyForce:
				cmdDotfilesUnapplyV.Force = !ev.Negated
			case FlagDotfilesUnapplyDryRun:
				cmdDotfilesUnapplyV.DryRun = !ev.Negated
			case FlagDotfilesUnapplyYes:
				cmdDotfilesUnapplyV.Yes = !ev.Negated
			case FlagDoctorJson:
				cmdDoctorV.Json = !ev.Negated
			case FlagDoctorPathFull:
				cmdDoctorPathV.Full = !ev.Negated
			case FlagEnShell:
				cmdEnV.Shell = ev.Value
			case FlagEnvDotenv:
				cmdEnvV.Dotenv = !ev.Negated
			case FlagEnvJson:
				cmdEnvV.Json = !ev.Negated
			case FlagEnvShell:
				cmdEnvV.Shell = ev.Value
			case FlagEnvJsonExtended:
				cmdEnvV.JsonExtended = !ev.Negated
			case FlagEnvRedacted:
				cmdEnvV.Redacted = !ev.Negated
			case FlagEnvValues:
				cmdEnvV.Values = !ev.Negated
			case FlagExecCommand:
				cmdExecV.Command = ev.Value
			case FlagExecJobs:
				cmdExecV.Jobs = ev.Value
			case FlagExecAllowEnv:
				if ev.HasValue {
					cmdExecV.AllowEnv = append(cmdExecV.AllowEnv, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagExecAllowNet:
				if ev.HasValue {
					cmdExecV.AllowNet = append(cmdExecV.AllowNet, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagExecAllowRead:
				if ev.HasValue {
					cmdExecV.AllowRead = append(cmdExecV.AllowRead, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagExecAllowWrite:
				if ev.HasValue {
					cmdExecV.AllowWrite = append(cmdExecV.AllowWrite, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagExecDenyAll:
				cmdExecV.DenyAll = !ev.Negated
			case FlagExecDenyEnv:
				cmdExecV.DenyEnv = !ev.Negated
			case FlagExecDenyNet:
				cmdExecV.DenyNet = !ev.Negated
			case FlagExecDenyRead:
				cmdExecV.DenyRead = !ev.Negated
			case FlagExecDenyWrite:
				cmdExecV.DenyWrite = !ev.Negated
			case FlagExecFreshEnv:
				cmdExecV.FreshEnv = !ev.Negated
			case FlagExecNoDeps:
				cmdExecV.NoDeps = !ev.Negated
			case FlagExecRaw:
				cmdExecV.Raw = !ev.Negated
			case FlagFmtAll:
				cmdFmtV.All = !ev.Negated
			case FlagFmtCheck:
				cmdFmtV.Check = !ev.Negated
			case FlagFmtStdin:
				cmdFmtV.Stdin = !ev.Negated
			case FlagGenerateBootstrapLocalize:
				cmdGenerateBootstrapV.Localize = !ev.Negated
			case FlagGenerateBootstrapVersion:
				cmdGenerateBootstrapV.Version = ev.Value
			case FlagGenerateBootstrapWrite:
				cmdGenerateBootstrapV.Write = ev.Value
			case FlagGenerateBootstrapLocalizedDir:
				cmdGenerateBootstrapV.LocalizedDir = ev.Value
			case FlagGenerateBootstrapWindows:
				cmdGenerateBootstrapV.Windows = !ev.Negated
			case FlagGenerateConfigGlobal:
				cmdGenerateConfigV.Global = !ev.Negated
			case FlagGenerateConfigDryRun:
				cmdGenerateConfigV.DryRun = !ev.Negated
			case FlagGenerateConfigToolVersions:
				cmdGenerateConfigV.ToolVersions = ev.Value
			case FlagGenerateDevcontainerImage:
				cmdGenerateDevcontainerV.Image = ev.Value
			case FlagGenerateDevcontainerMountMiseData:
				cmdGenerateDevcontainerV.MountMiseData = !ev.Negated
			case FlagGenerateDevcontainerName:
				cmdGenerateDevcontainerV.Name = ev.Value
			case FlagGenerateDevcontainerWrite:
				cmdGenerateDevcontainerV.Write = !ev.Negated
			case FlagGenerateGitPreCommitTask:
				cmdGenerateGitPreCommitV.Task = ev.Value
			case FlagGenerateGitPreCommitWrite:
				cmdGenerateGitPreCommitV.Write = !ev.Negated
			case FlagGenerateGitPreCommitHook:
				cmdGenerateGitPreCommitV.Hook = ev.Value
			case FlagGenerateGithubActionTask:
				cmdGenerateGithubActionV.Task = ev.Value
			case FlagGenerateGithubActionWrite:
				cmdGenerateGithubActionV.Write = !ev.Negated
			case FlagGenerateGithubActionName:
				cmdGenerateGithubActionV.Name = ev.Value
			case FlagGenerateTaskDocsInject:
				cmdGenerateTaskDocsV.Inject = !ev.Negated
			case FlagGenerateTaskDocsIndex:
				cmdGenerateTaskDocsV.Index = !ev.Negated
			case FlagGenerateTaskDocsMulti:
				cmdGenerateTaskDocsV.Multi = !ev.Negated
			case FlagGenerateTaskDocsOutput:
				cmdGenerateTaskDocsV.Output = ev.Value
			case FlagGenerateTaskDocsRoot:
				cmdGenerateTaskDocsV.Root = ev.Value
			case FlagGenerateTaskDocsStyle:
				cmdGenerateTaskDocsV.Style = ev.Value
			case FlagGenerateTaskStubsDir:
				cmdGenerateTaskStubsV.Dir = ev.Value
			case FlagGenerateTaskStubsMiseBin:
				cmdGenerateTaskStubsV.MiseBin = ev.Value
			case FlagGenerateToolStubBin:
				cmdGenerateToolStubV.Bin = ev.Value
			case FlagGenerateToolStubBootstrap:
				cmdGenerateToolStubV.Bootstrap = !ev.Negated
			case FlagGenerateToolStubBootstrapVersion:
				cmdGenerateToolStubV.BootstrapVersion = ev.Value
			case FlagGenerateToolStubChecksumAlgorithm:
				cmdGenerateToolStubV.ChecksumAlgorithm = ev.Value
			case FlagGenerateToolStubFetch:
				cmdGenerateToolStubV.Fetch = !ev.Negated
			case FlagGenerateToolStubHttp:
				cmdGenerateToolStubV.Http = ev.Value
			case FlagGenerateToolStubLock:
				cmdGenerateToolStubV.Lock = !ev.Negated
			case FlagGenerateToolStubPlatformBin:
				if ev.HasValue {
					cmdGenerateToolStubV.PlatformBin = append(cmdGenerateToolStubV.PlatformBin, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagGenerateToolStubPlatformUrl:
				if ev.HasValue {
					cmdGenerateToolStubV.PlatformUrl = append(cmdGenerateToolStubV.PlatformUrl, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagGenerateToolStubSkipDownload:
				cmdGenerateToolStubV.SkipDownload = !ev.Negated
			case FlagGenerateToolStubUrl:
				cmdGenerateToolStubV.Url = ev.Value
			case FlagGenerateToolStubVersion:
				cmdGenerateToolStubV.Version = ev.Value
			case FlagGithubTokenOauth:
				cmdGithubTokenV.Oauth = !ev.Negated
			case FlagGithubTokenRaw:
				cmdGithubTokenV.Raw = !ev.Negated
			case FlagGithubTokenRefresh:
				cmdGithubTokenV.Refresh = !ev.Negated
			case FlagGithubTokenUnmask:
				cmdGithubTokenV.Unmask = !ev.Negated
			case FlagGlobalFuzzy:
				cmdGlobalV.Fuzzy = !ev.Negated
			case FlagGlobalPath:
				cmdGlobalV.Path = !ev.Negated
			case FlagGlobalPin:
				cmdGlobalV.Pin = !ev.Negated
			case FlagGlobalRemove:
				if ev.HasValue {
					cmdGlobalV.Remove = append(cmdGlobalV.Remove, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagHookEnvForce:
				cmdHookEnvV.Force = !ev.Negated
			case FlagHookEnvQuiet:
				cmdHookEnvV.Quiet = !ev.Negated
			case FlagHookEnvShell:
				cmdHookEnvV.Shell = ev.Value
			case FlagHookEnvReason:
				cmdHookEnvV.Reason = ev.Value
			case FlagHookEnvStatus:
				cmdHookEnvV.Status = !ev.Negated
			case FlagHookNotFoundShell:
				cmdHookNotFoundV.Shell = ev.Value
			case FlagImplodeDryRun:
				cmdImplodeV.DryRun = !ev.Negated
			case FlagImplodeConfig:
				cmdImplodeV.Config = !ev.Negated
			case FlagEditGlobal:
				cmdEditV.Global = !ev.Negated
			case FlagEditDryRun:
				cmdEditV.DryRun = !ev.Negated
			case FlagEditToolVersions:
				cmdEditV.ToolVersions = ev.Value
			case FlagInstallForce:
				cmdInstallV.Force = !ev.Negated
			case FlagInstallJobs:
				cmdInstallV.Jobs = ev.Value
			case FlagInstallDryRun:
				cmdInstallV.DryRun = !ev.Negated
			case FlagInstallVerbose:
				cmdInstallV.Verbose++
			case FlagInstallDryRunCode:
				cmdInstallV.DryRunCode = !ev.Negated
			case FlagInstallIncludeTaskTools:
				cmdInstallV.IncludeTaskTools = !ev.Negated
			case FlagInstallMinimumReleaseAge:
				cmdInstallV.MinimumReleaseAge = ev.Value
			case FlagInstallMonorepo:
				cmdInstallV.Monorepo = !ev.Negated
			case FlagInstallRaw:
				cmdInstallV.Raw = !ev.Negated
			case FlagInstallShared:
				cmdInstallV.Shared = ev.Value
			case FlagInstallSystem:
				cmdInstallV.System = !ev.Negated
			case FlagLatestInstalled:
				cmdLatestV.Installed = !ev.Negated
			case FlagLatestMinimumReleaseAge:
				cmdLatestV.MinimumReleaseAge = ev.Value
			case FlagLinkForce:
				cmdLinkV.Force = !ev.Negated
			case FlagLocalParent:
				cmdLocalV.Parent = !ev.Negated
			case FlagLocalFuzzy:
				cmdLocalV.Fuzzy = !ev.Negated
			case FlagLocalPath:
				cmdLocalV.Path = !ev.Negated
			case FlagLocalPin:
				cmdLocalV.Pin = !ev.Negated
			case FlagLocalRemove:
				if ev.HasValue {
					cmdLocalV.Remove = append(cmdLocalV.Remove, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagLockGlobal:
				cmdLockV.Global = !ev.Negated
			case FlagLockJobs:
				cmdLockV.Jobs = ev.Value
			case FlagLockDryRun:
				cmdLockV.DryRun = !ev.Negated
			case FlagLockPlatform:
				if ev.HasValue {
					cmdLockV.Platform = append(cmdLockV.Platform, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagLockBump:
				cmdLockV.Bump = !ev.Negated
			case FlagLockJson:
				cmdLockV.Json = !ev.Negated
			case FlagLockLocal:
				cmdLockV.Local = !ev.Negated
			case FlagLockMinimumReleaseAge:
				cmdLockV.MinimumReleaseAge = ev.Value
			case FlagLsCurrent:
				cmdLsV.Current = !ev.Negated
			case FlagLsGlobal:
				cmdLsV.Global = !ev.Negated
			case FlagLsInstalled:
				cmdLsV.Installed = !ev.Negated
			case FlagLsJson:
				cmdLsV.Json = !ev.Negated
			case FlagLsLocal:
				cmdLsV.Local = !ev.Negated
			case FlagLsMissing:
				cmdLsV.Missing = !ev.Negated
			case FlagLsOffline:
				cmdLsV.Offline = !ev.Negated
			case FlagLsPlugin:
				cmdLsV.Plugin = ev.Value
			case FlagLsAllSources:
				cmdLsV.AllSources = !ev.Negated
			case FlagLsMonorepo:
				cmdLsV.Monorepo = !ev.Negated
			case FlagLsNoHeader:
				cmdLsV.NoHeader = !ev.Negated
			case FlagLsOutdated:
				cmdLsV.Outdated = !ev.Negated
			case FlagLsPrefix:
				cmdLsV.Prefix = ev.Value
			case FlagLsPrunable:
				cmdLsV.Prunable = !ev.Negated
			case FlagLsRemoteAll:
				cmdLsRemoteV.All = !ev.Negated
			case FlagLsRemoteMinimumReleaseAge:
				cmdLsRemoteV.MinimumReleaseAge = ev.Value
			case FlagLsRemoteJson:
				cmdLsRemoteV.Json = !ev.Negated
			case FlagLsRemoteNoVersionsHost:
				cmdLsRemoteV.NoVersionsHost = !ev.Negated
			case FlagLsRemotePrerelease:
				cmdLsRemoteV.Prerelease = !ev.Negated
			case FlagLsRemoteStrictMetadata:
				cmdLsRemoteV.StrictMetadata = !ev.Negated
			case FlagOciBuildCopy:
				if ev.HasValue {
					cmdOciBuildV.Copy = append(cmdOciBuildV.Copy, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagOciBuildOutput:
				cmdOciBuildV.Output = ev.Value
			case FlagOciBuildFrom:
				cmdOciBuildV.From = ev.Value
			case FlagOciBuildIncludeGlobal:
				cmdOciBuildV.IncludeGlobal = !ev.Negated
			case FlagOciBuildTag:
				cmdOciBuildV.Tag = ev.Value
			case FlagOciBuildMountPoint:
				cmdOciBuildV.MountPoint = ev.Value
			case FlagOciBuildNoMise:
				cmdOciBuildV.NoMise = !ev.Negated
			case FlagOciBuildOwner:
				cmdOciBuildV.Owner = ev.Value
			case FlagOciPushCacheFrom:
				cmdOciPushV.CacheFrom = ev.Value
			case FlagOciPushFrom:
				cmdOciPushV.From = ev.Value
			case FlagOciPushImageDir:
				cmdOciPushV.ImageDir = ev.Value
			case FlagOciPushIncludeGlobal:
				cmdOciPushV.IncludeGlobal = !ev.Negated
			case FlagOciPushMountPoint:
				cmdOciPushV.MountPoint = ev.Value
			case FlagOciPushNoCache:
				cmdOciPushV.NoCache = !ev.Negated
			case FlagOciPushNoMise:
				cmdOciPushV.NoMise = !ev.Negated
			case FlagOciPushOwner:
				cmdOciPushV.Owner = ev.Value
			case FlagOciPushUpdateIndex:
				cmdOciPushV.UpdateIndex = !ev.Negated
			case FlagOciRunEngine:
				cmdOciRunV.Engine = ev.Value
			case FlagOciRunFrom:
				cmdOciRunV.From = ev.Value
			case FlagOciRunImageDir:
				cmdOciRunV.ImageDir = ev.Value
			case FlagOciRunIncludeGlobal:
				cmdOciRunV.IncludeGlobal = !ev.Negated
			case FlagOciRunKeep:
				cmdOciRunV.Keep = !ev.Negated
			case FlagOciRunMountPoint:
				cmdOciRunV.MountPoint = ev.Value
			case FlagOciRunNoMise:
				cmdOciRunV.NoMise = !ev.Negated
			case FlagOciRunOwner:
				cmdOciRunV.Owner = ev.Value
			case FlagOciRunVolume:
				if ev.HasValue {
					cmdOciRunV.Volume = append(cmdOciRunV.Volume, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagOciRunEnv:
				if ev.HasValue {
					cmdOciRunV.Env = append(cmdOciRunV.Env, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagOciRunInteractive:
				cmdOciRunV.Interactive = !ev.Negated
			case FlagOciRunTty:
				cmdOciRunV.Tty = !ev.Negated
			case FlagOciRunWorkdir:
				cmdOciRunV.Workdir = ev.Value
			case FlagOutdatedBump:
				cmdOutdatedV.Bump = !ev.Negated
			case FlagOutdatedJson:
				cmdOutdatedV.Json = !ev.Negated
			case FlagOutdatedL:
				cmdOutdatedV.L = !ev.Negated
			case FlagOutdatedInactive:
				cmdOutdatedV.Inactive = !ev.Negated
			case FlagOutdatedLocal:
				cmdOutdatedV.Local = !ev.Negated
			case FlagOutdatedMonorepo:
				cmdOutdatedV.Monorepo = !ev.Negated
			case FlagOutdatedNoHeader:
				cmdOutdatedV.NoHeader = !ev.Negated
			case FlagPatronsJson:
				cmdPatronsV.Json = !ev.Negated
			case FlagPatronsRefresh:
				cmdPatronsV.Refresh = !ev.Negated
			case FlagPluginsAll:
				cmdPluginsV.All = !ev.Negated
			case FlagPluginsCore:
				cmdPluginsV.Core = !ev.Negated
			case FlagPluginsUrls:
				cmdPluginsV.Urls = !ev.Negated
			case FlagPluginsRefs:
				cmdPluginsV.Refs = !ev.Negated
			case FlagPluginsUser:
				cmdPluginsV.User = !ev.Negated
			case FlagPluginsInstallAll:
				cmdPluginsInstallV.All = !ev.Negated
			case FlagPluginsInstallForce:
				cmdPluginsInstallV.Force = !ev.Negated
			case FlagPluginsInstallJobs:
				cmdPluginsInstallV.Jobs = ev.Value
			case FlagPluginsInstallVerbose:
				cmdPluginsInstallV.Verbose++
			case FlagPluginsLinkForce:
				cmdPluginsLinkV.Force = !ev.Negated
			case FlagPluginsLsAll:
				cmdPluginsLsV.All = !ev.Negated
			case FlagPluginsLsCore:
				cmdPluginsLsV.Core = !ev.Negated
			case FlagPluginsLsOutdated:
				cmdPluginsLsV.Outdated = !ev.Negated
			case FlagPluginsLsUrls:
				cmdPluginsLsV.Urls = !ev.Negated
			case FlagPluginsLsRefs:
				cmdPluginsLsV.Refs = !ev.Negated
			case FlagPluginsLsUser:
				cmdPluginsLsV.User = !ev.Negated
			case FlagPluginsLsRemoteUrls:
				cmdPluginsLsRemoteV.Urls = !ev.Negated
			case FlagPluginsLsRemoteOnlyNames:
				cmdPluginsLsRemoteV.OnlyNames = !ev.Negated
			case FlagPluginsUninstallAll:
				cmdPluginsUninstallV.All = !ev.Negated
			case FlagPluginsUninstallPurge:
				cmdPluginsUninstallV.Purge = !ev.Negated
			case FlagPluginsUpdateJobs:
				cmdPluginsUpdateV.Jobs = ev.Value
			case FlagDepsExplain:
				cmdDepsV.Explain = !ev.Negated
			case FlagDepsForce:
				cmdDepsV.Force = !ev.Negated
			case FlagDepsDryRun:
				cmdDepsV.DryRun = !ev.Negated
			case FlagDepsList:
				cmdDepsV.List = !ev.Negated
			case FlagDepsMonorepo:
				cmdDepsV.Monorepo = !ev.Negated
			case FlagDepsOnly:
				if ev.HasValue {
					cmdDepsV.Only = append(cmdDepsV.Only, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagDepsSkip:
				if ev.HasValue {
					cmdDepsV.Skip = append(cmdDepsV.Skip, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagDepsAddDev:
				cmdDepsAddV.Dev = !ev.Negated
			case FlagDepsInstallExplain:
				cmdDepsInstallV.Explain = !ev.Negated
			case FlagDepsInstallForce:
				cmdDepsInstallV.Force = !ev.Negated
			case FlagDepsInstallDryRun:
				cmdDepsInstallV.DryRun = !ev.Negated
			case FlagDepsInstallList:
				cmdDepsInstallV.List = !ev.Negated
			case FlagDepsInstallMonorepo:
				cmdDepsInstallV.Monorepo = !ev.Negated
			case FlagDepsInstallOnly:
				if ev.HasValue {
					cmdDepsInstallV.Only = append(cmdDepsInstallV.Only, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagDepsInstallSkip:
				if ev.HasValue {
					cmdDepsInstallV.Skip = append(cmdDepsInstallV.Skip, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagPruneDryRun:
				cmdPruneV.DryRun = !ev.Negated
			case FlagPruneConfigs:
				cmdPruneV.Configs = !ev.Negated
			case FlagPruneDryRunCode:
				cmdPruneV.DryRunCode = !ev.Negated
			case FlagPruneMonorepo:
				cmdPruneV.Monorepo = !ev.Negated
			case FlagPruneTools:
				cmdPruneV.Tools = !ev.Negated
			case FlagRegistryBackend:
				cmdRegistryV.Backend = ev.Value
			case FlagRegistryComplete:
				cmdRegistryV.Complete = !ev.Negated
			case FlagRegistryHideAliased:
				cmdRegistryV.HideAliased = !ev.Negated
			case FlagRegistryJson:
				cmdRegistryV.Json = !ev.Negated
			case FlagRegistrySecurity:
				cmdRegistryV.Security = !ev.Negated
			case FlagReshimForce:
				cmdReshimV.Force = !ev.Negated
			case FlagRunAffected:
				cmdRunV.Affected = !ev.Negated
			case FlagRunAffectedBase:
				cmdRunV.AffectedBase = ev.Value
			case FlagRunAffectedExplain:
				cmdRunV.AffectedExplain = !ev.Negated
			case FlagRunAffectedHead:
				cmdRunV.AffectedHead = ev.Value
			case FlagRunAffectedJson:
				cmdRunV.AffectedJson = !ev.Negated
			case FlagRunAll:
				cmdRunV.All = !ev.Negated
			case FlagRunContinueOnError:
				cmdRunV.ContinueOnError = !ev.Negated
			case FlagRunCd:
				cmdRunV.Cd = ev.Value
			case FlagRunForce:
				cmdRunV.Force = !ev.Negated
			case FlagRunJobs:
				cmdRunV.Jobs = ev.Value
			case FlagRunDryRun:
				cmdRunV.DryRun = !ev.Negated
			case FlagRunOutput:
				cmdRunV.Output = ev.Value
			case FlagRunQuiet:
				cmdRunV.Quiet = !ev.Negated
			case FlagRunRaw:
				cmdRunV.Raw = !ev.Negated
			case FlagRunShell:
				cmdRunV.Shell = ev.Value
			case FlagRunSilent:
				cmdRunV.Silent = !ev.Negated
			case FlagRunTool:
				if ev.HasValue {
					cmdRunV.Tool = append(cmdRunV.Tool, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagRunAllowEnv:
				if ev.HasValue {
					cmdRunV.AllowEnv = append(cmdRunV.AllowEnv, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagRunAllowNet:
				if ev.HasValue {
					cmdRunV.AllowNet = append(cmdRunV.AllowNet, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagRunAllowRead:
				if ev.HasValue {
					cmdRunV.AllowRead = append(cmdRunV.AllowRead, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagRunAllowWrite:
				if ev.HasValue {
					cmdRunV.AllowWrite = append(cmdRunV.AllowWrite, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagRunDenyAll:
				cmdRunV.DenyAll = !ev.Negated
			case FlagRunDenyEnv:
				cmdRunV.DenyEnv = !ev.Negated
			case FlagRunDenyNet:
				cmdRunV.DenyNet = !ev.Negated
			case FlagRunDenyRead:
				cmdRunV.DenyRead = !ev.Negated
			case FlagRunDenyWrite:
				cmdRunV.DenyWrite = !ev.Negated
			case FlagRunFreshEnv:
				cmdRunV.FreshEnv = !ev.Negated
			case FlagRunNoCache:
				cmdRunV.NoCache = !ev.Negated
			case FlagRunNoDeps:
				cmdRunV.NoDeps = !ev.Negated
			case FlagRunNoTimings:
				cmdRunV.NoTimings = !ev.Negated
			case FlagRunSkipDeps:
				cmdRunV.SkipDeps = !ev.Negated
			case FlagRunSkipTools:
				cmdRunV.SkipTools = !ev.Negated
			case FlagRunTaskCache:
				cmdRunV.TaskCache = ev.Value
			case FlagRunTaskCacheExplain:
				cmdRunV.TaskCacheExplain = !ev.Negated
			case FlagRunTaskCacheExplainJson:
				cmdRunV.TaskCacheExplainJson = !ev.Negated
			case FlagRunTaskCacheStats:
				cmdRunV.TaskCacheStats = !ev.Negated
			case FlagRunTimeout:
				cmdRunV.Timeout = ev.Value
			case FlagRunTimings:
				cmdRunV.Timings = !ev.Negated
			case FlagSearchInteractive:
				cmdSearchV.Interactive = !ev.Negated
			case FlagSearchMatchType:
				cmdSearchV.MatchType = ev.Value
			case FlagSearchNoHeader:
				cmdSearchV.NoHeader = !ev.Negated
			case FlagSelfUpdateForce:
				cmdSelfUpdateV.Force = !ev.Negated
			case FlagSelfUpdateYes:
				cmdSelfUpdateV.Yes = !ev.Negated
			case FlagSelfUpdateNoPlugins:
				cmdSelfUpdateV.NoPlugins = !ev.Negated
			case FlagSetEnv:
				cmdSetV.Env = ev.Value
			case FlagSetGlobal:
				cmdSetV.Global = !ev.Negated
			case FlagSetAgeEncrypt:
				cmdSetV.AgeEncrypt = !ev.Negated
			case FlagSetAgeKeyFile:
				cmdSetV.AgeKeyFile = ev.Value
			case FlagSetAgeRecipient:
				if ev.HasValue {
					cmdSetV.AgeRecipient = append(cmdSetV.AgeRecipient, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagSetAgeSshRecipient:
				if ev.HasValue {
					cmdSetV.AgeSshRecipient = append(cmdSetV.AgeSshRecipient, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagSetComplete:
				cmdSetV.Complete = !ev.Negated
			case FlagSetFile:
				cmdSetV.File = ev.Value
			case FlagSetNoRedact:
				cmdSetV.NoRedact = !ev.Negated
			case FlagSetPrompt:
				cmdSetV.Prompt = !ev.Negated
			case FlagSetRemove:
				if ev.HasValue {
					cmdSetV.Remove = append(cmdSetV.Remove, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagSetStdin:
				cmdSetV.Stdin = !ev.Negated
			case FlagSettingsAll:
				cmdSettingsV.All = !ev.Negated
			case FlagSettingsJson:
				cmdSettingsV.Json = !ev.Negated
			case FlagSettingsLocal:
				cmdSettingsV.Local = !ev.Negated
			case FlagSettingsToml:
				cmdSettingsV.Toml = !ev.Negated
			case FlagSettingsComplete:
				cmdSettingsV.Complete = !ev.Negated
			case FlagSettingsJsonExtended:
				cmdSettingsV.JsonExtended = !ev.Negated
			case FlagSettingsAddLocal:
				cmdSettingsAddV.Local = !ev.Negated
			case FlagSettingsGetLocal:
				cmdSettingsGetV.Local = !ev.Negated
			case FlagSettingsLsAll:
				cmdSettingsLsV.All = !ev.Negated
			case FlagSettingsLsJson:
				cmdSettingsLsV.Json = !ev.Negated
			case FlagSettingsLsLocal:
				cmdSettingsLsV.Local = !ev.Negated
			case FlagSettingsLsToml:
				cmdSettingsLsV.Toml = !ev.Negated
			case FlagSettingsLsComplete:
				cmdSettingsLsV.Complete = !ev.Negated
			case FlagSettingsLsJsonExtended:
				cmdSettingsLsV.JsonExtended = !ev.Negated
			case FlagSettingsSetLocal:
				cmdSettingsSetV.Local = !ev.Negated
			case FlagSettingsUnsetLocal:
				cmdSettingsUnsetV.Local = !ev.Negated
			case FlagShellJobs:
				cmdShellV.Jobs = ev.Value
			case FlagShellUnset:
				cmdShellV.Unset = !ev.Negated
			case FlagShellRaw:
				cmdShellV.Raw = !ev.Negated
			case FlagShellAliasNoHeader:
				cmdShellAliasV.NoHeader = !ev.Negated
			case FlagShellAliasLsNoHeader:
				cmdShellAliasLsV.NoHeader = !ev.Negated
			case FlagSyncNodeBrew:
				cmdSyncNodeV.Brew = !ev.Negated
			case FlagSyncNodeNodenv:
				cmdSyncNodeV.Nodenv = !ev.Negated
			case FlagSyncNodeNvm:
				cmdSyncNodeV.Nvm = !ev.Negated
			case FlagSyncPythonPyenv:
				cmdSyncPythonV.Pyenv = !ev.Negated
			case FlagSyncPythonUv:
				cmdSyncPythonV.Uv = !ev.Negated
			case FlagSyncRubyBrew:
				cmdSyncRubyV.Brew = !ev.Negated
			case FlagTasksGlobal:
				cmdTasksV.Global = !ev.Negated
			case FlagTasksJson:
				cmdTasksV.Json = !ev.Negated
			case FlagTasksLocal:
				cmdTasksV.Local = !ev.Negated
			case FlagTasksExtended:
				cmdTasksV.Extended = !ev.Negated
			case FlagTasksAll:
				cmdTasksV.All = !ev.Negated
			case FlagTasksComplete:
				cmdTasksV.Complete = !ev.Negated
			case FlagTasksHidden:
				cmdTasksV.Hidden = !ev.Negated
			case FlagTasksNameOnly:
				cmdTasksV.NameOnly = !ev.Negated
			case FlagTasksNoHeader:
				cmdTasksV.NoHeader = !ev.Negated
			case FlagTasksSort:
				cmdTasksV.Sort = ev.Value
			case FlagTasksSortOrder:
				cmdTasksV.SortOrder = ev.Value
			case FlagTasksUsage:
				cmdTasksV.Usage = !ev.Negated
			case FlagTasksAddAlias:
				if ev.HasValue {
					cmdTasksAddV.Alias = append(cmdTasksAddV.Alias, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksAddDepends:
				if ev.HasValue {
					cmdTasksAddV.Depends = append(cmdTasksAddV.Depends, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksAddDir:
				cmdTasksAddV.Dir = ev.Value
			case FlagTasksAddFile:
				cmdTasksAddV.File = !ev.Negated
			case FlagTasksAddHide:
				cmdTasksAddV.Hide = !ev.Negated
			case FlagTasksAddQuiet:
				cmdTasksAddV.Quiet = !ev.Negated
			case FlagTasksAddRaw:
				cmdTasksAddV.Raw = !ev.Negated
			case FlagTasksAddSources:
				if ev.HasValue {
					cmdTasksAddV.Sources = append(cmdTasksAddV.Sources, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksAddWaitFor:
				if ev.HasValue {
					cmdTasksAddV.WaitFor = append(cmdTasksAddV.WaitFor, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksAddDependsPost:
				if ev.HasValue {
					cmdTasksAddV.DependsPost = append(cmdTasksAddV.DependsPost, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksAddDescription:
				cmdTasksAddV.Description = ev.Value
			case FlagTasksAddOutputs:
				if ev.HasValue {
					cmdTasksAddV.Outputs = append(cmdTasksAddV.Outputs, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksAddRunWindows:
				cmdTasksAddV.RunWindows = ev.Value
			case FlagTasksAddShell:
				cmdTasksAddV.Shell = ev.Value
			case FlagTasksAddSilent:
				cmdTasksAddV.Silent = !ev.Negated
			case FlagTasksDepsCompact:
				cmdTasksDepsV.Compact = !ev.Negated
			case FlagTasksDepsDot:
				cmdTasksDepsV.Dot = !ev.Negated
			case FlagTasksDepsHidden:
				cmdTasksDepsV.Hidden = !ev.Negated
			case FlagTasksEditPath:
				cmdTasksEditV.Path = !ev.Negated
			case FlagTasksGraphJson:
				cmdTasksGraphV.Json = !ev.Negated
			case FlagTasksGraphExplain:
				cmdTasksGraphV.Explain = !ev.Negated
			case FlagTasksGraphNoHeader:
				cmdTasksGraphV.NoHeader = !ev.Negated
			case FlagTasksInfoJson:
				cmdTasksInfoV.Json = !ev.Negated
			case FlagTasksLsGlobal:
				cmdTasksLsV.Global = !ev.Negated
			case FlagTasksLsJson:
				cmdTasksLsV.Json = !ev.Negated
			case FlagTasksLsLocal:
				cmdTasksLsV.Local = !ev.Negated
			case FlagTasksLsExtended:
				cmdTasksLsV.Extended = !ev.Negated
			case FlagTasksLsAll:
				cmdTasksLsV.All = !ev.Negated
			case FlagTasksLsComplete:
				cmdTasksLsV.Complete = !ev.Negated
			case FlagTasksLsHidden:
				cmdTasksLsV.Hidden = !ev.Negated
			case FlagTasksLsNameOnly:
				cmdTasksLsV.NameOnly = !ev.Negated
			case FlagTasksLsNoHeader:
				cmdTasksLsV.NoHeader = !ev.Negated
			case FlagTasksLsSort:
				cmdTasksLsV.Sort = ev.Value
			case FlagTasksLsSortOrder:
				cmdTasksLsV.SortOrder = ev.Value
			case FlagTasksLsUsage:
				cmdTasksLsV.Usage = !ev.Negated
			case FlagTasksRunAffected:
				cmdTasksRunV.Affected = !ev.Negated
			case FlagTasksRunAffectedBase:
				cmdTasksRunV.AffectedBase = ev.Value
			case FlagTasksRunAffectedExplain:
				cmdTasksRunV.AffectedExplain = !ev.Negated
			case FlagTasksRunAffectedHead:
				cmdTasksRunV.AffectedHead = ev.Value
			case FlagTasksRunAffectedJson:
				cmdTasksRunV.AffectedJson = !ev.Negated
			case FlagTasksRunAll:
				cmdTasksRunV.All = !ev.Negated
			case FlagTasksRunContinueOnError:
				cmdTasksRunV.ContinueOnError = !ev.Negated
			case FlagTasksRunCd:
				cmdTasksRunV.Cd = ev.Value
			case FlagTasksRunForce:
				cmdTasksRunV.Force = !ev.Negated
			case FlagTasksRunJobs:
				cmdTasksRunV.Jobs = ev.Value
			case FlagTasksRunDryRun:
				cmdTasksRunV.DryRun = !ev.Negated
			case FlagTasksRunOutput:
				cmdTasksRunV.Output = ev.Value
			case FlagTasksRunQuiet:
				cmdTasksRunV.Quiet = !ev.Negated
			case FlagTasksRunRaw:
				cmdTasksRunV.Raw = !ev.Negated
			case FlagTasksRunShell:
				cmdTasksRunV.Shell = ev.Value
			case FlagTasksRunSilent:
				cmdTasksRunV.Silent = !ev.Negated
			case FlagTasksRunTool:
				if ev.HasValue {
					cmdTasksRunV.Tool = append(cmdTasksRunV.Tool, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksRunAllowEnv:
				if ev.HasValue {
					cmdTasksRunV.AllowEnv = append(cmdTasksRunV.AllowEnv, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksRunAllowNet:
				if ev.HasValue {
					cmdTasksRunV.AllowNet = append(cmdTasksRunV.AllowNet, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksRunAllowRead:
				if ev.HasValue {
					cmdTasksRunV.AllowRead = append(cmdTasksRunV.AllowRead, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksRunAllowWrite:
				if ev.HasValue {
					cmdTasksRunV.AllowWrite = append(cmdTasksRunV.AllowWrite, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagTasksRunDenyAll:
				cmdTasksRunV.DenyAll = !ev.Negated
			case FlagTasksRunDenyEnv:
				cmdTasksRunV.DenyEnv = !ev.Negated
			case FlagTasksRunDenyNet:
				cmdTasksRunV.DenyNet = !ev.Negated
			case FlagTasksRunDenyRead:
				cmdTasksRunV.DenyRead = !ev.Negated
			case FlagTasksRunDenyWrite:
				cmdTasksRunV.DenyWrite = !ev.Negated
			case FlagTasksRunFreshEnv:
				cmdTasksRunV.FreshEnv = !ev.Negated
			case FlagTasksRunNoCache:
				cmdTasksRunV.NoCache = !ev.Negated
			case FlagTasksRunNoDeps:
				cmdTasksRunV.NoDeps = !ev.Negated
			case FlagTasksRunNoTimings:
				cmdTasksRunV.NoTimings = !ev.Negated
			case FlagTasksRunSkipDeps:
				cmdTasksRunV.SkipDeps = !ev.Negated
			case FlagTasksRunSkipTools:
				cmdTasksRunV.SkipTools = !ev.Negated
			case FlagTasksRunTaskCache:
				cmdTasksRunV.TaskCache = ev.Value
			case FlagTasksRunTaskCacheExplain:
				cmdTasksRunV.TaskCacheExplain = !ev.Negated
			case FlagTasksRunTaskCacheExplainJson:
				cmdTasksRunV.TaskCacheExplainJson = !ev.Negated
			case FlagTasksRunTaskCacheStats:
				cmdTasksRunV.TaskCacheStats = !ev.Negated
			case FlagTasksRunTimeout:
				cmdTasksRunV.Timeout = ev.Value
			case FlagTasksRunTimings:
				cmdTasksRunV.Timings = !ev.Negated
			case FlagTasksValidateErrorsOnly:
				cmdTasksValidateV.ErrorsOnly = !ev.Negated
			case FlagTasksValidateJson:
				cmdTasksValidateV.Json = !ev.Negated
			case FlagTestToolAll:
				cmdTestToolV.All = !ev.Negated
			case FlagTestToolJobs:
				cmdTestToolV.Jobs = ev.Value
			case FlagTestToolAllConfig:
				cmdTestToolV.AllConfig = !ev.Negated
			case FlagTestToolIncludeNonDefined:
				cmdTestToolV.IncludeNonDefined = !ev.Negated
			case FlagTestToolRaw:
				cmdTestToolV.Raw = !ev.Negated
			case FlagTokenForgejoUnmask:
				cmdTokenForgejoV.Unmask = !ev.Negated
			case FlagTokenGithubOauth:
				cmdTokenGithubV.Oauth = !ev.Negated
			case FlagTokenGithubRaw:
				cmdTokenGithubV.Raw = !ev.Negated
			case FlagTokenGithubRefresh:
				cmdTokenGithubV.Refresh = !ev.Negated
			case FlagTokenGithubUnmask:
				cmdTokenGithubV.Unmask = !ev.Negated
			case FlagTokenGitlabUnmask:
				cmdTokenGitlabV.Unmask = !ev.Negated
			case FlagToolJson:
				cmdToolV.Json = !ev.Negated
			case FlagToolActive:
				cmdToolV.Active = !ev.Negated
			case FlagToolBackend:
				cmdToolV.Backend = !ev.Negated
			case FlagToolConfigSource:
				cmdToolV.ConfigSource = !ev.Negated
			case FlagToolDescription:
				cmdToolV.Description = !ev.Negated
			case FlagToolInstalled:
				cmdToolV.Installed = !ev.Negated
			case FlagToolRequested:
				cmdToolV.Requested = !ev.Negated
			case FlagToolToolOptions:
				cmdToolV.ToolOptions = !ev.Negated
			case FlagTrustAll:
				cmdTrustV.All = !ev.Negated
			case FlagTrustIgnore:
				cmdTrustV.Ignore = !ev.Negated
			case FlagTrustShow:
				cmdTrustV.Show = !ev.Negated
			case FlagTrustUntrust:
				cmdTrustV.Untrust = !ev.Negated
			case FlagUninstallAll:
				cmdUninstallV.All = !ev.Negated
			case FlagUninstallDryRun:
				cmdUninstallV.DryRun = !ev.Negated
			case FlagUninstallDryRunCode:
				cmdUninstallV.DryRunCode = !ev.Negated
			case FlagUnsetFile:
				cmdUnsetV.File = ev.Value
			case FlagUnsetGlobal:
				cmdUnsetV.Global = !ev.Negated
			case FlagUnuseEnv:
				cmdUnuseV.Env = ev.Value
			case FlagUnuseGlobal:
				cmdUnuseV.Global = !ev.Negated
			case FlagUnusePath:
				cmdUnuseV.Path = ev.Value
			case FlagUnuseNoPrune:
				cmdUnuseV.NoPrune = !ev.Negated
			case FlagUpgradeBump:
				cmdUpgradeV.Bump = !ev.Negated
			case FlagUpgradeInteractive:
				cmdUpgradeV.Interactive = !ev.Negated
			case FlagUpgradeJobs:
				cmdUpgradeV.Jobs = ev.Value
			case FlagUpgradeL:
				cmdUpgradeV.L = !ev.Negated
			case FlagUpgradeDryRun:
				cmdUpgradeV.DryRun = !ev.Negated
			case FlagUpgradeExclude:
				if ev.HasValue {
					cmdUpgradeV.Exclude = append(cmdUpgradeV.Exclude, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagUpgradeDryRunCode:
				cmdUpgradeV.DryRunCode = !ev.Negated
			case FlagUpgradeInactive:
				cmdUpgradeV.Inactive = !ev.Negated
			case FlagUpgradeLocal:
				cmdUpgradeV.Local = !ev.Negated
			case FlagUpgradeMinimumReleaseAge:
				cmdUpgradeV.MinimumReleaseAge = ev.Value
			case FlagUpgradeMonorepo:
				cmdUpgradeV.Monorepo = !ev.Negated
			case FlagUpgradeNoPrune:
				cmdUpgradeV.NoPrune = !ev.Negated
			case FlagUpgradePrune:
				cmdUpgradeV.Prune = !ev.Negated
			case FlagUpgradeRaw:
				cmdUpgradeV.Raw = !ev.Negated
			case FlagUseEnv:
				cmdUseV.Env = ev.Value
			case FlagUseForce:
				cmdUseV.Force = !ev.Negated
			case FlagUseGlobal:
				cmdUseV.Global = !ev.Negated
			case FlagUseJobs:
				cmdUseV.Jobs = ev.Value
			case FlagUseDryRun:
				cmdUseV.DryRun = !ev.Negated
			case FlagUsePath:
				cmdUseV.Path = ev.Value
			case FlagUseDryRunCode:
				cmdUseV.DryRunCode = !ev.Negated
			case FlagUseFuzzy:
				cmdUseV.Fuzzy = !ev.Negated
			case FlagUseMinimumReleaseAge:
				cmdUseV.MinimumReleaseAge = ev.Value
			case FlagUsePin:
				cmdUseV.Pin = !ev.Negated
			case FlagUseRaw:
				cmdUseV.Raw = !ev.Negated
			case FlagUseRemove:
				if ev.HasValue {
					cmdUseV.Remove = append(cmdUseV.Remove, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagVersionJson:
				cmdVersionV.Json = !ev.Negated
			case FlagWatchTaskFlag:
				if ev.HasValue {
					cmdWatchV.TaskFlag = append(cmdWatchV.TaskFlag, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchGlob:
				if ev.HasValue {
					cmdWatchV.Glob = append(cmdWatchV.Glob, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchSkipDeps:
				cmdWatchV.SkipDeps = !ev.Negated
			case FlagWatchWatch:
				if ev.HasValue {
					cmdWatchV.Watch = append(cmdWatchV.Watch, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchWatchNonRecursive:
				if ev.HasValue {
					cmdWatchV.WatchNonRecursive = append(cmdWatchV.WatchNonRecursive, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchWatchFile:
				cmdWatchV.WatchFile = ev.Value
			case FlagWatchClear:
				cmdWatchV.Clear = ev.Value
			case FlagWatchOnBusyUpdate:
				cmdWatchV.OnBusyUpdate = ev.Value
			case FlagWatchRestart:
				cmdWatchV.Restart = !ev.Negated
			case FlagWatchSignal:
				cmdWatchV.Signal = ev.Value
			case FlagWatchStopSignal:
				cmdWatchV.StopSignal = ev.Value
			case FlagWatchStopTimeout:
				cmdWatchV.StopTimeout = ev.Value
			case FlagWatchMapSignal:
				if ev.HasValue {
					cmdWatchV.MapSignal = append(cmdWatchV.MapSignal, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchDebounce:
				cmdWatchV.Debounce = ev.Value
			case FlagWatchStdinQuit:
				cmdWatchV.StdinQuit = !ev.Negated
			case FlagWatchNoVcsIgnore:
				cmdWatchV.NoVcsIgnore = !ev.Negated
			case FlagWatchNoProjectIgnore:
				cmdWatchV.NoProjectIgnore = !ev.Negated
			case FlagWatchNoGlobalIgnore:
				cmdWatchV.NoGlobalIgnore = !ev.Negated
			case FlagWatchNoDefaultIgnore:
				cmdWatchV.NoDefaultIgnore = !ev.Negated
			case FlagWatchNoDiscoverIgnore:
				cmdWatchV.NoDiscoverIgnore = !ev.Negated
			case FlagWatchIgnoreNothing:
				cmdWatchV.IgnoreNothing = !ev.Negated
			case FlagWatchPostpone:
				cmdWatchV.Postpone = !ev.Negated
			case FlagWatchDelayRun:
				cmdWatchV.DelayRun = ev.Value
			case FlagWatchPoll:
				cmdWatchV.Poll = ev.Value
			case FlagWatchShell:
				cmdWatchV.Shell = ev.Value
			case FlagWatchN:
				cmdWatchV.N = !ev.Negated
			case FlagWatchEmitEventsTo:
				cmdWatchV.EmitEventsTo = ev.Value
			case FlagWatchOnlyEmitEvents:
				cmdWatchV.OnlyEmitEvents = !ev.Negated
			case FlagWatchEnv:
				if ev.HasValue {
					cmdWatchV.Env = append(cmdWatchV.Env, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchWrapProcess:
				cmdWatchV.WrapProcess = ev.Value
			case FlagWatchNotify:
				cmdWatchV.Notify = !ev.Negated
			case FlagWatchColor:
				cmdWatchV.Color = ev.Value
			case FlagWatchTimings:
				cmdWatchV.Timings = !ev.Negated
			case FlagWatchQuiet:
				cmdWatchV.Quiet = !ev.Negated
			case FlagWatchBell:
				cmdWatchV.Bell = !ev.Negated
			case FlagWatchProjectOrigin:
				cmdWatchV.ProjectOrigin = ev.Value
			case FlagWatchWorkdir:
				cmdWatchV.Workdir = ev.Value
			case FlagWatchExts:
				if ev.HasValue {
					cmdWatchV.Exts = append(cmdWatchV.Exts, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchFilter:
				if ev.HasValue {
					cmdWatchV.Filter = append(cmdWatchV.Filter, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchFilterFile:
				if ev.HasValue {
					cmdWatchV.FilterFile = append(cmdWatchV.FilterFile, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchFilterProg:
				if ev.HasValue {
					cmdWatchV.FilterProg = append(cmdWatchV.FilterProg, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchIgnore:
				if ev.HasValue {
					cmdWatchV.Ignore = append(cmdWatchV.Ignore, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchIgnoreFile:
				if ev.HasValue {
					cmdWatchV.IgnoreFile = append(cmdWatchV.IgnoreFile, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchFsEvents:
				if ev.HasValue {
					cmdWatchV.FsEvents = append(cmdWatchV.FsEvents, argv.SplitValue(ev.Value, ev.Flag.Delimiter, true)...)
				}
			case FlagWatchNoMeta:
				cmdWatchV.NoMeta = !ev.Negated
			case FlagWatchPrintEvents:
				cmdWatchV.PrintEvents = !ev.Negated
			case FlagWatchManual:
				cmdWatchV.Manual = !ev.Negated
			case FlagWhichTool:
				cmdWhichV.Tool = ev.Value
			case FlagWhichComplete:
				cmdWhichV.Complete = !ev.Negated
			case FlagWhichPlugin:
				cmdWhichV.Plugin = !ev.Negated
			case FlagWhichVersion:
				cmdWhichV.Version = !ev.Negated
			}
		case argv.KindArg:
			seen[ev.Arg.Key]++
			values := argv.SplitValue(ev.Value, ev.Arg.Delimiter, ev.Delimit)
			given[ev.Arg.Key] = append(given[ev.Arg.Key], values...)
			switch ev.Arg.Key {
			case ArgTask:
				out.Task = ev.Value
			case ArgTaskArgs:
				out.TaskArgs = append(out.TaskArgs, values...)
			case ArgTaskArgsLast:
				out.TaskArgsLast = append(out.TaskArgsLast, values...)
			case ArgActivateShellType:
				cmdActivateV.ShellType = ev.Value
			case ArgToolAliasGetTool:
				cmdToolAliasGetV.Tool = ev.Value
			case ArgToolAliasGetAlias:
				cmdToolAliasGetV.Alias = ev.Value
			case ArgToolAliasLsTool:
				cmdToolAliasLsV.Tool = ev.Value
			case ArgToolAliasSetTool:
				cmdToolAliasSetV.Tool = ev.Value
			case ArgToolAliasSetAlias:
				cmdToolAliasSetV.Alias = ev.Value
			case ArgToolAliasSetValue:
				cmdToolAliasSetV.Value = ev.Value
			case ArgToolAliasUnsetTool:
				cmdToolAliasUnsetV.Tool = ev.Value
			case ArgToolAliasUnsetAlias:
				cmdToolAliasUnsetV.Alias = ev.Value
			case ArgAsdfArgs:
				cmdAsdfV.Args = append(cmdAsdfV.Args, values...)
			case ArgBinPathsToolVersion:
				cmdBinPathsV.ToolVersion = append(cmdBinPathsV.ToolVersion, values...)
			case ArgBootstrapDotfilesAddTarget:
				cmdBootstrapDotfilesAddV.Target = append(cmdBootstrapDotfilesAddV.Target, values...)
			case ArgBootstrapDotfilesApplyTarget:
				cmdBootstrapDotfilesApplyV.Target = append(cmdBootstrapDotfilesApplyV.Target, values...)
			case ArgBootstrapDotfilesEditTarget:
				cmdBootstrapDotfilesEditV.Target = ev.Value
			case ArgBootstrapDotfilesStatusTarget:
				cmdBootstrapDotfilesStatusV.Target = append(cmdBootstrapDotfilesStatusV.Target, values...)
			case ArgBootstrapDotfilesUnapplyTarget:
				cmdBootstrapDotfilesUnapplyV.Target = append(cmdBootstrapDotfilesUnapplyV.Target, values...)
			case ArgBootstrapPackagesApplyPackage:
				cmdBootstrapPackagesApplyV.Package = append(cmdBootstrapPackagesApplyV.Package, values...)
			case ArgBootstrapPackagesBrewTapTap:
				cmdBootstrapPackagesBrewTapV.Tap = ev.Value
			case ArgBootstrapPackagesBrewTapUrl:
				cmdBootstrapPackagesBrewTapV.Url = ev.Value
			case ArgBootstrapPackagesBrewUntapTaps:
				cmdBootstrapPackagesBrewUntapV.Taps = append(cmdBootstrapPackagesBrewUntapV.Taps, values...)
			case ArgBootstrapPackagesUpgradePackage:
				cmdBootstrapPackagesUpgradeV.Package = append(cmdBootstrapPackagesUpgradeV.Package, values...)
			case ArgBootstrapPackagesUsePackage:
				cmdBootstrapPackagesUseV.Package = append(cmdBootstrapPackagesUseV.Package, values...)
			case ArgBootstrapRemoteTarget:
				cmdBootstrapRemoteV.Target = append(cmdBootstrapRemoteV.Target, values...)
			case ArgBootstrapReposExecPath:
				cmdBootstrapReposExecV.Path = append(cmdBootstrapReposExecV.Path, values...)
			case ArgBootstrapReposExecCommand:
				cmdBootstrapReposExecV.Command = append(cmdBootstrapReposExecV.Command, values...)
			case ArgBootstrapReposUpdatePath:
				cmdBootstrapReposUpdateV.Path = append(cmdBootstrapReposUpdateV.Path, values...)
			case ArgCacheClearTool:
				cmdCacheClearV.Tool = append(cmdCacheClearV.Tool, values...)
			case ArgCachePruneTool:
				cmdCachePruneV.Tool = append(cmdCachePruneV.Tool, values...)
			case ArgCacheTaskTask:
				cmdCacheTaskV.Task = ev.Value
			case ArgCompletionShell:
				cmdCompletionV.ShellArg = ev.Value
			case ArgConfigGetKey:
				cmdConfigGetV.Key = ev.Value
			case ArgConfigSetKey:
				cmdConfigSetV.Key = ev.Value
			case ArgConfigSetValue:
				cmdConfigSetV.Value = ev.Value
			case ArgCurrentPlugin:
				cmdCurrentV.Plugin = ev.Value
			case ArgDotfilesAddTarget:
				cmdDotfilesAddV.Target = append(cmdDotfilesAddV.Target, values...)
			case ArgDotfilesApplyTarget:
				cmdDotfilesApplyV.Target = append(cmdDotfilesApplyV.Target, values...)
			case ArgDotfilesEditTarget:
				cmdDotfilesEditV.Target = ev.Value
			case ArgDotfilesStatusTarget:
				cmdDotfilesStatusV.Target = append(cmdDotfilesStatusV.Target, values...)
			case ArgDotfilesUnapplyTarget:
				cmdDotfilesUnapplyV.Target = append(cmdDotfilesUnapplyV.Target, values...)
			case ArgEnDir:
				cmdEnV.Dir = ev.Value
			case ArgEnvToolVersion:
				cmdEnvV.ToolVersion = append(cmdEnvV.ToolVersion, values...)
			case ArgExecToolVersion:
				cmdExecV.ToolVersion = append(cmdExecV.ToolVersion, values...)
			case ArgExecCommand:
				cmdExecV.CommandArg = append(cmdExecV.CommandArg, values...)
			case ArgGenerateConfigPath:
				cmdGenerateConfigV.Path = ev.Value
			case ArgGenerateGitPreCommitMiseArg:
				cmdGenerateGitPreCommitV.MiseArg = append(cmdGenerateGitPreCommitV.MiseArg, values...)
			case ArgGenerateToolStubOutput:
				cmdGenerateToolStubV.Output = ev.Value
			case ArgGithubTokenHost:
				cmdGithubTokenV.Host = ev.Value
			case ArgGlobalToolVersion:
				cmdGlobalV.ToolVersion = append(cmdGlobalV.ToolVersion, values...)
			case ArgHookNotFoundBin:
				cmdHookNotFoundV.Bin = ev.Value
			case ArgEditPath:
				cmdEditV.Path = ev.Value
			case ArgInstallToolVersion:
				cmdInstallV.ToolVersion = append(cmdInstallV.ToolVersion, values...)
			case ArgInstallIntoToolVersion:
				cmdInstallIntoV.ToolVersion = ev.Value
			case ArgInstallIntoPath:
				cmdInstallIntoV.Path = ev.Value
			case ArgLatestToolVersion:
				cmdLatestV.ToolVersion = ev.Value
			case ArgLatestAsdfVersion:
				cmdLatestV.AsdfVersion = ev.Value
			case ArgLinkToolVersion:
				cmdLinkV.ToolVersion = ev.Value
			case ArgLinkPath:
				cmdLinkV.Path = ev.Value
			case ArgLocalToolVersion:
				cmdLocalV.ToolVersion = append(cmdLocalV.ToolVersion, values...)
			case ArgLockTool:
				cmdLockV.Tool = append(cmdLockV.Tool, values...)
			case ArgLsInstalledTool:
				cmdLsV.InstalledTool = append(cmdLsV.InstalledTool, values...)
			case ArgLsRemoteToolVersion:
				cmdLsRemoteV.ToolVersion = ev.Value
			case ArgLsRemotePrefix:
				cmdLsRemoteV.Prefix = ev.Value
			case ArgOciPushRef:
				cmdOciPushV.Ref = ev.Value
			case ArgOciRunCmd:
				cmdOciRunV.Cmd = append(cmdOciRunV.Cmd, values...)
			case ArgOutdatedToolVersion:
				cmdOutdatedV.ToolVersion = append(cmdOutdatedV.ToolVersion, values...)
			case ArgPluginsInstallNewPlugin:
				cmdPluginsInstallV.NewPlugin = ev.Value
			case ArgPluginsInstallGitUrl:
				cmdPluginsInstallV.GitUrl = ev.Value
			case ArgPluginsInstallRest:
				cmdPluginsInstallV.Rest = append(cmdPluginsInstallV.Rest, values...)
			case ArgPluginsLinkName:
				cmdPluginsLinkV.Name = ev.Value
			case ArgPluginsLinkDir:
				cmdPluginsLinkV.Dir = ev.Value
			case ArgPluginsUninstallPlugin:
				cmdPluginsUninstallV.Plugin = append(cmdPluginsUninstallV.Plugin, values...)
			case ArgPluginsUpdatePlugin:
				cmdPluginsUpdateV.Plugin = append(cmdPluginsUpdateV.Plugin, values...)
			case ArgDepsProvider:
				cmdDepsV.Provider = ev.Value
			case ArgDepsAddPackages:
				cmdDepsAddV.Packages = append(cmdDepsAddV.Packages, values...)
			case ArgDepsInstallProvider:
				cmdDepsInstallV.Provider = ev.Value
			case ArgDepsRemovePackages:
				cmdDepsRemoveV.Packages = append(cmdDepsRemoveV.Packages, values...)
			case ArgPruneInstalledTool:
				cmdPruneV.InstalledTool = append(cmdPruneV.InstalledTool, values...)
			case ArgRegistryName:
				cmdRegistryV.Name = ev.Value
			case ArgReshimTool:
				cmdReshimV.Tool = ev.Value
			case ArgReshimVersion:
				cmdReshimV.Version = ev.Value
			case ArgSearchName:
				cmdSearchV.Name = ev.Value
			case ArgSelfUpdateVersion:
				cmdSelfUpdateV.Version = ev.Value
			case ArgSetEnvVar:
				cmdSetV.EnvVar = append(cmdSetV.EnvVar, values...)
			case ArgSettingsSetting:
				cmdSettingsV.Setting = ev.Value
			case ArgSettingsValue:
				cmdSettingsV.Value = ev.Value
			case ArgSettingsAddSetting:
				cmdSettingsAddV.Setting = ev.Value
			case ArgSettingsAddValue:
				cmdSettingsAddV.Value = ev.Value
			case ArgSettingsGetSetting:
				cmdSettingsGetV.Setting = ev.Value
			case ArgSettingsLsSetting:
				cmdSettingsLsV.Setting = ev.Value
			case ArgSettingsSetSetting:
				cmdSettingsSetV.Setting = ev.Value
			case ArgSettingsSetValue:
				cmdSettingsSetV.Value = ev.Value
			case ArgSettingsUnsetKey:
				cmdSettingsUnsetV.Key = ev.Value
			case ArgShellToolVersion:
				cmdShellV.ToolVersion = append(cmdShellV.ToolVersion, values...)
			case ArgShellAliasGetShellAlias:
				cmdShellAliasGetV.ShellAlias = ev.Value
			case ArgShellAliasSetShellAlias:
				cmdShellAliasSetV.ShellAlias = ev.Value
			case ArgShellAliasSetCommand:
				cmdShellAliasSetV.Command = ev.Value
			case ArgShellAliasUnsetShellAlias:
				cmdShellAliasUnsetV.ShellAlias = ev.Value
			case ArgTasksTask:
				cmdTasksV.Task = ev.Value
			case ArgTasksAddTask:
				cmdTasksAddV.Task = ev.Value
			case ArgTasksAddRun:
				cmdTasksAddV.Run = append(cmdTasksAddV.Run, values...)
			case ArgTasksDepsTasks:
				cmdTasksDepsV.Tasks = append(cmdTasksDepsV.Tasks, values...)
			case ArgTasksEditTask:
				cmdTasksEditV.Task = ev.Value
			case ArgTasksInfoTask:
				cmdTasksInfoV.Task = ev.Value
			case ArgTasksRunTask:
				cmdTasksRunV.Task = ev.Value
			case ArgTasksRunArgs:
				cmdTasksRunV.Args = append(cmdTasksRunV.Args, values...)
			case ArgTasksRunArgsLast:
				cmdTasksRunV.ArgsLast = append(cmdTasksRunV.ArgsLast, values...)
			case ArgTasksValidateTasks:
				cmdTasksValidateV.Tasks = append(cmdTasksValidateV.Tasks, values...)
			case ArgTestToolTools:
				cmdTestToolV.Tools = append(cmdTestToolV.Tools, values...)
			case ArgTokenForgejoHost:
				cmdTokenForgejoV.Host = ev.Value
			case ArgTokenGithubHost:
				cmdTokenGithubV.Host = ev.Value
			case ArgTokenGitlabHost:
				cmdTokenGitlabV.Host = ev.Value
			case ArgToolTool:
				cmdToolV.Tool = ev.Value
			case ArgToolStubFile:
				cmdToolStubV.File = ev.Value
			case ArgToolStubArgs:
				cmdToolStubV.Args = append(cmdToolStubV.Args, values...)
			case ArgTrustConfigFile:
				cmdTrustV.ConfigFile = ev.Value
			case ArgUninstallInstalledToolVersion:
				cmdUninstallV.InstalledToolVersion = append(cmdUninstallV.InstalledToolVersion, values...)
			case ArgUnsetEnvKey:
				cmdUnsetV.EnvKey = append(cmdUnsetV.EnvKey, values...)
			case ArgUntrustConfigFile:
				cmdUntrustV.ConfigFile = ev.Value
			case ArgUnuseInstalledToolVersion:
				cmdUnuseV.InstalledToolVersion = append(cmdUnuseV.InstalledToolVersion, values...)
			case ArgUpgradeInstalledToolVersion:
				cmdUpgradeV.InstalledToolVersion = append(cmdUpgradeV.InstalledToolVersion, values...)
			case ArgUseToolVersion:
				cmdUseV.ToolVersion = append(cmdUseV.ToolVersion, values...)
			case ArgWatchTask:
				cmdWatchV.Task = ev.Value
			case ArgWatchArgs:
				cmdWatchV.Args = append(cmdWatchV.Args, values...)
			case ArgWhereToolVersion:
				cmdWhereV.ToolVersion = ev.Value
			case ArgWhereAsdfVersion:
				cmdWhereV.AsdfVersion = ev.Value
			case ArgWhichBinName:
				cmdWhichV.BinName = ev.Value
			}
		}
	}
	if err := p.Err(); err != nil {
		return nil, err
	}
	if p.Command().ArgRequiredElseHelp && p.CommandStart() == len(args) {
		return nil, &argv.Error{Code: argv.CodeHelp, Cmd: p.Command()}
	}

	// Only the commands the words actually selected are judged: a required
	// flag on a command nobody ran is not missing.
	var scope []uint64
	requirements := map[uint64]bool{}
	for i, cmd := range chain {
		checkRequirements := i == len(chain)-1 || !cmd.SubcommandNegatesReqs
		for _, f := range cmd.Flags {
			scope = append(scope, f.Key)
			requirements[f.Key] = checkRequirements
		}
		for _, a := range cmd.Args {
			scope = append(scope, a.Key)
			requirements[a.Key] = checkRequirements
		}
	}
	sources := map[uint64]argv.Source{}
	filled := map[uint64][]string{}
	for _, key := range scope {
		values, source := argv.Fill(Meta.Lookup(key), given[key], argv.LookupEnv)
		filled[key] = values
		sources[key] = source
	}
	argv.ApplyDefaultIf(Meta, scope, filled, sources, nil)
	for _, key := range scope {
		values, source := filled[key], sources[key]
		entryMeta := Meta.Lookup(key)
		if entryMeta != nil && !requirements[key] {
			copy := *entryMeta
			copy.Required = false
			entryMeta = &copy
		}
		if err := argv.Check(entryMeta, values, seen[key]); err != nil {
			return nil, err
		}
		// What the environment or a default supplied has to reach the field
		// too. A front door that enforces a default and then hands back the
		// zero value is worse than one that has no defaults at all.
		//
		// Written here rather than in a function of its own because a
		// subcommand's struct is reachable only from inside this one: the
		// variable holding it is local, and only the keys of commands the
		// words selected are in scope, so it is never nil when its key is.
		if source == argv.FromEnv || source == argv.FromDefault {
			switch key {
			case FlagContinueOnError:
				if source == argv.FromEnv {
					out.ContinueOnError = argv.EnvTruth(values[0])
				} else {
					out.ContinueOnError = values[0] == "true"
				}
			case FlagCd:
				out.Cd = values[len(values)-1]
			case FlagEnv:
				out.Env = append(out.Env, values...)
			case FlagForce:
				if source == argv.FromEnv {
					out.Force = argv.EnvTruth(values[0])
				} else {
					out.Force = values[0] == "true"
				}
			case FlagJobs:
				out.Jobs = values[len(values)-1]
			case FlagDryRun:
				if source == argv.FromEnv {
					out.DryRun = argv.EnvTruth(values[0])
				} else {
					out.DryRun = values[0] == "true"
				}
			case FlagProfile:
				out.Profile = append(out.Profile, values...)
			case FlagQuiet:
				if source == argv.FromEnv {
					out.Quiet = argv.EnvTruth(values[0])
				} else {
					out.Quiet = values[0] == "true"
				}
			case FlagShell:
				out.Shell = values[len(values)-1]
			case FlagTool:
				out.Tool = append(out.Tool, values...)
			case FlagVersion:
				if source == argv.FromEnv {
					out.Version = argv.EnvTruth(values[0])
				} else {
					out.Version = values[0] == "true"
				}
			case FlagYes:
				if source == argv.FromEnv {
					out.Yes = argv.EnvTruth(values[0])
				} else {
					out.Yes = values[0] == "true"
				}
			case FlagDebug:
				if source == argv.FromEnv {
					out.Debug = argv.EnvTruth(values[0])
				} else {
					out.Debug = values[0] == "true"
				}
			case FlagLogLevel:
				out.LogLevel = values[len(values)-1]
			case FlagNoConfig:
				if source == argv.FromEnv {
					out.NoConfig = argv.EnvTruth(values[0])
				} else {
					out.NoConfig = values[0] == "true"
				}
			case FlagNoEnv:
				if source == argv.FromEnv {
					out.NoEnv = argv.EnvTruth(values[0])
				} else {
					out.NoEnv = values[0] == "true"
				}
			case FlagNoHooks:
				if source == argv.FromEnv {
					out.NoHooks = argv.EnvTruth(values[0])
				} else {
					out.NoHooks = values[0] == "true"
				}
			case FlagNoTimings:
				if source == argv.FromEnv {
					out.NoTimings = argv.EnvTruth(values[0])
				} else {
					out.NoTimings = values[0] == "true"
				}
			case FlagOutput:
				out.Output = values[len(values)-1]
			case FlagRaw:
				if source == argv.FromEnv {
					out.Raw = argv.EnvTruth(values[0])
				} else {
					out.Raw = values[0] == "true"
				}
			case FlagLocked:
				if source == argv.FromEnv {
					out.Locked = argv.EnvTruth(values[0])
				} else {
					out.Locked = values[0] == "true"
				}
			case FlagSilent:
				if source == argv.FromEnv {
					out.Silent = argv.EnvTruth(values[0])
				} else {
					out.Silent = values[0] == "true"
				}
			case FlagTimings:
				if source == argv.FromEnv {
					out.Timings = argv.EnvTruth(values[0])
				} else {
					out.Timings = values[0] == "true"
				}
			case FlagTrace:
				if source == argv.FromEnv {
					out.Trace = argv.EnvTruth(values[0])
				} else {
					out.Trace = values[0] == "true"
				}
			case ArgTask:
				out.Task = values[len(values)-1]
			case ArgTaskArgs:
				out.TaskArgs = append(out.TaskArgs, values...)
			case ArgTaskArgsLast:
				out.TaskArgsLast = append(out.TaskArgsLast, values...)
			case FlagActivateQuiet:
				if source == argv.FromEnv {
					cmdActivateV.Quiet = argv.EnvTruth(values[0])
				} else {
					cmdActivateV.Quiet = values[0] == "true"
				}
			case FlagActivateShell:
				cmdActivateV.Shell = values[len(values)-1]
			case FlagActivateNoHookEnv:
				if source == argv.FromEnv {
					cmdActivateV.NoHookEnv = argv.EnvTruth(values[0])
				} else {
					cmdActivateV.NoHookEnv = values[0] == "true"
				}
			case FlagActivateShims:
				if source == argv.FromEnv {
					cmdActivateV.Shims = argv.EnvTruth(values[0])
				} else {
					cmdActivateV.Shims = values[0] == "true"
				}
			case FlagActivateStatus:
				if source == argv.FromEnv {
					cmdActivateV.Status = argv.EnvTruth(values[0])
				} else {
					cmdActivateV.Status = values[0] == "true"
				}
			case ArgActivateShellType:
				cmdActivateV.ShellType = values[len(values)-1]
			case FlagToolAliasTool:
				cmdToolAliasV.Tool = values[len(values)-1]
			case FlagToolAliasNoHeader:
				if source == argv.FromEnv {
					cmdToolAliasV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdToolAliasV.NoHeader = values[0] == "true"
				}
			case ArgToolAliasGetTool:
				cmdToolAliasGetV.Tool = values[len(values)-1]
			case ArgToolAliasGetAlias:
				cmdToolAliasGetV.Alias = values[len(values)-1]
			case FlagToolAliasLsNoHeader:
				if source == argv.FromEnv {
					cmdToolAliasLsV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdToolAliasLsV.NoHeader = values[0] == "true"
				}
			case ArgToolAliasLsTool:
				cmdToolAliasLsV.Tool = values[len(values)-1]
			case ArgToolAliasSetTool:
				cmdToolAliasSetV.Tool = values[len(values)-1]
			case ArgToolAliasSetAlias:
				cmdToolAliasSetV.Alias = values[len(values)-1]
			case ArgToolAliasSetValue:
				cmdToolAliasSetV.Value = values[len(values)-1]
			case ArgToolAliasUnsetTool:
				cmdToolAliasUnsetV.Tool = values[len(values)-1]
			case ArgToolAliasUnsetAlias:
				cmdToolAliasUnsetV.Alias = values[len(values)-1]
			case ArgAsdfArgs:
				cmdAsdfV.Args = append(cmdAsdfV.Args, values...)
			case FlagBinPathsBinNames:
				if source == argv.FromEnv {
					cmdBinPathsV.BinNames = argv.EnvTruth(values[0])
				} else {
					cmdBinPathsV.BinNames = values[0] == "true"
				}
			case FlagBinPathsJson:
				if source == argv.FromEnv {
					cmdBinPathsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBinPathsV.Json = values[0] == "true"
				}
			case ArgBinPathsToolVersion:
				cmdBinPathsV.ToolVersion = append(cmdBinPathsV.ToolVersion, values...)
			case FlagBootstrapDryRun:
				if source == argv.FromEnv {
					cmdBootstrapV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapV.DryRun = values[0] == "true"
				}
			case FlagBootstrapYes:
				if source == argv.FromEnv {
					cmdBootstrapV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapV.Yes = values[0] == "true"
				}
			case FlagBootstrapForceDotfiles:
				if source == argv.FromEnv {
					cmdBootstrapV.ForceDotfiles = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapV.ForceDotfiles = values[0] == "true"
				}
			case FlagBootstrapOnly:
				cmdBootstrapV.Only = append(cmdBootstrapV.Only, values...)
			case FlagBootstrapPromptSecrets:
				if source == argv.FromEnv {
					cmdBootstrapV.PromptSecrets = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapV.PromptSecrets = values[0] == "true"
				}
			case FlagBootstrapSkip:
				cmdBootstrapV.Skip = append(cmdBootstrapV.Skip, values...)
			case FlagBootstrapUpdate:
				if source == argv.FromEnv {
					cmdBootstrapV.Update = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapV.Update = values[0] == "true"
				}
			case FlagBootstrapAccountsApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapAccountsApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapAccountsApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapAccountsApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapAccountsApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapAccountsApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapAccountsStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapAccountsStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapAccountsStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapAccountsStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapAccountsStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapAccountsStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapComposeApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapComposeApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapComposeApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapComposeApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapComposeApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapComposeApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapComposeStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapComposeStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapComposeStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapComposeStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapComposeStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapComposeStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapDotfilesAddForce:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesAddV.Force = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesAddV.Force = values[0] == "true"
				}
			case FlagBootstrapDotfilesAddGlobal:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesAddV.Global = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesAddV.Global = values[0] == "true"
				}
			case FlagBootstrapDotfilesAddLocal:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesAddV.Local = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesAddV.Local = values[0] == "true"
				}
			case FlagBootstrapDotfilesAddMode:
				cmdBootstrapDotfilesAddV.Mode = values[len(values)-1]
			case FlagBootstrapDotfilesAddDryRun:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesAddV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesAddV.DryRun = values[0] == "true"
				}
			case FlagBootstrapDotfilesAddNoApply:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesAddV.NoApply = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesAddV.NoApply = values[0] == "true"
				}
			case FlagBootstrapDotfilesAddPath:
				cmdBootstrapDotfilesAddV.Path = values[len(values)-1]
			case FlagBootstrapDotfilesAddSource:
				cmdBootstrapDotfilesAddV.Source = values[len(values)-1]
			case FlagBootstrapDotfilesAddYes:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesAddV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesAddV.Yes = values[0] == "true"
				}
			case ArgBootstrapDotfilesAddTarget:
				cmdBootstrapDotfilesAddV.Target = append(cmdBootstrapDotfilesAddV.Target, values...)
			case FlagBootstrapDotfilesApplyForce:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesApplyV.Force = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesApplyV.Force = values[0] == "true"
				}
			case FlagBootstrapDotfilesApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapDotfilesApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesApplyV.Yes = values[0] == "true"
				}
			case ArgBootstrapDotfilesApplyTarget:
				cmdBootstrapDotfilesApplyV.Target = append(cmdBootstrapDotfilesApplyV.Target, values...)
			case FlagBootstrapDotfilesEditApply:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesEditV.Apply = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesEditV.Apply = values[0] == "true"
				}
			case FlagBootstrapDotfilesEditMode:
				cmdBootstrapDotfilesEditV.Mode = values[len(values)-1]
			case FlagBootstrapDotfilesEditSource:
				cmdBootstrapDotfilesEditV.Source = values[len(values)-1]
			case FlagBootstrapDotfilesEditYes:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesEditV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesEditV.Yes = values[0] == "true"
				}
			case ArgBootstrapDotfilesEditTarget:
				cmdBootstrapDotfilesEditV.Target = values[len(values)-1]
			case FlagBootstrapDotfilesStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapDotfilesStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesStatusV.Missing = values[0] == "true"
				}
			case ArgBootstrapDotfilesStatusTarget:
				cmdBootstrapDotfilesStatusV.Target = append(cmdBootstrapDotfilesStatusV.Target, values...)
			case FlagBootstrapDotfilesUnapplyForce:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesUnapplyV.Force = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesUnapplyV.Force = values[0] == "true"
				}
			case FlagBootstrapDotfilesUnapplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesUnapplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesUnapplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapDotfilesUnapplyYes:
				if source == argv.FromEnv {
					cmdBootstrapDotfilesUnapplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapDotfilesUnapplyV.Yes = values[0] == "true"
				}
			case ArgBootstrapDotfilesUnapplyTarget:
				cmdBootstrapDotfilesUnapplyV.Target = append(cmdBootstrapDotfilesUnapplyV.Target, values...)
			case FlagBootstrapFilesApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapFilesApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFilesApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapFilesApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapFilesApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFilesApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapFilesApplyPromptSecrets:
				if source == argv.FromEnv {
					cmdBootstrapFilesApplyV.PromptSecrets = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFilesApplyV.PromptSecrets = values[0] == "true"
				}
			case FlagBootstrapFilesStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapFilesStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFilesStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapFilesStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapFilesStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFilesStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapFilesStatusPromptSecrets:
				if source == argv.FromEnv {
					cmdBootstrapFilesStatusV.PromptSecrets = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFilesStatusV.PromptSecrets = values[0] == "true"
				}
			case FlagBootstrapFirewallApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapFirewallApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFirewallApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapFirewallApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapFirewallApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFirewallApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapFirewallStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapFirewallStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFirewallStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapFirewallStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapFirewallStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapFirewallStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapLaunchdApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapLaunchdApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLaunchdApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapLaunchdApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapLaunchdApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLaunchdApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapLaunchdStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapLaunchdStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLaunchdStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapLaunchdStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapLaunchdStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLaunchdStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapLinuxSystemdUnitsApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapLinuxSystemdUnitsApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLinuxSystemdUnitsApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapLinuxSystemdUnitsApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapLinuxSystemdUnitsApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLinuxSystemdUnitsApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapLinuxSystemdUnitsStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapLinuxSystemdUnitsStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLinuxSystemdUnitsStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapLinuxSystemdUnitsStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapLinuxSystemdUnitsStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapLinuxSystemdUnitsStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapMacosLaunchdAgentsApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapMacosLaunchdAgentsApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosLaunchdAgentsApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapMacosLaunchdAgentsApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapMacosLaunchdAgentsApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosLaunchdAgentsApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapMacosLaunchdAgentsStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapMacosLaunchdAgentsStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosLaunchdAgentsStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapMacosLaunchdAgentsStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapMacosLaunchdAgentsStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosLaunchdAgentsStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsApplyDryRun2:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsApply2V.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsApply2V.DryRun = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsApplyYes2:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsApply2V.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsApply2V.Yes = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsStatusJson2:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsStatus2V.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsStatus2V.Json = values[0] == "true"
				}
			case FlagBootstrapMacosDefaultsStatusMissing2:
				if source == argv.FromEnv {
					cmdBootstrapMacosDefaultsStatus2V.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMacosDefaultsStatus2V.Missing = values[0] == "true"
				}
			case FlagBootstrapMiseShellActivateApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapMiseShellActivateApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMiseShellActivateApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapMiseShellActivateApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapMiseShellActivateApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMiseShellActivateApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapMiseShellActivateStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapMiseShellActivateStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMiseShellActivateStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapMiseShellActivateStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapMiseShellActivateStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapMiseShellActivateStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapPackagesApplyManager:
				cmdBootstrapPackagesApplyV.Manager = values[len(values)-1]
			case FlagBootstrapPackagesApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapPackagesApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapPackagesApplyUpdate:
				if source == argv.FromEnv {
					cmdBootstrapPackagesApplyV.Update = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesApplyV.Update = values[0] == "true"
				}
			case ArgBootstrapPackagesApplyPackage:
				cmdBootstrapPackagesApplyV.Package = append(cmdBootstrapPackagesApplyV.Package, values...)
			case FlagBootstrapPackagesBrewTapLocal:
				if source == argv.FromEnv {
					cmdBootstrapPackagesBrewTapV.Local = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesBrewTapV.Local = values[0] == "true"
				}
			case FlagBootstrapPackagesBrewTapDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesBrewTapV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesBrewTapV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesBrewTapPath:
				cmdBootstrapPackagesBrewTapV.Path = values[len(values)-1]
			case ArgBootstrapPackagesBrewTapTap:
				cmdBootstrapPackagesBrewTapV.Tap = values[len(values)-1]
			case ArgBootstrapPackagesBrewTapUrl:
				cmdBootstrapPackagesBrewTapV.Url = values[len(values)-1]
			case FlagBootstrapPackagesBrewUntapLocal:
				if source == argv.FromEnv {
					cmdBootstrapPackagesBrewUntapV.Local = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesBrewUntapV.Local = values[0] == "true"
				}
			case FlagBootstrapPackagesBrewUntapDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesBrewUntapV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesBrewUntapV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesBrewUntapPath:
				cmdBootstrapPackagesBrewUntapV.Path = values[len(values)-1]
			case ArgBootstrapPackagesBrewUntapTaps:
				cmdBootstrapPackagesBrewUntapV.Taps = append(cmdBootstrapPackagesBrewUntapV.Taps, values...)
			case FlagBootstrapPackagesImportEnv:
				cmdBootstrapPackagesImportV.Env = values[len(values)-1]
			case FlagBootstrapPackagesImportGlobal:
				if source == argv.FromEnv {
					cmdBootstrapPackagesImportV.Global = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesImportV.Global = values[0] == "true"
				}
			case FlagBootstrapPackagesImportManager:
				cmdBootstrapPackagesImportV.Manager = values[len(values)-1]
			case FlagBootstrapPackagesImportAll:
				if source == argv.FromEnv {
					cmdBootstrapPackagesImportV.All = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesImportV.All = values[0] == "true"
				}
			case FlagBootstrapPackagesImportDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesImportV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesImportV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesImportPath:
				cmdBootstrapPackagesImportV.Path = values[len(values)-1]
			case FlagBootstrapPackagesPruneManager:
				cmdBootstrapPackagesPruneV.Manager = values[len(values)-1]
			case FlagBootstrapPackagesPruneDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesPruneV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesPruneV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesPruneYes:
				if source == argv.FromEnv {
					cmdBootstrapPackagesPruneV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesPruneV.Yes = values[0] == "true"
				}
			case FlagBootstrapPackagesStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapPackagesStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapPackagesStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapPackagesStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapPackagesUpgradeManager:
				cmdBootstrapPackagesUpgradeV.Manager = values[len(values)-1]
			case FlagBootstrapPackagesUpgradeDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesUpgradeV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesUpgradeV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesUpgradeYes:
				if source == argv.FromEnv {
					cmdBootstrapPackagesUpgradeV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesUpgradeV.Yes = values[0] == "true"
				}
			case ArgBootstrapPackagesUpgradePackage:
				cmdBootstrapPackagesUpgradeV.Package = append(cmdBootstrapPackagesUpgradeV.Package, values...)
			case FlagBootstrapPackagesUseEnv:
				cmdBootstrapPackagesUseV.Env = values[len(values)-1]
			case FlagBootstrapPackagesUseGlobal:
				if source == argv.FromEnv {
					cmdBootstrapPackagesUseV.Global = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesUseV.Global = values[0] == "true"
				}
			case FlagBootstrapPackagesUseDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPackagesUseV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesUseV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPackagesUsePath:
				cmdBootstrapPackagesUseV.Path = values[len(values)-1]
			case FlagBootstrapPackagesUseYes:
				if source == argv.FromEnv {
					cmdBootstrapPackagesUseV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPackagesUseV.Yes = values[0] == "true"
				}
			case ArgBootstrapPackagesUsePackage:
				cmdBootstrapPackagesUseV.Package = append(cmdBootstrapPackagesUseV.Package, values...)
			case FlagBootstrapPlanJson:
				if source == argv.FromEnv {
					cmdBootstrapPlanV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPlanV.Json = values[0] == "true"
				}
			case FlagBootstrapPlanDetailedExitcode:
				if source == argv.FromEnv {
					cmdBootstrapPlanV.DetailedExitcode = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPlanV.DetailedExitcode = values[0] == "true"
				}
			case FlagBootstrapPlanPromptSecrets:
				if source == argv.FromEnv {
					cmdBootstrapPlanV.PromptSecrets = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPlanV.PromptSecrets = values[0] == "true"
				}
			case FlagBootstrapPluginsApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapPluginsApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPluginsApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapPluginsStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapPluginsStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapPluginsStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapRemoteAll:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.All = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.All = values[0] == "true"
				}
			case FlagBootstrapRemoteBootstrapCommand:
				cmdBootstrapRemoteV.BootstrapCommand = values[len(values)-1]
			case FlagBootstrapRemoteConnectTimeout:
				cmdBootstrapRemoteV.ConnectTimeout = values[len(values)-1]
			case FlagBootstrapRemoteCopyLink:
				cmdBootstrapRemoteV.CopyLink = append(cmdBootstrapRemoteV.CopyLink, values...)
			case FlagBootstrapRemoteCopyLinks:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.CopyLinks = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.CopyLinks = values[0] == "true"
				}
			case FlagBootstrapRemoteExclude:
				cmdBootstrapRemoteV.Exclude = append(cmdBootstrapRemoteV.Exclude, values...)
			case FlagBootstrapRemoteFailFast:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.FailFast = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.FailFast = values[0] == "true"
				}
			case FlagBootstrapRemoteForceDotfiles:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.ForceDotfiles = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.ForceDotfiles = values[0] == "true"
				}
			case FlagBootstrapRemoteHost:
				cmdBootstrapRemoteV.Host = append(cmdBootstrapRemoteV.Host, values...)
			case FlagBootstrapRemoteIdentityFile:
				cmdBootstrapRemoteV.IdentityFile = values[len(values)-1]
			case FlagBootstrapRemoteDryRun:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.DryRun = values[0] == "true"
				}
			case FlagBootstrapRemoteKeepStaging:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.KeepStaging = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.KeepStaging = values[0] == "true"
				}
			case FlagBootstrapRemoteMiseBin:
				cmdBootstrapRemoteV.MiseBin = values[len(values)-1]
			case FlagBootstrapRemoteOnly:
				cmdBootstrapRemoteV.Only = append(cmdBootstrapRemoteV.Only, values...)
			case FlagBootstrapRemotePort:
				cmdBootstrapRemoteV.Port = values[len(values)-1]
			case FlagBootstrapRemotePromptSecrets:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.PromptSecrets = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.PromptSecrets = values[0] == "true"
				}
			case FlagBootstrapRemoteRemoteEnv:
				cmdBootstrapRemoteV.RemoteEnv = append(cmdBootstrapRemoteV.RemoteEnv, values...)
			case FlagBootstrapRemoteRemoteMise:
				cmdBootstrapRemoteV.RemoteMise = values[len(values)-1]
			case FlagBootstrapRemoteSkip:
				cmdBootstrapRemoteV.Skip = append(cmdBootstrapRemoteV.Skip, values...)
			case FlagBootstrapRemoteSource:
				cmdBootstrapRemoteV.Source = values[len(values)-1]
			case FlagBootstrapRemoteSshOption:
				cmdBootstrapRemoteV.SshOption = append(cmdBootstrapRemoteV.SshOption, values...)
			case FlagBootstrapRemoteTag:
				cmdBootstrapRemoteV.Tag = append(cmdBootstrapRemoteV.Tag, values...)
			case FlagBootstrapRemoteUpdate:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.Update = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.Update = values[0] == "true"
				}
			case FlagBootstrapRemoteYes:
				if source == argv.FromEnv {
					cmdBootstrapRemoteV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapRemoteV.Yes = values[0] == "true"
				}
			case ArgBootstrapRemoteTarget:
				cmdBootstrapRemoteV.Target = append(cmdBootstrapRemoteV.Target, values...)
			case FlagBootstrapReposApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapReposApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapReposApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapReposApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapReposExecContinueOnError:
				if source == argv.FromEnv {
					cmdBootstrapReposExecV.ContinueOnError = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposExecV.ContinueOnError = values[0] == "true"
				}
			case FlagBootstrapReposExecDryRun:
				if source == argv.FromEnv {
					cmdBootstrapReposExecV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposExecV.DryRun = values[0] == "true"
				}
			case ArgBootstrapReposExecPath:
				cmdBootstrapReposExecV.Path = append(cmdBootstrapReposExecV.Path, values...)
			case ArgBootstrapReposExecCommand:
				cmdBootstrapReposExecV.Command = append(cmdBootstrapReposExecV.Command, values...)
			case FlagBootstrapReposStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapReposStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapReposStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapReposStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapReposUpdateDryRun:
				if source == argv.FromEnv {
					cmdBootstrapReposUpdateV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposUpdateV.DryRun = values[0] == "true"
				}
			case FlagBootstrapReposUpdateYes:
				if source == argv.FromEnv {
					cmdBootstrapReposUpdateV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapReposUpdateV.Yes = values[0] == "true"
				}
			case ArgBootstrapReposUpdatePath:
				cmdBootstrapReposUpdateV.Path = append(cmdBootstrapReposUpdateV.Path, values...)
			case FlagBootstrapSecretsStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapSecretsStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapSecretsStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapSecretsStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapSecretsStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapSecretsStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapServicesApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapServicesApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapServicesApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapServicesApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapServicesApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapServicesApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapServicesStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapServicesStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapServicesStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapServicesStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapServicesStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapServicesStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapStatusPromptSecrets:
				if source == argv.FromEnv {
					cmdBootstrapStatusV.PromptSecrets = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapStatusV.PromptSecrets = values[0] == "true"
				}
			case FlagBootstrapSystemdApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapSystemdApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapSystemdApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapSystemdApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapSystemdApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapSystemdApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapSystemdStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapSystemdStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapSystemdStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapSystemdStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapSystemdStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapSystemdStatusV.Missing = values[0] == "true"
				}
			case FlagBootstrapUserApplyDryRun:
				if source == argv.FromEnv {
					cmdBootstrapUserApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapUserApplyV.DryRun = values[0] == "true"
				}
			case FlagBootstrapUserApplyYes:
				if source == argv.FromEnv {
					cmdBootstrapUserApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapUserApplyV.Yes = values[0] == "true"
				}
			case FlagBootstrapUserStatusJson:
				if source == argv.FromEnv {
					cmdBootstrapUserStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapUserStatusV.Json = values[0] == "true"
				}
			case FlagBootstrapUserStatusMissing:
				if source == argv.FromEnv {
					cmdBootstrapUserStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdBootstrapUserStatusV.Missing = values[0] == "true"
				}
			case FlagCacheClearOutdate:
				if source == argv.FromEnv {
					cmdCacheClearV.Outdate = argv.EnvTruth(values[0])
				} else {
					cmdCacheClearV.Outdate = values[0] == "true"
				}
			case FlagCacheClearTask:
				cmdCacheClearV.Task = values[len(values)-1]
			case ArgCacheClearTool:
				cmdCacheClearV.Tool = append(cmdCacheClearV.Tool, values...)
			case FlagCachePruneDryRun:
				if source == argv.FromEnv {
					cmdCachePruneV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdCachePruneV.DryRun = values[0] == "true"
				}
			case ArgCachePruneTool:
				cmdCachePruneV.Tool = append(cmdCachePruneV.Tool, values...)
			case FlagCacheTaskJson:
				if source == argv.FromEnv {
					cmdCacheTaskV.Json = argv.EnvTruth(values[0])
				} else {
					cmdCacheTaskV.Json = values[0] == "true"
				}
			case ArgCacheTaskTask:
				cmdCacheTaskV.Task = values[len(values)-1]
			case FlagCompletionShell:
				cmdCompletionV.Shell = values[len(values)-1]
			case FlagCompletionIncludeBashCompletionLib:
				if source == argv.FromEnv {
					cmdCompletionV.IncludeBashCompletionLib = argv.EnvTruth(values[0])
				} else {
					cmdCompletionV.IncludeBashCompletionLib = values[0] == "true"
				}
			case FlagCompletionUsage:
				if source == argv.FromEnv {
					cmdCompletionV.Usage = argv.EnvTruth(values[0])
				} else {
					cmdCompletionV.Usage = values[0] == "true"
				}
			case ArgCompletionShell:
				cmdCompletionV.ShellArg = values[len(values)-1]
			case FlagConfigJson:
				if source == argv.FromEnv {
					cmdConfigV.Json = argv.EnvTruth(values[0])
				} else {
					cmdConfigV.Json = values[0] == "true"
				}
			case FlagConfigNoHeader:
				if source == argv.FromEnv {
					cmdConfigV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdConfigV.NoHeader = values[0] == "true"
				}
			case FlagConfigTrackedConfigs:
				if source == argv.FromEnv {
					cmdConfigV.TrackedConfigs = argv.EnvTruth(values[0])
				} else {
					cmdConfigV.TrackedConfigs = values[0] == "true"
				}
			case FlagConfigGetFile:
				cmdConfigGetV.File = values[len(values)-1]
			case ArgConfigGetKey:
				cmdConfigGetV.Key = values[len(values)-1]
			case FlagConfigLsJson:
				if source == argv.FromEnv {
					cmdConfigLsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdConfigLsV.Json = values[0] == "true"
				}
			case FlagConfigLsNoHeader:
				if source == argv.FromEnv {
					cmdConfigLsV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdConfigLsV.NoHeader = values[0] == "true"
				}
			case FlagConfigLsTrackedConfigs:
				if source == argv.FromEnv {
					cmdConfigLsV.TrackedConfigs = argv.EnvTruth(values[0])
				} else {
					cmdConfigLsV.TrackedConfigs = values[0] == "true"
				}
			case FlagConfigSetFile:
				cmdConfigSetV.File = values[len(values)-1]
			case FlagConfigSetType:
				cmdConfigSetV.Type = values[len(values)-1]
			case ArgConfigSetKey:
				cmdConfigSetV.Key = values[len(values)-1]
			case ArgConfigSetValue:
				cmdConfigSetV.Value = values[len(values)-1]
			case ArgCurrentPlugin:
				cmdCurrentV.Plugin = values[len(values)-1]
			case FlagDotfilesAddForce:
				if source == argv.FromEnv {
					cmdDotfilesAddV.Force = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesAddV.Force = values[0] == "true"
				}
			case FlagDotfilesAddGlobal:
				if source == argv.FromEnv {
					cmdDotfilesAddV.Global = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesAddV.Global = values[0] == "true"
				}
			case FlagDotfilesAddLocal:
				if source == argv.FromEnv {
					cmdDotfilesAddV.Local = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesAddV.Local = values[0] == "true"
				}
			case FlagDotfilesAddMode:
				cmdDotfilesAddV.Mode = values[len(values)-1]
			case FlagDotfilesAddDryRun:
				if source == argv.FromEnv {
					cmdDotfilesAddV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesAddV.DryRun = values[0] == "true"
				}
			case FlagDotfilesAddNoApply:
				if source == argv.FromEnv {
					cmdDotfilesAddV.NoApply = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesAddV.NoApply = values[0] == "true"
				}
			case FlagDotfilesAddPath:
				cmdDotfilesAddV.Path = values[len(values)-1]
			case FlagDotfilesAddSource:
				cmdDotfilesAddV.Source = values[len(values)-1]
			case FlagDotfilesAddYes:
				if source == argv.FromEnv {
					cmdDotfilesAddV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesAddV.Yes = values[0] == "true"
				}
			case ArgDotfilesAddTarget:
				cmdDotfilesAddV.Target = append(cmdDotfilesAddV.Target, values...)
			case FlagDotfilesApplyForce:
				if source == argv.FromEnv {
					cmdDotfilesApplyV.Force = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesApplyV.Force = values[0] == "true"
				}
			case FlagDotfilesApplyDryRun:
				if source == argv.FromEnv {
					cmdDotfilesApplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesApplyV.DryRun = values[0] == "true"
				}
			case FlagDotfilesApplyYes:
				if source == argv.FromEnv {
					cmdDotfilesApplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesApplyV.Yes = values[0] == "true"
				}
			case ArgDotfilesApplyTarget:
				cmdDotfilesApplyV.Target = append(cmdDotfilesApplyV.Target, values...)
			case FlagDotfilesEditApply:
				if source == argv.FromEnv {
					cmdDotfilesEditV.Apply = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesEditV.Apply = values[0] == "true"
				}
			case FlagDotfilesEditMode:
				cmdDotfilesEditV.Mode = values[len(values)-1]
			case FlagDotfilesEditSource:
				cmdDotfilesEditV.Source = values[len(values)-1]
			case FlagDotfilesEditYes:
				if source == argv.FromEnv {
					cmdDotfilesEditV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesEditV.Yes = values[0] == "true"
				}
			case ArgDotfilesEditTarget:
				cmdDotfilesEditV.Target = values[len(values)-1]
			case FlagDotfilesStatusJson:
				if source == argv.FromEnv {
					cmdDotfilesStatusV.Json = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesStatusV.Json = values[0] == "true"
				}
			case FlagDotfilesStatusMissing:
				if source == argv.FromEnv {
					cmdDotfilesStatusV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesStatusV.Missing = values[0] == "true"
				}
			case ArgDotfilesStatusTarget:
				cmdDotfilesStatusV.Target = append(cmdDotfilesStatusV.Target, values...)
			case FlagDotfilesUnapplyForce:
				if source == argv.FromEnv {
					cmdDotfilesUnapplyV.Force = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesUnapplyV.Force = values[0] == "true"
				}
			case FlagDotfilesUnapplyDryRun:
				if source == argv.FromEnv {
					cmdDotfilesUnapplyV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesUnapplyV.DryRun = values[0] == "true"
				}
			case FlagDotfilesUnapplyYes:
				if source == argv.FromEnv {
					cmdDotfilesUnapplyV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdDotfilesUnapplyV.Yes = values[0] == "true"
				}
			case ArgDotfilesUnapplyTarget:
				cmdDotfilesUnapplyV.Target = append(cmdDotfilesUnapplyV.Target, values...)
			case FlagDoctorJson:
				if source == argv.FromEnv {
					cmdDoctorV.Json = argv.EnvTruth(values[0])
				} else {
					cmdDoctorV.Json = values[0] == "true"
				}
			case FlagDoctorPathFull:
				if source == argv.FromEnv {
					cmdDoctorPathV.Full = argv.EnvTruth(values[0])
				} else {
					cmdDoctorPathV.Full = values[0] == "true"
				}
			case FlagEnShell:
				cmdEnV.Shell = values[len(values)-1]
			case ArgEnDir:
				cmdEnV.Dir = values[len(values)-1]
			case FlagEnvDotenv:
				if source == argv.FromEnv {
					cmdEnvV.Dotenv = argv.EnvTruth(values[0])
				} else {
					cmdEnvV.Dotenv = values[0] == "true"
				}
			case FlagEnvJson:
				if source == argv.FromEnv {
					cmdEnvV.Json = argv.EnvTruth(values[0])
				} else {
					cmdEnvV.Json = values[0] == "true"
				}
			case FlagEnvShell:
				cmdEnvV.Shell = values[len(values)-1]
			case FlagEnvJsonExtended:
				if source == argv.FromEnv {
					cmdEnvV.JsonExtended = argv.EnvTruth(values[0])
				} else {
					cmdEnvV.JsonExtended = values[0] == "true"
				}
			case FlagEnvRedacted:
				if source == argv.FromEnv {
					cmdEnvV.Redacted = argv.EnvTruth(values[0])
				} else {
					cmdEnvV.Redacted = values[0] == "true"
				}
			case FlagEnvValues:
				if source == argv.FromEnv {
					cmdEnvV.Values = argv.EnvTruth(values[0])
				} else {
					cmdEnvV.Values = values[0] == "true"
				}
			case ArgEnvToolVersion:
				cmdEnvV.ToolVersion = append(cmdEnvV.ToolVersion, values...)
			case FlagExecCommand:
				cmdExecV.Command = values[len(values)-1]
			case FlagExecJobs:
				cmdExecV.Jobs = values[len(values)-1]
			case FlagExecAllowEnv:
				cmdExecV.AllowEnv = append(cmdExecV.AllowEnv, values...)
			case FlagExecAllowNet:
				cmdExecV.AllowNet = append(cmdExecV.AllowNet, values...)
			case FlagExecAllowRead:
				cmdExecV.AllowRead = append(cmdExecV.AllowRead, values...)
			case FlagExecAllowWrite:
				cmdExecV.AllowWrite = append(cmdExecV.AllowWrite, values...)
			case FlagExecDenyAll:
				if source == argv.FromEnv {
					cmdExecV.DenyAll = argv.EnvTruth(values[0])
				} else {
					cmdExecV.DenyAll = values[0] == "true"
				}
			case FlagExecDenyEnv:
				if source == argv.FromEnv {
					cmdExecV.DenyEnv = argv.EnvTruth(values[0])
				} else {
					cmdExecV.DenyEnv = values[0] == "true"
				}
			case FlagExecDenyNet:
				if source == argv.FromEnv {
					cmdExecV.DenyNet = argv.EnvTruth(values[0])
				} else {
					cmdExecV.DenyNet = values[0] == "true"
				}
			case FlagExecDenyRead:
				if source == argv.FromEnv {
					cmdExecV.DenyRead = argv.EnvTruth(values[0])
				} else {
					cmdExecV.DenyRead = values[0] == "true"
				}
			case FlagExecDenyWrite:
				if source == argv.FromEnv {
					cmdExecV.DenyWrite = argv.EnvTruth(values[0])
				} else {
					cmdExecV.DenyWrite = values[0] == "true"
				}
			case FlagExecFreshEnv:
				if source == argv.FromEnv {
					cmdExecV.FreshEnv = argv.EnvTruth(values[0])
				} else {
					cmdExecV.FreshEnv = values[0] == "true"
				}
			case FlagExecNoDeps:
				if source == argv.FromEnv {
					cmdExecV.NoDeps = argv.EnvTruth(values[0])
				} else {
					cmdExecV.NoDeps = values[0] == "true"
				}
			case FlagExecRaw:
				if source == argv.FromEnv {
					cmdExecV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdExecV.Raw = values[0] == "true"
				}
			case ArgExecToolVersion:
				cmdExecV.ToolVersion = append(cmdExecV.ToolVersion, values...)
			case ArgExecCommand:
				cmdExecV.CommandArg = append(cmdExecV.CommandArg, values...)
			case FlagFmtAll:
				if source == argv.FromEnv {
					cmdFmtV.All = argv.EnvTruth(values[0])
				} else {
					cmdFmtV.All = values[0] == "true"
				}
			case FlagFmtCheck:
				if source == argv.FromEnv {
					cmdFmtV.Check = argv.EnvTruth(values[0])
				} else {
					cmdFmtV.Check = values[0] == "true"
				}
			case FlagFmtStdin:
				if source == argv.FromEnv {
					cmdFmtV.Stdin = argv.EnvTruth(values[0])
				} else {
					cmdFmtV.Stdin = values[0] == "true"
				}
			case FlagGenerateBootstrapLocalize:
				if source == argv.FromEnv {
					cmdGenerateBootstrapV.Localize = argv.EnvTruth(values[0])
				} else {
					cmdGenerateBootstrapV.Localize = values[0] == "true"
				}
			case FlagGenerateBootstrapVersion:
				cmdGenerateBootstrapV.Version = values[len(values)-1]
			case FlagGenerateBootstrapWrite:
				cmdGenerateBootstrapV.Write = values[len(values)-1]
			case FlagGenerateBootstrapLocalizedDir:
				cmdGenerateBootstrapV.LocalizedDir = values[len(values)-1]
			case FlagGenerateBootstrapWindows:
				if source == argv.FromEnv {
					cmdGenerateBootstrapV.Windows = argv.EnvTruth(values[0])
				} else {
					cmdGenerateBootstrapV.Windows = values[0] == "true"
				}
			case FlagGenerateConfigGlobal:
				if source == argv.FromEnv {
					cmdGenerateConfigV.Global = argv.EnvTruth(values[0])
				} else {
					cmdGenerateConfigV.Global = values[0] == "true"
				}
			case FlagGenerateConfigDryRun:
				if source == argv.FromEnv {
					cmdGenerateConfigV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdGenerateConfigV.DryRun = values[0] == "true"
				}
			case FlagGenerateConfigToolVersions:
				cmdGenerateConfigV.ToolVersions = values[len(values)-1]
			case ArgGenerateConfigPath:
				cmdGenerateConfigV.Path = values[len(values)-1]
			case FlagGenerateDevcontainerImage:
				cmdGenerateDevcontainerV.Image = values[len(values)-1]
			case FlagGenerateDevcontainerMountMiseData:
				if source == argv.FromEnv {
					cmdGenerateDevcontainerV.MountMiseData = argv.EnvTruth(values[0])
				} else {
					cmdGenerateDevcontainerV.MountMiseData = values[0] == "true"
				}
			case FlagGenerateDevcontainerName:
				cmdGenerateDevcontainerV.Name = values[len(values)-1]
			case FlagGenerateDevcontainerWrite:
				if source == argv.FromEnv {
					cmdGenerateDevcontainerV.Write = argv.EnvTruth(values[0])
				} else {
					cmdGenerateDevcontainerV.Write = values[0] == "true"
				}
			case FlagGenerateGitPreCommitTask:
				cmdGenerateGitPreCommitV.Task = values[len(values)-1]
			case FlagGenerateGitPreCommitWrite:
				if source == argv.FromEnv {
					cmdGenerateGitPreCommitV.Write = argv.EnvTruth(values[0])
				} else {
					cmdGenerateGitPreCommitV.Write = values[0] == "true"
				}
			case FlagGenerateGitPreCommitHook:
				cmdGenerateGitPreCommitV.Hook = values[len(values)-1]
			case ArgGenerateGitPreCommitMiseArg:
				cmdGenerateGitPreCommitV.MiseArg = append(cmdGenerateGitPreCommitV.MiseArg, values...)
			case FlagGenerateGithubActionTask:
				cmdGenerateGithubActionV.Task = values[len(values)-1]
			case FlagGenerateGithubActionWrite:
				if source == argv.FromEnv {
					cmdGenerateGithubActionV.Write = argv.EnvTruth(values[0])
				} else {
					cmdGenerateGithubActionV.Write = values[0] == "true"
				}
			case FlagGenerateGithubActionName:
				cmdGenerateGithubActionV.Name = values[len(values)-1]
			case FlagGenerateTaskDocsInject:
				if source == argv.FromEnv {
					cmdGenerateTaskDocsV.Inject = argv.EnvTruth(values[0])
				} else {
					cmdGenerateTaskDocsV.Inject = values[0] == "true"
				}
			case FlagGenerateTaskDocsIndex:
				if source == argv.FromEnv {
					cmdGenerateTaskDocsV.Index = argv.EnvTruth(values[0])
				} else {
					cmdGenerateTaskDocsV.Index = values[0] == "true"
				}
			case FlagGenerateTaskDocsMulti:
				if source == argv.FromEnv {
					cmdGenerateTaskDocsV.Multi = argv.EnvTruth(values[0])
				} else {
					cmdGenerateTaskDocsV.Multi = values[0] == "true"
				}
			case FlagGenerateTaskDocsOutput:
				cmdGenerateTaskDocsV.Output = values[len(values)-1]
			case FlagGenerateTaskDocsRoot:
				cmdGenerateTaskDocsV.Root = values[len(values)-1]
			case FlagGenerateTaskDocsStyle:
				cmdGenerateTaskDocsV.Style = values[len(values)-1]
			case FlagGenerateTaskStubsDir:
				cmdGenerateTaskStubsV.Dir = values[len(values)-1]
			case FlagGenerateTaskStubsMiseBin:
				cmdGenerateTaskStubsV.MiseBin = values[len(values)-1]
			case FlagGenerateToolStubBin:
				cmdGenerateToolStubV.Bin = values[len(values)-1]
			case FlagGenerateToolStubBootstrap:
				if source == argv.FromEnv {
					cmdGenerateToolStubV.Bootstrap = argv.EnvTruth(values[0])
				} else {
					cmdGenerateToolStubV.Bootstrap = values[0] == "true"
				}
			case FlagGenerateToolStubBootstrapVersion:
				cmdGenerateToolStubV.BootstrapVersion = values[len(values)-1]
			case FlagGenerateToolStubChecksumAlgorithm:
				cmdGenerateToolStubV.ChecksumAlgorithm = values[len(values)-1]
			case FlagGenerateToolStubFetch:
				if source == argv.FromEnv {
					cmdGenerateToolStubV.Fetch = argv.EnvTruth(values[0])
				} else {
					cmdGenerateToolStubV.Fetch = values[0] == "true"
				}
			case FlagGenerateToolStubHttp:
				cmdGenerateToolStubV.Http = values[len(values)-1]
			case FlagGenerateToolStubLock:
				if source == argv.FromEnv {
					cmdGenerateToolStubV.Lock = argv.EnvTruth(values[0])
				} else {
					cmdGenerateToolStubV.Lock = values[0] == "true"
				}
			case FlagGenerateToolStubPlatformBin:
				cmdGenerateToolStubV.PlatformBin = append(cmdGenerateToolStubV.PlatformBin, values...)
			case FlagGenerateToolStubPlatformUrl:
				cmdGenerateToolStubV.PlatformUrl = append(cmdGenerateToolStubV.PlatformUrl, values...)
			case FlagGenerateToolStubSkipDownload:
				if source == argv.FromEnv {
					cmdGenerateToolStubV.SkipDownload = argv.EnvTruth(values[0])
				} else {
					cmdGenerateToolStubV.SkipDownload = values[0] == "true"
				}
			case FlagGenerateToolStubUrl:
				cmdGenerateToolStubV.Url = values[len(values)-1]
			case FlagGenerateToolStubVersion:
				cmdGenerateToolStubV.Version = values[len(values)-1]
			case ArgGenerateToolStubOutput:
				cmdGenerateToolStubV.Output = values[len(values)-1]
			case FlagGithubTokenOauth:
				if source == argv.FromEnv {
					cmdGithubTokenV.Oauth = argv.EnvTruth(values[0])
				} else {
					cmdGithubTokenV.Oauth = values[0] == "true"
				}
			case FlagGithubTokenRaw:
				if source == argv.FromEnv {
					cmdGithubTokenV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdGithubTokenV.Raw = values[0] == "true"
				}
			case FlagGithubTokenRefresh:
				if source == argv.FromEnv {
					cmdGithubTokenV.Refresh = argv.EnvTruth(values[0])
				} else {
					cmdGithubTokenV.Refresh = values[0] == "true"
				}
			case FlagGithubTokenUnmask:
				if source == argv.FromEnv {
					cmdGithubTokenV.Unmask = argv.EnvTruth(values[0])
				} else {
					cmdGithubTokenV.Unmask = values[0] == "true"
				}
			case ArgGithubTokenHost:
				cmdGithubTokenV.Host = values[len(values)-1]
			case FlagGlobalFuzzy:
				if source == argv.FromEnv {
					cmdGlobalV.Fuzzy = argv.EnvTruth(values[0])
				} else {
					cmdGlobalV.Fuzzy = values[0] == "true"
				}
			case FlagGlobalPath:
				if source == argv.FromEnv {
					cmdGlobalV.Path = argv.EnvTruth(values[0])
				} else {
					cmdGlobalV.Path = values[0] == "true"
				}
			case FlagGlobalPin:
				if source == argv.FromEnv {
					cmdGlobalV.Pin = argv.EnvTruth(values[0])
				} else {
					cmdGlobalV.Pin = values[0] == "true"
				}
			case FlagGlobalRemove:
				cmdGlobalV.Remove = append(cmdGlobalV.Remove, values...)
			case ArgGlobalToolVersion:
				cmdGlobalV.ToolVersion = append(cmdGlobalV.ToolVersion, values...)
			case FlagHookEnvForce:
				if source == argv.FromEnv {
					cmdHookEnvV.Force = argv.EnvTruth(values[0])
				} else {
					cmdHookEnvV.Force = values[0] == "true"
				}
			case FlagHookEnvQuiet:
				if source == argv.FromEnv {
					cmdHookEnvV.Quiet = argv.EnvTruth(values[0])
				} else {
					cmdHookEnvV.Quiet = values[0] == "true"
				}
			case FlagHookEnvShell:
				cmdHookEnvV.Shell = values[len(values)-1]
			case FlagHookEnvReason:
				cmdHookEnvV.Reason = values[len(values)-1]
			case FlagHookEnvStatus:
				if source == argv.FromEnv {
					cmdHookEnvV.Status = argv.EnvTruth(values[0])
				} else {
					cmdHookEnvV.Status = values[0] == "true"
				}
			case FlagHookNotFoundShell:
				cmdHookNotFoundV.Shell = values[len(values)-1]
			case ArgHookNotFoundBin:
				cmdHookNotFoundV.Bin = values[len(values)-1]
			case FlagImplodeDryRun:
				if source == argv.FromEnv {
					cmdImplodeV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdImplodeV.DryRun = values[0] == "true"
				}
			case FlagImplodeConfig:
				if source == argv.FromEnv {
					cmdImplodeV.Config = argv.EnvTruth(values[0])
				} else {
					cmdImplodeV.Config = values[0] == "true"
				}
			case FlagEditGlobal:
				if source == argv.FromEnv {
					cmdEditV.Global = argv.EnvTruth(values[0])
				} else {
					cmdEditV.Global = values[0] == "true"
				}
			case FlagEditDryRun:
				if source == argv.FromEnv {
					cmdEditV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdEditV.DryRun = values[0] == "true"
				}
			case FlagEditToolVersions:
				cmdEditV.ToolVersions = values[len(values)-1]
			case ArgEditPath:
				cmdEditV.Path = values[len(values)-1]
			case FlagInstallForce:
				if source == argv.FromEnv {
					cmdInstallV.Force = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.Force = values[0] == "true"
				}
			case FlagInstallJobs:
				cmdInstallV.Jobs = values[len(values)-1]
			case FlagInstallDryRun:
				if source == argv.FromEnv {
					cmdInstallV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.DryRun = values[0] == "true"
				}
			case FlagInstallDryRunCode:
				if source == argv.FromEnv {
					cmdInstallV.DryRunCode = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.DryRunCode = values[0] == "true"
				}
			case FlagInstallIncludeTaskTools:
				if source == argv.FromEnv {
					cmdInstallV.IncludeTaskTools = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.IncludeTaskTools = values[0] == "true"
				}
			case FlagInstallMinimumReleaseAge:
				cmdInstallV.MinimumReleaseAge = values[len(values)-1]
			case FlagInstallMonorepo:
				if source == argv.FromEnv {
					cmdInstallV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.Monorepo = values[0] == "true"
				}
			case FlagInstallRaw:
				if source == argv.FromEnv {
					cmdInstallV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.Raw = values[0] == "true"
				}
			case FlagInstallShared:
				cmdInstallV.Shared = values[len(values)-1]
			case FlagInstallSystem:
				if source == argv.FromEnv {
					cmdInstallV.System = argv.EnvTruth(values[0])
				} else {
					cmdInstallV.System = values[0] == "true"
				}
			case ArgInstallToolVersion:
				cmdInstallV.ToolVersion = append(cmdInstallV.ToolVersion, values...)
			case ArgInstallIntoToolVersion:
				cmdInstallIntoV.ToolVersion = values[len(values)-1]
			case ArgInstallIntoPath:
				cmdInstallIntoV.Path = values[len(values)-1]
			case FlagLatestInstalled:
				if source == argv.FromEnv {
					cmdLatestV.Installed = argv.EnvTruth(values[0])
				} else {
					cmdLatestV.Installed = values[0] == "true"
				}
			case FlagLatestMinimumReleaseAge:
				cmdLatestV.MinimumReleaseAge = values[len(values)-1]
			case ArgLatestToolVersion:
				cmdLatestV.ToolVersion = values[len(values)-1]
			case ArgLatestAsdfVersion:
				cmdLatestV.AsdfVersion = values[len(values)-1]
			case FlagLinkForce:
				if source == argv.FromEnv {
					cmdLinkV.Force = argv.EnvTruth(values[0])
				} else {
					cmdLinkV.Force = values[0] == "true"
				}
			case ArgLinkToolVersion:
				cmdLinkV.ToolVersion = values[len(values)-1]
			case ArgLinkPath:
				cmdLinkV.Path = values[len(values)-1]
			case FlagLocalParent:
				if source == argv.FromEnv {
					cmdLocalV.Parent = argv.EnvTruth(values[0])
				} else {
					cmdLocalV.Parent = values[0] == "true"
				}
			case FlagLocalFuzzy:
				if source == argv.FromEnv {
					cmdLocalV.Fuzzy = argv.EnvTruth(values[0])
				} else {
					cmdLocalV.Fuzzy = values[0] == "true"
				}
			case FlagLocalPath:
				if source == argv.FromEnv {
					cmdLocalV.Path = argv.EnvTruth(values[0])
				} else {
					cmdLocalV.Path = values[0] == "true"
				}
			case FlagLocalPin:
				if source == argv.FromEnv {
					cmdLocalV.Pin = argv.EnvTruth(values[0])
				} else {
					cmdLocalV.Pin = values[0] == "true"
				}
			case FlagLocalRemove:
				cmdLocalV.Remove = append(cmdLocalV.Remove, values...)
			case ArgLocalToolVersion:
				cmdLocalV.ToolVersion = append(cmdLocalV.ToolVersion, values...)
			case FlagLockGlobal:
				if source == argv.FromEnv {
					cmdLockV.Global = argv.EnvTruth(values[0])
				} else {
					cmdLockV.Global = values[0] == "true"
				}
			case FlagLockJobs:
				cmdLockV.Jobs = values[len(values)-1]
			case FlagLockDryRun:
				if source == argv.FromEnv {
					cmdLockV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdLockV.DryRun = values[0] == "true"
				}
			case FlagLockPlatform:
				cmdLockV.Platform = append(cmdLockV.Platform, values...)
			case FlagLockBump:
				if source == argv.FromEnv {
					cmdLockV.Bump = argv.EnvTruth(values[0])
				} else {
					cmdLockV.Bump = values[0] == "true"
				}
			case FlagLockJson:
				if source == argv.FromEnv {
					cmdLockV.Json = argv.EnvTruth(values[0])
				} else {
					cmdLockV.Json = values[0] == "true"
				}
			case FlagLockLocal:
				if source == argv.FromEnv {
					cmdLockV.Local = argv.EnvTruth(values[0])
				} else {
					cmdLockV.Local = values[0] == "true"
				}
			case FlagLockMinimumReleaseAge:
				cmdLockV.MinimumReleaseAge = values[len(values)-1]
			case ArgLockTool:
				cmdLockV.Tool = append(cmdLockV.Tool, values...)
			case FlagLsCurrent:
				if source == argv.FromEnv {
					cmdLsV.Current = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Current = values[0] == "true"
				}
			case FlagLsGlobal:
				if source == argv.FromEnv {
					cmdLsV.Global = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Global = values[0] == "true"
				}
			case FlagLsInstalled:
				if source == argv.FromEnv {
					cmdLsV.Installed = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Installed = values[0] == "true"
				}
			case FlagLsJson:
				if source == argv.FromEnv {
					cmdLsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Json = values[0] == "true"
				}
			case FlagLsLocal:
				if source == argv.FromEnv {
					cmdLsV.Local = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Local = values[0] == "true"
				}
			case FlagLsMissing:
				if source == argv.FromEnv {
					cmdLsV.Missing = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Missing = values[0] == "true"
				}
			case FlagLsOffline:
				if source == argv.FromEnv {
					cmdLsV.Offline = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Offline = values[0] == "true"
				}
			case FlagLsPlugin:
				cmdLsV.Plugin = values[len(values)-1]
			case FlagLsAllSources:
				if source == argv.FromEnv {
					cmdLsV.AllSources = argv.EnvTruth(values[0])
				} else {
					cmdLsV.AllSources = values[0] == "true"
				}
			case FlagLsMonorepo:
				if source == argv.FromEnv {
					cmdLsV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Monorepo = values[0] == "true"
				}
			case FlagLsNoHeader:
				if source == argv.FromEnv {
					cmdLsV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdLsV.NoHeader = values[0] == "true"
				}
			case FlagLsOutdated:
				if source == argv.FromEnv {
					cmdLsV.Outdated = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Outdated = values[0] == "true"
				}
			case FlagLsPrefix:
				cmdLsV.Prefix = values[len(values)-1]
			case FlagLsPrunable:
				if source == argv.FromEnv {
					cmdLsV.Prunable = argv.EnvTruth(values[0])
				} else {
					cmdLsV.Prunable = values[0] == "true"
				}
			case ArgLsInstalledTool:
				cmdLsV.InstalledTool = append(cmdLsV.InstalledTool, values...)
			case FlagLsRemoteAll:
				if source == argv.FromEnv {
					cmdLsRemoteV.All = argv.EnvTruth(values[0])
				} else {
					cmdLsRemoteV.All = values[0] == "true"
				}
			case FlagLsRemoteMinimumReleaseAge:
				cmdLsRemoteV.MinimumReleaseAge = values[len(values)-1]
			case FlagLsRemoteJson:
				if source == argv.FromEnv {
					cmdLsRemoteV.Json = argv.EnvTruth(values[0])
				} else {
					cmdLsRemoteV.Json = values[0] == "true"
				}
			case FlagLsRemoteNoVersionsHost:
				if source == argv.FromEnv {
					cmdLsRemoteV.NoVersionsHost = argv.EnvTruth(values[0])
				} else {
					cmdLsRemoteV.NoVersionsHost = values[0] == "true"
				}
			case FlagLsRemotePrerelease:
				if source == argv.FromEnv {
					cmdLsRemoteV.Prerelease = argv.EnvTruth(values[0])
				} else {
					cmdLsRemoteV.Prerelease = values[0] == "true"
				}
			case FlagLsRemoteStrictMetadata:
				if source == argv.FromEnv {
					cmdLsRemoteV.StrictMetadata = argv.EnvTruth(values[0])
				} else {
					cmdLsRemoteV.StrictMetadata = values[0] == "true"
				}
			case ArgLsRemoteToolVersion:
				cmdLsRemoteV.ToolVersion = values[len(values)-1]
			case ArgLsRemotePrefix:
				cmdLsRemoteV.Prefix = values[len(values)-1]
			case FlagOciBuildCopy:
				cmdOciBuildV.Copy = append(cmdOciBuildV.Copy, values...)
			case FlagOciBuildOutput:
				cmdOciBuildV.Output = values[len(values)-1]
			case FlagOciBuildFrom:
				cmdOciBuildV.From = values[len(values)-1]
			case FlagOciBuildIncludeGlobal:
				if source == argv.FromEnv {
					cmdOciBuildV.IncludeGlobal = argv.EnvTruth(values[0])
				} else {
					cmdOciBuildV.IncludeGlobal = values[0] == "true"
				}
			case FlagOciBuildTag:
				cmdOciBuildV.Tag = values[len(values)-1]
			case FlagOciBuildMountPoint:
				cmdOciBuildV.MountPoint = values[len(values)-1]
			case FlagOciBuildNoMise:
				if source == argv.FromEnv {
					cmdOciBuildV.NoMise = argv.EnvTruth(values[0])
				} else {
					cmdOciBuildV.NoMise = values[0] == "true"
				}
			case FlagOciBuildOwner:
				cmdOciBuildV.Owner = values[len(values)-1]
			case FlagOciPushCacheFrom:
				cmdOciPushV.CacheFrom = values[len(values)-1]
			case FlagOciPushFrom:
				cmdOciPushV.From = values[len(values)-1]
			case FlagOciPushImageDir:
				cmdOciPushV.ImageDir = values[len(values)-1]
			case FlagOciPushIncludeGlobal:
				if source == argv.FromEnv {
					cmdOciPushV.IncludeGlobal = argv.EnvTruth(values[0])
				} else {
					cmdOciPushV.IncludeGlobal = values[0] == "true"
				}
			case FlagOciPushMountPoint:
				cmdOciPushV.MountPoint = values[len(values)-1]
			case FlagOciPushNoCache:
				if source == argv.FromEnv {
					cmdOciPushV.NoCache = argv.EnvTruth(values[0])
				} else {
					cmdOciPushV.NoCache = values[0] == "true"
				}
			case FlagOciPushNoMise:
				if source == argv.FromEnv {
					cmdOciPushV.NoMise = argv.EnvTruth(values[0])
				} else {
					cmdOciPushV.NoMise = values[0] == "true"
				}
			case FlagOciPushOwner:
				cmdOciPushV.Owner = values[len(values)-1]
			case FlagOciPushUpdateIndex:
				if source == argv.FromEnv {
					cmdOciPushV.UpdateIndex = argv.EnvTruth(values[0])
				} else {
					cmdOciPushV.UpdateIndex = values[0] == "true"
				}
			case ArgOciPushRef:
				cmdOciPushV.Ref = values[len(values)-1]
			case FlagOciRunEngine:
				cmdOciRunV.Engine = values[len(values)-1]
			case FlagOciRunFrom:
				cmdOciRunV.From = values[len(values)-1]
			case FlagOciRunImageDir:
				cmdOciRunV.ImageDir = values[len(values)-1]
			case FlagOciRunIncludeGlobal:
				if source == argv.FromEnv {
					cmdOciRunV.IncludeGlobal = argv.EnvTruth(values[0])
				} else {
					cmdOciRunV.IncludeGlobal = values[0] == "true"
				}
			case FlagOciRunKeep:
				if source == argv.FromEnv {
					cmdOciRunV.Keep = argv.EnvTruth(values[0])
				} else {
					cmdOciRunV.Keep = values[0] == "true"
				}
			case FlagOciRunMountPoint:
				cmdOciRunV.MountPoint = values[len(values)-1]
			case FlagOciRunNoMise:
				if source == argv.FromEnv {
					cmdOciRunV.NoMise = argv.EnvTruth(values[0])
				} else {
					cmdOciRunV.NoMise = values[0] == "true"
				}
			case FlagOciRunOwner:
				cmdOciRunV.Owner = values[len(values)-1]
			case FlagOciRunVolume:
				cmdOciRunV.Volume = append(cmdOciRunV.Volume, values...)
			case FlagOciRunEnv:
				cmdOciRunV.Env = append(cmdOciRunV.Env, values...)
			case FlagOciRunInteractive:
				if source == argv.FromEnv {
					cmdOciRunV.Interactive = argv.EnvTruth(values[0])
				} else {
					cmdOciRunV.Interactive = values[0] == "true"
				}
			case FlagOciRunTty:
				if source == argv.FromEnv {
					cmdOciRunV.Tty = argv.EnvTruth(values[0])
				} else {
					cmdOciRunV.Tty = values[0] == "true"
				}
			case FlagOciRunWorkdir:
				cmdOciRunV.Workdir = values[len(values)-1]
			case ArgOciRunCmd:
				cmdOciRunV.Cmd = append(cmdOciRunV.Cmd, values...)
			case FlagOutdatedBump:
				if source == argv.FromEnv {
					cmdOutdatedV.Bump = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.Bump = values[0] == "true"
				}
			case FlagOutdatedJson:
				if source == argv.FromEnv {
					cmdOutdatedV.Json = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.Json = values[0] == "true"
				}
			case FlagOutdatedL:
				if source == argv.FromEnv {
					cmdOutdatedV.L = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.L = values[0] == "true"
				}
			case FlagOutdatedInactive:
				if source == argv.FromEnv {
					cmdOutdatedV.Inactive = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.Inactive = values[0] == "true"
				}
			case FlagOutdatedLocal:
				if source == argv.FromEnv {
					cmdOutdatedV.Local = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.Local = values[0] == "true"
				}
			case FlagOutdatedMonorepo:
				if source == argv.FromEnv {
					cmdOutdatedV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.Monorepo = values[0] == "true"
				}
			case FlagOutdatedNoHeader:
				if source == argv.FromEnv {
					cmdOutdatedV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdOutdatedV.NoHeader = values[0] == "true"
				}
			case ArgOutdatedToolVersion:
				cmdOutdatedV.ToolVersion = append(cmdOutdatedV.ToolVersion, values...)
			case FlagPatronsJson:
				if source == argv.FromEnv {
					cmdPatronsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdPatronsV.Json = values[0] == "true"
				}
			case FlagPatronsRefresh:
				if source == argv.FromEnv {
					cmdPatronsV.Refresh = argv.EnvTruth(values[0])
				} else {
					cmdPatronsV.Refresh = values[0] == "true"
				}
			case FlagPluginsAll:
				if source == argv.FromEnv {
					cmdPluginsV.All = argv.EnvTruth(values[0])
				} else {
					cmdPluginsV.All = values[0] == "true"
				}
			case FlagPluginsCore:
				if source == argv.FromEnv {
					cmdPluginsV.Core = argv.EnvTruth(values[0])
				} else {
					cmdPluginsV.Core = values[0] == "true"
				}
			case FlagPluginsUrls:
				if source == argv.FromEnv {
					cmdPluginsV.Urls = argv.EnvTruth(values[0])
				} else {
					cmdPluginsV.Urls = values[0] == "true"
				}
			case FlagPluginsRefs:
				if source == argv.FromEnv {
					cmdPluginsV.Refs = argv.EnvTruth(values[0])
				} else {
					cmdPluginsV.Refs = values[0] == "true"
				}
			case FlagPluginsUser:
				if source == argv.FromEnv {
					cmdPluginsV.User = argv.EnvTruth(values[0])
				} else {
					cmdPluginsV.User = values[0] == "true"
				}
			case FlagPluginsInstallAll:
				if source == argv.FromEnv {
					cmdPluginsInstallV.All = argv.EnvTruth(values[0])
				} else {
					cmdPluginsInstallV.All = values[0] == "true"
				}
			case FlagPluginsInstallForce:
				if source == argv.FromEnv {
					cmdPluginsInstallV.Force = argv.EnvTruth(values[0])
				} else {
					cmdPluginsInstallV.Force = values[0] == "true"
				}
			case FlagPluginsInstallJobs:
				cmdPluginsInstallV.Jobs = values[len(values)-1]
			case ArgPluginsInstallNewPlugin:
				cmdPluginsInstallV.NewPlugin = values[len(values)-1]
			case ArgPluginsInstallGitUrl:
				cmdPluginsInstallV.GitUrl = values[len(values)-1]
			case ArgPluginsInstallRest:
				cmdPluginsInstallV.Rest = append(cmdPluginsInstallV.Rest, values...)
			case FlagPluginsLinkForce:
				if source == argv.FromEnv {
					cmdPluginsLinkV.Force = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLinkV.Force = values[0] == "true"
				}
			case ArgPluginsLinkName:
				cmdPluginsLinkV.Name = values[len(values)-1]
			case ArgPluginsLinkDir:
				cmdPluginsLinkV.Dir = values[len(values)-1]
			case FlagPluginsLsAll:
				if source == argv.FromEnv {
					cmdPluginsLsV.All = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsV.All = values[0] == "true"
				}
			case FlagPluginsLsCore:
				if source == argv.FromEnv {
					cmdPluginsLsV.Core = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsV.Core = values[0] == "true"
				}
			case FlagPluginsLsOutdated:
				if source == argv.FromEnv {
					cmdPluginsLsV.Outdated = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsV.Outdated = values[0] == "true"
				}
			case FlagPluginsLsUrls:
				if source == argv.FromEnv {
					cmdPluginsLsV.Urls = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsV.Urls = values[0] == "true"
				}
			case FlagPluginsLsRefs:
				if source == argv.FromEnv {
					cmdPluginsLsV.Refs = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsV.Refs = values[0] == "true"
				}
			case FlagPluginsLsUser:
				if source == argv.FromEnv {
					cmdPluginsLsV.User = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsV.User = values[0] == "true"
				}
			case FlagPluginsLsRemoteUrls:
				if source == argv.FromEnv {
					cmdPluginsLsRemoteV.Urls = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsRemoteV.Urls = values[0] == "true"
				}
			case FlagPluginsLsRemoteOnlyNames:
				if source == argv.FromEnv {
					cmdPluginsLsRemoteV.OnlyNames = argv.EnvTruth(values[0])
				} else {
					cmdPluginsLsRemoteV.OnlyNames = values[0] == "true"
				}
			case FlagPluginsUninstallAll:
				if source == argv.FromEnv {
					cmdPluginsUninstallV.All = argv.EnvTruth(values[0])
				} else {
					cmdPluginsUninstallV.All = values[0] == "true"
				}
			case FlagPluginsUninstallPurge:
				if source == argv.FromEnv {
					cmdPluginsUninstallV.Purge = argv.EnvTruth(values[0])
				} else {
					cmdPluginsUninstallV.Purge = values[0] == "true"
				}
			case ArgPluginsUninstallPlugin:
				cmdPluginsUninstallV.Plugin = append(cmdPluginsUninstallV.Plugin, values...)
			case FlagPluginsUpdateJobs:
				cmdPluginsUpdateV.Jobs = values[len(values)-1]
			case ArgPluginsUpdatePlugin:
				cmdPluginsUpdateV.Plugin = append(cmdPluginsUpdateV.Plugin, values...)
			case FlagDepsExplain:
				if source == argv.FromEnv {
					cmdDepsV.Explain = argv.EnvTruth(values[0])
				} else {
					cmdDepsV.Explain = values[0] == "true"
				}
			case FlagDepsForce:
				if source == argv.FromEnv {
					cmdDepsV.Force = argv.EnvTruth(values[0])
				} else {
					cmdDepsV.Force = values[0] == "true"
				}
			case FlagDepsDryRun:
				if source == argv.FromEnv {
					cmdDepsV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdDepsV.DryRun = values[0] == "true"
				}
			case FlagDepsList:
				if source == argv.FromEnv {
					cmdDepsV.List = argv.EnvTruth(values[0])
				} else {
					cmdDepsV.List = values[0] == "true"
				}
			case FlagDepsMonorepo:
				if source == argv.FromEnv {
					cmdDepsV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdDepsV.Monorepo = values[0] == "true"
				}
			case FlagDepsOnly:
				cmdDepsV.Only = append(cmdDepsV.Only, values...)
			case FlagDepsSkip:
				cmdDepsV.Skip = append(cmdDepsV.Skip, values...)
			case ArgDepsProvider:
				cmdDepsV.Provider = values[len(values)-1]
			case FlagDepsAddDev:
				if source == argv.FromEnv {
					cmdDepsAddV.Dev = argv.EnvTruth(values[0])
				} else {
					cmdDepsAddV.Dev = values[0] == "true"
				}
			case ArgDepsAddPackages:
				cmdDepsAddV.Packages = append(cmdDepsAddV.Packages, values...)
			case FlagDepsInstallExplain:
				if source == argv.FromEnv {
					cmdDepsInstallV.Explain = argv.EnvTruth(values[0])
				} else {
					cmdDepsInstallV.Explain = values[0] == "true"
				}
			case FlagDepsInstallForce:
				if source == argv.FromEnv {
					cmdDepsInstallV.Force = argv.EnvTruth(values[0])
				} else {
					cmdDepsInstallV.Force = values[0] == "true"
				}
			case FlagDepsInstallDryRun:
				if source == argv.FromEnv {
					cmdDepsInstallV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdDepsInstallV.DryRun = values[0] == "true"
				}
			case FlagDepsInstallList:
				if source == argv.FromEnv {
					cmdDepsInstallV.List = argv.EnvTruth(values[0])
				} else {
					cmdDepsInstallV.List = values[0] == "true"
				}
			case FlagDepsInstallMonorepo:
				if source == argv.FromEnv {
					cmdDepsInstallV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdDepsInstallV.Monorepo = values[0] == "true"
				}
			case FlagDepsInstallOnly:
				cmdDepsInstallV.Only = append(cmdDepsInstallV.Only, values...)
			case FlagDepsInstallSkip:
				cmdDepsInstallV.Skip = append(cmdDepsInstallV.Skip, values...)
			case ArgDepsInstallProvider:
				cmdDepsInstallV.Provider = values[len(values)-1]
			case ArgDepsRemovePackages:
				cmdDepsRemoveV.Packages = append(cmdDepsRemoveV.Packages, values...)
			case FlagPruneDryRun:
				if source == argv.FromEnv {
					cmdPruneV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdPruneV.DryRun = values[0] == "true"
				}
			case FlagPruneConfigs:
				if source == argv.FromEnv {
					cmdPruneV.Configs = argv.EnvTruth(values[0])
				} else {
					cmdPruneV.Configs = values[0] == "true"
				}
			case FlagPruneDryRunCode:
				if source == argv.FromEnv {
					cmdPruneV.DryRunCode = argv.EnvTruth(values[0])
				} else {
					cmdPruneV.DryRunCode = values[0] == "true"
				}
			case FlagPruneMonorepo:
				if source == argv.FromEnv {
					cmdPruneV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdPruneV.Monorepo = values[0] == "true"
				}
			case FlagPruneTools:
				if source == argv.FromEnv {
					cmdPruneV.Tools = argv.EnvTruth(values[0])
				} else {
					cmdPruneV.Tools = values[0] == "true"
				}
			case ArgPruneInstalledTool:
				cmdPruneV.InstalledTool = append(cmdPruneV.InstalledTool, values...)
			case FlagRegistryBackend:
				cmdRegistryV.Backend = values[len(values)-1]
			case FlagRegistryComplete:
				if source == argv.FromEnv {
					cmdRegistryV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdRegistryV.Complete = values[0] == "true"
				}
			case FlagRegistryHideAliased:
				if source == argv.FromEnv {
					cmdRegistryV.HideAliased = argv.EnvTruth(values[0])
				} else {
					cmdRegistryV.HideAliased = values[0] == "true"
				}
			case FlagRegistryJson:
				if source == argv.FromEnv {
					cmdRegistryV.Json = argv.EnvTruth(values[0])
				} else {
					cmdRegistryV.Json = values[0] == "true"
				}
			case FlagRegistrySecurity:
				if source == argv.FromEnv {
					cmdRegistryV.Security = argv.EnvTruth(values[0])
				} else {
					cmdRegistryV.Security = values[0] == "true"
				}
			case ArgRegistryName:
				cmdRegistryV.Name = values[len(values)-1]
			case FlagReshimForce:
				if source == argv.FromEnv {
					cmdReshimV.Force = argv.EnvTruth(values[0])
				} else {
					cmdReshimV.Force = values[0] == "true"
				}
			case ArgReshimTool:
				cmdReshimV.Tool = values[len(values)-1]
			case ArgReshimVersion:
				cmdReshimV.Version = values[len(values)-1]
			case FlagRunAffected:
				if source == argv.FromEnv {
					cmdRunV.Affected = argv.EnvTruth(values[0])
				} else {
					cmdRunV.Affected = values[0] == "true"
				}
			case FlagRunAffectedBase:
				cmdRunV.AffectedBase = values[len(values)-1]
			case FlagRunAffectedExplain:
				if source == argv.FromEnv {
					cmdRunV.AffectedExplain = argv.EnvTruth(values[0])
				} else {
					cmdRunV.AffectedExplain = values[0] == "true"
				}
			case FlagRunAffectedHead:
				cmdRunV.AffectedHead = values[len(values)-1]
			case FlagRunAffectedJson:
				if source == argv.FromEnv {
					cmdRunV.AffectedJson = argv.EnvTruth(values[0])
				} else {
					cmdRunV.AffectedJson = values[0] == "true"
				}
			case FlagRunAll:
				if source == argv.FromEnv {
					cmdRunV.All = argv.EnvTruth(values[0])
				} else {
					cmdRunV.All = values[0] == "true"
				}
			case FlagRunContinueOnError:
				if source == argv.FromEnv {
					cmdRunV.ContinueOnError = argv.EnvTruth(values[0])
				} else {
					cmdRunV.ContinueOnError = values[0] == "true"
				}
			case FlagRunCd:
				cmdRunV.Cd = values[len(values)-1]
			case FlagRunForce:
				if source == argv.FromEnv {
					cmdRunV.Force = argv.EnvTruth(values[0])
				} else {
					cmdRunV.Force = values[0] == "true"
				}
			case FlagRunJobs:
				cmdRunV.Jobs = values[len(values)-1]
			case FlagRunDryRun:
				if source == argv.FromEnv {
					cmdRunV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdRunV.DryRun = values[0] == "true"
				}
			case FlagRunOutput:
				cmdRunV.Output = values[len(values)-1]
			case FlagRunQuiet:
				if source == argv.FromEnv {
					cmdRunV.Quiet = argv.EnvTruth(values[0])
				} else {
					cmdRunV.Quiet = values[0] == "true"
				}
			case FlagRunRaw:
				if source == argv.FromEnv {
					cmdRunV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdRunV.Raw = values[0] == "true"
				}
			case FlagRunShell:
				cmdRunV.Shell = values[len(values)-1]
			case FlagRunSilent:
				if source == argv.FromEnv {
					cmdRunV.Silent = argv.EnvTruth(values[0])
				} else {
					cmdRunV.Silent = values[0] == "true"
				}
			case FlagRunTool:
				cmdRunV.Tool = append(cmdRunV.Tool, values...)
			case FlagRunAllowEnv:
				cmdRunV.AllowEnv = append(cmdRunV.AllowEnv, values...)
			case FlagRunAllowNet:
				cmdRunV.AllowNet = append(cmdRunV.AllowNet, values...)
			case FlagRunAllowRead:
				cmdRunV.AllowRead = append(cmdRunV.AllowRead, values...)
			case FlagRunAllowWrite:
				cmdRunV.AllowWrite = append(cmdRunV.AllowWrite, values...)
			case FlagRunDenyAll:
				if source == argv.FromEnv {
					cmdRunV.DenyAll = argv.EnvTruth(values[0])
				} else {
					cmdRunV.DenyAll = values[0] == "true"
				}
			case FlagRunDenyEnv:
				if source == argv.FromEnv {
					cmdRunV.DenyEnv = argv.EnvTruth(values[0])
				} else {
					cmdRunV.DenyEnv = values[0] == "true"
				}
			case FlagRunDenyNet:
				if source == argv.FromEnv {
					cmdRunV.DenyNet = argv.EnvTruth(values[0])
				} else {
					cmdRunV.DenyNet = values[0] == "true"
				}
			case FlagRunDenyRead:
				if source == argv.FromEnv {
					cmdRunV.DenyRead = argv.EnvTruth(values[0])
				} else {
					cmdRunV.DenyRead = values[0] == "true"
				}
			case FlagRunDenyWrite:
				if source == argv.FromEnv {
					cmdRunV.DenyWrite = argv.EnvTruth(values[0])
				} else {
					cmdRunV.DenyWrite = values[0] == "true"
				}
			case FlagRunFreshEnv:
				if source == argv.FromEnv {
					cmdRunV.FreshEnv = argv.EnvTruth(values[0])
				} else {
					cmdRunV.FreshEnv = values[0] == "true"
				}
			case FlagRunNoCache:
				if source == argv.FromEnv {
					cmdRunV.NoCache = argv.EnvTruth(values[0])
				} else {
					cmdRunV.NoCache = values[0] == "true"
				}
			case FlagRunNoDeps:
				if source == argv.FromEnv {
					cmdRunV.NoDeps = argv.EnvTruth(values[0])
				} else {
					cmdRunV.NoDeps = values[0] == "true"
				}
			case FlagRunNoTimings:
				if source == argv.FromEnv {
					cmdRunV.NoTimings = argv.EnvTruth(values[0])
				} else {
					cmdRunV.NoTimings = values[0] == "true"
				}
			case FlagRunSkipDeps:
				if source == argv.FromEnv {
					cmdRunV.SkipDeps = argv.EnvTruth(values[0])
				} else {
					cmdRunV.SkipDeps = values[0] == "true"
				}
			case FlagRunSkipTools:
				if source == argv.FromEnv {
					cmdRunV.SkipTools = argv.EnvTruth(values[0])
				} else {
					cmdRunV.SkipTools = values[0] == "true"
				}
			case FlagRunTaskCache:
				cmdRunV.TaskCache = values[len(values)-1]
			case FlagRunTaskCacheExplain:
				if source == argv.FromEnv {
					cmdRunV.TaskCacheExplain = argv.EnvTruth(values[0])
				} else {
					cmdRunV.TaskCacheExplain = values[0] == "true"
				}
			case FlagRunTaskCacheExplainJson:
				if source == argv.FromEnv {
					cmdRunV.TaskCacheExplainJson = argv.EnvTruth(values[0])
				} else {
					cmdRunV.TaskCacheExplainJson = values[0] == "true"
				}
			case FlagRunTaskCacheStats:
				if source == argv.FromEnv {
					cmdRunV.TaskCacheStats = argv.EnvTruth(values[0])
				} else {
					cmdRunV.TaskCacheStats = values[0] == "true"
				}
			case FlagRunTimeout:
				cmdRunV.Timeout = values[len(values)-1]
			case FlagRunTimings:
				if source == argv.FromEnv {
					cmdRunV.Timings = argv.EnvTruth(values[0])
				} else {
					cmdRunV.Timings = values[0] == "true"
				}
			case FlagSearchInteractive:
				if source == argv.FromEnv {
					cmdSearchV.Interactive = argv.EnvTruth(values[0])
				} else {
					cmdSearchV.Interactive = values[0] == "true"
				}
			case FlagSearchMatchType:
				cmdSearchV.MatchType = values[len(values)-1]
			case FlagSearchNoHeader:
				if source == argv.FromEnv {
					cmdSearchV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdSearchV.NoHeader = values[0] == "true"
				}
			case ArgSearchName:
				cmdSearchV.Name = values[len(values)-1]
			case FlagSelfUpdateForce:
				if source == argv.FromEnv {
					cmdSelfUpdateV.Force = argv.EnvTruth(values[0])
				} else {
					cmdSelfUpdateV.Force = values[0] == "true"
				}
			case FlagSelfUpdateYes:
				if source == argv.FromEnv {
					cmdSelfUpdateV.Yes = argv.EnvTruth(values[0])
				} else {
					cmdSelfUpdateV.Yes = values[0] == "true"
				}
			case FlagSelfUpdateNoPlugins:
				if source == argv.FromEnv {
					cmdSelfUpdateV.NoPlugins = argv.EnvTruth(values[0])
				} else {
					cmdSelfUpdateV.NoPlugins = values[0] == "true"
				}
			case ArgSelfUpdateVersion:
				cmdSelfUpdateV.Version = values[len(values)-1]
			case FlagSetEnv:
				cmdSetV.Env = values[len(values)-1]
			case FlagSetGlobal:
				if source == argv.FromEnv {
					cmdSetV.Global = argv.EnvTruth(values[0])
				} else {
					cmdSetV.Global = values[0] == "true"
				}
			case FlagSetAgeEncrypt:
				if source == argv.FromEnv {
					cmdSetV.AgeEncrypt = argv.EnvTruth(values[0])
				} else {
					cmdSetV.AgeEncrypt = values[0] == "true"
				}
			case FlagSetAgeKeyFile:
				cmdSetV.AgeKeyFile = values[len(values)-1]
			case FlagSetAgeRecipient:
				cmdSetV.AgeRecipient = append(cmdSetV.AgeRecipient, values...)
			case FlagSetAgeSshRecipient:
				cmdSetV.AgeSshRecipient = append(cmdSetV.AgeSshRecipient, values...)
			case FlagSetComplete:
				if source == argv.FromEnv {
					cmdSetV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdSetV.Complete = values[0] == "true"
				}
			case FlagSetFile:
				cmdSetV.File = values[len(values)-1]
			case FlagSetNoRedact:
				if source == argv.FromEnv {
					cmdSetV.NoRedact = argv.EnvTruth(values[0])
				} else {
					cmdSetV.NoRedact = values[0] == "true"
				}
			case FlagSetPrompt:
				if source == argv.FromEnv {
					cmdSetV.Prompt = argv.EnvTruth(values[0])
				} else {
					cmdSetV.Prompt = values[0] == "true"
				}
			case FlagSetRemove:
				cmdSetV.Remove = append(cmdSetV.Remove, values...)
			case FlagSetStdin:
				if source == argv.FromEnv {
					cmdSetV.Stdin = argv.EnvTruth(values[0])
				} else {
					cmdSetV.Stdin = values[0] == "true"
				}
			case ArgSetEnvVar:
				cmdSetV.EnvVar = append(cmdSetV.EnvVar, values...)
			case FlagSettingsAll:
				if source == argv.FromEnv {
					cmdSettingsV.All = argv.EnvTruth(values[0])
				} else {
					cmdSettingsV.All = values[0] == "true"
				}
			case FlagSettingsJson:
				if source == argv.FromEnv {
					cmdSettingsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdSettingsV.Json = values[0] == "true"
				}
			case FlagSettingsLocal:
				if source == argv.FromEnv {
					cmdSettingsV.Local = argv.EnvTruth(values[0])
				} else {
					cmdSettingsV.Local = values[0] == "true"
				}
			case FlagSettingsToml:
				if source == argv.FromEnv {
					cmdSettingsV.Toml = argv.EnvTruth(values[0])
				} else {
					cmdSettingsV.Toml = values[0] == "true"
				}
			case FlagSettingsComplete:
				if source == argv.FromEnv {
					cmdSettingsV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdSettingsV.Complete = values[0] == "true"
				}
			case FlagSettingsJsonExtended:
				if source == argv.FromEnv {
					cmdSettingsV.JsonExtended = argv.EnvTruth(values[0])
				} else {
					cmdSettingsV.JsonExtended = values[0] == "true"
				}
			case ArgSettingsSetting:
				cmdSettingsV.Setting = values[len(values)-1]
			case ArgSettingsValue:
				cmdSettingsV.Value = values[len(values)-1]
			case FlagSettingsAddLocal:
				if source == argv.FromEnv {
					cmdSettingsAddV.Local = argv.EnvTruth(values[0])
				} else {
					cmdSettingsAddV.Local = values[0] == "true"
				}
			case ArgSettingsAddSetting:
				cmdSettingsAddV.Setting = values[len(values)-1]
			case ArgSettingsAddValue:
				cmdSettingsAddV.Value = values[len(values)-1]
			case FlagSettingsGetLocal:
				if source == argv.FromEnv {
					cmdSettingsGetV.Local = argv.EnvTruth(values[0])
				} else {
					cmdSettingsGetV.Local = values[0] == "true"
				}
			case ArgSettingsGetSetting:
				cmdSettingsGetV.Setting = values[len(values)-1]
			case FlagSettingsLsAll:
				if source == argv.FromEnv {
					cmdSettingsLsV.All = argv.EnvTruth(values[0])
				} else {
					cmdSettingsLsV.All = values[0] == "true"
				}
			case FlagSettingsLsJson:
				if source == argv.FromEnv {
					cmdSettingsLsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdSettingsLsV.Json = values[0] == "true"
				}
			case FlagSettingsLsLocal:
				if source == argv.FromEnv {
					cmdSettingsLsV.Local = argv.EnvTruth(values[0])
				} else {
					cmdSettingsLsV.Local = values[0] == "true"
				}
			case FlagSettingsLsToml:
				if source == argv.FromEnv {
					cmdSettingsLsV.Toml = argv.EnvTruth(values[0])
				} else {
					cmdSettingsLsV.Toml = values[0] == "true"
				}
			case FlagSettingsLsComplete:
				if source == argv.FromEnv {
					cmdSettingsLsV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdSettingsLsV.Complete = values[0] == "true"
				}
			case FlagSettingsLsJsonExtended:
				if source == argv.FromEnv {
					cmdSettingsLsV.JsonExtended = argv.EnvTruth(values[0])
				} else {
					cmdSettingsLsV.JsonExtended = values[0] == "true"
				}
			case ArgSettingsLsSetting:
				cmdSettingsLsV.Setting = values[len(values)-1]
			case FlagSettingsSetLocal:
				if source == argv.FromEnv {
					cmdSettingsSetV.Local = argv.EnvTruth(values[0])
				} else {
					cmdSettingsSetV.Local = values[0] == "true"
				}
			case ArgSettingsSetSetting:
				cmdSettingsSetV.Setting = values[len(values)-1]
			case ArgSettingsSetValue:
				cmdSettingsSetV.Value = values[len(values)-1]
			case FlagSettingsUnsetLocal:
				if source == argv.FromEnv {
					cmdSettingsUnsetV.Local = argv.EnvTruth(values[0])
				} else {
					cmdSettingsUnsetV.Local = values[0] == "true"
				}
			case ArgSettingsUnsetKey:
				cmdSettingsUnsetV.Key = values[len(values)-1]
			case FlagShellJobs:
				cmdShellV.Jobs = values[len(values)-1]
			case FlagShellUnset:
				if source == argv.FromEnv {
					cmdShellV.Unset = argv.EnvTruth(values[0])
				} else {
					cmdShellV.Unset = values[0] == "true"
				}
			case FlagShellRaw:
				if source == argv.FromEnv {
					cmdShellV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdShellV.Raw = values[0] == "true"
				}
			case ArgShellToolVersion:
				cmdShellV.ToolVersion = append(cmdShellV.ToolVersion, values...)
			case FlagShellAliasNoHeader:
				if source == argv.FromEnv {
					cmdShellAliasV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdShellAliasV.NoHeader = values[0] == "true"
				}
			case ArgShellAliasGetShellAlias:
				cmdShellAliasGetV.ShellAlias = values[len(values)-1]
			case FlagShellAliasLsNoHeader:
				if source == argv.FromEnv {
					cmdShellAliasLsV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdShellAliasLsV.NoHeader = values[0] == "true"
				}
			case ArgShellAliasSetShellAlias:
				cmdShellAliasSetV.ShellAlias = values[len(values)-1]
			case ArgShellAliasSetCommand:
				cmdShellAliasSetV.Command = values[len(values)-1]
			case ArgShellAliasUnsetShellAlias:
				cmdShellAliasUnsetV.ShellAlias = values[len(values)-1]
			case FlagSyncNodeBrew:
				if source == argv.FromEnv {
					cmdSyncNodeV.Brew = argv.EnvTruth(values[0])
				} else {
					cmdSyncNodeV.Brew = values[0] == "true"
				}
			case FlagSyncNodeNodenv:
				if source == argv.FromEnv {
					cmdSyncNodeV.Nodenv = argv.EnvTruth(values[0])
				} else {
					cmdSyncNodeV.Nodenv = values[0] == "true"
				}
			case FlagSyncNodeNvm:
				if source == argv.FromEnv {
					cmdSyncNodeV.Nvm = argv.EnvTruth(values[0])
				} else {
					cmdSyncNodeV.Nvm = values[0] == "true"
				}
			case FlagSyncPythonPyenv:
				if source == argv.FromEnv {
					cmdSyncPythonV.Pyenv = argv.EnvTruth(values[0])
				} else {
					cmdSyncPythonV.Pyenv = values[0] == "true"
				}
			case FlagSyncPythonUv:
				if source == argv.FromEnv {
					cmdSyncPythonV.Uv = argv.EnvTruth(values[0])
				} else {
					cmdSyncPythonV.Uv = values[0] == "true"
				}
			case FlagSyncRubyBrew:
				if source == argv.FromEnv {
					cmdSyncRubyV.Brew = argv.EnvTruth(values[0])
				} else {
					cmdSyncRubyV.Brew = values[0] == "true"
				}
			case FlagTasksGlobal:
				if source == argv.FromEnv {
					cmdTasksV.Global = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Global = values[0] == "true"
				}
			case FlagTasksJson:
				if source == argv.FromEnv {
					cmdTasksV.Json = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Json = values[0] == "true"
				}
			case FlagTasksLocal:
				if source == argv.FromEnv {
					cmdTasksV.Local = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Local = values[0] == "true"
				}
			case FlagTasksExtended:
				if source == argv.FromEnv {
					cmdTasksV.Extended = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Extended = values[0] == "true"
				}
			case FlagTasksAll:
				if source == argv.FromEnv {
					cmdTasksV.All = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.All = values[0] == "true"
				}
			case FlagTasksComplete:
				if source == argv.FromEnv {
					cmdTasksV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Complete = values[0] == "true"
				}
			case FlagTasksHidden:
				if source == argv.FromEnv {
					cmdTasksV.Hidden = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Hidden = values[0] == "true"
				}
			case FlagTasksNameOnly:
				if source == argv.FromEnv {
					cmdTasksV.NameOnly = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.NameOnly = values[0] == "true"
				}
			case FlagTasksNoHeader:
				if source == argv.FromEnv {
					cmdTasksV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.NoHeader = values[0] == "true"
				}
			case FlagTasksSort:
				cmdTasksV.Sort = values[len(values)-1]
			case FlagTasksSortOrder:
				cmdTasksV.SortOrder = values[len(values)-1]
			case FlagTasksUsage:
				if source == argv.FromEnv {
					cmdTasksV.Usage = argv.EnvTruth(values[0])
				} else {
					cmdTasksV.Usage = values[0] == "true"
				}
			case ArgTasksTask:
				cmdTasksV.Task = values[len(values)-1]
			case FlagTasksAddAlias:
				cmdTasksAddV.Alias = append(cmdTasksAddV.Alias, values...)
			case FlagTasksAddDepends:
				cmdTasksAddV.Depends = append(cmdTasksAddV.Depends, values...)
			case FlagTasksAddDir:
				cmdTasksAddV.Dir = values[len(values)-1]
			case FlagTasksAddFile:
				if source == argv.FromEnv {
					cmdTasksAddV.File = argv.EnvTruth(values[0])
				} else {
					cmdTasksAddV.File = values[0] == "true"
				}
			case FlagTasksAddHide:
				if source == argv.FromEnv {
					cmdTasksAddV.Hide = argv.EnvTruth(values[0])
				} else {
					cmdTasksAddV.Hide = values[0] == "true"
				}
			case FlagTasksAddQuiet:
				if source == argv.FromEnv {
					cmdTasksAddV.Quiet = argv.EnvTruth(values[0])
				} else {
					cmdTasksAddV.Quiet = values[0] == "true"
				}
			case FlagTasksAddRaw:
				if source == argv.FromEnv {
					cmdTasksAddV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdTasksAddV.Raw = values[0] == "true"
				}
			case FlagTasksAddSources:
				cmdTasksAddV.Sources = append(cmdTasksAddV.Sources, values...)
			case FlagTasksAddWaitFor:
				cmdTasksAddV.WaitFor = append(cmdTasksAddV.WaitFor, values...)
			case FlagTasksAddDependsPost:
				cmdTasksAddV.DependsPost = append(cmdTasksAddV.DependsPost, values...)
			case FlagTasksAddDescription:
				cmdTasksAddV.Description = values[len(values)-1]
			case FlagTasksAddOutputs:
				cmdTasksAddV.Outputs = append(cmdTasksAddV.Outputs, values...)
			case FlagTasksAddRunWindows:
				cmdTasksAddV.RunWindows = values[len(values)-1]
			case FlagTasksAddShell:
				cmdTasksAddV.Shell = values[len(values)-1]
			case FlagTasksAddSilent:
				if source == argv.FromEnv {
					cmdTasksAddV.Silent = argv.EnvTruth(values[0])
				} else {
					cmdTasksAddV.Silent = values[0] == "true"
				}
			case ArgTasksAddTask:
				cmdTasksAddV.Task = values[len(values)-1]
			case ArgTasksAddRun:
				cmdTasksAddV.Run = append(cmdTasksAddV.Run, values...)
			case FlagTasksDepsCompact:
				if source == argv.FromEnv {
					cmdTasksDepsV.Compact = argv.EnvTruth(values[0])
				} else {
					cmdTasksDepsV.Compact = values[0] == "true"
				}
			case FlagTasksDepsDot:
				if source == argv.FromEnv {
					cmdTasksDepsV.Dot = argv.EnvTruth(values[0])
				} else {
					cmdTasksDepsV.Dot = values[0] == "true"
				}
			case FlagTasksDepsHidden:
				if source == argv.FromEnv {
					cmdTasksDepsV.Hidden = argv.EnvTruth(values[0])
				} else {
					cmdTasksDepsV.Hidden = values[0] == "true"
				}
			case ArgTasksDepsTasks:
				cmdTasksDepsV.Tasks = append(cmdTasksDepsV.Tasks, values...)
			case FlagTasksEditPath:
				if source == argv.FromEnv {
					cmdTasksEditV.Path = argv.EnvTruth(values[0])
				} else {
					cmdTasksEditV.Path = values[0] == "true"
				}
			case ArgTasksEditTask:
				cmdTasksEditV.Task = values[len(values)-1]
			case FlagTasksGraphJson:
				if source == argv.FromEnv {
					cmdTasksGraphV.Json = argv.EnvTruth(values[0])
				} else {
					cmdTasksGraphV.Json = values[0] == "true"
				}
			case FlagTasksGraphExplain:
				if source == argv.FromEnv {
					cmdTasksGraphV.Explain = argv.EnvTruth(values[0])
				} else {
					cmdTasksGraphV.Explain = values[0] == "true"
				}
			case FlagTasksGraphNoHeader:
				if source == argv.FromEnv {
					cmdTasksGraphV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdTasksGraphV.NoHeader = values[0] == "true"
				}
			case FlagTasksInfoJson:
				if source == argv.FromEnv {
					cmdTasksInfoV.Json = argv.EnvTruth(values[0])
				} else {
					cmdTasksInfoV.Json = values[0] == "true"
				}
			case ArgTasksInfoTask:
				cmdTasksInfoV.Task = values[len(values)-1]
			case FlagTasksLsGlobal:
				if source == argv.FromEnv {
					cmdTasksLsV.Global = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Global = values[0] == "true"
				}
			case FlagTasksLsJson:
				if source == argv.FromEnv {
					cmdTasksLsV.Json = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Json = values[0] == "true"
				}
			case FlagTasksLsLocal:
				if source == argv.FromEnv {
					cmdTasksLsV.Local = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Local = values[0] == "true"
				}
			case FlagTasksLsExtended:
				if source == argv.FromEnv {
					cmdTasksLsV.Extended = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Extended = values[0] == "true"
				}
			case FlagTasksLsAll:
				if source == argv.FromEnv {
					cmdTasksLsV.All = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.All = values[0] == "true"
				}
			case FlagTasksLsComplete:
				if source == argv.FromEnv {
					cmdTasksLsV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Complete = values[0] == "true"
				}
			case FlagTasksLsHidden:
				if source == argv.FromEnv {
					cmdTasksLsV.Hidden = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Hidden = values[0] == "true"
				}
			case FlagTasksLsNameOnly:
				if source == argv.FromEnv {
					cmdTasksLsV.NameOnly = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.NameOnly = values[0] == "true"
				}
			case FlagTasksLsNoHeader:
				if source == argv.FromEnv {
					cmdTasksLsV.NoHeader = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.NoHeader = values[0] == "true"
				}
			case FlagTasksLsSort:
				cmdTasksLsV.Sort = values[len(values)-1]
			case FlagTasksLsSortOrder:
				cmdTasksLsV.SortOrder = values[len(values)-1]
			case FlagTasksLsUsage:
				if source == argv.FromEnv {
					cmdTasksLsV.Usage = argv.EnvTruth(values[0])
				} else {
					cmdTasksLsV.Usage = values[0] == "true"
				}
			case FlagTasksRunAffected:
				if source == argv.FromEnv {
					cmdTasksRunV.Affected = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.Affected = values[0] == "true"
				}
			case FlagTasksRunAffectedBase:
				cmdTasksRunV.AffectedBase = values[len(values)-1]
			case FlagTasksRunAffectedExplain:
				if source == argv.FromEnv {
					cmdTasksRunV.AffectedExplain = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.AffectedExplain = values[0] == "true"
				}
			case FlagTasksRunAffectedHead:
				cmdTasksRunV.AffectedHead = values[len(values)-1]
			case FlagTasksRunAffectedJson:
				if source == argv.FromEnv {
					cmdTasksRunV.AffectedJson = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.AffectedJson = values[0] == "true"
				}
			case FlagTasksRunAll:
				if source == argv.FromEnv {
					cmdTasksRunV.All = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.All = values[0] == "true"
				}
			case FlagTasksRunContinueOnError:
				if source == argv.FromEnv {
					cmdTasksRunV.ContinueOnError = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.ContinueOnError = values[0] == "true"
				}
			case FlagTasksRunCd:
				cmdTasksRunV.Cd = values[len(values)-1]
			case FlagTasksRunForce:
				if source == argv.FromEnv {
					cmdTasksRunV.Force = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.Force = values[0] == "true"
				}
			case FlagTasksRunJobs:
				cmdTasksRunV.Jobs = values[len(values)-1]
			case FlagTasksRunDryRun:
				if source == argv.FromEnv {
					cmdTasksRunV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.DryRun = values[0] == "true"
				}
			case FlagTasksRunOutput:
				cmdTasksRunV.Output = values[len(values)-1]
			case FlagTasksRunQuiet:
				if source == argv.FromEnv {
					cmdTasksRunV.Quiet = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.Quiet = values[0] == "true"
				}
			case FlagTasksRunRaw:
				if source == argv.FromEnv {
					cmdTasksRunV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.Raw = values[0] == "true"
				}
			case FlagTasksRunShell:
				cmdTasksRunV.Shell = values[len(values)-1]
			case FlagTasksRunSilent:
				if source == argv.FromEnv {
					cmdTasksRunV.Silent = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.Silent = values[0] == "true"
				}
			case FlagTasksRunTool:
				cmdTasksRunV.Tool = append(cmdTasksRunV.Tool, values...)
			case FlagTasksRunAllowEnv:
				cmdTasksRunV.AllowEnv = append(cmdTasksRunV.AllowEnv, values...)
			case FlagTasksRunAllowNet:
				cmdTasksRunV.AllowNet = append(cmdTasksRunV.AllowNet, values...)
			case FlagTasksRunAllowRead:
				cmdTasksRunV.AllowRead = append(cmdTasksRunV.AllowRead, values...)
			case FlagTasksRunAllowWrite:
				cmdTasksRunV.AllowWrite = append(cmdTasksRunV.AllowWrite, values...)
			case FlagTasksRunDenyAll:
				if source == argv.FromEnv {
					cmdTasksRunV.DenyAll = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.DenyAll = values[0] == "true"
				}
			case FlagTasksRunDenyEnv:
				if source == argv.FromEnv {
					cmdTasksRunV.DenyEnv = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.DenyEnv = values[0] == "true"
				}
			case FlagTasksRunDenyNet:
				if source == argv.FromEnv {
					cmdTasksRunV.DenyNet = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.DenyNet = values[0] == "true"
				}
			case FlagTasksRunDenyRead:
				if source == argv.FromEnv {
					cmdTasksRunV.DenyRead = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.DenyRead = values[0] == "true"
				}
			case FlagTasksRunDenyWrite:
				if source == argv.FromEnv {
					cmdTasksRunV.DenyWrite = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.DenyWrite = values[0] == "true"
				}
			case FlagTasksRunFreshEnv:
				if source == argv.FromEnv {
					cmdTasksRunV.FreshEnv = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.FreshEnv = values[0] == "true"
				}
			case FlagTasksRunNoCache:
				if source == argv.FromEnv {
					cmdTasksRunV.NoCache = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.NoCache = values[0] == "true"
				}
			case FlagTasksRunNoDeps:
				if source == argv.FromEnv {
					cmdTasksRunV.NoDeps = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.NoDeps = values[0] == "true"
				}
			case FlagTasksRunNoTimings:
				if source == argv.FromEnv {
					cmdTasksRunV.NoTimings = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.NoTimings = values[0] == "true"
				}
			case FlagTasksRunSkipDeps:
				if source == argv.FromEnv {
					cmdTasksRunV.SkipDeps = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.SkipDeps = values[0] == "true"
				}
			case FlagTasksRunSkipTools:
				if source == argv.FromEnv {
					cmdTasksRunV.SkipTools = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.SkipTools = values[0] == "true"
				}
			case FlagTasksRunTaskCache:
				cmdTasksRunV.TaskCache = values[len(values)-1]
			case FlagTasksRunTaskCacheExplain:
				if source == argv.FromEnv {
					cmdTasksRunV.TaskCacheExplain = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.TaskCacheExplain = values[0] == "true"
				}
			case FlagTasksRunTaskCacheExplainJson:
				if source == argv.FromEnv {
					cmdTasksRunV.TaskCacheExplainJson = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.TaskCacheExplainJson = values[0] == "true"
				}
			case FlagTasksRunTaskCacheStats:
				if source == argv.FromEnv {
					cmdTasksRunV.TaskCacheStats = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.TaskCacheStats = values[0] == "true"
				}
			case FlagTasksRunTimeout:
				cmdTasksRunV.Timeout = values[len(values)-1]
			case FlagTasksRunTimings:
				if source == argv.FromEnv {
					cmdTasksRunV.Timings = argv.EnvTruth(values[0])
				} else {
					cmdTasksRunV.Timings = values[0] == "true"
				}
			case ArgTasksRunTask:
				cmdTasksRunV.Task = values[len(values)-1]
			case ArgTasksRunArgs:
				cmdTasksRunV.Args = append(cmdTasksRunV.Args, values...)
			case ArgTasksRunArgsLast:
				cmdTasksRunV.ArgsLast = append(cmdTasksRunV.ArgsLast, values...)
			case FlagTasksValidateErrorsOnly:
				if source == argv.FromEnv {
					cmdTasksValidateV.ErrorsOnly = argv.EnvTruth(values[0])
				} else {
					cmdTasksValidateV.ErrorsOnly = values[0] == "true"
				}
			case FlagTasksValidateJson:
				if source == argv.FromEnv {
					cmdTasksValidateV.Json = argv.EnvTruth(values[0])
				} else {
					cmdTasksValidateV.Json = values[0] == "true"
				}
			case ArgTasksValidateTasks:
				cmdTasksValidateV.Tasks = append(cmdTasksValidateV.Tasks, values...)
			case FlagTestToolAll:
				if source == argv.FromEnv {
					cmdTestToolV.All = argv.EnvTruth(values[0])
				} else {
					cmdTestToolV.All = values[0] == "true"
				}
			case FlagTestToolJobs:
				cmdTestToolV.Jobs = values[len(values)-1]
			case FlagTestToolAllConfig:
				if source == argv.FromEnv {
					cmdTestToolV.AllConfig = argv.EnvTruth(values[0])
				} else {
					cmdTestToolV.AllConfig = values[0] == "true"
				}
			case FlagTestToolIncludeNonDefined:
				if source == argv.FromEnv {
					cmdTestToolV.IncludeNonDefined = argv.EnvTruth(values[0])
				} else {
					cmdTestToolV.IncludeNonDefined = values[0] == "true"
				}
			case FlagTestToolRaw:
				if source == argv.FromEnv {
					cmdTestToolV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdTestToolV.Raw = values[0] == "true"
				}
			case ArgTestToolTools:
				cmdTestToolV.Tools = append(cmdTestToolV.Tools, values...)
			case FlagTokenForgejoUnmask:
				if source == argv.FromEnv {
					cmdTokenForgejoV.Unmask = argv.EnvTruth(values[0])
				} else {
					cmdTokenForgejoV.Unmask = values[0] == "true"
				}
			case ArgTokenForgejoHost:
				cmdTokenForgejoV.Host = values[len(values)-1]
			case FlagTokenGithubOauth:
				if source == argv.FromEnv {
					cmdTokenGithubV.Oauth = argv.EnvTruth(values[0])
				} else {
					cmdTokenGithubV.Oauth = values[0] == "true"
				}
			case FlagTokenGithubRaw:
				if source == argv.FromEnv {
					cmdTokenGithubV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdTokenGithubV.Raw = values[0] == "true"
				}
			case FlagTokenGithubRefresh:
				if source == argv.FromEnv {
					cmdTokenGithubV.Refresh = argv.EnvTruth(values[0])
				} else {
					cmdTokenGithubV.Refresh = values[0] == "true"
				}
			case FlagTokenGithubUnmask:
				if source == argv.FromEnv {
					cmdTokenGithubV.Unmask = argv.EnvTruth(values[0])
				} else {
					cmdTokenGithubV.Unmask = values[0] == "true"
				}
			case ArgTokenGithubHost:
				cmdTokenGithubV.Host = values[len(values)-1]
			case FlagTokenGitlabUnmask:
				if source == argv.FromEnv {
					cmdTokenGitlabV.Unmask = argv.EnvTruth(values[0])
				} else {
					cmdTokenGitlabV.Unmask = values[0] == "true"
				}
			case ArgTokenGitlabHost:
				cmdTokenGitlabV.Host = values[len(values)-1]
			case FlagToolJson:
				if source == argv.FromEnv {
					cmdToolV.Json = argv.EnvTruth(values[0])
				} else {
					cmdToolV.Json = values[0] == "true"
				}
			case FlagToolActive:
				if source == argv.FromEnv {
					cmdToolV.Active = argv.EnvTruth(values[0])
				} else {
					cmdToolV.Active = values[0] == "true"
				}
			case FlagToolBackend:
				if source == argv.FromEnv {
					cmdToolV.Backend = argv.EnvTruth(values[0])
				} else {
					cmdToolV.Backend = values[0] == "true"
				}
			case FlagToolConfigSource:
				if source == argv.FromEnv {
					cmdToolV.ConfigSource = argv.EnvTruth(values[0])
				} else {
					cmdToolV.ConfigSource = values[0] == "true"
				}
			case FlagToolDescription:
				if source == argv.FromEnv {
					cmdToolV.Description = argv.EnvTruth(values[0])
				} else {
					cmdToolV.Description = values[0] == "true"
				}
			case FlagToolInstalled:
				if source == argv.FromEnv {
					cmdToolV.Installed = argv.EnvTruth(values[0])
				} else {
					cmdToolV.Installed = values[0] == "true"
				}
			case FlagToolRequested:
				if source == argv.FromEnv {
					cmdToolV.Requested = argv.EnvTruth(values[0])
				} else {
					cmdToolV.Requested = values[0] == "true"
				}
			case FlagToolToolOptions:
				if source == argv.FromEnv {
					cmdToolV.ToolOptions = argv.EnvTruth(values[0])
				} else {
					cmdToolV.ToolOptions = values[0] == "true"
				}
			case ArgToolTool:
				cmdToolV.Tool = values[len(values)-1]
			case ArgToolStubFile:
				cmdToolStubV.File = values[len(values)-1]
			case ArgToolStubArgs:
				cmdToolStubV.Args = append(cmdToolStubV.Args, values...)
			case FlagTrustAll:
				if source == argv.FromEnv {
					cmdTrustV.All = argv.EnvTruth(values[0])
				} else {
					cmdTrustV.All = values[0] == "true"
				}
			case FlagTrustIgnore:
				if source == argv.FromEnv {
					cmdTrustV.Ignore = argv.EnvTruth(values[0])
				} else {
					cmdTrustV.Ignore = values[0] == "true"
				}
			case FlagTrustShow:
				if source == argv.FromEnv {
					cmdTrustV.Show = argv.EnvTruth(values[0])
				} else {
					cmdTrustV.Show = values[0] == "true"
				}
			case FlagTrustUntrust:
				if source == argv.FromEnv {
					cmdTrustV.Untrust = argv.EnvTruth(values[0])
				} else {
					cmdTrustV.Untrust = values[0] == "true"
				}
			case ArgTrustConfigFile:
				cmdTrustV.ConfigFile = values[len(values)-1]
			case FlagUninstallAll:
				if source == argv.FromEnv {
					cmdUninstallV.All = argv.EnvTruth(values[0])
				} else {
					cmdUninstallV.All = values[0] == "true"
				}
			case FlagUninstallDryRun:
				if source == argv.FromEnv {
					cmdUninstallV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdUninstallV.DryRun = values[0] == "true"
				}
			case FlagUninstallDryRunCode:
				if source == argv.FromEnv {
					cmdUninstallV.DryRunCode = argv.EnvTruth(values[0])
				} else {
					cmdUninstallV.DryRunCode = values[0] == "true"
				}
			case ArgUninstallInstalledToolVersion:
				cmdUninstallV.InstalledToolVersion = append(cmdUninstallV.InstalledToolVersion, values...)
			case FlagUnsetFile:
				cmdUnsetV.File = values[len(values)-1]
			case FlagUnsetGlobal:
				if source == argv.FromEnv {
					cmdUnsetV.Global = argv.EnvTruth(values[0])
				} else {
					cmdUnsetV.Global = values[0] == "true"
				}
			case ArgUnsetEnvKey:
				cmdUnsetV.EnvKey = append(cmdUnsetV.EnvKey, values...)
			case ArgUntrustConfigFile:
				cmdUntrustV.ConfigFile = values[len(values)-1]
			case FlagUnuseEnv:
				cmdUnuseV.Env = values[len(values)-1]
			case FlagUnuseGlobal:
				if source == argv.FromEnv {
					cmdUnuseV.Global = argv.EnvTruth(values[0])
				} else {
					cmdUnuseV.Global = values[0] == "true"
				}
			case FlagUnusePath:
				cmdUnuseV.Path = values[len(values)-1]
			case FlagUnuseNoPrune:
				if source == argv.FromEnv {
					cmdUnuseV.NoPrune = argv.EnvTruth(values[0])
				} else {
					cmdUnuseV.NoPrune = values[0] == "true"
				}
			case ArgUnuseInstalledToolVersion:
				cmdUnuseV.InstalledToolVersion = append(cmdUnuseV.InstalledToolVersion, values...)
			case FlagUpgradeBump:
				if source == argv.FromEnv {
					cmdUpgradeV.Bump = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Bump = values[0] == "true"
				}
			case FlagUpgradeInteractive:
				if source == argv.FromEnv {
					cmdUpgradeV.Interactive = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Interactive = values[0] == "true"
				}
			case FlagUpgradeJobs:
				cmdUpgradeV.Jobs = values[len(values)-1]
			case FlagUpgradeL:
				if source == argv.FromEnv {
					cmdUpgradeV.L = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.L = values[0] == "true"
				}
			case FlagUpgradeDryRun:
				if source == argv.FromEnv {
					cmdUpgradeV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.DryRun = values[0] == "true"
				}
			case FlagUpgradeExclude:
				cmdUpgradeV.Exclude = append(cmdUpgradeV.Exclude, values...)
			case FlagUpgradeDryRunCode:
				if source == argv.FromEnv {
					cmdUpgradeV.DryRunCode = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.DryRunCode = values[0] == "true"
				}
			case FlagUpgradeInactive:
				if source == argv.FromEnv {
					cmdUpgradeV.Inactive = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Inactive = values[0] == "true"
				}
			case FlagUpgradeLocal:
				if source == argv.FromEnv {
					cmdUpgradeV.Local = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Local = values[0] == "true"
				}
			case FlagUpgradeMinimumReleaseAge:
				cmdUpgradeV.MinimumReleaseAge = values[len(values)-1]
			case FlagUpgradeMonorepo:
				if source == argv.FromEnv {
					cmdUpgradeV.Monorepo = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Monorepo = values[0] == "true"
				}
			case FlagUpgradeNoPrune:
				if source == argv.FromEnv {
					cmdUpgradeV.NoPrune = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.NoPrune = values[0] == "true"
				}
			case FlagUpgradePrune:
				if source == argv.FromEnv {
					cmdUpgradeV.Prune = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Prune = values[0] == "true"
				}
			case FlagUpgradeRaw:
				if source == argv.FromEnv {
					cmdUpgradeV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdUpgradeV.Raw = values[0] == "true"
				}
			case ArgUpgradeInstalledToolVersion:
				cmdUpgradeV.InstalledToolVersion = append(cmdUpgradeV.InstalledToolVersion, values...)
			case FlagUseEnv:
				cmdUseV.Env = values[len(values)-1]
			case FlagUseForce:
				if source == argv.FromEnv {
					cmdUseV.Force = argv.EnvTruth(values[0])
				} else {
					cmdUseV.Force = values[0] == "true"
				}
			case FlagUseGlobal:
				if source == argv.FromEnv {
					cmdUseV.Global = argv.EnvTruth(values[0])
				} else {
					cmdUseV.Global = values[0] == "true"
				}
			case FlagUseJobs:
				cmdUseV.Jobs = values[len(values)-1]
			case FlagUseDryRun:
				if source == argv.FromEnv {
					cmdUseV.DryRun = argv.EnvTruth(values[0])
				} else {
					cmdUseV.DryRun = values[0] == "true"
				}
			case FlagUsePath:
				cmdUseV.Path = values[len(values)-1]
			case FlagUseDryRunCode:
				if source == argv.FromEnv {
					cmdUseV.DryRunCode = argv.EnvTruth(values[0])
				} else {
					cmdUseV.DryRunCode = values[0] == "true"
				}
			case FlagUseFuzzy:
				if source == argv.FromEnv {
					cmdUseV.Fuzzy = argv.EnvTruth(values[0])
				} else {
					cmdUseV.Fuzzy = values[0] == "true"
				}
			case FlagUseMinimumReleaseAge:
				cmdUseV.MinimumReleaseAge = values[len(values)-1]
			case FlagUsePin:
				if source == argv.FromEnv {
					cmdUseV.Pin = argv.EnvTruth(values[0])
				} else {
					cmdUseV.Pin = values[0] == "true"
				}
			case FlagUseRaw:
				if source == argv.FromEnv {
					cmdUseV.Raw = argv.EnvTruth(values[0])
				} else {
					cmdUseV.Raw = values[0] == "true"
				}
			case FlagUseRemove:
				cmdUseV.Remove = append(cmdUseV.Remove, values...)
			case ArgUseToolVersion:
				cmdUseV.ToolVersion = append(cmdUseV.ToolVersion, values...)
			case FlagVersionJson:
				if source == argv.FromEnv {
					cmdVersionV.Json = argv.EnvTruth(values[0])
				} else {
					cmdVersionV.Json = values[0] == "true"
				}
			case FlagWatchTaskFlag:
				cmdWatchV.TaskFlag = append(cmdWatchV.TaskFlag, values...)
			case FlagWatchGlob:
				cmdWatchV.Glob = append(cmdWatchV.Glob, values...)
			case FlagWatchSkipDeps:
				if source == argv.FromEnv {
					cmdWatchV.SkipDeps = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.SkipDeps = values[0] == "true"
				}
			case FlagWatchWatch:
				cmdWatchV.Watch = append(cmdWatchV.Watch, values...)
			case FlagWatchWatchNonRecursive:
				cmdWatchV.WatchNonRecursive = append(cmdWatchV.WatchNonRecursive, values...)
			case FlagWatchWatchFile:
				cmdWatchV.WatchFile = values[len(values)-1]
			case FlagWatchClear:
				cmdWatchV.Clear = values[len(values)-1]
			case FlagWatchOnBusyUpdate:
				cmdWatchV.OnBusyUpdate = values[len(values)-1]
			case FlagWatchRestart:
				if source == argv.FromEnv {
					cmdWatchV.Restart = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Restart = values[0] == "true"
				}
			case FlagWatchSignal:
				cmdWatchV.Signal = values[len(values)-1]
			case FlagWatchStopSignal:
				cmdWatchV.StopSignal = values[len(values)-1]
			case FlagWatchStopTimeout:
				cmdWatchV.StopTimeout = values[len(values)-1]
			case FlagWatchMapSignal:
				cmdWatchV.MapSignal = append(cmdWatchV.MapSignal, values...)
			case FlagWatchDebounce:
				cmdWatchV.Debounce = values[len(values)-1]
			case FlagWatchStdinQuit:
				if source == argv.FromEnv {
					cmdWatchV.StdinQuit = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.StdinQuit = values[0] == "true"
				}
			case FlagWatchNoVcsIgnore:
				if source == argv.FromEnv {
					cmdWatchV.NoVcsIgnore = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.NoVcsIgnore = values[0] == "true"
				}
			case FlagWatchNoProjectIgnore:
				if source == argv.FromEnv {
					cmdWatchV.NoProjectIgnore = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.NoProjectIgnore = values[0] == "true"
				}
			case FlagWatchNoGlobalIgnore:
				if source == argv.FromEnv {
					cmdWatchV.NoGlobalIgnore = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.NoGlobalIgnore = values[0] == "true"
				}
			case FlagWatchNoDefaultIgnore:
				if source == argv.FromEnv {
					cmdWatchV.NoDefaultIgnore = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.NoDefaultIgnore = values[0] == "true"
				}
			case FlagWatchNoDiscoverIgnore:
				if source == argv.FromEnv {
					cmdWatchV.NoDiscoverIgnore = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.NoDiscoverIgnore = values[0] == "true"
				}
			case FlagWatchIgnoreNothing:
				if source == argv.FromEnv {
					cmdWatchV.IgnoreNothing = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.IgnoreNothing = values[0] == "true"
				}
			case FlagWatchPostpone:
				if source == argv.FromEnv {
					cmdWatchV.Postpone = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Postpone = values[0] == "true"
				}
			case FlagWatchDelayRun:
				cmdWatchV.DelayRun = values[len(values)-1]
			case FlagWatchPoll:
				cmdWatchV.Poll = values[len(values)-1]
			case FlagWatchShell:
				cmdWatchV.Shell = values[len(values)-1]
			case FlagWatchN:
				if source == argv.FromEnv {
					cmdWatchV.N = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.N = values[0] == "true"
				}
			case FlagWatchEmitEventsTo:
				cmdWatchV.EmitEventsTo = values[len(values)-1]
			case FlagWatchOnlyEmitEvents:
				if source == argv.FromEnv {
					cmdWatchV.OnlyEmitEvents = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.OnlyEmitEvents = values[0] == "true"
				}
			case FlagWatchEnv:
				cmdWatchV.Env = append(cmdWatchV.Env, values...)
			case FlagWatchWrapProcess:
				cmdWatchV.WrapProcess = values[len(values)-1]
			case FlagWatchNotify:
				if source == argv.FromEnv {
					cmdWatchV.Notify = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Notify = values[0] == "true"
				}
			case FlagWatchColor:
				cmdWatchV.Color = values[len(values)-1]
			case FlagWatchTimings:
				if source == argv.FromEnv {
					cmdWatchV.Timings = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Timings = values[0] == "true"
				}
			case FlagWatchQuiet:
				if source == argv.FromEnv {
					cmdWatchV.Quiet = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Quiet = values[0] == "true"
				}
			case FlagWatchBell:
				if source == argv.FromEnv {
					cmdWatchV.Bell = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Bell = values[0] == "true"
				}
			case FlagWatchProjectOrigin:
				cmdWatchV.ProjectOrigin = values[len(values)-1]
			case FlagWatchWorkdir:
				cmdWatchV.Workdir = values[len(values)-1]
			case FlagWatchExts:
				cmdWatchV.Exts = append(cmdWatchV.Exts, values...)
			case FlagWatchFilter:
				cmdWatchV.Filter = append(cmdWatchV.Filter, values...)
			case FlagWatchFilterFile:
				cmdWatchV.FilterFile = append(cmdWatchV.FilterFile, values...)
			case FlagWatchFilterProg:
				cmdWatchV.FilterProg = append(cmdWatchV.FilterProg, values...)
			case FlagWatchIgnore:
				cmdWatchV.Ignore = append(cmdWatchV.Ignore, values...)
			case FlagWatchIgnoreFile:
				cmdWatchV.IgnoreFile = append(cmdWatchV.IgnoreFile, values...)
			case FlagWatchFsEvents:
				cmdWatchV.FsEvents = append(cmdWatchV.FsEvents, values...)
			case FlagWatchNoMeta:
				if source == argv.FromEnv {
					cmdWatchV.NoMeta = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.NoMeta = values[0] == "true"
				}
			case FlagWatchPrintEvents:
				if source == argv.FromEnv {
					cmdWatchV.PrintEvents = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.PrintEvents = values[0] == "true"
				}
			case FlagWatchManual:
				if source == argv.FromEnv {
					cmdWatchV.Manual = argv.EnvTruth(values[0])
				} else {
					cmdWatchV.Manual = values[0] == "true"
				}
			case ArgWatchTask:
				cmdWatchV.Task = values[len(values)-1]
			case ArgWatchArgs:
				cmdWatchV.Args = append(cmdWatchV.Args, values...)
			case ArgWhereToolVersion:
				cmdWhereV.ToolVersion = values[len(values)-1]
			case ArgWhereAsdfVersion:
				cmdWhereV.AsdfVersion = values[len(values)-1]
			case FlagWhichTool:
				cmdWhichV.Tool = values[len(values)-1]
			case FlagWhichComplete:
				if source == argv.FromEnv {
					cmdWhichV.Complete = argv.EnvTruth(values[0])
				} else {
					cmdWhichV.Complete = values[0] == "true"
				}
			case FlagWhichPlugin:
				if source == argv.FromEnv {
					cmdWhichV.Plugin = argv.EnvTruth(values[0])
				} else {
					cmdWhichV.Plugin = values[0] == "true"
				}
			case FlagWhichVersion:
				if source == argv.FromEnv {
					cmdWhichV.Version = argv.EnvTruth(values[0])
				} else {
					cmdWhichV.Version = values[0] == "true"
				}
			case ArgWhichBinName:
				cmdWhichV.BinName = values[len(values)-1]
			}
		}
	}
	if err := argv.CheckRelationshipsWithValuesAndRequirements(Meta, scope, func(k uint64) argv.Source {
		return sources[k]
	}, nil, func(k uint64) bool { return requirements[k] }); err != nil {
		return nil, err
	}
	return out, nil
}
