Skip to main content

GitHub Contribution Writer

A command-line tool that draws words and text on your GitHub contribution graph by generating commits with strategically backdated timestamps.

How It Works

GitHub's contribution graph is a 7-row by 52-column grid representing your commit activity over the past year. Each cell corresponds to a specific day, with the color intensity reflecting the number of contributions made on that day.

This tool maps text characters to a 5x7 pixel font grid, calculates the corresponding calendar dates, and generates Git commits with backdated timestamps. When pushed to GitHub, these commits render as readable text on your contribution graph.

█   █ █████ █     █      ███
█   █ █     █     █     █   █
█   █ █     █     █     █   █
█████ ████  █     █     █   █
█   █ █     █     █     █   █
█   █ █     █     █     █   █
█   █ █████ █████ █████  ███

Installation

From PyPI

pip install github-contribution-writer

From Source

git clone https://github.com/dinesh-git17/github-contribution-writer.git
cd github-contribution-writer
pip install -e .

Usage

Basic Usage

Preview what commits will be generated:

contribution-writer "HELLO" --year 2025 --dry-run

Generate commits for a word:

contribution-writer "HELLO" --year 2025

Command Line Options

Option Description Default
word The text to render (A-Z, 0-9, space) Required
--year Target year for the commits 2025
--dry-run Preview without creating commits False
--no-center Align text to start of year False (centered)
--intensity Commits per pixel (1-10) 5

Examples

Render text centered on 2025:

contribution-writer "DINESH" --year 2025

Render text at the beginning of the year with maximum intensity:

contribution-writer "HI" --year 2025 --no-center --intensity 10

Preview the output before generating:

contribution-writer "CODE" --year 2025 --dry-run

Pushing to GitHub

After generating commits, push them to a GitHub repository:

# Create a new repository on GitHub first, then:
git remote add origin git@github.com:USERNAME/REPO.git
git branch -M main
git push -u origin main

The contribution graph updates within a few minutes of pushing.

Technical Details

Font Specifications

  • Character dimensions: 5 pixels wide, 7 pixels tall
  • Character spacing: 1 pixel
  • Supported characters: A-Z, 0-9, space
  • Maximum text length: approximately 8 characters (limited by 52-week display)

Commit Generation

Commits are created using Git's GIT_AUTHOR_DATE and GIT_COMMITTER_DATE environment variables to set custom timestamps. Each "pixel" in the rendered text corresponds to one or more commits on that date, with the intensity parameter controlling the exact count.

Date Mapping

The contribution graph displays:

  • Rows: Days of the week (Sunday at top, Saturday at bottom)
  • Columns: Weeks of the year (oldest on left, newest on right)

Text is rendered by mapping each pixel position to a calendar date and generating the appropriate number of commits for that date.

Project Structure

github-contribution-writer/
├── src/
│   └── contribution_writer/
│       ├── __init__.py
│       ├── __main__.py
│       ├── cli.py
│       └── font.py
├── pyproject.toml
├── README.md
└── .gitignore

Requirements

  • Python 3.10 or higher
  • Git installed and configured
  • A GitHub account with a public repository

Limitations

  • Only uppercase letters A-Z, digits 0-9, and spaces are supported
  • Text longer than 8 characters may not fit within the 52-week display window
  • The contribution graph only shows the past year, so backdated commits must fall within this range
  • Private repositories do not contribute to the public contribution graph by default

License

MIT License. See LICENSE file for details.

Contributing

Contributions are welcome. Please open an issue to discuss proposed changes before submitting a pull request.

Release files for github-contribution-writer 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for github-contribution-writer 1.0.0
File Size Uploaded
github_contribution_writer-1.0.0.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for github-contribution-writer 1.0.0
File Interpreter ABI Platform
github_contribution_writer-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.6 kB

Release files / github_contribution_writer-1.0.0.tar.gz

Download URL github_contribution_writer-1.0.0.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4ce41604545b95d5fe1adfe0d84ae03fedd93ff5c171b244a98e21cae0880815
BLAKE2b-256 checksum
How to use checksums
453b926ed5e6c7ab0ed2e24f5820c8cdd36d60650a5cba9ef0009ed1a1579556
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.12

Release files / github_contribution_writer-1.0.0-py3-none-any.whl

Download URL github_contribution_writer-1.0.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e098d47a832953077bf8dc8008ec383fc21b9db0d1f06c05c224399a25eb6e65
BLAKE2b-256 checksum
How to use checksums
4835abde56d65a8a91db4a835b606d56103c5cbf47edec2aaaa6df6520ef5d5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page