Disclaimer: This is a joke project for fun. It does not reflect real contributions and should not be used to misrepresent your work. Please don't take it seriously.
Make your GitHub contribution graph solid green — or spell out text and draw pixel art on it. Creates backdated commits to fill every day in your history.
# Fill the last 365 days with 1-5 random commits per day
./contribute.sh
# Or draw "HI" on your graph
python3 contribute-art.py text "HI"
# Or draw a heart
python3 contribute-art.py design heart
# Push to GitHub
git push -u origin mainFills every day in a date range with a random number of commits.
./contribute.sh [DAYS_BACK] [MIN_COMMITS] [MAX_COMMITS]| Argument | Default | Description |
|---|---|---|
DAYS_BACK |
365 | Number of days to go back |
MIN_COMMITS |
1 | Minimum commits per day |
MAX_COMMITS |
5 | Maximum commits per day |
# Light green everywhere (subtle)
./contribute.sh 365 1 2
# Medium intensity
./contribute.sh 365 2 5
# Full dark green (go big or go home)
./contribute.sh 365 5 10Draw text or pixel designs on the contribution graph. Each character or design maps onto the 7-row × 52-week grid that GitHub displays.
python3 contribute-art.py {text,design} VALUE [options]Supports A–Z, 0–9, and common symbols (! ? - . + * / : _). Each character is 5 weeks wide with 1 week of spacing, so you can fit roughly 8 characters across the graph.
# Write your name
python3 contribute-art.py text "HELLO"
# Preview without creating commits
python3 contribute-art.py text "GIT" --preview
# Max brightness
python3 contribute-art.py text "WOW" --intensity 4Pick from built-in pixel art patterns.
# Draw a heart
python3 contribute-art.py design heart
# Preview a space invader
python3 contribute-art.py design invader --preview
# List all available designs
python3 contribute-art.py --list-designsAvailable designs: heart, smiley, star, diamond, invader, ghost, pacman, wave, check, cross, music, anchor, sword, tree, skull, arrow-right, lightning, dna
| Flag | Description |
|---|---|
--intensity {1,2,3,4} |
Brightness level: 1=light, 2=medium, 3=dark, 4=max (default: 3) |
--preview |
Show the pattern in the terminal without creating commits |
--invert |
Invert the pattern (negative-space effect) |
--start-weeks-ago N |
Place column 0 at N weeks ago (default: auto-center) |
--reset |
Wipe all existing commits first (clean slate) |
--list-designs |
Show all preset designs with previews |
--list-font |
Show all supported text characters |
| Level | Commits/pixel | GitHub color |
|---|---|---|
| 1 | 2 | Light green |
| 2 | 5 | Medium green |
| 3 | 10 | Dark green |
| 4 | 16 | Darkest green |
Want to clear your graph and start over with a new design? Use --reset to wipe all existing commits before drawing.
# Remove everything, then write "HI"
python3 contribute-art.py text "HI" --reset
# Remove everything, then draw a heart
python3 contribute-art.py design heart --reset
# After reset, force-push to update GitHub
git push -f origin mainThis creates an orphan branch (deleting all history), resets contributions.json, and then creates only the new art commits. You'll be prompted for confirmation before anything is deleted.
Both scripts create real git commits with backdated timestamps (GIT_AUTHOR_DATE / GIT_COMMITTER_DATE). GitHub uses the author date to place commits on the contribution graph. Each commit updates a contributions.json file with a unique entry.
The art script maps each "pixel" in a letter or design to a specific day on the graph (7 rows = days of the week, columns = weeks). Active pixels get multiple commits to hit the desired green intensity; inactive pixels get none.
- Git
- Bash
- Python 3
To start fresh, delete the repo and re-clone, or:
git checkout --orphan fresh
git add -A
git commit -m "reset"
git branch -D main
git branch -m main
git push -f origin main