Find "good first issue" labeled issues in open source projects you'll actually want to contribute to.
Most "good first issue" finders just dump a list of random issues. This tool:
- Analyzes your GitHub profile to understand what you care about
- Scores issues based on clarity, maintainer responsiveness, and project health
- Filters noise β no vague issues, no dead projects, no overwhelmed maintainers
- Shows what matters β clear descriptions, realistic scope, active engagement
- π Smart search β finds issues in your preferred languages from your starred repos
- π Multi-factor scoring β clarity, maintainer response time, freshness, project activity
- π¨ Beautiful terminal UI β powered by Rich
- β‘ Fast β persistent HTTP connections, smart caching
- π Private β your token stays local, no external tracking
cd good-first-issue
python -m venv venv
venv\Scripts\activate # Windows
pip install -e .-
Get a GitHub token (required for API access):
- Go to https://github.com/settings/tokens
- Create a classic token with
public_repoandread:userscopes - Copy the token
-
Initialize:
gfi init --token ghp_your_token_here
Or set environment variable:
# .env file GITHUB_TOKEN=ghp_your_token_here gfi init -
Find issues:
gfi find
gfi findgfi find --lang python --lang rustgfi find --min-stars 100 --max-age 14 --limit 20gfi show https://github.com/owner/repo/issues/123When you run gfi init, it:
- Analyzes your starred repositories
- Extracts your most-used languages
- Identifies topics you're interested in
- Counts your contribution activity
Each issue gets scored (0-1) across four dimensions:
Clarity (35% weight)
- Has detailed description (>100 chars)
- Includes acceptance criteria or reproduction steps
- Contains code examples
- Not overwhelming (<2000 chars)
Maintainer Responsiveness (30% weight)
- Average time to close recent issues
- Response patterns on similar issues
- Project engagement signals
Freshness (20% weight)
- Sweet spot: 1-30 days old
- Not too fresh (might be unclear)
- Not too stale (might be abandoned)
Project Activity (15% weight)
- Repository stars (popularity)
- Recent updates
- Healthy discussion (1-5 comments ideal)
π― Good First Issues For You
βββββββββ¬βββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββ¬ββββββββ
β Score β Project β Issue β Lang β Stars β
βββββββββΌβββββββββββββββββββββββββΌββββββββββββββββββββββββββββΌβββββββββΌββββββββ€
β 0.80 β jatinkrmalik/vocalinux β π° Help Wanted: Create β Python β 97 β
β β β Wikipedia Page for Voc... β β β
β 0.68 β NOVUS-X/StellArts β π LOW β Contracts CI β Python β 1 β
β β β Missing `cargo clippy` β β β
β β β ... β β β
β 0.57 β chatvector-ai/chatv... β Create Interactive Star β Python β 11 β
β β β Progress Bar in README β β β
βββββββββ΄βββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄βββββββββ΄ββββββββ
Showing top 3 issues
Run 'gfi show <url>' for details
Config stored in ~/.gfi-config.json:
{
"token": "ghp_...",
"username": "yourname",
"languages": ["Python", "JavaScript", "Rust"],
"interests": ["machine-learning", "cli", "web"]
}- Support for GitLab issues
- Alternative labels ("help wanted", "beginner friendly")
- Spam detection/filtering
- Caching for faster subsequent searches
- Export results to JSON/CSV
- Watch mode with notifications
- GraphQL API support for better performance
- Machine learning model for quality prediction
See open issues for more.
This project itself has good first issues! Check the Issues tab.
See CONTRIBUTING.md for development setup and guidelines.
If you find this useful, consider giving it a star! β
Built with:
- Click - Beautiful CLI framework
- Rich - Terminal formatting
- httpx - Modern HTTP client
- Pydantic - Data validation
Inspired by the need for better discovery in the open source ecosystem.
MIT License - see LICENSE file
Made with β€οΈ for the open source community. Happy contributing!