Back to rankings

unhappychoice/gitlogue

Rust

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

cli-toolcode-animationdeveloper-toolsgitgit-historygit-visualizationproductivityratatuirustscreensaversyntax-highlightingterminal
Star Growth
Stars
4.9k
Forks
107
Weekly Growth
β€”
Issues
11
3.5k4k4.5k
Nov 25Jan 26Apr 26Jul 26
Artifactscrates.iocargo add gitlogue
README

gitlogue

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

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 β€” 29 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

πŸ–₯️ 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
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, 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

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:

Every bit of support helps. Thanks!

Related repositories
HKUDS/DeepTutor

DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.

PythonPyPIApache License 2.0ai-tutordeepresearch
arxiv.org/abs/2604.26962
28.5k3.8k
darknessomi/musicbox

η½‘ζ˜“δΊ‘ιŸ³δΉε‘½δ»€θ‘Œη‰ˆζœ¬

PythonPyPIMIT Licensemusicnetease-musicbox
9.8k1.6k
mixn/carbon-now-cli

🎨 Beautiful images of your code β€” from right inside your terminal.

TypeScriptnpmMIT Licensecli-appcli
6k125
FlorianBruniaux/claude-code-ultimate-guide

The most comprehensive Claude Code guide: agentic workflows, hooks, skills, MCP servers, quizzes, and production-ready templates. 430K+ lines.

PythonPyPICreative Commons Attribution Share Alike 4.0 Internationalagentic-codingai-assistant
cc.bruniaux.com
5.5k725
fosslife/awesome-ricing

A curated list of awesome tools and technology to help you out with ricing on linux

ricinglinux
4.4k105
antfu-collective/taze

πŸ₯¦ A modern cli tool that keeps your deps fresh

TypeScriptnpmMIT Licensedependenciescli-tool
4.2k148
itchyny/gojq

Pure Go implementation of jq

GoGo ModulesMIT Licensegolanggo
3.8k141
davepoon/buildwithclaude

A single hub to find Claude Skills, Agents, Commands, Hooks, Plugins, and Marketplace collections to extend Claude Code, Claude Desktop, Agent SDK and OpenClaw

TypeScriptnpmMIT Licenseclaudeclaude-code
buildwithclaude.com
3.2k432
kaitranntt/ccs

Switch between Claude accounts, Gemini, Copilot, OpenRouter (300+ models) via CLIProxyAPI OAuth proxy. Visual dashboard, remote proxy support, WebSearch fallback. Zero-config to production-ready.

TypeScriptnpmMIT Licenseclaudeclaude-code
ccs.kaitran.ca
2.7k244
moazbuilds/CodeMachine-CLI

CodeMachine is an open-source tool that orchestrates AI coding agents into repeatable, long-running workflows. ⚑️

TypeScriptnpmApache License 2.0aiautomation
codemachine.co
2.5k241
context-labs/autodoc

Experimental toolkit for auto-generating codebase documentation using LLMs

TypeScriptnpmMIT Licensedocumentation-generatorlanguage-model
2.4k150
Observal/Observal

Observal is a local registry and analytics platform for your AI components. Setup Observal, define the scope and share your Skills, MCPs and Agents.

PythonPyPIApache License 2.0cli-toollarge-language-models
observal.io
2.2k457