Introduction
Gitlogue replays Git commit history as an animated terminal presentation, showing each commit's changes with syntax highlighting and smooth transitions. It is designed for code reviews, demos, and understanding how a codebase evolved over time.
What Gitlogue Does
- Replays Git commit history as an animated terminal sequence
- Applies syntax highlighting via tree-sitter for accurate code coloring
- Supports configurable playback speed and commit range selection
- Renders file diffs with smooth transitions between commits
- Works as a terminal screensaver or presentation tool
Architecture Overview
Gitlogue is written in Rust using the ratatui TUI framework for rendering and tree-sitter for language-aware syntax highlighting. It reads the Git object database directly via libgit2 bindings, extracting diffs between consecutive commits and rendering them frame by frame in the terminal. The animation engine handles smooth scrolling and fade effects without external dependencies.
Self-Hosting & Configuration
- Install via cargo install from crates.io
- Pre-built binaries available for Linux, macOS, and Windows
- Configure playback speed with command-line flags
- Specify commit ranges or branches to replay specific history
- Supports custom color themes via terminal color configuration
Key Features
- Zero-dependency single binary distribution
- Language-aware syntax highlighting for 100+ languages
- Configurable animation speed and commit filtering
- Works with any Git repository without setup
- Lightweight enough to run as a terminal screensaver
Comparison with Similar Tools
- git log --oneline — text-only commit list without visual diff replay; Gitlogue animates actual code changes
- Gource — visualizes repository activity as a 3D animation; Gitlogue focuses on code-level diff replay in the terminal
- delta — enhances git diff output with syntax highlighting but is not animated; Gitlogue adds temporal playback
- VHS — records terminal sessions as GIFs; Gitlogue generates animations directly from Git history
FAQ
Q: Does Gitlogue modify my repository? A: No. It only reads the Git object database and never writes to your repository.
Q: Can I export the animation as a video or GIF? A: Gitlogue renders directly in the terminal. You can combine it with screen recording tools to capture the output.
Q: Which languages are supported for syntax highlighting? A: Any language supported by tree-sitter, which includes over 100 programming languages.
Q: How large a repository can Gitlogue handle? A: It processes commits sequentially, so repository size mainly affects initial load time. It works well with repositories of any size.