Skip to content

Find good first issues in open source projects you actually care about

License

Notifications You must be signed in to change notification settings

yakub268/good-first-issue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

38 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Good First Issue Finder

Python 3.10+ License: MIT GitHub Stars

Find "good first issue" labeled issues in open source projects you'll actually want to contribute to.

Try it instantly (no install) | Install CLI

Why This Exists

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

Demo

CLI Output

CLI Demo

Initialization

Init Success

Detailed Issue View

Issue Detail

Features

  • 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

Installation

cd good-first-issue
python -m venv venv
venv\Scripts\activate  # Windows
pip install -e .

Quick Start

  1. Get a GitHub token (required for API access):

  2. Initialize:

    gfi init --token ghp_your_token_here

    Or set environment variable:

    # .env file
    GITHUB_TOKEN=ghp_your_token_here
    
    gfi init
  3. Find issues:

    gfi find

Usage

Find issues matching your profile

gfi find

Get ONE perfect match (lucky mode)

gfi lucky

Filter by specific languages

gfi find --lang python --lang rust

Search alternative labels

# 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 on GitLab

# Search GitLab instead of GitHub
gfi find --platform gitlab

# Works with all other options
gfi find --platform gitlab --lang python --min-stars 100

Use GraphQL for better performance

# 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 results

# Export to JSON
gfi find --export json

# Export to CSV
gfi find --export csv

Adjust filters

gfi find --min-stars 100 --max-age 14 --limit 20

View issue details

gfi show https://github.com/owner/repo/issues/123

Track your successes

gfi success https://github.com/owner/repo/issues/123 --pr https://github.com/owner/repo/pull/456
gfi wins

Watch for new issues (daemon)

# Start background daemon (checks every 6 hours)
gfi watch --start

# Check status
gfi watch --status

# Stop daemon
gfi watch --stop

Desktop notifications for high-quality issues (score β‰₯ 0.7)

Enable live stats (optional)

gfi telemetry --enable
gfi stats

How It Works

Profile Analysis

When you run gfi init, it:

  • Analyzes your starred repositories
  • Extracts your most-used languages
  • Identifies topics you're interested in
  • Counts your contribution activity

Issue Scoring

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)

Example Output

🎯 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

Configuration

Config stored in ~/.gfi-config.json:

{
  "token": "ghp_...",
  "username": "yourname",
  "languages": ["Python", "JavaScript", "Rust"],
  "interests": ["machine-learning", "cli", "web"]
}

Roadmap

  • 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.

Contributing

This project itself has good first issues! Check the Issues tab.

See CONTRIBUTING.md for development setup and guidelines.

Star History

If you find this useful, consider giving it a star! ⭐

Acknowledgments

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.

License

MIT License - see LICENSE file


Made with ❀️ for the open source community. Happy contributing!

About

Find good first issues in open source projects you actually care about

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors