gitlogue is a free, open source frameworks & platforms project written in Rust and released under ISC. It has 4,983 GitHub stars, 114 forks and 12 open issues, and was last pushed 5 days ago. On this registry it ranks #33 of 44 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is gitlogue?

gitlogue is a cinematic Git commit replay tool for the terminal that turns a repository's commit history into an animated story with realistic typing, syntax highlighting and file tree transitions, aimed at developers who want to watch code change over time rather than read it as static log output.

What it is

gitlogue is a command line application written in Rust that lives in the terminal/TUI ecosystem. It renders Git history as animation, driven by the ratatui terminal interface library and tree-sitter parsers for syntax highlighting, and it is distributed as a single gitlogue binary through an install script, Homebrew, Cargo, pacman and Nix. The tool is dual-purpose: it can replay a specific commit, a commit range, or an endless random stream, and it can also render the current working tree diff before a commit exists at all.

The concrete problem it solves is the flatness of standard Git history inspection. A developer reviewing git log or a raw diff reads a wall of static text with no sense of sequence, file movement, or how the code was actually typed. gitlogue replaces that static reading experience with a frame-by-frame replay: cursor movement, deletions, insertions and file tree transitions unfold in order, so the shape of a change is visible rather than inferred. It also covers the pre-commit case through gitlogue diff, which visualizes staged changes by default and unstaged changes with gitlogue diff --unstaged.

Key capabilities

  • Commit replay as animation with realistic typing, cursor movement and file operations, addressable by hash or range such as gitlogue --commit abc123 or --commit HEAD~5..HEAD, with --order asc for oldest-first playback and --loop for continuous repetition.
  • Working tree diff view for staged changes via gitlogue diff and unstaged changes via gitlogue diff --unstaged, showing changes before they are committed.
  • Tree-sitter syntax highlighting with support for 32 languages, paired with 9 built-in themes managed through gitlogue theme list and gitlogue theme set dracula, or selected per run with --theme.
  • Project file tree rendering that shows the directory structure alongside change statistics.
  • Screensaver mode for endless random commit playback, with playback keys including Space to toggle play and pause, h and l to step one line, H and L to step one change, and p and n to move between commits.
  • Speed control through --speed in milliseconds per character, plus per-file-type rules such as --speed-rule "*.java:50" and --speed-rule "*.xml:5".
  • Filtering and exclusion through --author for case-insensitive partial author or email matching, --after and --before for date windows, --ignore "*.ipynb" for patterns, and --ignore-file .gitlogue-ignore for a stored ignore list.

Who uses it and how

  • Developers running it as an ambient screensaver or workspace display, where an idle terminal shows a repository's history playing continuously instead of a blank prompt.
  • Educators and learners using replay to visualize how a code base evolved over time, since file tree transitions and typing order make structural change legible.
  • Presenters who replay real commit histories live during presentations, using --commit ranges and --loop to keep a segment running.
  • Content creators recording demos with VHS or asciinema, where the animated replay supplies visual material for terminal screencasts.
  • Desktop ricing enthusiasts using it as a living terminal decoration, and the README's own "Look Busy Mode" for appearing productive during meetings.

Getting started

The recommended installation is the install script, curl -fsSL https://raw.githubusercontent.com/unhappychoice/gitlogue/main/install.sh | bash. Alternatives are brew install gitlogue, cargo install gitlogue, pacman -S gitlogue on Arch Linux, or nix run github:unhappychoice/gitlogue; after installation, running gitlogue with no arguments starts the cinematic screensaver.

How it compares

The provided facts name no paid products that gitlogue replaces, and no comparable tools. It stands alone in this registry on that evidence, so no licence, self-hosting or cost-model contrast can be drawn from the material available.

When to use it — and when not to

Use it when the goal is watching or displaying commit history rather than querying it, and when a terminal is the intended output surface. Two documented limits matter: gitlogue is not a true screensaver and includes no power management or screen blanking, and static elements such as the editor background and border lines may cause burn-in on OLED displays over extended periods, though LCD displays are generally safe. Anyone expecting a system screensaver replacement, or an OLED owner planning long unattended runs, should look elsewhere.

project readme (upstream, from github) — read inline

crates.io release CI codecov license Terminal Trove Tool of The Week Featured|HelloGitHub

A cinematic Git commit replay tool for the terminal.
Turn your Git history into a living, animated story — typing, syntax highlighting, file tree transitions.

Watch commits unfold with realistic typing animations, syntax highlighting, and file tree transitions, transforming code changes into a visual experience.

Installation

Using Install Script (Recommended)

curl -fsSL https://raw.githubusercontent.com/unhappychoice/gitlogue/main/install.sh | bash

Using Homebrew

brew install gitlogue

Using Cargo

cargo install gitlogue

On Arch Linux

pacman -S gitlogue

Using Nix

# Run directly without installation
nix run github:unhappychoice/gitlogue

# Or install to your profile
nix profile install github:unhappychoice/gitlogue

# For flake-based configurations, add to your inputs:
# inputs.gitlogue.url = "github:unhappychoice/gitlogue";
# Then use: inputs.gitlogue.packages.${system}.default

From Source

git clone https://github.com/unhappychoice/gitlogue.git
cd gitlogue
cargo install --path .

See the Installation Guide for more options and troubleshooting.

Features

🎬 Commit Replay as Animation — Realistic typing, cursor movement, deletions, and file operations 🔍 Working Tree Diff View — Visualize staged/unstaged changes before committing 🎨 Tree-sitter Syntax Highlighting — 32 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

Usage

Popular Use Cases

🖥️ 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.

Quick Start

# 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

# View staged changes (default)
gitlogue diff

# View unstaged changes instead
gitlogue diff --unstaged

# Filter commits by author or email (case-insensitive partial match)
gitlogue --author "john"

# Filter commits by date
gitlogue --after "2024-01-01"
gitlogue --before "1 week ago"
gitlogue --after "2024-06-01" --before "2024-07-01"

# Use a different theme
gitlogue --theme dracula

# Adjust typing speed (ms per character)
gitlogue --speed 20

# Set different speeds for different file types
gitlogue --speed-rule "*.java:50" --speed-rule "*.xml:5"

# 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 --author "john" --theme nord --speed 15 --ignore "*.ipynb"

Key Bindings

Playback

Key Action
Space Toggle play / pause
h Step one line backward
l Step one line forward
H (Shift+h) Step one change backward
L (Shift+l) Step one change forward
p Previous commit
n Next commit
Esc Open menu
q / Ctrl+c Quit

Menu

Key Action
j / Move selection down
k / Move selection up
Enter Select item
Esc Close menu

Configuration

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.

Supported Languages

Astro, Bash, C, C#, C++, Clojure, CSS, Dart, Elixir, Erlang, Go, Godot (GDScript / Shader / Resource), Haskell, HTML, Java, JavaScript, JSON, Kotlin, Lua, Markdown, Nix, PHP, Python, Ruby, Rust, Scala, Svelte, Swift, TypeScript, XML, YAML, Zig

Documentation

Installation Guide
Usage Guide
Configuration Guide
Theme Customization
Contributing Guidelines
Architecture Overview

Related Projects

Git Visualization & Coding

  • GitType - A CLI code-typing game that turns your source code into typing challenges

Terminal Screensavers

  • 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

Contributing

Contributions are welcome.
See the Contributing Guidelines for details.

License

ISC License. See LICENSE for details.

Author

@unhappychoice

Support

If you find this project useful, please consider:

readme truncated — read the full docs on github

Frequently asked questions

Is gitlogue free to use?

gitlogue is open source under the ISC licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does gitlogue do?

A cinematic Git commit replay tool for the terminal, turning your Git history into a living, animated story.

What is gitlogue written in?

gitlogue is primarily written in Rust. Its source is publicly available at https://github.com/unhappychoice/gitlogue, and it has 4,983 GitHub stars.