A profile contribution summary widget. Gets refreshed daily by GitHub Actions. It is generated using real contribution data from the user.
Private repos are not included in the widget scope. merged PR data is explicitly scoped to public repositories (is:public).
1. Fork this repo.
Your GitHub username is detected automatically from the Actions environment — no code edits needed. Enable Actions on the fork if prompted (Settings → Actions → Allow all actions).
2. Set your display name and tagline under Settings → Secrets and variables → Actions → Variables (not Secrets):
| Variable | Default | Description |
|---|---|---|
WIDGET_NAME |
your GitHub display name | Header name. Defaults to the name on your GitHub profile (e.g. Luke Johnson), falling back to your username |
WIDGET_TAGLINE |
auto-derived | Top-right tagline. Left unset, it's generated from your data (see below). Set a literal string to override, e.g. OPEN SOURCE · PYTHON · ML, or an empty value to hide it |
WIDGET_TAGLINE_KEYWORDS |
3 |
How many keywords the auto tagline shows |
WIDGET_PROJECT_LIMIT |
6 |
Max own-project cards on the left |
WIDGET_BAR_LIMIT |
6 |
Max merged-PR repo bars on the right |
WIDGET_CORE_STARS |
10000 |
Star threshold for the key-insight caption to call a project "core" |
The top-right tagline (e.g. DATA SCIENCE · AGENTIC ENGINEERING) is generated automatically from the data the card already reviews — the names, descriptions and languages of your projects plus the upstream repos you've landed PRs in — matched against a curated lexicon of domain labels. It's deterministic and needs no API key, so the same repos always yield the same keywords, and a fresh fork gets a fitting strip with nothing to configure.
3. Trigger the first run manually: Actions → profile-widget → Run workflow. The widget generates immediately and commits assets/widget.svg. After that it refreshes daily at 06:17 UTC.
4. Embed it in your profile README (YOUR_USERNAME/YOUR_USERNAME):
<a href="https://github.com/YOUR_USERNAME?tab=repositories">
<img src="https://raw.githubusercontent.com/YOUR_USERNAME/github-profile-widget/HEAD/assets/widget.svg" width="100%"/>
</a>- Zero dependencies — pure Python standard library (
urllib,json,pathlib) - No API keys or secrets required — uses the built-in
GITHUB_TOKENprovided by Actions - Generates a single SVG with CSS entrance animations gated behind
prefers-reduced-motion - The workflow handles push races with a fetch-reset-retry loop