GitHub Activity Widget
The GitHub Activity widget turns your contribution history into a live heatmap on your X banner — the familiar grid of colored squares that gets more vivid the more you ship. It's a premium widget that connects to GitHub through OAuth, pulls your contribution data, and re-renders on a schedule so your banner always reflects your latest work.
Read-only, by design
Connecting GitHub uses the minimal read:user scope — Xenopic reads your public contribution
activity and nothing else. It can never push code, open issues, or change anything in your
repositories, just like its access to X is read-only plus banner updates.
Unlocking the widget
GitHub Activity is a premium widget unlocked with coins, your refundable build capacity. Adding it places a coin hold against your balance; remove the widget later and those coins return in full. Coins are never cash and can't be cashed out — they only govern how many premium widgets you keep active at once. See What are coins? for the full picture, or Plans & billing for how much capacity each plan includes.
Connecting your GitHub account
Before the heatmap can show real data, link your GitHub account:
- Open the widget's settings in the Banner Builder.
- Click Connect GitHub. A popup window opens GitHub's authorization screen.
- Approve the
read:userpermission. The popup closes itself and your username is detected automatically. - An initial sync runs right away, so your contributions populate within moments.
You can Disconnect at any time from the same panel. Disconnecting stops the activity from syncing and leaves your repositories untouched.
Display options
Everything about the graph is configurable from the widget's settings panel:
| Option | What it does |
|---|---|
| Show Header | Toggles a title line above the graph (off by default). |
| Header Text | The title to display when the header is enabled — defaults to "My GitHub Activity". |
| Graph Color | The theme color for filled squares. Xenopic shades it across four intensity levels so busier days appear darker. |
| Date Range | Past Year (a rolling 12 months) or Current Year (January to today). |
| Width / Height | Overall size of the graph on your banner, in pixels. |
| Block Size | How large each day's square is. |
| Block Spacing | The gap between squares. |
Color grading is automatic
You only pick one Graph Color. Xenopic derives the lighter-to-darker scale for you based on how your contributions are distributed, so quiet days and heavy days are easy to tell apart at a glance — exactly like GitHub's own calendar.
How it refreshes
Once connected, your contribution data is re-fetched on a regular schedule — about once a day — and your banner is re-rendered with the fresh numbers. There's nothing to trigger manually; commits and contributions you make will show up on your next sync. Because the refresh runs at the service level, you don't manage a per-widget timer.
For more on how Xenopic keeps every widget current, see Auto-updates.
Tips for a clean banner
- Keep the header off for a minimal look, or turn it on to label the graph for visitors.
- Match your brand color with the Graph Color picker so the heatmap blends into the rest of your banner design.
- Use "Past Year" for a consistently full grid year-round; switch to "Current Year" if you want the calendar to reset each January.
- If the graph looks empty right after connecting, give the initial sync a moment — see Troubleshooting if it persists.
Next steps
- Widgets overview — browse every free and premium widget.
- Banner Builder — place, size, and arrange widgets on your canvas.
- Auto-updates — how often your banner refreshes and why.