built a self-running agent that watches a GitHub repository's open issues and pull requests, classifies each one (bug / feature / question / duplicate / docs), assigns an urgency priority (1–5), and renders a prioritized dashboard — so a maintainer sees at a glance what really needs attention.
How the agent works (3 steps)
- Fetch — reads open issues + PRs via the GitHub API for any
owner/repo. - Reason — each item is sent to an LLM with a strict JSON contract:
{category, short_reason, priority}. Because free LLM tiers get overloaded (lots of HTTP 503s), it rotates through ~5:freemodels with automatic fallback. - Render — a no-dependency page shows color-coded cards sorted by priority, each linking to the original issue, with category summary + filters.
Real runs
- facebook/react (22 open items) → 22/22 classified, zero errors. Examples: p1 bug "Freezing props prevents later assignments causing errors", p1 question "Performance optimization inquiry…".
- typeorm/typeorm (22 items) → clean bug / feature / docs verdicts.
Why it matters Triage is the boring 80% of OSS maintenance. This agent does it continuously and for free, and the same skeleton (read real state → structured LLM decision → actionable UI) powers PR review, dependency-drift alerts, or release-note generation.
Honest notes
Free-tier LLMs are flaky; model rotation is non-negotiable. Small models sometimes return sloppy JSON — the parser takes the first {...} block. GitHub unauthd rate limit (60/hr) matters for big repos; a PAT removes it.
Built With
- adapter
- agents
- github-pages-static-demo-mirror
- github-rest-api
- node.js-(no-frameworks
- openrouter-:free-llm-models
- optional
- sdk
- strands
Log in or sign up for Devpost to join the conversation.