Skip to content
animfetch
Menu

Getting started

Introduction

What animfetch is, how pinning works, and what it needs to run.

animfetch is an animated system fetch you can work inside. It draws an animation and your system information at the top of the terminal, then leaves them there while your prompt and command output scroll below.

Most fetch tools print once and scroll away. animfetch keeps the art on screen and keeps it moving, so it is something you live with rather than something you glance at on startup.

How it works#

animfetch --pin sets a scroll region: the top rows of the terminal stop scrolling, and everything you type and run scrolls in the region beneath them. animfetch then detaches and paints the top rows from the background, while your own shell runs underneath with its history, completion and aliases intact.

sh
animfetch --pin

Nothing is wrapped or replaced. Your shell is still your shell; the fetch is just drawn above it. animfetch --unpin puts the terminal back as it was.

What you get#

  • 34 animations built into the binary, and your own as folders of text frames. See them.
  • Eight info styles for the system information beside the art: classic, boxed, tree, sections, chips, iconic, card and minimal. Compare them.
  • Picture borders: PNG ornaments drawn beside and below the information in terminals that speak the kitty graphics protocol. Borders.
  • Live rows that keep uptime, memory, swap and disk current while the fetch is on screen. Live mode.
  • Your own rows: rename a built-in row, replace its value, or fill it from a shell command. Overrides.
  • Theme-aware colour from a matugen, pywal or wallust palette. Theming.

Requirements#

  • Linux or macOS. macOS support is newer, so please report anything that looks off there.
  • A terminal with colour (truecolor looks best). A Nerd Font for the icons, or set icons = false.
  • Borders need a terminal that speaks the kitty graphics protocol: kitty, WezTerm or Ghostty. Everything else works in any terminal.
  • To build from source: Rust 1.88 or newer. Prebuilt binaries need nothing.

Where to next#