Your GitHub trophy case: every achievement, your tier and how far the next one is, verified against GitHub's own data.
gh-achievements.vercel.app/check · no install · or use the CLI below
| On the web | In your terminal |
|---|---|
| gh-achievements.vercel.app/check | gh extension install nmloc/gh-achievements then gh achievements |
| Type any username, or sign in with GitHub to include private repositories. The token is used for one check and revoked at once; nothing is stored. Organizations that restrict third-party apps hide their private repositories until an admin approves gh-achievements. | Reuses your gh auth login, so it counts everything that login can see, including organizations that restrict third-party apps. |
gh-achievements is a GitHub CLI extension and a website that list all GitHub profile achievements (Pull Shark, Starstruck, Pair Extraordinaire, Galaxy Brain, Quickdraw, YOLO, Public Sponsor, Finishing Touch and the retired ones) and show your tier and progress to the next one.
- Every badge, not just yours. All 15 known achievements (8 earnable, 2 switched off by GitHub, 2 retired, 3 for GitHub staff) and 6 profile highlights such as Pro.
- How far to the next tier. Your count against the next threshold, such as
72 / 128 to x3for Pull Shark. - Checked against GitHub. Tiers, unlock dates and milestones come from GitHub's own badge history, and every number is labelled
official,calibratedorcounted. - No stored token. The CLI reuses your
gh auth loginand talks only to GitHub. The web checker signs in with GitHub, uses the token for one check and revokes it.
You need the GitHub CLI (brew install gh, winget install GitHub.cli, or another installer).
gh extension install nmloc/gh-achievementsUpgrade with gh extension upgrade achievements. Prebuilt binaries for macOS, Linux and Windows (amd64 and arm64) come from Releases, so no Go toolchain is needed.
gh achievements # the account you are signed in to with gh
gh achievements torvalds # anyone's public profile
gh achievements --json # machine-readable, for scripts
gh achievements --all # also the archive, every highlight and each badge's notes
gh achievements --no-color # plain text (NO_COLOR is honoured too)Not signed in to gh? It still works with public data and tells you what a login would add.
You can still earn these.
| Badge | Achievement | How to earn it | Tiers | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Pull Shark | Open pull requests that get merged gh achievements: count, checked against GitHub's milestones |
|
|||||||||||||
| Starstruck | Create a repository that gets stars gh achievements: stars of the repository GitHub names |
|
|||||||||||||
| Pair Extraordinaire | Coauthor commits on merged pull requests gh achievements: official tier (no public counting rule) |
|
|||||||||||||
| Galaxy Brain | Have discussion answers accepted gh achievements: count of accepted answers |
|
|||||||||||||
| Quickdraw | Close an issue or pull request within 5 minutes of opening it gh achievements: earned or not (official) |
|
|||||||||||||
| YOLO | Merge a pull request without a review gh achievements: earned or not (official) |
|
|||||||||||||
| Public Sponsor | Sponsor someone publicly through GitHub Sponsors gh achievements: earned or not (official) |
|
|||||||||||||
| Finishing Touch | Get pull requests that improve GitHub's UI quality merged gh achievements: official tier (no public counting rule) |
|
GitHub tested these and switched them off; nobody can earn them now.
| Badge | Achievement | How to earn it | Tiers | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Heart On Your Sleeve | React to something on GitHub with a ❤️ emoji gh achievements: earned or not |
|
|||||||||||||
| Open Sourcerer | Have pull requests merged in several public repositories gh achievements: earned or not |
|
No longer awarded. Profiles that have them keep them.
| Badge | Achievement | How to earn it | Tiers | |||
|---|---|---|---|---|---|---|
| Arctic Code Vault Contributor | Code in a repository of the 2020 GitHub Archive Program gh achievements: earned or not |
|
||||
| Mars 2020 Contributor | Code in a repository used by the Mars 2020 Helicopter Mission gh achievements: earned or not |
|
Only GitHub staff could earn these.
| Badge | Achievement | How to earn it | Tiers | |||
|---|---|---|---|---|---|---|
| Proxima Pioneer | GitHub staff: contributed to the Proxima proof of concept gh achievements: earned or not |
|
||||
| Proxima Staffshipper | GitHub staff: shipped the Proxima staffship instance gh achievements: earned or not |
|
||||
| Proxima Staffuser | GitHub staff: your team was onboarded to Proxima gh achievements: earned or not |
|
Profile highlights it also reports: Developer Program Member, Security Bug Bounty Hunter, GitHub Campus Expert, GitHub Star, Pro, Security advisory credit.
Catalog last verified against live profiles on 2026-10-17.
Every number carries a label:
| Label | Meaning |
|---|---|
official |
Read from GitHub's own profile pages: tier, unlock date, the pull request or repository behind each milestone. |
calibrated |
Counted through the GitHub API, then checked against a milestone GitHub itself names. |
counted |
Counted through the API, with nothing public to check it against. |
GitHub keeps a history for each badge (the dialog you see when you click one on a profile). It names, for example, your 2nd, 16th and 128th merged pull request. gh-achievements reads that history, lists your merged pull requests in merge order, and checks that the two agree. For @torvalds, GitHub's 16th merged pull request is subsurface/subsurface#1506, and it is 16th in the API's list too: +0.
A tier GitHub granted is never contradicted. When GitHub's counting rule is not public, as for Pair Extraordinaire, the tool shows the official tier and no number, rather than one that is wrong. Details and known limits: How accurate is it?
How do I check my GitHub achievements progress?
Install with gh extension install nmloc/gh-achievements and run gh achievements.
Does it need a GitHub personal access token?
No. It uses the credentials the GitHub CLI already stores (or GH_TOKEN). Without them it falls back to public data.
How many GitHub achievements are there? 15 are known: 8 earnable, 2 disabled, 2 retired and 3 internal to GitHub staff. See the table above.
Why don't my achievements show on my profile? They can be turned off under Settings → Public profile → Show Achievements on my profile. The tool says when a profile hides them.
Can it see private contributions? GitHub counts them, and its badge history lists them as "inaccessible". The tool counts what your gh login can see and calibrates the rest against GitHub's milestones.
| gh-achievements | Achievement lists and guides | Web trackers | |
|---|---|---|---|
| Lists every achievement | ✅ | ✅ | some |
| Shows your tier and progress | ✅ | ❌ | ✅ |
| Checks counts against GitHub's own history | ✅ | ❌ | ❌ |
| No personal access token to create | ✅ | n/a | usually ❌ |
| CLI runs on your machine, no server of ours | ✅ | n/a | ❌ |
gh achievements --json prints the full report, for scripts, dashboards or a README card:
{
"user": "torvalds",
"achievementsHidden": false,
"authenticated": true,
"catalogVerified": "2026-10-17",
"achievements": [
{
"slug": "pull-shark",
"name": "Pull Shark",
"kind": "earnable",
"tiers": [2, 16, 128, 1024],
"status": "earned",
"officialTier": 2,
"unlocked": "2017-01-17",
"standing": { "tier": 2, "count": 72, "floor": 16, "target": 128, "remaining": 56, "isMax": false, "isAhead": false },
"source": "calibrated"
}
],
"highlights": [{ "name": "Pro", "earned": false }]
}The catalog alone is published as achievements.json.
Spotted a new badge, or a count that looks wrong? Open an issue. See CONTRIBUTING.md for how the catalog, fixtures and site are built.
If gh-achievements helped you, a ⭐ helps other people find it: star it on GitHub.
The catalog builds on the community's work: Schweinepriester/github-profile-achievements and drknzz/GitHub-Achievements.
MIT. gh-achievements is an independent project and is not affiliated with or endorsed by GitHub.







