Self-hosted profile metrics. Four SVG cards generated by
lowlighter/metrics via GitHub
Actions and committed back to this repo. The root README.md embeds them.
| File | What it shows |
|---|---|
activity.svg |
Recent events, follow-ups, reactions |
languages.svg |
Language breakdown (commit-byte weighted) + topics |
signal.svg |
Achievements, lines, stars, gists, discussions |
isocalendar.svg |
Full-year isometric contribution heatmap |
Regenerated every 6 hours via .github/workflows/metrics.yml.
The workflow needs a personal access token so it can read your activity across private repos (aggregate numbers only — no file contents leave the runner).
Go to https://github.com/settings/tokens/new and create a classic token (not fine-grained — lowlighter/metrics expects classic scopes):
- Note:
mcaney006 metrics - Expiration: 90 days (rotate quarterly; longer is lazy)
- Scopes:
-
public_repo -
read:user -
repo— only if you want thetrafficplugin too
-
Copy the token.
https://github.com/mcaney006/mcaney006/settings/secrets/actions/new
- Name:
METRICS_TOKEN - Secret: paste token, save.
https://github.com/mcaney006/mcaney006/actions/workflows/metrics.yml → Run workflow → Run workflow.
First run takes ~3–5 minutes (four jobs in parallel). After it finishes
you'll see four new commits on main touching metrics/*.svg, and the
cards appear on your profile.
# 90 days from now, regenerate the token, overwrite the secret, done.
# No workflow changes needed.Workflow errors with "Resource not accessible by integration" The PAT expired or was created with the wrong scopes. Recreate with the scopes above.
SVGs look stale on your profile but commits are landing
GitHub's CDN caches profile images. Hard-refresh with Cmd-Shift-R, or
wait ~5 minutes.
One card is broken but others work Check the Actions run logs — the four jobs are independent. The failing plugin will have a stack trace. Common culprits:
plugin_lineson very large repos → bumpretries_delayplugin_stargazerswith 0 stars → plugin handles this, but if it complains, setplugin_stargazers: no
Want to add the Spotify or Wakatime card
Uncomment the matching job block in .github/workflows/metrics.yml and
add the required secret.
Third-party widget services (github-readme-stats, etc.) are convenient but:
- They rate-limit under load and the card goes blank
- The service can disappear overnight (trophy widget did, April 2026)
- Every page view of your profile hits their servers, not GitHub's
With lowlighter/metrics, the SVG lives in your repo. GitHub serves it
from their CDN. The only dependency is the Actions workflow itself, which
runs on a schedule you control.