← Back to package search

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, moniker (short alias), publisher, version, descriptions, tags, homepage, and license. Some values may be null. English locale fields override default-locale fields when present.

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, .moniker, .publisher, .shortDescription, .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, $_.moniker, $_.publisher, $_.shortDescription, $_.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.