Retrofetch is a Linux utility that displays random retro animations alongside Fastfetch system information in Kitty. Inspired by the aesthetics of the 1990s and early 2000s internet, it combines classic animations with your existing system display. New-terminal startup is available only when you explicitly enable it.
Requirements: Linux, Python 3.11+, Kitty's kitten, ImageMagick 7 (magick), and
Fastfetch with Kitty animation and ImageMagick support. Install these through
your distribution's package manager first.
git clone https://github.com/almondsun/retrofetch.git
cd retrofetch
sh install.sh --accept-source-noticesThe installer downloads all three source collections (Essential, 250K_ANIMATIONS,
and Anime Factory): approximately 13.71 GB, followed by upfront extraction,
validation, and normalization. Allow at least 65 GiB of free working space
for the default cache/data layout and several hours of preparation. Existing
installations need additional room for their retained rollback library. Read the
third-party source notices before using --accept-source-notices; this option
acknowledges the notices, not a grant of asset rights. Nothing downloads or
converts during terminal startup. Code installs into ~/.local, assets into XDG
data home. Ensure ~/.local/bin is on your PATH.
For a versioned code-only source archive without Git, see installation and the v0.3.1 release notes.
Already have the extracted collection? Use sh install.sh --source /path/to/source.
See installation and recovery for directory overrides,
safety checks, and opt-in Bash/Zsh/Fish startup examples.
Optional source-built native acceleration avoids Python startup for supported playback. It remains opt-in and keeps Python fallback; see native setup and refresh.
retrofetch # random animation plus Fastfetch
retrofetch --animation-only # animation without system information
retrofetch --search computer # find names, IDs, and categories
retrofetch --list # list selectable IDs
retrofetch --categories
retrofetch --include animals --exclude '*/spiders'
retrofetch --size 20x10
retrofetch --calibrate-layout --layout-mode fixed-height # stable module height
retrofetch --refresh-runtime # refresh index/capabilities, without conversion
retrofetch --file /path/to/animation.gifPass an ID from --list as the positional argument to select it explicitly.
Discovery commands work without an interactive terminal. See the
usage guide and optional TOML settings.
Retrofetch replaces only Fastfetch's logo: it does not rewrite Fastfetch configuration, reconstruct modules, or manage colors. The terminal owns playback; the prompt returns, animations scroll away normally, and clearing removes them. There is no background playback daemon. Rendering supports Kitty only, without tmux/screen passthrough.
Artwork is normalized upfront onto a common 160×160 transparent canvas, with a
20×10-cell maximum display box and no upscaling. Existing libraries can run
retrofetch --normalize, then explicitly calibrate. Fixed-height calibration
survives tiling and font changes; use the default width-sensitive mode when output
height depends on available columns. Recalibrate after module-height changes.
Startup uses a checksummed read-only index and cached native capabilities, never
runtime normalization or calibration. See measured performance.
The verified development library contains 36,642 eligible animation entries sharing 34,604 normalized GIFs, with all 36,332 unique native originals retained. Larger opaque variants are tried conservatively; unsuitable conversions fall back to usable transparent variants. Corrupt, ambiguous, and visually static results are excluded. See preparation rules and the verification report.
MIT covers Retrofetch's code, not the animation collection. Source notices are preserved with prepared data. Internet Archive availability is not permission to redistribute assets; review the collection's terms before using them. Git and Python release packages contain no animation collection or source archive.
PYTHONPATH=src python3 -m unittest discover -s tests -v
PYTHONPATH=src python3 -m retrofetch --validate --data-dir data
PYTHONPATH=src python3 -m retrofetch --data-dir data # after preparing development dataThe suite uses the standard library and ImageMagick fixtures. Actual Kitty visual checks are documented separately in rendering verification. Contributor boundaries and architecture are in AGENTS.md and the project brief.