Skip to content

Overview

GitHub Stats Forge renders GitHub stats as SVG cards: your contribution stats, the languages you write most, the repositories you contribute to, pinned repositories, gists, an organization’s totals and WakaTime coding time.

The stats card

Every card on this site was rendered by the CLI from a saved configuration, so what you see is what the tool produces — not a screenshot.

CardDescribesHandlerWhat it shows
StatsA userstatsCommits, PRs, issues, reviews, stars and a rank
Top languagesA usertopLangsThe languages you write most, by size or repository count
Contributed toA usercontributedToThe repositories you contribute to, ranked, and in which years
WakaTimeA userwakatimeCoding time per language
Repository pinOne repositorypinOne repository, so a profile can pin more than six
Gist pinOne gistgistOne gist
OrganizationAn organizationorgIts public repositories, and what they add up to

There are three ways in, and none of them needs a server.

From a workflow — the recommended one. The GitHub Stats Forge action renders your cards on a schedule and commits the SVGs, so your README points at files in your own repository. Nothing has to be up when someone reads your profile, and a failure lands in a job log rather than in a broken image. Its own README documents the inputs it takes.

From the terminal, which writes an SVG next to you:

Terminal window
npx @stats-forge/github-stats-forge-cli

It asks which card, asks for the options that card takes, and saves what you answered so the same card can be redrawn later. See The CLI.

From code, which is what the action and any self-hosted endpoint do underneath:

import { CardConfig, stats } from '@stats-forge/github-stats-forge-core/api';
const config = new CardConfig({ pats: [{ name: 'PAT_1', value: process.env.PAT_1 }] });
const result = await stats({ username: 'octocat' }, config);

See The library.

From your own server, which draws a card at the moment someone looks at it:

Terminal window
docker run -p 9000:9000 -e PAT_1=github_pat_... ghcr.io/stats-forge/github-stats-forge-server

The image serves every card as an endpoint, and carries this documentation and the card builder with it — the builder drawing from your instance, with your real numbers. See Self-hosting.

Every card takes the same colors, borders and title options, one of 79 built-in themes, and a locale where it has text to translate. Each card page lists what only that card accepts.