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 * * *"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate stats card
uses: readme-tools/github-readme-stats-action@v1
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: readme-tools/github-readme-stats-action@v1
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: readme-tools/github-readme-stats-action@v1
with:
card: pin
options: username=readme-tools&repo=github-readme-stats
path: profile/pin-readme-tools-github-readme-stats.svg
token: ${{ secrets.GITHUB_TOKEN }}
- name: Commit cards
run: |
git config user.name "github-actions"
git config user.email "[email protected]"
git add profile/*.svg
git commit -m "Update README cards" || exit 0
git pushThen embed from your profile README:


This action is a recommended deployment option. You can also deploy on Vercel or other platforms. See the GitHub Readme Stats README.
card(required): Card type. Supported:stats,top-langs,pin,wakatime,gist.options: Card options as a query string (key=value&...) or JSON. Ifusernameis omitted, the action uses the repository owner.path: Output path for the SVG file. Defaults toprofile/<card>.svg.token: GitHub token (PAT orGITHUB_TOKEN). For private repo stats, use a PAT withrepoandread:userscopes.
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.GITHUB_TOKEN }}JSON options example:
with:
card: stats
options: '{"username":"octocat","show_icons":true,"hide_rank":true}'
token: ${{ secrets.GITHUB_TOKEN }}- This action uses the same renderers and fetchers as readme-tools/github-readme-stats.