A zero-API, offline Git activity card and SVG generator for your GitHub profile and project READMEs.
Third-party GitHub profile statistics widgets frequently suffer from:
- Rate-limits (GitHub REST API blocks unauthenticated calls after 60 reqs).
- Vercel / Cloud downtime causing broken image icons on your README.
- Inaccurate data that misses local commits or repositories.
git-pulse uses Git plumbing directly (git log --numstat --date=iso) to generate clean, dark-themed SVG vector cards with zero external network requests.
Run directly inside any Git repository:
# Generate pulse.svg in the current directory
npx git-pulse --out pulse.svg
# Filter for the last 90 days of work
npx git-pulse --days 90 --out pulse.svg
# Filter by your commit author name
npx git-pulse --author luckdevx --out pulse.svgKeep your profile card updated on every push with zero secrets required:
name: Generate Git Pulse Card
on:
push:
branches: [main, master]
schedule:
- cron: '0 0 * * *' # Every night
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history needed for stats
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npx git-pulse --out pulse.svg
- name: Commit pulse.svg
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add pulse.svg
git commit -m "chore: update git pulse stats [skip ci]" || exit 0
git push| Flag | Short | Default | Description |
|---|---|---|---|
--repo |
-r |
. |
Path to Git repository. |
--out |
-o |
stdout | Output SVG filepath. |
--days |
-d |
all | Limit commit analysis to last N days. |
--author |
-a |
all | Filter commits by author regex. |
--title |
-t |
⚡ Git Activity Pulse |
Custom card header title. |
MIT © luckdevx