Get Started
Get Started
Generate SVG cards via CI/CD and store them directly in your repository.
1
Add a GitHub Actions workflow
Create .github/workflows/stats.yml in your profile repository
(username/username).
.github/workflows/stats.yml
name: Generate Stats
on:
schedule:
- cron: '0 */6 * * *'
workflow_dispatch:
push:
branches: [main]
jobs:
generate:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: mikhailkhorokhorin/profile-graphics@v1
with:
username: ${{ github.actor }}
token: ${{ secrets.GITHUB_TOKEN }}
charts: activity,langs,streak,summary
theme: tokyo-night
output_dir: dist
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: update stats [skip ci]'
file_pattern: 'dist/*.svg'
2
Run the workflow manually
Go to Actions → Generate Stats → Run workflow for the first run.
Files dist/*.svg will be committed automatically.
For public repositories
GITHUB_TOKEN is sufficient. For private stats,
create a Personal Access Token with repo scope.
3
Add cards to README
Add <img> tags to your profile README.md:
README.md
## Stats <div align="left"> <img height="160" src="https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_USERNAME/main/dist/activity.svg"/> <img height="160" src="https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_USERNAME/main/dist/langs.svg"/> <img height="130" src="https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_USERNAME/main/dist/streak.svg"/> <img height="120" src="https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_USERNAME/main/dist/summary.svg"/> </div>
Replace
YOUR_USERNAME with your GitHub username.
Additional inputs
| Input | Default | Description |
|---|---|---|
| username | — | GitHub/GitLab username |
| token | GITHUB_TOKEN | API token for requests |
| provider | github | github or gitlab |
| charts | activity,langs,streak,summary | List of charts to generate |
| theme | github-dark | Theme name (40 options) |
| output_dir | dist | Output directory for SVG files |
| timezone | UTC | Timezone for streak/productive-time |
| gitlab_url | https://gitlab.com | URL for self-hosted GitLab |
| config | — | Path to YAML config file |
Config file (advanced)
For full control, use a YAML config file:
profile-graphics.yml
provider:
type: github
user: your-username
token: ${GITHUB_TOKEN}
include_private: false
output:
dir: dist
prefix: ""
charts:
- activity
- langs
- streak
- summary
- productive-time
theme:
preset: tokyo-night
chart_options:
activity:
days: 90
show_average: true
fill_opacity: 0.15
langs:
top_n: 6
style: bar
exclude:
- Markdown
- HTML
streak:
timezone: Europe/Moscow
summary:
metrics:
- stars
- commits
- prs
- issues