A minimalist tool to synchronize your GitHub Profile README. Built with Bun and TypeScript, it uses the GitHub GraphQL API for fast data fetching and headless templating.
This project follows a Headless Templating approach:
- Source:
README.template.md(Markdown with placeholders). - Logic: Bun + TS scripts fetch data from GitHub GraphQL.
- Renderer: Injects stats into placeholders like
{{languages}}and{{commit}}. - Deploy: GitHub Actions automates the sync every 12 hours to your public profile repository.
- Runtime: Bun
- Language: TypeScript
- API: GitHub GraphQL API v4
- Automation: GitHub Actions (Cron)
- Formatting: Prettier
- Clone this repository.
- Install dependencies:
bun install
- Initialize the environment file:
bun run setup
- Set up your
GH_TOKENin the.envfile (see the Authentication section below). - Run the generator:
bun start <path-to-target-readme>
This project requires a GitHub Personal Access Token (PAT). You can use either:
- Fine-grained PAT: (Recommended) Requires
Contents (Read/Write),Workflows (Read/Write), andProfile (Read-only)permissions. - Classic PAT: (Easier for multiple organizations) Requires
repo,workflow, andread:userscopes.
Updates happen twice a day at 05:00 & 17:00 UTC.
Check .github/workflows/stats.yml for the CI/CD pipeline details.
Zero-bloat. Performance-first. Scalable.