A privacy-focused, local-first tool that analyzes your AI coding assistant usage (Claude Code, GitHub Copilot/Codex CLI, and Gemini CLI) to generate beautiful, GitHub-style profile stats cards.
Display your "Vibe Coding" activity exactly like GitHub Contributions directly in your README.md!
- Zero-Dependency Core: Shell extraction script runs seamlessly without downloading massive packages.
- Privacy First: Only aggregate metadata (token counts, session timestamps) is extracted. No code or conversation history leaves your machine.
- Headless SVG Generator: Native layout building supports multiple themes (
default,light,dracula) and modes. - Interactive UI: Drag-and-drop HTML dashboard is also included for real-time rich local visualization.
- Multi-Machine Sync: Built-in scripts and GitHub Action workflow to sync data across your laptop, desktop, and remote servers.
-
Collect your data:
chmod +x collect.sh ./collect.sh
This generates a
profile-data.jsonfile in the current folder. (Note: You can override source directories by settingCLAUDE_DIR,CODEX_DIR, orGEMINI_DIRoptionally). -
Generate the SVG Profile Badge:
node generate.js --in=data/profile-data.json
You can customize the design using
--layout,--theme(default/light/dracula),--name, and--month(for heatmaps) parameters.Layout Options:
Default ( --layout=default)Grade ( --layout=grade)Displays top models parsed and overall generation progress bar. Features an automated overall grade based on your AI utilization. Heatmap ( --layout=heatmap)Chart ( --layout=chart)Configurable 3/6/12 month GitHub-style contribution grid ( --month=3).A smooth cubic-bezier curve showing estimated cost trends over 7 days. Note: If you have data stored on multiple machines such as
data/profile-data.jsonanddata/profile-data-server.json, you can executenode generate.jsand all files inside thedata/directory will be automatically merged into one unified SVG card. You can also explicitly merge files directly via CLI by parsing multiple comma-separated filenames:--in="local-data.json,remote-data.json". -
View the Interactive Dashboard (Optional):
open index.html
Drag and drop the generated
profile-data.jsoninto the browser to see the responsive glassmorphism UI.
You can set up Vibe Profile to automatically generate stat cards for your username/username GitHub Profile repo or a dedicated metrics repo!
- Commit this entire folder to a repository (or your profile repo).
- The included
.github/workflows/vibe-profile.ymlis already configured. - Whenever a
.jsonfile is pushed to thedata/directory, the action will merge the data and automatically commit avibe-profile.svg.
To actively send your latest AI coding stats to the repository automatically, setup the cron sync agent.
Open your terminal and run crontab -e, then add:
# Push latest data to GitHub every Sunday at midnight
0 0 * * 0 /path/to/your/cloned/repo/agent-sync.sh(Remember to update REPO_DIR inside agent-sync.sh to match your actual clone directory).
<p align="center">
<img src="https://raw.githubusercontent.com/YourUsername/YourRepo/main/vibe-profile.svg" alt="Vibe Profile" />
</p>