gitlogue

unhappychoiceISC活跃维护

把 Git 提交历史变成终端里逐帧播放的动画故事,用电影感回放代码演进过程,适合演示项目历程或当屏保。

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

v0.12.2发布于 2026-10-31 06:09 UTC5,266star +5 / 7 天123fork同步于 2026-11-10 23:37 UTC

怎么上手

由 README 提炼,执行前请确认
curl -fsSL https://raw.githubusercontent.com/unhappychoice/gitlogue/main/install.sh | bash
硬件要求按 README 说明

README 未说明,仅提到基于 Rust 构建、轻量快速,未提及 GPU 或显存要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把 Git 提交历史变成终端里的动画电影,用打字效果回放代码变更

把 Git 提交历史变成终端里逐帧播放的动画故事,用电影感回放代码演进过程,适合演示项目历程或当屏保。

核心能力

  • 用逼真打字动画回放提交,含光标移动与删除
  • 用 Tree-sitter 为 32 种语言做语法高亮
  • 展示项目文件树及变更统计
  • 支持屏保模式无限随机播放提交
  • 内置 9 套主题并支持自定义

容易踩的坑

并非真正屏保,不含电源管理或熄屏功能;OLED 屏长时间显示静态元素可能烧屏;需在 Git 仓库目录内运行才能回放提交

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.12.2
  1. v0.12.2Release v0.12.2最新正式版2026-10-31 · 2026-10-31 06:09 UTC

    🐛 Bug Fixes

    • fix(swift): capture nil via nil_literal node (c202bce)
    • fix(dart): use the highlight query bundled with tree-sitter-dart (be65dd1)

    📝 Other Changes

    • chore: bump version to v0.12.2 (4e57e27)
    • test(syntax): assert every highlight and injection query compiles (84ea30f)
    • chore(deps): bump tree-sitter-dart from 0.2.0 to 0.3.0 (edf5913)
    • chore(deps): bump tree-sitter-md from 0.5.3 to 0.5.4 (a02ffd1)
    • chore(deps): bump tree-sitter-scala from 0.26.2 to 0.26.3 (b0c640a)
    • chore: update flake.nix hashes for v0.12.1 (94123e9)
  2. v0.12.1Release v0.12.12026-10-17 · 2026-10-17 15:04 UTC
    查看更新说明

    🐛 Bug Fixes

    • fix(ui): ignore key release events so keys do not fire twice on Windows (ec63a6c)

    📝 Other Changes

    • chore: bump version to v0.12.1 (63630fd)
    • test(ui): replace no-op step regression test with history navigation check (3b23f10)
    • chore(deps): bump tree-sitter-erlang from 0.20.0 to 0.21.0 (10911eb)
    • chore(deps): bump tree-sitter-php from 0.24.2 to 0.25.1 (3565f10)
    • chore(deps): bump tree-sitter-swift from 0.7.3 to 0.7.4 (b89c173)
    • chore(deps): bump tree-sitter-haskell from 0.23.1 to 0.24.1 (10d8fb0)
    • chore: update flake.nix hashes for v0.12.0 (1ad3d9b)
  3. v0.12.0Release v0.12.02026-10-03 · 2026-10-03 15:12 UTC
    查看更新说明

    ✨ Features

    • feat: return to waiting screen after watch playback finishes (784f6e5)
    • feat: add watch mode to replay new commits as they are made (9cfdddf)

    🐛 Bug Fixes

    • fix: respect pause and detached checkouts in watch mode (3b7f372)
    • fix: redraw when UI state changes without animation progress (8a7158b)
    • fix(ci): fail Homebrew SHA step on HTTP errors (9a27f93)

    📝 Other Changes

    • chore: bump version to v0.12.0 (06a19b7)
    • refactor: show waiting screen instead of startup HEAD in watch mode (f89347f)
    • chore(deps): bump rand from 0.10.2 to 0.10.3 (c2d782c)
    • chore(deps): bump toml_edit (76d7e99)
    • chore(deps): bump toml from 1.1.5+spec-1.1.0 to 1.1.6+spec-1.1.0 (0b34718)
    • chore(deps): bump dirs from 6.0.0 to 7.0.0 (bdcffbc)
    • chore(deps): bump toml from 1.1.4+spec-1.1.0 to 1.1.5+spec-1.1.0 (59dc7b3)
    • chore(deps): bump chrono-english from 0.2.0 to 0.2.1 (971f97b)
    • chore: update flake.nix hashes for v0.11.0 (4868df2)
  4. v0.11.0Release v0.11.02026-08-30 · 2026-08-30 07:52 UTC
    查看更新说明

    ✨ Features

    • feat(syntax): add Godot file highlighting (2aeb59b)

    🐛 Bug Fixes

    • fix(syntax): narrow GDScript parameter highlights (7362948)

    📝 Other Changes

    • chore: bump version to v0.11.0 (4896e19)
    • chore(nix): update nixpkgs to fix crate downloads (#234) (e20bba9)
    • docs: refresh supported language lists (b2991eb)
    • chore(deps): bump chrono-english from 0.1.8 to 0.2.0 (#233) (4c2a482)
    • docs: count Godot as one supported language (afe9928)
    • docs: clarify supported language-family count (5ad3092)
    • chore(deps): bump tree-sitter-scala from 0.26.0 to 0.26.2 (2a4fd89)
    • chore(ci): use personal git identity for automated commits (8280084)
    • chore(deps): bump globset from 0.4.19 to 0.4.20 (6e47f16)
    • chore(deps): bump toml from 1.1.3+spec-1.1.0 to 1.1.4+spec-1.1.0 (a282dd3)
    • chore(deps): bump tree-sitter-erlang from 0.19.0 to 0.20.0 (1fd9569)
    • chore: update flake.nix hashes for v0.10.0 (3fb5c9a)
  5. v0.10.0Release v0.10.02026-07-25 · 2026-07-25 05:47 UTC
    查看更新说明

    ✨ Features

    • feat(git): detect renames in diff extraction and preserve old_path (782e28f)

    🐛 Bug Fixes

    • fix(ci): bump cachix/install-nix-action to v31 in release.yml (f9c046f)
    • fix(ci): bump cachix/install-nix-action from v27 to v31 (d52afc8)
    • fix(ci): bump rust-cache prefix-key to invalidate stale cache (e2e1fbf)
    • fix: address CodeRabbit review findings on rename detection and ignore handling (2f50404)

    📝 Other Changes

    • chore: bump version to v0.10.0 (1733beb)
    • chore(deps): bump clap from 4.6.2 to 4.6.3 (cb16226)
    • chore(deps): bump serde from 1.0.228 to 1.0.229 (bfa2e8f)
    • chore(deps): bump anyhow from 1.0.103 to 1.0.104 (59a5273)
    • chore(deps): bump globset from 0.4.18 to 0.4.19 (3c39bb3)
    • chore(deps): bump clap from 4.6.1 to 4.6.2 (4cd1f8c)
    • chore(deps): bump toml_edit (8f39d64)
    • chore(deps): bump toml from 1.1.2+spec-1.1.0 to 1.1.3+spec-1.1.0 (8506de7)
    • chore(deps): bump rand from 0.10.1 to 0.10.2 (a7bfa2e)
    • chore(deps): bump anyhow from 1.0.102 to 1.0.103 (b800f56)
    • chore(deps): bump ratatui from 0.30.1 to 0.30.2 (127f59a)
    • chore(deps): bump ratatui from 0.30.0 to 0.30.1 (450f68d)
    • chore(deps): bump tree-sitter-erlang from 0.18.0 to 0.19.0 (09d4546)
    • chore(deps): bump chrono from 0.4.44 to 0.4.45 (b885f16)
    • chore(deps): bump tree-sitter-swift from 0.7.2 to 0.7.3 (c055f30)
    • chore(deps): bump toml_edit (99d5aa3)
    • chore(deps): bump tree-sitter-erlang from 0.17.0 to 0.18.0 (4029ebc)
    • chore(deps): bump git2 from 0.20.4 to 0.21.0 (43ac447)
    • docs: add HelloGitHub featured badge (e0642e1)
    • chore(deps): bump tree-sitter-erlang from 0.16.0 to 0.17.0 (a4a8066)
    • docs: add Discord and blog mentions to Support section (c525869)
    • docs: add general hashtags to share links (2bb9984)
    • docs: add Support section with star and share links to README (bd3b1c9)
    • ci: merge test job into coverage run (50321ea)
    • ci: add codecov coverage measurement (4ab7bef)
    • chore(deps): bump tree-sitter-swift from 0.7.1 to 0.7.2 (74e94cf)
    • docs(readme): add hero section with centered demo, badge row, and tagline (460fa22)
    • chore: rem

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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
    
    # Watch the repository and replay new commits as they are made
    gitlogue --watch
    
    # 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

    KeyAction
    SpaceToggle play / pause
    hStep one line backward
    lStep one line forward
    H (Shift+h)Step one change backward
    L (Shift+l)Step one change forward
    pPrevious commit
    nNext commit
    EscOpen menu
    q / Ctrl+cQuit

    Menu

    KeyAction
    j / ↓Move selection down
    k / ↑Move selection up
    EnterSelect item
    EscClose 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:

    Every bit of support helps. Thanks!