Search NuGet packages.
Searches the NuGet Gallery like its package search page: package id, latest version, short description and link. First page of results (about 20 packages), in the site's order.
- Site
- NuGet Gallery, United States
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- a81d3b5df573…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search NuGet packages.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "nuget.org/search-packages", "params": { "query": "newtonsoft.json" } } }
Requests
sent from your browser, in order- 1GET/packages?qServer-rendered package search page /packages?q=...; read-only GET. Each result is li.package; the id and latest version come from data attributes on the title link.
Parameters
from your agentquerystringrequiredPackage name or keyword, e.g. 'newtonsoft.json', 'serilog', 'dapper'
Returns
to your agentpackagesobject[]description, name, url, version
querystring
Where it can send
- www.nuget.org
Anything else is blocked by the extension.
Reads from your session
Nothing. Your browser attaches the site's cookies by itself.
Used only in requests to the addresses on the left. Never sent to wield.run or your agent.
Checks
a run passes when- length(output.packages) > `0`
- length(output.packages[?name != `null`]) == length(output.packages)
- length(output.packages[?starts_with(url, 'https://www.nuget.org/packages/')]) == length(output.packages)
Raw recipe
Served as canonical JSON from /api/v1/recipes/nuget.org/search-packages, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/nuget.org/search-packages | shasum -a 256 # a81d3b5df573062a9b44ea04ebb9404cef863e7f128f5442a4abeccbe89031be
nuget.org/search-packages.json, v1
{ "description": "Searches the NuGet Gallery like its package search page: package id, latest version, short description and link. First page of results (about 20 packages), in the site's order.", "effect": "read", "id": "nuget.org/search-packages", "keywords": [ "nuget", "nuget.org", "dotnet", ".net", "csharp", "c#", "package", "packages", "library", "libraries", "dll", "net core", "gallery", "search" ], "output": { "schema": { "properties": { "packages": { "items": { "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "url": { "type": "string" }, "version": { "type": [ "string", "null" ] } }, "required": [ "name", "url" ], "type": "object" }, "type": "array" }, "query": { "type": "string" } }, "required": [ "query", "packages" ], "type": "object" }, "value": "{query: params.query, packages: steps.search.packages[?name != `null` && href != `null`].{name: name, version: version || `null`, description: description || `null`, url: join('', ['https://www.nuget.org', href])}}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Package name or keyword, e.g. 'newtonsoft.json', 'serilog', 'dapper'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "GET /packages?q=...: the HTML already contains the first page of package cards (li.package). Id and version are data attributes on h2.package-title a; description is .package-details. Download counts and dates are not extracted because they have no stable attribute. Icons on api.nuget.org are not read.", "recorded_at": "2026-11-08T12:00:00.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "US", "id": "nuget.org", "language": "en", "name": "NuGet Gallery", "origin": "https://www.nuget.org", "origins": [ "https://www.nuget.org" ] }, "steps": [ { "description": "Server-rendered package search page /packages?q=...; read-only GET. Each result is li.package; the id and latest version come from data attributes on the title link.", "expect": { "content_type": "html", "status": [ 200 ] }, "extract": { "html_items": { "packages": { "fields": { "description": { "selector": ".package-details" }, "href": { "attr": "href", "selector": "h2.package-title a" }, "name": { "attr": "data-package-id", "selector": "h2.package-title a" }, "version": { "attr": "data-package-version", "selector": "h2.package-title a" } }, "max": 30, "selector": "li.package" } } }, "id": "search", "request": { "headers": { "Accept": "text/html" }, "method": "GET", "query": { "q": "{{params.query}}" }, "url": "/packages" } } ], "task": "Search NuGet packages", "tos": { "notes": "Not reviewed. One search page per call, the same page a visitor loads. The site's terms on automated access were not checked.", "reviewed": false }, "verify": { "checks": [ "length(output.packages) > `0`", "length(output.packages[?name != `null`]) == length(output.packages)", "length(output.packages[?starts_with(url, 'https://www.nuget.org/packages/')]) == length(output.packages)" ], "example_params": { "query": "newtonsoft.json" }, "max_ms": 5000 }, "version": 1 }