A cinematic Git commit replay tool for the terminal, turning your Git history into a living, animated story.
Watch commits unfold with realistic typing animations, syntax highlighting, and file tree transitions, transforming code changes into a visual experience.
curl -fsSL https://raw.githubusercontent.com/unhappychoice/gitlogue/main/install.sh | bashbrew install unhappychoice/tap/gitloguegit clone https://github.com/unhappychoice/gitlogue.git
cd gitlogue
cargo install --path .See the Installation Guide for more options and troubleshooting.
🎬 Commit Replay as Animation — Realistic typing, cursor movement, deletions, and file operations
🎨 Tree-sitter Syntax Highlighting — 26 languages supported
🌳 Project File Tree — Directory structure with change statistics
🖥️ Screensaver Mode — Endless random commit playback
🎭 Themes — 9 built-in themes + full customization support
⚡ Fast & Lightweight — Built with Rust for performance
🖥️ Screensaver — Ambient coding display for your workspace
🎓 Education — Visualize how code evolved over time
📺 Presentations — Replay real commit histories live
🎬 Content Creation — Record demos with VHS or asciinema
🎨 Desktop Ricing — A living decoration for your terminal
💼 Look Busy Mode — Appear productive during meetings
Warning
Not a True Screensaver — gitlogue does not include traditional screensaver functions like power management or screen blanking. It's purely a visual display tool.
OLED Burn-in Risk — Static elements (like the editor background and border lines) may cause burn-in on OLED displays over extended periods. LCD displays are generally safe from this issue.
# Start the cinematic screensaver
gitlogue
# View a specific commit
gitlogue --commit abc123
# Replay a range of commits
gitlogue --commit HEAD~5..HEAD
# Replay commits in chronological order (oldest first)
gitlogue --order asc
# Loop a specific commit continuously
gitlogue --commit abc123 --loop
# Loop through a commit range
gitlogue --commit HEAD~10..HEAD --loop
# Use a different theme
gitlogue --theme dracula
# Adjust typing speed (ms per character)
gitlogue --speed 20
# Ignore specific file patterns (e.g., notebooks, lock files)
gitlogue --ignore "*.ipynb" --ignore "poetry.lock"
# Use an ignore file
gitlogue --ignore-file .gitlogue-ignore
# List available themes
gitlogue theme list
# Set default theme
gitlogue theme set dracula
# Combine options
gitlogue --commit HEAD~5 --theme nord --speed 15 --ignore "*.ipynb"gitlogue can be configured via ~/.config/gitlogue/config.toml.
You can set the default theme, typing speed, and background preferences.
See the Configuration Guide for full options and examples.
Rust, TypeScript, JavaScript, Python, Go, Ruby, Swift, Kotlin, Java, PHP, C#, C, C++, Haskell, Dart, Scala, Clojure, Zig, Elixir, Erlang, HTML, CSS, JSON, Markdown, YAML, XML
Installation Guide
Usage Guide
Configuration Guide
Theme Customization
Contributing Guidelines
Architecture Overview
- GitType - A CLI code-typing game that turns your source code into typing challenges
- tarts - Collection of terminal screensavers in Rust (Matrix, Game of Life, Boids, 3D effects, and more)
- cbonsai - Grow beautiful bonsai trees in your terminal
- asciiquarium - Enjoy the mysteries of the sea from your terminal
- cmatrix - The Matrix screensaver effect for your terminal
- pipes.sh - Animated pipes flowing through your terminal
Contributions are welcome.
See the Contributing Guidelines for details.
ISC License. See LICENSE for details.
