GitHub Action to generate GitHub Readme Stats cards.
JavaScript
298
62 commits
updated Sep 23, 2026
Generate GitHub Readme Stats cards in your GitHub Actions workflow, commit them to your profile repository, and embed them directly from there.
name: Update README cards
on:
schedule:
- cron: "0 0 * * *" # Runs once daily at midnight
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- name: Generate stats card
uses: stats-organization/github-readme-stats-action@v2
with:
card: stats
options: username=${{ github.repository_owner }}&show_icons=true
path: profile/stats.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate top languages card
uses: stats-organization/github-readme-stats-action@v2
with:
card: top-langs
options: username=${{ github.repository_owner }}&layout=compact&langs_count=6
path: profile/top-langs.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate pin card
uses: stats-organization/github-readme-stats-action@v2
with:
card: pin
options: username=stats-organization&repo=github-readme-stats
path: profile/pin-stats-organization-github-readme-stats.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Commit cards
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add profile/*.svg
git commit -m "Update README cards" || exit 0
git push
Then embed from your profile README:



This action is a recommended deployment option. You can also use our public GitHub-Stats-Extended instance or deploy one yourself.
card (required): Card type. Supported: stats, top-langs, pin, wakatime, gist.options: Card options as a query string (key=value&...) or JSON. If username is omitted, the action uses the repository owner.path: Output path for the SVG file. Defaults to profile/<card>.svg.token: GitHub token (PAT or GITHUB_TOKEN). For private repo stats, use a PAT with repo and read:user scopes. For any gist, use a PAT with gist scope.core_version: Version of GitHub Stats Extended to use internally. When omitted, the action uses the latest 2.x.x version.fail_on_error: Fail the action when data fetching fails (e.g. a GitHub API rate limit) instead of writing the "Something went wrong" error card.false for backwards compatibility.path: Path where the SVG file was written, relative to the workspace.Stats example:
with:
card: stats
options: username=octocat&show_icons=true&hide_rank=true&bg_color=0D1117
token: ${{ secrets.GITHUB_TOKEN }}
Top languages example:
with:
card: top-langs
options: username=octocat&layout=compact&langs_count=6
token: ${{ secrets.GITHUB_TOKEN }}
WakaTime example:
with:
card: wakatime
options: username=octocat&layout=compact
token: ${{ secrets.GITHUB_TOKEN }}
Gist example:
with:
card: gist
options: id=0123456789abcdef
token: ${{ secrets.PAT }}
JSON options example:
with:
card: stats
options: '{"username":"octocat","show_icons":true,"hide_rank":true}'
token: ${{ secrets.GITHUB_TOKEN }}
Version-pinned example:
with:
card: stats
options: username=octocat&show_icons=true
core_version: 2.1.3
token: ${{ secrets.GITHUB_TOKEN }}
JavaScript
100.0%
GitHub Action to generate GitHub Readme Stats cards.
JavaScript
298
62 commits
updated Sep 23, 2026
Generate GitHub Readme Stats cards in your GitHub Actions workflow, commit them to your profile repository, and embed them directly from there.
name: Update README cards
on:
schedule:
- cron: "0 0 * * *" # Runs once daily at midnight
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- name: Generate stats card
uses: stats-organization/github-readme-stats-action@v2
with:
card: stats
options: username=${{ github.repository_owner }}&show_icons=true
path: profile/stats.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate top languages card
uses: stats-organization/github-readme-stats-action@v2
with:
card: top-langs
options: username=${{ github.repository_owner }}&layout=compact&langs_count=6
path: profile/top-langs.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate pin card
uses: stats-organization/github-readme-stats-action@v2
with:
card: pin
options: username=stats-organization&repo=github-readme-stats
path: profile/pin-stats-organization-github-readme-stats.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Commit cards
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add profile/*.svg
git commit -m "Update README cards" || exit 0
git push
Then embed from your profile README:



This action is a recommended deployment option. You can also use our public GitHub-Stats-Extended instance or deploy one yourself.
card (required): Card type. Supported: stats, top-langs, pin, wakatime, gist.options: Card options as a query string (key=value&...) or JSON. If username is omitted, the action uses the repository owner.path: Output path for the SVG file. Defaults to profile/<card>.svg.token: GitHub token (PAT or GITHUB_TOKEN). For private repo stats, use a PAT with repo and read:user scopes. For any gist, use a PAT with gist scope.core_version: Version of GitHub Stats Extended to use internally. When omitted, the action uses the latest 2.x.x version.fail_on_error: Fail the action when data fetching fails (e.g. a GitHub API rate limit) instead of writing the "Something went wrong" error card.false for backwards compatibility.path: Path where the SVG file was written, relative to the workspace.Stats example:
with:
card: stats
options: username=octocat&show_icons=true&hide_rank=true&bg_color=0D1117
token: ${{ secrets.GITHUB_TOKEN }}
Top languages example:
with:
card: top-langs
options: username=octocat&layout=compact&langs_count=6
token: ${{ secrets.GITHUB_TOKEN }}
WakaTime example:
with:
card: wakatime
options: username=octocat&layout=compact
token: ${{ secrets.GITHUB_TOKEN }}
Gist example:
with:
card: gist
options: id=0123456789abcdef
token: ${{ secrets.PAT }}
JSON options example:
with:
card: stats
options: '{"username":"octocat","show_icons":true,"hide_rank":true}'
token: ${{ secrets.GITHUB_TOKEN }}
Version-pinned example:
with:
card: stats
options: username=octocat&show_icons=true
core_version: 2.1.3
token: ${{ secrets.GITHUB_TOKEN }}
JavaScript
100.0%