gh-score
GitHub Project Health Scorer — evaluate maturity, maintenance, community health and sustainability of any GitHub project, in your terminal.
gh-score turns raw GitHub signals (commit activity, contributors, releases, license, registries, sustainability) into a single traffic-light verdict: 🟢 green (safe to bet on), 🟠 orange (proceed with caution), 🔴 red (risky).
Usage
# Analyze a remote repository (no install needed)
uvx gh-score https://github.com/owner/repo
# Analyze the current directory (if it's a git clone)
uvx gh-score
# Or install it
pip install gh-score
gh-score https://github.com/owner/repo
Output formats
gh-score --format tui https://github.com/owner/repo # terminal dashboard (default)
gh-score --format markdown https://github.com/owner/repo # Markdown report
gh-score --format json https://github.com/owner/repo # structured JSON
Optional LLM analysis
The LLM is opt-in and never required. It extracts qualitative facts that cannot be derived from APIs or files (roadmap, commercial support, security policy, self-declared maintenance state) and produces a refined, complementary recommendation that weighs all indicators together.
export GH_SCORE_LLM_ENABLED=true
export GH_SCORE_LLM_BASE_URL="https://api.openai.com/v1" # any OpenAI-compatible API
export GH_SCORE_LLM_MODEL="gpt-4o-mini"
export GH_SCORE_LLM_API_KEY="sk-..."
gh-score https://github.com/owner/repo
Configuration
Set a GITHUB_TOKEN to raise API rate limits. LLM settings can also live
in a config.toml (see gh-score config). Everything stays optional:
the tool works fully offline with local clones and no token.
Library
from gh_score import analyze_repo
result = analyze_repo("https://github.com/owner/repo")
print(result.recommendation.level) # RecommendationLevel.GREEN
print(result.release_health.latest_version) # "v1.0.0"
print(result.contributors.bus_factor) # 3
Screenshot
License
GPL-3.0 — see LICENSE.
Metadata
Release files for gh-score 0.10.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gh_score-0.10.2.tar.gz | 62.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gh_score-0.10.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 138.1 kB
Release files / gh_score-0.10.2.tar.gz
| Download URL | gh_score-0.10.2.tar.gz |
|---|---|
| Size | 62.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04eaad575ee5de880cb985b20792ae7a6e11b546d885468d576d858d7a469b37
|
|
BLAKE2b-256 checksum How to use checksums |
73144fdf5576e09b289ba6ac2f88c22ab448e6464a33c334ab1c057987be70b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / gh_score-0.10.2-py3-none-any.whl
| Download URL | gh_score-0.10.2-py3-none-any.whl |
|---|---|
| Size | 75.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9fa47a2690a2b549bec8c8e83e6eb8acec9bbea3aa719cbcb9f682fdfef7212
|
|
BLAKE2b-256 checksum How to use checksums |
c4ad68012463900fa3f869642d57533a5409c53a636d171a50b1e92ff9dabc11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|