{"description":"Searches the SourceForge project directory like its search page: project name, one-line summary, link and last update date, in the site's order. First page of results (about 25 projects).","effect":"read","id":"sourceforge.net/search-packages","keywords":["sourceforge","sourceforge.net","open source","opensource","software","download","projects","freie software","quelloffen","programme","apps","directory","search"],"output":{"schema":{"properties":{"projects":{"items":{"properties":{"last_update":{"description":"Date of the last release or update, YYYY-MM-DD","type":["string","null"]},"name":{"type":"string"},"summary":{"type":["string","null"]},"url":{"type":"string"}},"required":["name","url"],"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","projects"],"type":"object"},"value":"{query: params.query, projects: steps.search.projects[?name != `null` && href != `null`].{name: name, summary: summary || `null`, last_update: last_update || `null`, url: join('', ['https://sourceforge.net', href])}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Project or keyword, e.g. 'vlc', 'filezilla', 'audacity'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /directory/?q=...: the HTML already contains the first page of project results (li.project-oss). Name is the h3 in the result title link, summary is p.subtitle, last update is the datetime of time.dateUpdated. Download counts are not extracted because they are plain text without a stable selector. Results are fuzzy matches (e.g. 'vlc' also returns player apps that mention VLC).","recorded_at":"2026-11-08T12:20:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"US","id":"sourceforge.net","language":"en","name":"SourceForge","origin":"https://sourceforge.net","origins":["https://sourceforge.net"]},"steps":[{"description":"Server-rendered project directory search /directory/?q=...; read-only GET. Each result is li.project-oss.","expect":{"content_type":"html","status":[200]},"extract":{"html_items":{"projects":{"fields":{"href":{"attr":"href","selector":"a.result-heading-title"},"last_update":{"attr":"datetime","selector":"time.dateUpdated"},"name":{"selector":".result-heading-title h3"},"summary":{"selector":"p.subtitle"}},"max":30,"selector":"li.project-oss"}}},"id":"search","request":{"headers":{"Accept":"text/html"},"method":"GET","query":{"q":"{{params.query}}"},"url":"/directory/"}}],"task":"Search open-source projects","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.projects) > `0`","length(output.projects[?name != `null`]) == length(output.projects)","length(output.projects[?starts_with(url, 'https://sourceforge.net/projects/')]) == length(output.projects)"],"example_params":{"query":"vlc"},"max_ms":5000},"version":1}