8000 Details output option for `list` by JohnMcPMS · Pull Request #5939 · microsoft/winget-cli · GitHub
[go: up one dir, main page]

Skip to content

Details output option for list#5939

Merged
JohnMcPMS merged 10 commits intomicrosoft:masterfrom
JohnMcPMS:show-list
Jan 7, 2026
Merged

Details output option for list#5939
JohnMcPMS merged 10 commits intomicrosoft:masterfrom
JohnMcPMS:show-list

Conversation

@JohnMcPMS
Copy link
Member

Change

The new experimental feature listDetails enables a new option for the list command, --details. When supplied, the output is no longer a table view of the results but is instead a series of show like outputs drawing data from the installed item.

An example output for a single installed package is:

> wingetdev list Microsoft.VisualStudio.2022.Enterprise --details
Visual Studio Enterprise 2022 [Microsoft.VisualStudio.2022.Enterprise]
Version: 17.14.21 (November 2025)
Publisher: Microsoft Corporation
Local Identifier: ARP\Machine\X86\875fed29
Product Code: 875fed29
Installer Category: exe
Installed Scope: Machine
Installed Location: C:\Program Files\Microsoft Visual Studio\2022\Enterprise
Available Upgrades:
  winget [17.14.23]

When there are multiple results, the identity line is prefixed with the standard (N/M) format string used in multi-package operations elsewhere.

If sixels are enabled and supported by the terminal, an icon for the installed package will be shown. This currently models the mechanism used by winget-pkgs to extract the icons and by the show command to select the appropriate one to display. It is using the same code in the same manner and should be representative of what would be shown to the user if it were doing the full round trip through the repository/cache/show command.

@JohnMcPMS JohnMcPMS requested a review from a team as a code owner December 19, 2025 19:12
@denelon denelon linked an issue Dec 19, 2025 that may be closed by this pull request
@denelon
Copy link
Collaborator
denelon commented Dec 19, 2025
image

florelis
florelis previously approved these changes Jan 6, 2026
return;
}

auto lines = Split(value, '\n');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just call the version that takes a container after this?

@microsoft-github-policy-service microsoft-github-policy-service bot added the Issue-Feature This is a feature request for the Windows Package Manager client. label Jan 6, 2026
@JohnMcPMS JohnMcPMS merged commit 6a2762e into microsoft:master Jan 7, 2026
9 checks passed
@JohnMcPMS JohnMcPMS deleted the show-list branch January 7, 2026 19:20
@DHowett
Copy link
Member
DHowett commented Feb 4, 2026

I'm finding that winget show doesn't sixel icons any longer, but winget list --details does? was that intended (and related to this PR?)

@JohnMcPMS
Copy link
Member Author

I'm finding that winget show doesn't sixel icons any longer, but winget list --details does? was that intended (and related to this PR?)

winget show is reliant on the winget-pkgs validation+cache service to extract icon information and merge it into the resulting manifest. If there are issues in that complex chain of events there may not be an icon available to show.

winget list --details leverages the same code that is run during validation's detonation phase to extract the icon, but does so on your local machine in real time. Seeing an icon with list --details means that this code is working for the install and so it probably should work for the package in winget-pkgs... but again there are many more moving parts to get that icon out to the world.

@DHowett
Copy link
Member
DHowett commented Feb 4, 2026

Totally makes sense. Chatted with Demitrius - sorry to randomize you John!

@eabase
Copy link
eabase commented Mar 10, 2026

💔
Doesn't show Install location on all apps!

# winget list --details -e 'dotPDN.PaintDotNet'

Paint.NET [dotPDN.PaintDotNet]
Version: 5.1.12
Publisher: dotPDN LLC
Local Identifier: ARP\Machine\X64\{B33D3774-REDACTED}
Product Code: {b33d3774-REDACTED}
Upgrade Code: {04a40f40-REDACTED}
Installer Category: msi
Installed Scope: Machine
Installed Architecture: X64
Installed Locale: en-US
Origin Source: winget

@JohnMcPMS
Copy link
Member Author

💔 Doesn't show Install location on all apps!

# winget list --details -e 'dotPDN.PaintDotNet'

Paint.NET [dotPDN.PaintDotNet]
Version: 5.1.12
Publisher: dotPDN LLC
Local Identifier: ARP\Machine\X64\{B33D3774-REDACTED}
Product Code: {b33d3774-REDACTED}
Upgrade Code: {04a40f40-REDACTED}
Installer Category: msi
Installed Scope: Machine
Installed Architecture: X64
Installed Locale: en-US
Origin Source: winget

@eabase If you run reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{B33D3774-REDACTED} (replacing the part that you redacted), does it show an install location? I can't show you if they don't record it.

@eabase
Copy link
eabase commented Mar 11, 2026

Hi John,
@JohnMcPMS

... does it show an install location?

No, it shows:

# winget list --details -e 'dotPDN.PaintDotNet'

Paint.NET [dotPDN.PaintDotNet]
Version: 5.1.12
Publisher: dotPDN LLC
Local Identifier: ARP\Machine\X64\{B33D3774-736A-43FD-BE83-76733BE4CB10}
Product Code: {b33d3774-736a-43fd-be83-76733be4cb10}
Upgrade Code: {04a40f40-a207-4b48-aed7-6aa532e43275}
Installer Category: msi
Installed Scope: Machine
Installed Architecture: X64
Installed Locale: en-US
Origin Source: winget

# reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{B33D3774-736A-43FD-BE83-76733BE4CB10}"

AuthorizedCDFPrefix        REG_SZ
Comments                   REG_SZ
Contact                    REG_SZ
DisplayVersion             REG_SZ               5.1.12
HelpLink                   REG_EXPAND_SZ        https://www.getpaint.net
HelpTelephone              REG_SZ
InstallDate                REG_SZ               20260310
InstallLocation            REG_SZ
InstallSource              REG_SZ               C:\Program Files\Paint.NET\Staging\
ModifyPath                 REG_EXPAND_SZ        MsiExec.exe /X{B33D3774-736A-43FD-BE83-76733BE4CB10}
NoModify                   REG_DWORD            0x1
Publisher                  REG_SZ               dotPDN LLC
Readme                     REG_SZ
Size                       REG_SZ
EstimatedSize              REG_DWORD            0x4cba9
UninstallString            REG_EXPAND_SZ        MsiExec.exe /X{B33D3774-736A-43FD-BE83-76733BE4CB10}
URLInfoAbout               REG_SZ               https://www.getpaint.net
URLUpdateInfo              REG_SZ
VersionMajor               REG_DWORD            0x5
VersionMinor               REG_DWORD            0x1
WindowsInstaller           REG_DWORD            0x1
Version                    REG_DWORD            0x501000c
Language                   REG_DWORD            0x409
DisplayName                REG_SZ               Paint.NET

The correct location from shortcut, is:
"C:\Program Files\paint.net\paintdotnet.exe"

@JohnMcPMS
Copy link
Member Author

InstallSource is an MSI storage location that isn't really relevant (until you want to repair/uninstall). InstallLocation is what we want, but Paint.NET appears to not be writing that value. Looks like that isn't a new complaint.

@eabase
Copy link
eabase commented Mar 11, 2026

but Paint.NET appears to not be writing that value

I think that should be a required value to provide in any installer.
Especially on Windows where MS is placing exe's all over the effn place.
(E.g. I don't want installed executables running (and placed) from some obscure sub-directory in my $HOME.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Issue-Feature This is a feature request for the Windows Package Manager client.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Display the path to an installed package

5 participants

0