A terminal TUI and CLI for browsing and downloading specific files or folders from GitHub, GitLab, Codeberg, Gitea and Forgejo without cloning.
czl9707/gh-space-shooter
Turns a GitHub contribution graph into an animated Galaga-style space shooter GIF or WebP that you can embed in your profile.
- Stars
- 927
- Forks
- 76
- Open issues
- 1
- Last commit
- 10 days ago
What is it?
gh-space-shooter reads a GitHub user's contribution calendar and renders it as an animated space shooter: each contribution cell becomes an enemy, with stronger enemies for more contributions, while a spaceship fights its way through the history. The output is a GIF or WebP file that can be displayed in a profile README or any Markdown page.
It can be used in several ways. A hosted web interface generates a one-off animation without installing anything, the Python CLI (installable from PyPI) produces files locally, and a GitHub Action regenerates the animation on a schedule and commits it back to a repository. Enemy attack patterns can be set to column, row, or random, and frame rate and frame count are adjustable.
The CLI can also save raw contribution data as JSON and reload it later, which avoids repeated API calls when iterating on the rendering.
Key features
- 01Renders contribution graph cells as enemies whose strength scales with activity.
- 02Exports animated GIF or WebP files.
- 03Offers column, row, and random enemy attack strategies.
- 04Runs as a scheduled GitHub Action that can update the file daily.
- 05Saves and reloads contribution data as JSON to reduce API calls.
- 06Adjustable frame rate and frame limit.
Use cases
- Adding an animated contribution graph to a GitHub profile README.
- Automatically refreshing a profile animation with a daily scheduled workflow.
- Generating a one-off shareable animation without installing anything via the web interface.
- Iterating on rendering settings offline using saved JSON data.
Quick start
- 1
Install from PyPI
pip install gh-space-shooter - 2
Create a GitHub token with read:user scope and export it
export GH_TOKEN=your_token_here - 3
Generate the animation for a username
gh-space-shooter <username>
Things to know
- Requires a GitHub personal access token to fetch contribution data.
Topics
FAQ
- What is gh-space-shooter?
- Turns a GitHub contribution graph into an animated Galaga-style space shooter GIF or WebP that you can embed in your profile. gh-space-shooter reads a GitHub user's contribution calendar and renders it as an animated space shooter: each contribution cell becomes an enemy, with stronger enemies for more contributions, while a spaceship fights its way through the history. The output is a GIF or WebP file that can be displayed in a profile README or any Markdown page.
- Is gh-space-shooter free to use? What license does it have?
- gh-space-shooter is open source under the MIT license. Check the license terms before using it in commercial products.
- Is gh-space-shooter still maintained?
- Actively maintained. The last commit to gh-space-shooter was on Oct 10, 2026.
- What can I use gh-space-shooter for?
- Adding an animated contribution graph to a GitHub profile README. Automatically refreshing a profile animation with a daily scheduled workflow. Generating a one-off shareable animation without installing anything via the web interface. Iterating on rendering settings offline using saved JSON data.
- How do I install gh-space-shooter?
- Install from PyPI: pip install gh-space-shooter Create a GitHub token with read:user scope and export it: export GH_TOKEN=your_token_here Generate the animation for a username: gh-space-shooter <username>
- Where can I get gh-space-shooter?
- The source code and installation instructions are on GitHub: https://github.com/czl9707/gh-space-shooter
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Chinese-run monthly newsletter and curated list that introduces interesting, beginner-friendly open source projects from GitHub.
Turns a Git repository or local directory into a single prompt-friendly text digest for feeding code to LLMs.
Python command-line tool that generates minimalist, printable map posters of any city from OpenStreetMap data, with selectable color themes.
A command-line tool and Python library for running prompts and chats against remote and locally installed large language models.
An open-source Python framework where LLM agents control Android and iOS phones via natural language, CLI, or Python API.