Write messages on your GitHub contribution graph.
commit-canvas renders text as pixel art on GitHub's contribution graph by generating strategically backdated git commits. It uses a built-in 5x7 pixel font and supports A-Z, 0-9, and a few special characters.
go install github.com/coldter/commit-canvas@latestOr build from source:
git clone https://github.com/coldter/commit-canvas.git
cd commit-canvas
go build -o commit-canvas .Just run it — a step-by-step TUI walks you through everything:
commit-canvas# Preview your message
commit-canvas preview "HELLO"
# Preview overlaid on your existing activity
commit-canvas preview "HI" --username yourname
# Generate commits
commit-canvas generate "HELLO" --name "Your Name" --email "you@example.com"
# Generate + push in one go
commit-canvas generate "HI" --name "Your Name" --email "you@example.com" \
--push --remote git@github.com:you/repo.git
# View anyone's contribution graph
commit-canvas profile yourname# Update an existing message
commit-canvas update "NEW MSG" --name "Your Name" --email "you@example.com"
# Delete the generated repo
commit-canvas clear
# Clear the remote too
commit-canvas clear --push --force --remote git@github.com:you/repo.git| Flag | Default | Description |
|---|---|---|
--year |
0 |
Target year (0 = rolling last-year window) |
--username |
GitHub username for auto-calibration and overlay preview | |
--align |
left |
Message alignment: left, center, right |
--contrast |
high |
Commit intensity: high, medium, low |
--commits-per-day |
0 |
Exact commits per active day (0 = auto) |
--output |
./commit-canvas-repo |
Output directory for the generated repo |
--preview |
true |
Show ASCII preview before generating |
- Your message is rendered onto a 7-row × 53-column grid (matching GitHub's contribution graph layout)
- If you provide a
--username, your existing GitHub activity is fetched to auto-calibrate commit intensity so your message stands out - Backdated commits are generated using git plumbing commands for speed
- Push the repo to GitHub and the message appears on your profile
MIT

