Find "good first issue" labeled issues in open source projects you'll actually want to contribute to.
Try it instantly (no install) | Install CLI
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
- Shareable result cards β auto-generated PNGs perfect for Twitter/LinkedIn
- Lucky mode β get ONE perfect match instantly
- Web version β try it instantly without installing
- Success tracking β track your contributions and celebrate wins
- GraphQL API β optional GraphQL support for 3x faster searches and better rate limits
- Export results β save to JSON or CSV for analysis and tracking
- Fast β persistent HTTP connections, smart caching
- Private β your token stays local, optional anonymous telemetry
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 luckygfi find --lang python --lang rust# Search for "help wanted" and "beginner friendly" labels
gfi find --labels "help wanted" --labels "beginner friendly"
# Default: searches "good first issue", "help wanted", and "beginner friendly"
gfi find# Search GitLab instead of GitHub
gfi find --platform gitlab
# Works with all other options
gfi find --platform gitlab --lang python --min-stars 100# Use GitHub's GraphQL API (faster, fewer rate limits)
gfi find --use-graphql
# Works with all find options
gfi find --use-graphql --lang python --min-stars 100
# Also works with lucky mode
gfi lucky --use-graphql# Export to JSON
gfi find --export json
# Export to CSV
gfi find --export csvgfi find --min-stars 100 --max-age 14 --limit 20gfi show https://github.com/owner/repo/issues/123gfi success https://github.com/owner/repo/issues/123 --pr https://github.com/owner/repo/pull/456
gfi wins# Start background daemon (checks every 6 hours)
gfi watch --start
# Check status
gfi watch --status
# Stop daemon
gfi watch --stopDesktop notifications for high-quality issues (score β₯ 0.7)
gfi telemetry --enable
gfi statsWhen 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"]
}- Shareable result cards
- Lucky mode (one perfect match)
- Web version (instant, no install)
- Success tracking
- Live activity stats
- Support for GitLab issues
- Alternative labels ("help wanted", "beginner friendly")
- Watch mode with notifications (daemon)
- Export results to JSON/CSV
- GraphQL API support for better performance
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!