API & agent access
Query the same package catalog used by the browser interface.
This is a static GitHub Pages site, not a server-side search API. Query parameters such as
?q=nssm are handled by JavaScript in a browser. Scripts and agents should download
the catalog and search it locally.
Catalog endpoint
https://solrevdev.com/winget-search/packages.json
The response contains extraction metadata and a packages array. Package records include
the ID, name, publisher, version, descriptions, tags, homepage, and license. Some values may be null.
macOS and Linux
Requires curl and jq. Download once, then change query for additional searches.
curl -fsSL https://solrevdev.com/winget-search/packages.json -o packages.json
query='nssm'
jq --arg q "$query" '
.packages
| map(select(
[.id, .name, .publisher, .description, ((.tags // []) | join(" "))]
| map(. // "")
| join(" ")
| ascii_downcase
| contains($q | ascii_downcase)
))
| .[:10]
| map({id, name, version, publisher})
' packages.json
Windows PowerShell and PowerShell 7+
This example is compatible with Windows PowerShell 5.1 and cross-platform PowerShell 7 or later.
$catalog = Invoke-RestMethod -Uri 'https://solrevdev.com/winget-search/packages.json'
$query = 'nssm'
$catalog.packages |
Where-Object {
$text = (@($_.id, $_.name, $_.publisher, $_.description) + @($_.tags) |
Where-Object { $_ } |
ForEach-Object { [string]$_ }) -join ' '
$text.IndexOf($query, [System.StringComparison]::OrdinalIgnoreCase) -ge 0
} |
Select-Object -First 10 id, name, version, publisher
Create install commands
After filtering results in either shell, use the exact package ID:
winget install -e --id NSSM.NSSM
Machine-oriented instructions are also available in llms.txt.