Skip to content
CAI
Software that uses CAICheck a score

unhappychoice/gitlogue

68.0

Adequate · 30 September 2026

10.9k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Gitlogue is a terminal-based screensaver that replays Git commit history as a typing animation with syntax highlighting. It provides a modular UI with file trees and status bars, supporting extensive theme customization and multi-language code rendering via tree-sitter. The system includes CLI tools for playback control, diff visualization, and social media image generation.

Features

Add Homebrew formula for Gitlogue

Users can now install the Gitlogue screensaver via Homebrew on macOS (Intel and Apple Silicon) and Linux (Intel and ARM) using the newly added Formula/gitlogue.rb file, which supports version 0.0.1.

Formula · high confidence

Add SelectableParagraph widget with character-boundary wrapping and selection styling

A new SelectableParagraph widget is introduced in src/widgets, providing a paragraph display that wraps text at character boundaries rather than word boundaries. It supports line selection via a selected\_line index, allows custom styling for selected and background lines, and includes a dimming feature that fades opacity for lines further from the selection center. The widget also handles edge cases such as zero-size areas and padding to prevent rendering panics.

src/widgets · high confidence

Added OGP image generation script for social previews

A new script in the \scripts/ogp\ directory generates Open Graph Protocol (OGP) images (1200x630px) for social media sharing. The tool uses Node.js with \satori\ and \@resvg/resvg-js\ to render a styled image featuring the 'gitlogue' title, tagline, and use cases, outputting the result to \docs/assets/ogp.png\.

scripts · high confidence

Added syntax highlighting for multiple programming languages

New tree-sitter syntax highlighting queries have been added for Clojure, C\#, Dart, GDScript, Godot resources, Kotlin, Swift, and TypeScript. This enables proper code coloring for these languages in the editor.

src/syntax/languages/queries · high confidence

Expanded syntax highlighting support for 30+ languages via tree-sitter

The editor now provides syntax highlighting for a significantly broader range of file types by integrating tree-sitter parsers. This update adds support for Astro, Bash, C, Clojure, C++, C\#, CSS, Dart, Elixir, Erlang, GDScript, GDShader, Go, Godot resources, Haskell, HTML, Java, JavaScript, JSON, Kotlin, Lua, Markdown, Nix, PHP, Python, Ruby, Rust, Scala, Svelte, Swift, TypeScript, XML, YAML, and Zig. It also improves Markdown heading visibility with custom highlight queries and enables language injections for Astro, HTML, Nix, PHP, and Svelte, allowing embedded code blocks to be highlighted correctly.

src/syntax/languages · high confidence

Initial project scaffolding and distribution setup

The repository is initialized with core project files including an ISC license, a third-party license manifest, and a comprehensive README covering installation (Homebrew, Cargo, Nix, Arch Linux) and usage. An automated install script is added to download pre-built binaries with a glibc version check, and a Nix flake is provided for declarative installation. Additionally, a changelog generation script is included to automate release notes from commit history.

(repo-wide) · high confidence

Introduce gitlogue terminal screensaver with animated Git history playback

The application now features a terminal-based screensaver that replays Git commit history as a typing animation, complete with syntax highlighting and natural pacing. Users can control the experience via CLI flags for playback order (random, ascending, or descending), commit ranges, author and date filtering, and file exclusion patterns. The UI includes a file tree, editor pane, and status bar, with support for custom themes (defaulting to Tokyo Night), transparent backgrounds, and per-file typing speed rules. A new diff subcommand allows visualizing staged or unstaged working tree changes, while configuration is managed through a TOML file that preserves comments.

src · high confidence

Introduce tree-sitter based syntax highlighting with language injection support

The application now uses tree-sitter for syntax highlighting, replacing the previous implementation. This change introduces a new \Highlighter\ component in \src/syntax\ that supports 26 languages, including specific fixes for GDScript parameters and Markdown headings. It also implements a centralized Tokyo Night theme system and supports language injections (up to a depth of 4), allowing nested code blocks to be highlighted correctly. The system includes caching for performance and handles token mapping via a defined \TokenType\ enum.

src/syntax · high confidence

New theme system with 17 built-in color schemes and transparent background support

The application now includes a comprehensive theme system located in src/theme, featuring 17 built-in color schemes: ayu-dark, catppuccin, dracula, everforest, fluorite, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, and tokyo-night. The default theme is Tokyo Night. Users can load any of these themes by name, and the system supports transparent terminal backgrounds via the with\_transparent\_background method, which resets background colors while preserving all other UI colors. The theme module includes unit tests to verify theme uniqueness, loadability, and transparent background behavior.

src/theme · high confidence

Behavioural changes

Modular pane structure with enhanced editor, file tree, and status bar rendering

The UI has been refactored into a modular pane structure (src/panes), introducing dedicated components for the editor, file tree, status bar, and terminal. The EditorPane now displays line numbers with highlighting, supports distance-based opacity, and highlights the cursor in the active pane. The FileTreePane groups files by directory, shows addition/deletion stats, and includes caching to optimize rendering. The StatusBarPane displays commit metadata (hash, author, date, message) with specific formatting for working tree vs. commit views. All panes utilize a shared SelectableParagraph widget for consistent selection styling and background padding.

src/panes · high confidence

Test coverage

Added integration tests for non-interactive CLI behavior; Added syntax highlighting example for Rust, Markdown, Astro, and HTML.

Dependencies

Initial dependency setup for gitlogue and OGP generator

This change establishes the project's dependency manifests, adding the Rust crate \gitlogue\ (version 0.11.0) with its full set of dependencies—including \git2\, \clap\, \ratatui\, and numerous \tree-sitter\ grammars for syntax highlighting—and initializing the \scripts/ogp\ directory with a Node.js package for generating Open Graph images using \satori\, \sharp\, and \@resvg/resvg-js\.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 67 → 68 (+1.1)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 87 → 87 (+0.0)
  • Architecture 100 → 99 (-1.4)
  • Maturity 70 → 70 (+0.2)
  • Readiness 83 → 61 (-21.5)
  • Security 53 → 64 (+11.1)
  • Domain Modelling 100 → 100 (+0.0)
  • Performance 100 (new)

Resolved (6)

  • Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
  • Documentation: no project overview (README.md)
  • High CVE: [GHSA redacted] (scripts/ogp/package-lock.json)
  • High vulnerability: [GHSA redacted] (scripts/ogp/package-lock.json)
  • Hotspot: src/syntax/mod.rs (src/syntax/mod.rs)
  • Medium CVE: [CVE redacted] (scripts/ogp/package-lock.json)

New (4)

  • Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
  • High vulnerability: [GHSA redacted] (scripts/ogp/package-lock.json)
  • Inconsistent naming convention for commit retrieval operations. The API mixes imperative verbs ('get', 'next', 'random') with inconsistent suffixes ('_commit' vs implicit return). Specifically, 'get_commit' implies fetching a specific item, while 'next_*' and 'random_*' imply iteration or selection from a set. The distinction between 'commit' and 'range_commit' is clear, but the verb choice is inconsistent.
  • Inconsistent return types for similar 'lookup' or 'processing' operations. 'Highlighter.highlight' returns a single 'HighlightSpan' (likely a mistake, as highlighting usually produces multiple spans), whereas language lookup methods return 'LanguageSupport'. If 'highlight' is meant to return a collection, it should be consistent with other collection-returning APIs. If it returns a single span, the name 'highlight' is misleading as it suggests a process, not a lookup.

Changes since last survey

  • 6 commits — 6 feature/other, 0 fixes

By area

  • (repo) — 3 commits
  • (root) — 3 commits

Notable commits

  • change: Merge pull request #241 from unhappychoice/dependabot/cargo/toml-1.1.6spec-1.1.0
  • change: Merge pull request #242 from unhappychoice/dependabot/cargo/toml_edit-0.25.15spec-1.1.0
  • change: Merge pull request #243 from unhappychoice/dependabot/cargo/rand-0.10.3
  • change: chore(deps): bump rand from 0.10.2 to 0.10.3
  • change: chore(deps): bump toml from 1.1.5+spec-1.1.0 to 1.1.6+spec-1.1.0
  • change: chore(deps): bump toml_edit

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

unhappychoice/gitlogue was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 574cd23e23e0882c242c945f22e36673d7d26fcb — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.