Did you know your GitHub profile has trophies? 🏆

Just like a video game, GitHub quietly hands out badges when you do certain things: merging pull requests, helping people, getting stars on your projects. Many of them even level up, from plain to 🥉 bronze, 🥈 silver and finally 🥇 gold.

But there's a catch...

GitHub shows the trophies you already have, but never tells you how close you are to the next level.

It's like playing a game with no XP bar. 😩 So I built one!

🎮 First, what are GitHub achievements?

Open any GitHub profile and look on the left side, under the profile picture. Those little round badges are achievements.

Here are the most popular ones, explained simply:

Badge What it means 🔹 Base 🥉 Bronze 🥈 Silver 🥇 Gold
🦈 Pull Shark Your pull requests (code changes) got merged 2 16 128 1024
🧠 Galaxy Brain Your answer in a Discussion was marked as "the answer" 2 8 16 32
⭐ Starstruck People starred one of your projects 16 128 512 4096
👯 Pair Extraordinaire You coded together with someone (co-authored commits) 1 10 24 48
🤠 Quickdraw You closed an issue or pull request within 5 minutes 1 – – –
🎲 YOLO You merged a pull request without a review 1 – – –
💖 Public Sponsor You sponsored someone on GitHub Sponsors 1 – – –

The numbers are how many you need for each level. For example, 128 merged pull requests = 🥈 silver Pull Shark.

😩 The problem

Say you have the 🥉 bronze Pull Shark. Great! But...

  • How many merged PRs do you have right now? 🤷
  • How many more until silver? 🤷
  • Did you already reach it, with GitHub just being slow to show it? 🤷

GitHub doesn't tell you. So I made a tool that does.

✨ Meet gh-achievements

One command, and you get your full progress report:

 GitHub achievements for @you Pull Shark x2 bronze ######---------- 47/128 merged PRs Galaxy Brain base ####------------ 3/8 accepted answers Starstruck - ##-------------- 2/16 stars (you/your-repo) Public Sponsor - ---------------- 0/1 sponsorships Quickdraw base done YOLO base done 

What you get:

  • 🏅 Your current level for every badge
  • 📊 A progress bar to the next level, using live numbers from GitHub
  • ⏳ "Pending" alerts: GitHub can take 1–3 days to show a new badge, and the tool tells you when you've already earned one that hasn't appeared yet
  • 👀 Anyone's progress: check your friends, your team, or your favorite developer

🚀 How to install it (2 minutes)

Step 1: Install the GitHub CLI, GitHub's official command-line tool. 👉 cli.github.com

Step 2: Log in, once:

gh auth login 

Step 3: Install the extension:

gh extension install Neegueba10/gh-achievements 

Step 4: Run it! 🎉

gh achievements 

That's it!

🎯 More things you can do

gh achievements octocat # see anyone's progress (try your friends!) gh achievements --json # get the data for your own scripts gh achievements --no-color # plain text, no colors 

🔧 How does it work? (for the curious)

GitHub has no official API for achievements, so the tool combines two sources:

  1. 🌐 Your public achievements page tells it which badges and levels you already have.
  2. 📡 The GitHub API gives it your live numbers: merged PRs, accepted answers, stars and sponsorships.

Compare the two, and you get your progress! 🧮

It's a single small script. It works on Mac, Linux and Windows (with Git Bash), and it's free and open source under the MIT license.

💡 Quick tips to earn badges the real way

  • 🦈 Pull Shark: contribute to open source! Look for issues labeled good first issue.
  • 🧠 Galaxy Brain: answer questions in the Discussions tab of projects you use.
  • ⭐ Starstruck: build something useful and share it with the world.
  • 👯 Pair Extraordinaire: code with a friend and add them as a co-author on your commits.

🙌 Try it and tell me what you think!

👉 github.com/Neegueba10/gh-achievements

  • 💬 Ideas or bugs? Open an issue, I'd love to hear them.
  • 🛠️ Want to help? Pull requests are very welcome.
  • ⭐ Found it useful? A star on the repo helps other people find it, and maybe helps me level up my own Starstruck badge. 😄

What's your favorite GitHub achievement? Tell me in the comments! 👇