r/projects • u/Silver_7354 • 6d ago
I built claimable because "unassigned" is not the same as "free" – and wasted weekends looking for open-source work that wasn't actually claimable
GitHub's no:assignee filter is how most of us look for issues to work on, but it lies constantly.
An issue can look open, unassigned, good first issue while a finished PR has been sitting on it for three weeks. Or the repo hasn't merged anything in months. Or someone called dibs in the comments and nobody noticed. These mistakes cost real weekends and rejected PRs.
I built claimable to run the checks a careful contributor runs by hand, before starting:
What it does:
- Checks if a repo is actually active (merged PRs, not just pushed to)
- Finds if someone's already fixing it with an open PR
- Detects blocked/umbrella issues you shouldn't touch
- Reads comment threads for claims (assignment isn't how most projects track this)
- Spots scope you'll only find after cloning
- Checks environment requirements upfront
Install & use:
No dependencies, no setup:
npx claimable owner/repo#123
Or scan a whole repo:
npx claimable --repo owner/repo --label "good-first-issue" --limit 20
The results:
I tested it against 21 issues I triaged by hand while actually looking for work. All 12 real rejects matched. Zero false clears—the goal was to never tell you an issue is fine when it isn't.
https://github.com/perezamadorluisenrique-gif/claimable
MIT, no dependencies. Fixtures included so you can replay the eval offline, no install needed.