Somebody asked for help. Nobody came.
Every day a maintainer labels an issue help wanted and waits. Weeks pass. The person who could have answered never saw it. This finds those asks, matches them to what you know, and drafts your first reply, so giving an hour to open source starts with a comment instead of an evening of searching.
Live: unanswered.hyperdrift.io
Built in a weekend for the DEV Weekend Challenge: Generosity Edition.
What it does
- GitHub search: open
help wantedissues, no assignee, zero comments, three weeks to a year old, most recently touched first, in the languages you named. Only asks opened by the repo's owner, a member or a collaborator count: "a maintainer asked" is literally true. One ask per repo, longest wait first. (Nostars:filter: issue search does not support it and GitHub silently matches the number against the issue number instead. Every result came back as issue #30 until we noticed.) - Your words map to one or two GitHub languages with a keyword table. Gemini
(
gemini-3.6-flash, minimal thinking, about a second) steps in only when the table draws a blank. The model is reached through Vertex AI with a service account (token minted by hand withnode:crypto, no SDK) or, failing that, through the Gemini API with a key. - Gemini reads the asks, keeps the ones you could genuinely move, says what each maintainer wants in plain words, why it is you, and drafts the first comment: acknowledge the specific ask, offer one concrete step, promise nothing you won't do.
- You read it, change it, post it. Nothing is posted for you.
The page answers in two beats: the scan (GitHub, cached, about a second) shows
how many maintainers asked and where; the picks follow when Gemini is done.
The same words get the same picks for a day, so a shared link such as
/?know=Go+and+Kubernetes lands on results instantly.
Run it
npm install
cp .env.example .env # a Vertex service account (or GEMINI_API_KEY on the free tier), optional GITHUB_TOKEN
npm run dev # http://localhost:3000
npm test
For agents: the MCP server
The same two acts, for Claude, ChatGPT or any MCP client:
npm run mcp
Tools: find_unanswered_asks(what_you_know, max) and
draft_first_reply(what_you_know, repo, title, body). Config example at the top
of mcp/server.ts.
Stack
Waku (React Server Components) with one typed server
function and one client island, pure cascading CSS, the Gemini API over plain
fetch, the MCP TypeScript SDK. Seven dependencies. No database, no accounts,
no tracking of who you helped: that part is yours.
Licence
MIT. Built by Hyperdrift.